基于 PID 控制的離散控制系統實現
發布時間:2022-12-02 來源:控制工程網
掌握如何減少噪聲,使用中斷服務例程,以及更多關于PID控制傳遞函數的信息。
雖然在 s 域中處理控制系統是完全合乎邏輯的,因為受控系統是連續(時間)運行的,但控制系統的實現是另一回事。現在,幾乎所有的控制系統都是基于微處理器(微控制器)或數字信號處理器的數字系統,如圖 1所示。
圖 1 :此框圖顯示了一個數字閉環控制系統。
用于離散時間控制系統的 PID
模擬 PID 控制器,仍然被認為是非常強大的(圖 2),可以修改為離散時間控制系統,因為將其微分方程(等式 1)重寫為其差分形式(等式 2)并不困難。
其中 u[n] 是當前時間 n 的驅動值,e[n] 是時間 n 的調節誤差, e [n-1] 是前一采樣時間 n-1 的調節誤差。T 是采樣的時間段。相同的時間段 T 用于信號處理,即用于 u[n] 的計算。
對于實際應用,等式 2 需要從積分部分開始進行某些修改。積分部分將調節誤差的每個值相加,然后將該和乘以時間常數和積分常數。如果時間或積分常數的值突然變化(這可能發生,尤其是在整定過程中),則驅動值將突然變化并導致問題。更好的方法是先將調節誤差乘以這兩個常數,然后再累加其乘積。通過使用梯形近似積分代替矩形近似積分,可以從另外一方面實現改進。
如何減少噪聲?
等式 2 的導數是問題的第二個來源。在其簡單形式中,該成員往往是噪聲。為了減少噪聲,可以使用兩個以上(例如四個)連續的調節誤差采樣。結果就好像調節誤差的差值通過了一個微小的(4 階)有限脈沖響應(FIR)濾波器。修改后的 PID 公式如下等式 3 所示。該差分方程可以在任何編程語言和任何微處理器 / 微控制器中實現。
中斷服務程序
盡管如此,關于采樣 / 處理周期 T 還有一個懸而未決的問題。控制過程周期(頻率)是多少,它取決于什么?控制頻率僅取決于閉環傳遞函數的時間常數。請記住,這個時間常數可以比受控系統本身的時間常數小一個數量級。最佳情況下,運行控制程序的頻率應比閉環時間常數 τ 的值高 5 到 10 倍。在控制過程開始運行之前,應具有 r[n] 和y[n] 的最新樣本。
最好的安排是,如果控制程序被稱為中斷服務例程(ISR),則由提供 y[n] 值的 A/D轉換器觸發。控制程序計算的結果,即執行變量 u[n],應盡快發送到 D/A 轉換器。否則,受控系統的傳遞函數將受到傳輸延遲的影響,這可能會破壞控制系統(使其不穩定)。
為了避免噪聲,必須徹底過濾所有測量變量,如 y(t)信號,因為噪聲總是可以從外部滲透到控制系統中,例如,由電子部件(主要是開關電源)引起的板載噪聲。它們應通過適當的抗混疊濾波器,并且截止頻率遠低于采樣頻率 1/T 的一半。如果由于某種原因,它們無法通過適當的模擬濾波器進行過濾,則至少應過采樣并進行數字濾波。
圖 2: PID 控制器根據比例、積分和微分分量計算驅動值
關于 PID 控制傳遞函數的更多信息
等式 3 不是實現離散 PID 控制器的唯一方法。另一種可能性是將 PID 控制傳遞函數從其 s 域(等式 4)轉換為 z 域。實際上,這種轉變有兩種方式。兩者都是從離散時間積分的不同近似推導而來的。最常見的近似離散時間積分是矩形(等式 5)和梯形(等式 6)近似。
如果在 z 域中表達 ,對于矩形近似,您將得到
這是梯形近似的結果 :
等式 7 和 8 對應于積分項,其在 s 域中表示為 1/s。因此,如果取等式 7 右側的倒數(s),并用其替換等式 4中的每個 s 算子,則會得到 PID 補償的以下傳遞函數(在z 域中):
類似地,如果取等式 8 右側的倒數,并用其替換等式 4 中的每個 s 算子,則會得到以下 PID 補償的傳遞函數(在 z 域中):
z 域中的控制系統建模
等式 9 和等式 10 適用于在 z 域中對控制系統建模(例如在 Matlab 中),但不能由任何控制器直接實現。然而,在對等式 9 進行 z 逆變換后,您將得到以下等式
和等式 10 的 z 逆變換 :
等式 11 和等式 12 非常適合在任何微處理器(微控制器)或數字信號處理器上實現。如果將 K1、K2 和 K3作為預先計算好的常數(而不是變量),整個控制過程將需要三次乘法、四次加法并需要記住四個先前計算的變量——兩個調節誤差 e[n-1] 和 e[n-2],以及兩個驅動變量 u[n-1] 和 u[n-2](僅適用于等式 12)。e[n] 計算需要一次減法。
無限脈沖響應濾波器
您可以進一步優化控制程序。數字信號處理行業有非常流行的遞歸濾波器,即所謂的無限脈沖響應(IIR)濾波器。通常,它們是級聯二階濾波器。圖 3 顯示了一個這樣的二階濾波器,通常稱為“雙二階”,轉換為其標準形式,即級聯形式 II。
圖 3 :二階規范 IIR 濾波器部分用作 PID 控制器。
實現這種雙二階需要更少的內存空間,只需要記住兩個狀態變量 d[n-1]、d[n-2],而不是四個變量。標準無限脈沖響應濾波器段由以下兩個差分方程描述 :
盡管選擇有限,但 A1 和 A2 的值仍然有選擇的余地。然而,必須遵守兩條規則 :A1 和 A2 值的總和必須始終為1.0,并且任何值都不能大于 1.0。因此,可以使用的 A1和 A2 系數如,值 1.0 和 0,或 0.5 和 0.5,或 0 和 1.0,或介于兩者之間的任何值。
最后一種組合,其響應與等式 12 的相同。A2 值越低,控制系統響應越快。這可以簡化整定過程,因為您可以將 KI 常數(以及 KP 和 K D 值)設置為某個合理的值,而不是頻繁修改 KI 值(如果您想使 KP 和 K D 值達到最優則需要重新計算,即取消受控系統的極點),例如,將 KI 調整為值 10/(τ1+τ2)(其中 τ1 和 τ2 是受控系統的主要時間常數),并通過調整 A1 和 A2 值完成最終的整定。
并非每個 PID 實現都令人滿意
雖然在必須實現任何算法問題時有一個選擇總是很好的,但并非每個實現都能提供令人滿意的結果。這同樣適用于本文所描述的 PID 控制過程。理論上,所有這些過程在紙面上都很好地工作,但是當實施時,就會出現問題。
雖然第一個公式,等式 3 的實現需要比其余兩個更多的數學運算(乘法、加法)和記住更多先前的結果,但它提供了非常平滑的結果。等式 11 的行為也類似。然而,等式 12 的實現將無法產生令人滿意的結果,因為它在穩定邊緣上運行,其輸出將永久振蕩。等式13/14 將正常工作,但 A1 系數必須保持 >0,否則的話,其行為將與等式 12 實現完全相同,并產生永久振蕩。(作者:Peter Galan)
關鍵概念:
■ 檢查在離散時間控制系統中使用 PID的選項。
■ 掌握如何減少噪聲,使用中斷服務例程,以及更多關于 PID 控制傳遞函數的信息。
思考一下:
為什么并非所有 PID實現都令人滿意。