先解釋一下公式中的幾個量
變量t只是表示這些都是時域函數而已(r,dr只是中間變量,積分結果還是關於t的函數)
U(t)表示當前控制器的輸出量
e(t)表示當前控制器的輸入量(一般為設定量與當前量的差值delta=Uset-Unow)
PID,其實對應的是三個量
Proportion(比例),記量Kp
Integration(積分),計量Ki
Differential(微分),記量Kd
那么如何理解這個公式呢?
首先假設對於一個需要調節的系統來說,為了方便說明,我們以熱水器為例,我們當前的目標是將水溫從80度升至90度並穩定
1.Kp是最基礎的比例系數,讓溫度差成比例放大為電熱絲的發熱量是一個很顯然的思路,越接近目標越要慢慢來嘛
2.Ki是對應積分的系數,引入這個量是為了解決系統存在靜差的問題,比如當升至89度時,實際上電熱絲的發熱量已經很少了,可能剛好只能抵消水的散熱量,如果我們什么都不做,水溫將穩定在89度,這仍與我們想要的穩態有差異。
所以我們引入一個時間的積分,來讓電熱絲發熱量在一段時間以后增加,使水溫繼續上升
3.Kd是對應微分的系數,引入這個量是為了防止系統出現超調現象,比如水溫明明已經達到了90度,但電熱絲溫度還很高,所以水溫還會繼續上升。正確的做法是在接近90度時進一步減少發熱量,用電熱絲的余溫讓水溫達到90度
這個公式的實現是有兩種形式的:位置式和增量式
首先說明一下,在實際應用中,時間只能細分到有限的單位監測時間T,因此我們把第k次檢測當做時間
位置式
位置式是遵從原公式的,因此不難由原公式得到
但注意此處的Ki' , Kd' 不是原來的Ki , Kd了
Ki'=Ki*T (粗略的定積分)
Kd'=Kd/T (粗略的微分)
但是觀察一下位置式所需要的量,我們發現積分處的求和所需要的運算量也忒大了,有沒有方法簡化?引入增量式
增量式
只是用位置式相鄰兩項作差,卻相當於把一個O(N)級別的求和問題變成了一個簡單的二階遞推,棒棒噠
這利用了我們需要對每一個時刻的U(k)進行求解的特性,之前的結果是可以利用的,因此沒有必要重復求和
整理一下二階遞推
遞推式
To be continue...
待加入,三個量的整定