PID(Proportional-Integral-Derivative)是工業控制最經典的回授控制演算法。本系列三文將從原理、整定、程式碼實作三方面完整解析。首篇聚焦三參數物理意義。
U_set = 60°CU_nowU_k(PWM 佔空比 0~255,對應加熱功率)E = U_set - U_now公式:U_Kp = Kp * E
E=0 時輸出為 0,溫度會穩定在目標以下。// 範例:Kp=10 E = 60 - 49 = 11 → U_Kp = 110 E = 60 - 20 = 40 → U_Kp = 400 → 飽和限制 255 E = 60 - 61 = -1 → U_Kp = -10 → 限制 0 (不加熱)
公式:U_Ki = U_Ki_prev + Ki * E * dt(離散化:U_Ki += Ki * E / F,F=1/dt 為採樣頻率)
E 很小,只要持續存在,積分項會持續增長。E=1 持續積分,最終輸出增大推高溫度至 60°C。公式:U_Kd = Kd * (E_now - E_prev) / dt(離散化:U_Kd += Kd * (E_now - E_prev) * F)
E 變化負值大 → 微分項輸出負值 → 減弱加熱,預防超調。U_k = U_Kp + U_Ki + U_Kd
單片機無 FPU 時,常用定點數:參數放大 2^n,最終輸出右移 n 位(等同除以 2^n)。
| 參數 | 作用 | 調大效果 | 副作用 |
|---|---|---|---|
| Kp | 即時反應誤差大小 | 上升快、靜態誤差小 | 震盪、超調、不穩定 |
| Ki | 消除靜態誤差 | 靜態誤差→0 | 超調大、響應慢、積分飽和 |
| Kd | 預測趨勢、阻尼 | 減少超調、抑制震盪 | 放大雜訊、高頻震盪 |
強烈建議觀看 英文維基 PID 頁面 的三張動圖:
下一篇將介紹實務整定方法:手動試誤法與 Ziegler-Nichols 經典整定法。