複製鏈接
請複製以下鏈接發送給好友

PID算法

鎖定
在過程控制中,按偏差的比例(P)、積分(I)和微分(D)進行控制的PID控制器(亦稱PID調節器)是應用最為廣泛的一種自動控制器。它具有原理簡單,易於實現,適用面廣,控制參數相互獨立,參數的選定比較簡單等優點;而且在理論上可以證明,對於過程控制的典型對象──“一階滯後+純滯後”與“二階滯後+純滯後”的控制對象,PID控制器是一種最優控制。PID調節規律是連續系統動態品質校正的一種有效方法,它的參數整定方式簡便,結構改變靈活(PI、PD、…)。 [1] 
中文名
PID算法
外文名
Proportion Integral Differential
最初應用
船舶自動舵
最初應用時間
20世紀30~40年代
應用範圍
工業控制,船舶自動舵等

PID算法簡介

PID控制系統結構圖 PID控制系統結構圖
PID即:Proportional(比例)、Integral(積分)、Differential(微分)的縮寫。顧名思義,PID控制算法是結合比例、積分和微分三種環節於一體的控制算法,它是連續系統中技術最為成熟、應用最為廣泛的一種控制算法,該控制算法出現於20世紀30至40年代,適用於對被控對象模型瞭解不清楚的場合。實際運行的經驗和理論的分析都表明,運用這種控制規律對許多工業過程進行控制時,都能得到比較滿意的效果。PID控制的實質就是根據輸入的偏差值,按照比例、積分、微分的函數關係進行運算,運算結果用以控制輸出。 [2] 
在工業過程中,連續控制系統的理想PID控制規律為: [2] 
式中,Kp——比例增益,Kp與比例度成倒數關係; [2] 
Tt——積分時間常數; [2] 
TD——微分時間常數; [2] 
u(t)——PID控制器的輸出信號; [2] 
e(t)——給定值r(t)與測量值之差。 [2] 

PID算法PID控制原理

閉環控制是根據控制對象輸出反饋來進行校正的控制方式,它是在測量出實際與計劃發生偏差時,按定額或標準來進行糾正的。比如控制一個電機的轉速,就得有一個測量轉速的傳感器,並將結果反饋到控制路線上。提到閉環控制算法,不得不提PID,它是閉環控制算法中最簡單的一種。PID是比例 (Proportion) 積分 ,(Integral) 微分 ,(Differential coefficient) 的縮寫,分別代表了三種控制算法。通過這三個算法的組合可有效地糾正被控制對象的偏差,從而使其達到一個穩定的狀態。 [3] 

PID算法比例

圖1 圖1
成比例地反映控制系統的偏差信號,偏差一旦產生,立即產生控制作用以減小偏差。比例控制器的輸出u(t)與輸入偏差e(t)成正比,能迅速反映偏差,從而減小偏差,但不能消除靜差。靜差是指系統控制過程趨於穩定時,給定值與輸出量的實測值之差。偏差存在,才能使控制器維持一定的控制量輸出,因此比例控制器必然存在着靜差。由偏差理論知,增大雖然可以減小偏差,但不能徹底消除偏差。比例控制作用的大小除與偏差e(t)有關之外,還取決於比例係數Kp的大小。比例係數Kp越小,控制作用越小,系統響應越慢;反之,比例係數Kp越大,控制作用也越強,則系統響應越快。但是,Kp過大會使系統產生較大的超調和振盪,導致系統的穩定性能變差。因此,不能將Kp選取過大,應根據被控對象的特性來折中選取Kp,使系統的靜差控制在允許的範圍內,同時又具有較快的響應速度。 [4] 

PID算法積分

圖2 圖2
積分環節的作用,主要用於消除靜差提高系統的無差度。積分作用的強弱,取決於積分時間常數Ti,Ti越大積分作用越弱,反之則越強。積分控制作用的存在與偏差e(t)的存在時間有關,只要系統存在着偏差,積分環節就會不斷起作用,對輸入偏差進行積分,使控制器的輸出及執行器的開度不斷變化,產生控制作用以減小偏差。在積分時間足夠的情況下,可以完全消除靜差,這時積分控制作用將維持不變。Ti越小,積分速度越快,積分作用越強。積分作用太強會使系統超調加大,甚至使系統出現振盪。 [4] 

PID算法微分

