西门子S7-200PLC的PID控制算法中的一个问题
时间:2015-10-29 阅读:126
西门子S7-200PLC的PID控制算法中的一个问题
请问PID控制中,当输出超出范围后执行 MX = 1.0 - (MPn + MDn ) 和MX = - (MPn + MDn),这两条算法的作用是什么呢?”
答:这两个公式用来对PID的输出限幅。S7-200的系统手册的PID“变量和范围”中有下面的内容:
“输出变量是由PID运算产生的,所以在每一次PID运算完成之后,需更新回路表中的输出值,输出值被限定在0.0~1.0之间。
如果使用积分控制,积分项前值要根据PID运算结果更新。这个更新了的值用作下一次PID运算的输入,当计算输出值超过范围(大于1.0或小于0.0),那么积分项前值必须根据下列公式进行调整:
MX=1.0 –(MPn + MDn) 当计算输出Mn > 1.0
或
MX= –(MPn + MDn) 当计算输出Mn < 0.0
其中:
MX是调整过的偏差的数值
MPn是在采样时间n时回路输出比例项数值
MDn是在采样时间n时回路输出微分项数值
Mn是在采样时间n时回路输出数值”
在系统手册的积分项部分,对积分项公式中的MX的解释如下:“MX是在采样时刻n–1时的积分项的数值(也称为积分和或偏差)。”
“积分和(MX)是所有积分项前值之和。在每次计算出MIn之后,都要用MIn去更新MX。”
可见可以将MX视为PID的输出的积分部分MIn。PID的输出Mn= MPn + MIn + MDn= MPn + MX + MDn
上面的两个公式实际上是用来对PID的输出限幅的。
当Mn > 1.0时,令Mn = MPn + MX + MDn= 1.0,所以MX=1.0 –(MPn + MDn)
当Mn > 0.0时,令Mn = MPn + MX + MDn= 0.0,所以MX= –(MPn + MDn)