浅谈位置式PID

浅谈位置式PID

之前用pid控制小车,避免忘记 ,在这里整理一下资料(若有哪里不对,还请指教)

在说pid之前,先来说一下开环控制和闭环控制
开环控制
  当操作者启动系统,使之进入运行状态后,系统将操作者的指令一次性输向受控对象。此后,操作者对受控对象的变化便不能作进一步的控制。(来自百度)。
闭环控制
  当操作者启动系统后,通过系统运行将控制信息输向受控对象,并将受控对象的状态信息反馈到输入中,以修正操作过程,使系统的输出符合预期要求(来自百度)。
  这里举一个例子:让电机转动,如果只需要使电机转起来,只需要通电,至于电机的转速无法控制。这属于开环控制。
  (可能这里有人就会产生疑问了,如果通电,电机转动起来,我只需要测量一下电机转速,将电压人为调到需要转速的那个定值就行了,不需要PID来控制,还省了很多麻烦。
  其实这里已经有闭环的意思了,不过只是根据输出调节输入的控制器变成了我们自己,而不是软件或者硬件而已。
这里的pid控制也是闭环控制,是一种根据输出来控制系统的机制(这里就不讨论pid三个字母的含义了,只讨论其实践效果)。
方便理解,这里谈论一下pid的发展
  最先的控制是一种开关式的控制:假设要维持一个漏水水缸的水量,是这样操作的:水量低于设定值,打开进水阀,高于设定值,关闭进水阀。但是这样的调节精度不高,会使水缸的水在设定值的上下波动很厉害。(开关调节)
  后来又改进了这种调节办法,改用按比例控制进水速度的办法。将水缸的实际水量与设定值做差再乘上一个系数作为进水的速度。这样的调节比前面的调节效果要好,但是会出现一些误差或者震荡,效果不是很理想。(纯比例调节)
  再后来,在纯比例的基础上进入了积分和微分,构成了PID调节,这种调节方式就好了很多,达到了 快、准、狠 的要求。(PID调节)

进入正题:位置式PID
  先看一个位置式的PID表达式(连续):
  
  其中: e ( t ) e_{(t)} e(t) = 设定值 - 测量值; K p K_p Kp是比例系数; T i T_i Ti是积分周期; T d T_d Td是微分周期。
  由于计算机是处理数字信号的,故需要将连续信号离散化,下面是离散表达式(连续表达式里散化过程,参考博客:PID控制经典教程;密码:empn)
  
  其中:比例系数: K p K_p Kp;积分系数: K p T T i \frac {K_pT}{T_i} TiKpT,用 K i K_i Ki替代;微分系数: K p T d T \frac {K_pT_d}{T} TKpTd,用 K p K_p Kp替代。则有:
  
注:虽此表达式无周期T,但是在写PID控制程序时,最好将采样的周期固定,且采样周期应大于系统的周期

到这里PID公式已经介绍完毕,现在来细谈这三个参数 K p K_p Kp, K i K_i Ki, K d K_d Kd

由离散PID表达式可知, K p K_p Kp直接跟输出有关,所以这三个参数中 K p K_p Kp对结果影响是最大的。如果想使调节反应快,可以适当增加 K p K_p Kp,提高反应速度。
  在控制电机转速PID中, e ( t ) e_{(t)} e(t)为实测转速-设定转速。经过PID计算后, u ( t ) u_{(t)} u(t)则为输出PWM占空比。

这里附上一篇整定参数的口诀:

参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢。微分时间应加长
理想曲线两个波,前高后低4比1
一看二调多分析,调节质量不会低

      (博客未完待续)

你可能感兴趣的:(PID)