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