圖3 圖3
微分環節的作用能反映偏差信號的變化趨勢(變化速率),並能在偏差信號的值變得太大之前,在系統中引入一個有效的早期修正信號,從而加快系統的動作速度,減小調節時間。積分控制作用的引入雖然可以消除靜差,但是降低了系統的響應速度,特別是對於具有較大慣性的被控對象,用PI控制器很難得到很好的動態調節品質,系統會產生較大的超調和振盪,這時可以引入微分作用。在偏差剛出現或變化的瞬間,不僅根據偏差量作出及時反應(即比例控制作用),還可以根據偏差量的變化趨勢(速度)提前給出較大的控制作用(即微分控制作用),將偏差消滅在萌芽狀態,這樣可以大大減小系統的動態偏差和調節時間,使系統的動態調節品質得以改善。微分環節有助於系統減小超調,克服振盪,加快系統的響應速度,減小調節時間,從而改善了系統的動態性能,但微分時間常數過大,會使系統出現不穩定。微分控制作用一個很大的缺陷是容易引入高頻噪聲,所以在干擾信號比較嚴重的流量控制系統中不宜引入微分控制作用。 [4] 
微分控制作用的階躍響應特性對於一個恆定的偏差量,不管其數值有多大,微分控制作用均為零。因此,微分作用不能消除靜差,單獨使用意義不大,一般需要與比例、積分控制作用配合使用,構成PD或PID控制。 [4] 
對於PID控制,在控制偏差輸入為階躍信號時,立即產生比例和微分控制中作用。由於在偏差輸入的瞬時,變化率非常大,微分控制作用很強,此後微分控制作用迅速衰減,但積分作用越來越大,直至最終消除靜差。PID控制綜合了比例、積分、微分3種作用,既能加快系統響應速度、減小振盪、克服超調,亦能有效消除靜差,系統的靜態和動態品質得到很大改善,因而PID控制器在工業控制中得到了最為廣泛的應用。 [4] 

PID算法PID參數調節

在整定PID控制器參數時,可以根據控制器的參數與系統動態性能和穩態性能之間的定性關係,用實驗的方法來調節控制器的參數。有經驗的調試人員一般可以較快地得到較為滿意的調試結果。在調試中最重要的問題是在系統性能不能令人滿意時,知道應該調節哪一個參數,該參數應該增大還是減小。 [4] 
為了減少需要整定的參數,首先可以採用PI控制器。為了保證系統的安全,在調試開始時應設置比較保守的參數,例如比例係數不要太大,積分時間不要太小,以避免出現系統不穩定或超調量過大的異常情況。給出一個階躍給定信號,根據被控量的輸出波形可以獲得系統性能的信息,例如超調量和調節時間。應根據PID參數與系統性能的關係,反覆調節PID的參數。 [4] 
如果階躍響應的超調量太大,經過多次振盪才能穩定或者根本不穩定,應減小比例係數、增大積分時間。如果階躍響應沒有超調量,但是被控量上升過於緩慢,過渡過程時間太長,應按相反的方向調整參數。如果消除誤差的速度較慢,可以適當減小積分時間,增強積分作用。 [4] 
反覆調節比例係數和積分時間,如果超調量仍然較大,可以加入微分控制,微分時間從0逐漸增大,反覆調節控制器的比例、積分和微分部分的參數。 [4] 
總之,PID參數的調試是一個綜合的、各參數互相影響的過程,實際調試過程中的多次嘗試是非常重要的,也是必須的。常用的控制方式:P,PI,PD,PID控制算法。 [4] 

PID算法算法種類

PID算法PID增量式算法

