用电机进行简单的PID参数整定

最近一直在学习PID的相关知识,网上有很多心得和口诀,看完过后感觉自己好像是懂了一些,但让自己实践一下又感觉无从下手,举手无措。所以今天我决定,直接上手一个简单的电机速度PID试试。

准备阶段

  1. 一块主控板子 我这里刚好有一块原子的mini开发板,所以就用它了。其实任何一块最简单的STM32核心板都能完成功能。

    用电机进行简单的PID参数整定
  2. 一块电机驱动

电机驱动这里用的是L298N,使用非常简单。方向控制,其中一个高电平一个低电平就能控制电机转了,假设左边高是正转,那么右边高便是反转,同时为高或同时为低则不转。实际我们是输入两个脉冲波进行控制,脉冲的占空比决定转速。

用电机进行简单的PID参数整定
  1. USB转TTL模块
    用电机进行简单的PID参数整定

电路搭建

用电机进行简单的PID参数整定
  1. 串口初始化

串口初始化比较简单,不过串口通信协议需要按照匿名上位机的写,这个在上位机里有相关协议和例程。

  1. 定时器初始化

    假定10ms控制一次

  2. 简单的PID程序
    这大概是最简单的PID了

    用电机进行简单的PID参数整定
    从图中我们可以看到看到,电机在转过3000后往回减了一点,然后就不动了,这说明存在静差。然后计算下时间,从哪开始动到稳定,2305-2168=137(看横坐标),就是1370ms,这便是调整时间。下一步,我们应该按照网上给的口诀,先调整P大到接近等幅震荡。

    之后,加一些d,你会发现它没那么震荡了,这时候再稍稍调高一下p,如果对系统要求不高,就ok了。
    这里加一句,p参数形象的理解就是响应速度,d就是阻尼。一个好的系统,既要有不错的响应,也应有适当的阻尼,稳定性才好。至于i,在pd调完之后,加一点,比如p参数的1/100,主要用于减少静态误差,但实际上我们都是动态控制,它可有可无。

    来源:月落三千雪

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年3月11日
下一篇 2019年3月11日

相关推荐