PLC中PID工艺块没调用会发生什么事故?
大家都知道受控系统需要一个确定的采样和计算时间来对输出值的变化做出响应,那么这个确定的时间就非常重要了。
PID各参数作用
计算机化的PID控制算法有几个关键的参数Ts(采样时间),Kc(Gain,增益),Ti(积分时间常数),Td(微分时间常数)。PID参数的取值,以及它们之间的配合,对PID控制是否稳定具有重要的意义:
采样时间
计算机必须按照一定的时间间隔对反馈进行采样,才能进行PID控制的计算。采样时间就是对反馈进行采样的间隔。短于采样时间间隔的信号变化是不能测量到的。过短的采样时间没有必要,过长的采样间隔显然不能满足扰动变化比较快、或者速度响应要求高的场合。
编程时指定的PID控制器采样时间必须与实际的采样时间一致。S7-200中PID的采样时间精度用定时中断(PID向导用SMB34)来保证。
增益(Gain,放大系数,比例常数)
增益与偏差(给定与反馈的差值)的乘积作为控制器输出中的比例部分。提高响应速度,减少误差,但不能消除稳态误差,当比例作用过大时,系统的稳定性下降。
积分时间(Integral Time)
偏差值恒定时,积分时间决定了控制器输出的变化速率。
积分时间的长度相当于在阶跃给定下,增益为“1”的时候,输出的变化量与偏差值相等所需要的时间,也就是输出变化到二倍于初始阶跃偏差的时间。
如果将积分时间设为最大值,则相当于没有积分作用。
微分时间(Derivative Time)
偏差值发生改变时,微分作用将增加一个尖峰到输出中,随着时间流逝减小。微分时间越长,输出的变化越大。微分使控制对扰动的敏感度增加,也就是偏差的变化率越大,微分控制作用越强。微分相当于对反馈变化趋势的预测性调整。
如果将微分时间设置为0就不起作用,控制器将作为PI调节器工作。
比例调节
提高响应速度,减少误差,但不能消除稳态误差,当比例作用过大时,系统的稳定性下降。(由小到大单独调节)
积分调节
消除稳态误差,使系统的动态响应变慢,积分时间越小,积分作用越大 ,偏差得到的修正越快,过短的积分时间有可能造成不稳定。(将调好的比例增益调整到50%~80%后,由大到小减小积分时间)
微分调节
超前调节,能预测误差变化的趋势,提前抑制误差的控制作用,从而避免了被控量的严重超调。可以改善系统的响应速度和稳定性,对噪声干扰有放大作用,对具有滞后性质的被控对象,应加入微分环节。
在西门子PLC中OB1由于受到通信、高优先程序的中断,扫描周期并不确定,而循环中断则可以保证扫描周期的确定性,同时循环中断的周期时间也可以根据受控对象的响应进行调整。
PID中的积分和微分时间也与这个确定的时间相关,扫描周期不稳定,设定参数的PID回路就不可能完成控制任务!
如果在OB1中调用PID会有什么影响呢?
这是真实发生的事件:现场使用的是老型号的S7-300,CPU升级替换后,受控系统的速度输出突然发生剧烈的震荡,生成的产品报废,加上不菲的原材料,大概20W,可谓损失惨痛!
用户认为新的CPU有BUG,非要找老型号的CPU替换,帮忙查找问题,最后发现是使用PID控制速度的,PID工艺块是在OB1中调用的,那么PID的参数就是一个调试结果而非正确的设定值。
那么为什么会发生这样的事故呢?
原因就是新CPU比老CPU运算速度提高了将近7倍,原有PID参数就失效了!
PID指令块可以在主程序/子程序里调用吗?
可以,但是不推荐,主程序/子程序的循环时间每个周期都可能不同,不能保证jingque的采样,建议用定时中断,例如SMB34/SMB35。
SMB34定时最大255ms,如果采样时间是1S怎样实现?
采样时间是1S,要求PID指令块每隔1S调用一次。可以先做一个250ms的定时中断,然后编程累加判断每4次中断执行一次PID指令即可。
PID指令块怎样实现手动调节?
可以简单地使用“调用/不调用”指令的方式控制自动/手动模式。不调用PID指令时,可以手动给输出地址0.0-1.0之间的实数。
PID指令块实现数字量输出?
1.通过PWM指令,将PID输出值转换为所需时间基准的整数,送到PWM的Pulse,控制脉宽(该法简单易用,但是要求输出点只能是Q0.0或Q0.1)。
2.自己编程实现类似于PWM的输出。(虽然不限制Q点,但编程较复杂,不建议使用,可以直接考虑用PID向导)。
目前西门子PLC S7-1500的PID控制工艺块,在参数整定时系统会自动检查设定与实际的采用周期是否与匹配,这样可能就会避免上述的问题了。