该算法为一个非线性超前/滞后环节,在5个时间常数内输出可达到稳态值98%,简单介绍下超前滞后控制(Lead and Lag Control)算法的传递函数为: G(s) = K(1+T1)/(1+T2),其中:K为增益; T1为超前时间(Sec); T2为滞后时间(Sec)。本篇博文会给出西门子和三菱PLC的算法源代码(SCL+ST+梯形图)和讲解。限于本人水平,文中难免出现错误和不足之处,欢迎大家批评指正,同时感谢大家订阅和关注。
1、西门子博途
算法要求增益不等于0,超前时间、滞后时间大于等于0。FB可以在定时中断OB中调用,计算周期H和中断时间一致即可。
2、LEAD_LAG(FB)
3、超前滞后FB SCL代码
FUNCTION_BLOCK "LEAD_LAG"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
//超前滞后环节算法
VAR_INPUT
in : Real; // 输入信号
leadTime : Real; // 超前时间 单位 sec