手把手教你看懂并理解Arduino PID控制库——设定值突然改变

引子

本文将分析《手把手教你看懂并理解Arduino PID控制库》中:设定值的突然改变,如何避免输出突变。

问题定义

首先先看一下上述问题的图示说明:

假设PID控制的输出的限制是255,如果按照PID经典公式计算,PID控制器不知道其输出的极限值是255,由于设定值较大,那么输出会一直增长,超过255,达到300/400或者更高。此时,突然降低设定值到一个较低的位置(比被控量更小),那么,由于积分项的作用,输出会需要一定的时间才会渐渐过度到极限值以下,然后再慢慢降到所需的设定值。从图中看,就是绿色线条的Lag,这个 是我们不希望看到的。

解决方案

有多种手段可以减小上述问题的影响。

最简单的方式:告诉PID软件输出限制是什么,一旦达到了限制,PID参数将不再累加(积分),注意这里不是“生硬”的将输出限制在极限值,而是到达极限值后,要关闭积分项的继续累加,否则一旦PID恢复,积分项超限部分仍会进入控制流程,影响输出。至于微分项,在时间上仅和上一次的被控量值存在关联,所以影响是微乎其微的。

从图中看出:

一旦积分项控制住了,输出值则会被限制在一个合理的范围中,就算超限,也不会过大。而被控量在设定值降到合理范围后,也不会存在时间上的较大滞后。

NOTE:如有不足之处请告知‘

下一章节将分析PID开启和关闭对系统的影响^.^

NEXT

PS:转载请注明出处:欧阳天华

猜你喜欢

转载自my.oschina.net/u/3162997/blog/827549