在前面的比例项输出实验中,当Kp = 0.8时的结果如图1所示.
(资料图片)
可以看到,稳定后的温度在58.7°C附近,没有达到目标温度60°,此时出现的这种差值我们叫稳态误差。那有没有一种办法能够让它稳定后达到60°呢?有,就是将误差的积累转为输出,叠加到比例项上,一起参与对PWM的有效时间进行控制。
我们举一个简单的例子来说明。假设稳定后的温度为58°,比目标温度少2°。我们将这个2°进行累加,每500ms累加一次,则有 2+2+2+2+.....,该累加项叠加到比例项,使得输出为
out = Kp*2+ Ki *(2+ 2 + 2 +....) (1)
式(1)中,Ki为积分系数。
由式(1)可以看到,当误差积累到一定程度后,out将会是一个比较大的值,有效加热时间增加,温度会重新慢慢提升,并到达60°C处。
而当温度超过60°后,由于设定值-测量值为负,所以比例项和积分项都为负,out的输出为0,系统不对加热块进行加热,加热块温度下降。这样反复加热散热,最终使得温度被稳定在目标温度处。
我们将这种差值进行累加并和比例项一起影响输出PID算法的输出out,可以使得系统能够比较好地稳定于目标温度处。这种累加就是数学上的积分,将该积分离散后叠加上比例项的结果如式(2)所示。
out = Kp*E(k)+ Ki *(E(k=1) + E(k = 2) + E(k = 3) +....) (2)
其中,E(k)为目标值 - 第k次的测量值。
下面我们设置Ki = 0.004,Kp仍然取0.8,然后看一下实验结果。实验结果如图2所示。
由图2可以看到,增加积分项后,稳态误差被消除了。但是,由于整个过程都使用了积分,所以导致超调严重,而且振荡1个多小时才达到稳定。所以在使用积分的时候一定要注意,一定要根据具体的情况来使用积分项。比如先使用Kp调整使得稳态误差比较小,然后再根据稳态误差来确定何时使用积分。
下面我们再来看一个实验,就是在目标温度 - 测量温度在±5°时才使用积分的情况,结果如图3所示。
可以看到,使用积分限制后,超调大大减小,到达稳定的时间也大大缩短。
关于PID介绍的更多内容,我们将在近期正点原子平台的第三期教学给大家分享。在这一期的教学中,我们将推出自整定方法和PID模糊控制,关于PID的模糊控制,应该是全网第一个实战的项目,结果非常理想。
如果大家有兴趣,可以关注公众号: O老师讲32
或者直接扫码添加