離散化公式: [5] 
△u(k)= u(k)- u(k-1)
△u(k)=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]
進一步可以改寫成: [5] 
△u(k)=Ae(k)-Be(k-1)+Ce(k-2)
對於增量式算法,可以選擇的功能有: [5] 
(1) 濾波的選擇
可以對輸入加一個前置濾波器,使得進入控制算法的給定值不突變,而是有一定慣性延遲的緩變量。 [5] 
(2) 系統的動態過程加速
在增量式算法中,比例項與積分項的符號有以下關係:如果被控量繼續偏離給定值,則這兩項符號相同,而當被控量向給定值方向變化時,則這兩項的符號相反。 [5] 
由於這一性質,當被控量接近給定值的時候,反號的比例作用阻礙了積分作用,因而避免了積分超調以及隨之帶來的振盪,這顯然是有利於控制的。但如果被控量遠未接近給定值,僅剛開始向給定值變化時,由於比例和積分反向,將會減慢控制過程。 [5] 
為了加快開始的動態過程,我們可以設定一個偏差範圍v,當偏差|e(t)|< β時,即被控量接近給定值時,就按正常規律調節,而當|e(t)|>= β時,則不管比例作用為正或為負,都使它向有利於接近給定值的方向調整,即取其值為|e(t)-e(t-1)|,其符號與積分項一致。利用這樣的算法,可以加快控制的動態過程。 [5] 
(3) PID增量算法的飽和作用及其抑制
在PID增量算法中,由於執行元件本身是機械或物理的積分儲存單元,如果給定值發生突變時,由算法的比例部分和微分部分計算出的控制增量可能比較大,如果該值超過了執行元件所允許的最大限度,那麼實際上執行的控制增量將時受到限制時的值,多餘的部分將丟失,將使系統的動態過程變長,因此,需要採取一定的措施改善這種情況。 [5] 
糾正這種缺陷的方法是採用積累補償法,當超出執行機構的執行能力時,將其多餘部分積累起來,而一旦可能時,再補充執行。 [5] 

PID算法PID位置算法

離散公式: [5] 
u(k)=Kp*e(k) +Ki*
+Kd*[e(k)-e(k-1)]
對於位置式算法,可以選擇的功能有: [5] 
a、濾波:同上為一階慣性濾波; [5] 
b、飽和作用抑制。 [5] 
(1)遇限削弱積分法
一旦控制變量進入飽和區,將只執行削弱積分項的運算而停止進行增大積分項的運算。具體地説,在計算u(i)時,將判斷上一個時刻的控制量u(i-1)是否已經超出限制範圍,如果已經超出,那麼將根據偏差的符號,判斷系統是否在超調區域,由此決定是否將相應偏差計入積分項。 [5] 
(2)積分分離法
在基本PID控制中,當有較大幅度的擾動或大幅度改變給定值時, 由於此時有較大的偏差,以及系統有慣性和滯後,故在積分項的作用下,往往會產生較大的超調量和長時間的波動。特別是對於温度、成份等變化緩慢的過程,這一現象將更嚴重。為此可以採用積分分離措施,即偏差較大時,取消積分作用;當偏差較小時才將積分作用投入。 [5] 
另外積分分離的閾值應視具體對象和要求而定。若閾值太大,達不到積分分離的目的,若太小又有可能因被控量無法跳出積分分離區,只進行PD控制,將會出現殘差 [5] 
離散化公式: [5] 
當|e(t)|>β時,q0 = Kp(1+Td/T);q1 = -Kp(1+2Td/T);q2 = Kp Td /T;u(t) = u(t-1) + Δu(t)。 [5] 
注:各符號含義如下: [5] 
u(t)——控制器的輸出值。 [5] 
e(t)——控制器輸入與設定值之間的誤差。 [5] 
Kp——比例係數。 [5] 
Ti——積分時間常數。 [5] 
Td——微分時間常數。(有的地方用"Kd"表示) [5] 
T——調節週期。 [5] 
β——積分分離閾值。 [5] 
(3)有效偏差法
當根據PID位置算法算出的控制量超出限制範圍時,控制量實際上只能取邊際值U=Umax,或U=Umin,有效偏差法是將相應的這一控制量的偏差值作為有效偏差值計入積分累計而不是將實際的偏差計入積分累計。因為按實際偏差計算出的控制量並沒有執行。 [5] 
(4)微分先行PID算法
當控制系統的給定值發生階躍時,微分作用將導致輸出值大幅度變化,這樣不利於生產的穩定操作。因此在微分項中不考慮給定值,只對被控量(控制器輸入值)進行微分。微分先行PID算法又叫測量值微分PID算法。 [5] 
參考資料
  • 1.    劉教瑜,舒軍主編;甘月紅,謝長君副主編.單片機原理及應用(第2版):武漢理工大學出版社,2014.08:第192頁
  • 2.    張燕紅主編;鄭仲橋,張永春副主編.計算機控制技術 第2版:東南大學出版社,2014.02:第79頁
  • 3.    徐偉, 肖寶弟. 基於CMAC-PID算法的列車控制仿真[C]// 中國控制與決策會議. 2013.
  • 4.    趙寶明著.智能控制系統工程的實踐與創新:科學技術文獻出版社,2014.11:第184頁
  • 5.    吳勇,羅國富,劉旭輝,周定江,肖松,楊松和編.四軸飛行器DIY——基於STM32微控制器:北京航空航天大學出版社,2016:第199頁