本文将分析《手把手教你看懂并理解Arduino PID控制库》中:设定值的忽然改变,如何避免输出突变。ui
首先先看一下上述问题的图示说明:spa
假设PID控制的输出的限制是255,若是按照PID经典公式计算,PID控制器不知道其输出的极限值是255,因为设定值较大,那么输出会一直增加,超过255,达到300/400或者更高。此时,忽然下降设定值到一个较低的位置(比被控量更小),那么,因为积分项的做用,输出会须要必定的时间才会渐渐过分到极限值如下,而后再慢慢降到所需的设定值。从图中看,就是绿色线条的Lag,这个 是咱们不但愿看到的。.net
有多种手段能够减少上述问题的影响。blog
最简单的方式:告诉PID软件输出限制是什么,一旦达到了限制,PID参数将再也不累加(积分),注意这里不是“生硬”的将输出限制在极限值,而是到达极限值后,要关闭积分项的继续累加,不然一旦PID恢复,积分项超限部分仍会进入控制流程,影响输出。至于微分项,在时间上仅和上一次的被控量值存在关联,因此影响是微乎其微的。get
从图中看出:软件
一旦积分项控制住了,输出值则会被限制在一个合理的范围中,就算超限,也不会过大。而被控量在设定值降到合理范围后,也不会存在时间上的较大滞后。im
NOTE:若有不足之处请告知‘img
下一章节将分析PID开启和关闭对系统的影响^.^时间
NEXT解决方案
PS:转载请注明出处:欧阳天华