天天看點

基于 PID 控制的離散控制系統實作

作者:控制工程中文版
基于 PID 控制的離散控制系統實作
基于 PID 控制的離散控制系統實作

作者:Peter Galan

掌握如何減少噪聲,使用中斷服務例程,以及更多關于PID控制傳遞函數的資訊。

雖然在 s 域中處理控制系統是完全合乎邏輯的,因為受控系統是連續(時間)運作的,但控制系統的實作是另一回事。現在,幾乎所有的控制系統都是基于微處理器(微控制器)或數字信号處理器的數字系統,如圖 1所示。

基于 PID 控制的離散控制系統實作

▎圖 1 :此框圖顯示了一個數字閉環控制系統。

用于離散時間控制系統的 PID

模拟 PID 控制器,仍然被認為是非常強大的(圖 2),可以修改為離散時間控制系統,因為将其微分方程(等式 1)重寫為其差分形式(等式 2)并不困難。

基于 PID 控制的離散控制系統實作

其中 u[n] 是目前時間 n 的驅動值,e[n] 是時間 n 的調節誤差, e [n-1] 是前一采樣時間 n-1 的調節誤差。T 是采樣的時間段。相同的時間段 T 用于信号處理,即用于 u[n] 的計算。

對于實際應用,等式 2 需要從積分部分開始進行某些修改。積分部分将調節誤差的每個值相加,然後将該和乘以時間常數和積分常數。如果時間或積分常數的值突然變化(這可能發生,尤其是在整定過程中),則驅動值将突然變化并導緻問題。更好的方法是先将調節誤差乘以這兩個常數,然後再累加其乘積。通過使用梯形近似積分代替矩形近似積分,可以從另外一方面實作改進。

如何減少噪聲?

等式 2 的導數是問題的第二個來源。在其簡單形式中,該成員往往是噪聲。為了減少噪聲,可以使用兩個以上(例如四個)連續的調節誤差采樣。結果就好像調節誤差的內插補點通過了一個微小的(4 階)有限脈沖響應(FIR)濾波器。修改後的 PID 公式如下等式 3 所示。該差分方程可以在任何程式設計語言和任何微處理器 / 微控制器中實作。

基于 PID 控制的離散控制系統實作

中斷服務程式

盡管如此,關于采樣 / 處理周期 T 還有一個懸而未決的問題。控制過程周期(頻率)是多少,它取決于什麼?控制頻率僅取決于閉環傳遞函數的時間常數。請記住,這個時間常數可以比受控系統本身的時間常數小一個數量級。最佳情況下,運作控制程式的頻率應比閉環時間常數 τ 的值高 5 到 10 倍。在控制過程開始運作之前,應具有 r[n] 和y[n] 的最新樣本。

最好的安排是,如果控制程式被稱為中斷服務例程(ISR),則由提供 y[n] 值的 A/D轉換器觸發。控制程式計算的結果,即執行變量 u[n],應盡快發送到 D/A 轉換器。否則,受控系統的傳遞函數将受到傳輸延遲的影響,這可能會破壞控制系統(使其不穩定)。

為了避免噪聲,必須徹底過濾所有測量變量,如 y(t)信号,因為噪聲總是可以從外部滲透到控制系統中,例如,由電子部件(主要是開關電源)引起的闆載噪聲。它們應通過适當的抗混疊濾波器,并且截止頻率遠低于采樣頻率 1/T 的一半。如果由于某種原因,它們無法通過适當的模拟濾波器進行過濾,則至少應過采樣并進行數字濾波。

基于 PID 控制的離散控制系統實作

▎圖 2: PID 控制器根據比例、積分和微分分量計算驅動值

關于 PID 控制傳遞函數的更多資訊

等式 3 不是實作離散 PID 控制器的唯一方法。另一種可能性是将 PID 控制傳遞函數從其 s 域(等式 4)轉換為 z 域。實際上,這種轉變有兩種方式。兩者都是從離散時間積分的不同近似推導而來的。最常見的近似離散時間積分是矩形(等式 5)和梯形(等式 6)近似。

基于 PID 控制的離散控制系統實作

如果在 z 域中表達 ,對于矩形近似,您将得到

基于 PID 控制的離散控制系統實作

這是梯形近似的結果 :

基于 PID 控制的離散控制系統實作

等式 7 和 8 對應于積分項,其在 s 域中表示為 1/s。是以,如果取等式 7 右側的倒數(s),并用其替換等式 4中的每個 s 算子,則會得到 PID 補償的以下傳遞函數(在z 域中):

基于 PID 控制的離散控制系統實作

類似地,如果取等式 8 右側的倒數,并用其替換等式 4 中的每個 s 算子,則會得到以下 PID 補償的傳遞函數(在 z 域中):

基于 PID 控制的離散控制系統實作

z 域中的控制系統模組化

等式 9 和等式 10 适用于在 z 域中對控制系統模組化(例如在 Matlab 中),但不能由任何控制器直接實作。然而,在對等式 9 進行 z 逆變換後,您将得到以下等式

基于 PID 控制的離散控制系統實作

和等式 10 的 z 逆變換 :

基于 PID 控制的離散控制系統實作

等式 11 和等式 12 非常适合在任何微處理器(微控制器)或數字信号處理器上實作。如果将 K1、K2 和 K3作為預先計算好的常數(而不是變量),整個控制過程将需要三次乘法、四次加法并需要記住四個先前計算的變量——兩個調節誤差 e[n-1] 和 e[n-2],以及兩個驅動變量 u[n-1] 和 u[n-2](僅适用于等式 12)。e[n] 計算需要一次減法。

無限脈沖響應濾波器

您可以進一步優化控制程式。數字信号處理行業有非常流行的遞歸濾波器,即所謂的無限脈沖響應(IIR)濾波器。通常,它們是級聯二階濾波器。圖 3 顯示了一個這樣的二階濾波器,通常稱為“雙二階”,轉換為其标準形式,即級聯形式 II。

基于 PID 控制的離散控制系統實作

▎圖 3 :二階規範 IIR 濾波器部分用作 PID 控制器。

實作這種雙二階需要更少的記憶體空間,隻需要記住兩個狀态變量 d[n-1]、d[n-2],而不是四個變量。标準無限脈沖響應濾波器段由以下兩個差分方程描述 :

基于 PID 控制的離散控制系統實作

盡管選擇有限,但 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 實作完全相同,并産生永久振蕩。

關鍵概念:

■ 檢查在離散時間控制系統中使用 PID的選項。

■ 掌握如何減少噪聲,使用中斷服務例程,以及更多關于 PID 控制傳遞函數的資訊。

思考一下:

為什麼并非所有 PID實作都令人滿意。

繼續閱讀