技術文章
西門子S7-200PLV的PID控制算法中的一個問題
閱讀:1265 發布時間:2015-10-29西門子S7-200PLV的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)