- 起因
由于项目中经常要用到PID控制,因此一直在寻找一个好的PID算法,虽然西门子PLC自带的FB41也可以满足要求,但没有提供自整定,PCS7虽然带了自整定,但对于一些小项目就不适用了,因此决定自己编写一个。
2.算法选择
为何使用PID算法?原因是因为在现场有好多不确定因素,而基于模型的好多控制算法因为无法得到准确的数学模型而使调试变得很困难,而PID不是基于模型的,因而适应性更好一些,更通用一些。本算法使用的是增量PID递推算法,增量PID相对于位置式(也叫连续式)PID有好些优点,例如无扰动切换等等,但也有缺点,我仿真下来的结果是对设定值的变化或过程值的干扰比较敏感,因此对于设定值的变化在程序里做了优化,彻底解决了设定值变化对系统的干扰。对于过程值的干扰,通过仿真分析发现,干扰主要影响在微分项上,因此在实际算法处理上对微分项做了限幅优化处理(通过参数Threshold控制,如果不希望被限幅,请将Threshold的值增大或者直接设为100。),对正常的控制不产生影响且对干扰产生很大的抑制作用。
本PID使用的公式为:
U(K)=U(K-1)+Kp*(E(K)-E(K-1)+T*E(K)/Ti+Td*(E(K)-2*E(K-1)+E(K-2))/T)
式子中U(K)为当前输出
U(K-1)为上次输出
E(K)为当前偏差
E(K-1)为上次偏差
E(K-2)为上上次偏差
T为扫描周期
Kp为比例系数
Ti为积分时间
Td为微分时间
3.自整定
人工整定PID对自控工程师的经验要求很高,而使用自整定程序则对自控工程师的经验要求大大降低,即使没有太多经验的自控工程师也可以轻松整定,也大大减少了自控工程师在现场调整PID参数的时间,基本上可以做到傻瓜整定。自整定算法目前主要有Z-N阶跃响应法和继电反馈整定法,因此本PID程序加入了这2种整定算法。虽然还有ISTE最优等其他算法,但其整定过程过程与Z-N整定一致,仅为公式不同,准备后期加入。
4.Z-N阶跃响应法
Z-N阶跃响应法整定简单,没有过多参数,但缺点是不能控制信号的阶跃大小(直接输出的是最大输出值),对设备冲击大,以及达到稳态的判断,且整定过程对干扰敏感,为此本算法是采用我修改后的算法公式,并不是下图所示的原始的算法,但阶跃输出可以设定,扩大了其适用范围。其整定原理及公式如下图所示
5.继电反馈整定法
继电反馈整定是在闭环的条件下进行的,理论上对干扰不敏感,几乎不受噪声影响,但在自整定判断等幅震荡时对过程值穿越设定值期间的干扰比较敏感,为此系统采用了消抖措施,即:过程值必须连续3个周期(可Delay参数控制)穿过设定值才认为是穿越。整定方法是由程序控制过程变量产生一个稳定的震荡,从而得到其临界增益Ku和临界周期Tu,进而通过一组经验公式算出PID的参数
控制器 | Kp | Ti | Td |
PID | 0.6Ku | 0.5Tu | 0.125Tu
|
6.使用方法
定时中断调用本PID块(例如在OB35里调用),并将中断的间隔时间填在Cycle里,整定过程如下:首先选择你想要的整定算法(由Tuning. Method定义),如果是Z-N算法,则需要设定需设定阶跃输出Tuning.ZN.X,然后将Tuning.Enable置1并等待整定过程结束 ;如果选择继电反馈方法,请将Tuning.Enable置1,然后修改Tuning.Relay.AH、Tuning.Relay.AL、SP(正反馈时Tuning.Relay.AH> Tuning.Relay.AL,负反馈时Tuning.Relay.AH< Tuning.Relay.AL),确保PV值能在SP值上下振荡然后等待整定自动结束。正常情况下过程值会来回震荡4-10个周期才能到达临界震荡状态,如果连续2个周期振幅和周期偏差的百分比都小于Tolerance值,则认为2个周期相等,到达临界震荡状态,整定过程结束。整定期间不要频繁修改Tuning.Relay.AH、Tuning.Relay.AL、SP,否则会大大延长整定时间。如果整定的时间在经历了10个周期还不能自动结束,可根据需要增大Tolerance值,但这样做可能会使整定的参数要差一些。最后需要说明的是使用自整定程序整定出来的参数不一定是最佳值,它只是一组经验值,而且当你再次整定时参数也可能会发生变化,但它为目标参数提供了大致范围,你可以根据你的具体需求进行优化微调。继电反馈方法自整定的仿真过程截图如下,前面是整定过程,后面是整定结束后修改设定值产生的响应变化
7.适用范围
PID算法本身是有其局限性,不一定适用于所有工况,只有自稳定的过程类型才可以采用常规的PID控制。关于什么是自稳定过程,请参见西门子官网,那里有详细的解释,链接如下: http://support.automation.siemens.com/CN/adsearch/resultset.aspx?region=CN&lang=zh&netmode=internet&ui=MTg4ODY4ODMA&term=%e8%87%aa%e7%a8%b3%e5%ae%9a%e8%bf%87%e7%a8%8b&ID=7789028&ehbid=7789028
8.改进
如果你有好的想法或者发现什么问题,请反馈给我,我会尽最大努力去解决,但由于个人能力有限,不一定都能解决。我的联系方式为hushuguo*163.com(将*替换为@)
胡述国编辑整理