|
|
施耐德PLC模塊TSXAEY414
現在我們可以實現離散時間PID控制功能了。在示例 C 代碼(參見下面的代碼列表)中,變量和常量的名稱與數學方程式中的相應元素非常匹配。此代碼可以在 PID 固件的每次迭代中執行,通常在配置為每T毫秒觸發一次的定時器中斷內執行。
/* 當前誤差- 比例項 */
e = r - y;
/* 累積誤差- 積分項 */
總誤差 += e;
/* 差分誤差- 導數項 */
deltaError = e - 先前的錯誤;
/* PID控制*/
u = Kp * e + Ki * (totalError * T) + Kd * (deltaError /T);
/* 同時為下一次迭代做準備——將之前的設置為當前錯誤 */
以前的錯誤= e;
剩下要做的是為 PID 增益K p、K i、和K d以便系統在被要求移動到選定的設定點時正確執行。我們將為這些增益手動選擇不同的值,以研究它們對位置控制的影響,并在此過程中演示調整它們的通用方法。我們還將深入了解控制功能中每個術語的用途。