這篇講講PID控制的基本原理。作為久負盛名的控制規律,其原理卻是非常簡單,所以也受到廣大工程師的喜愛。具體地調參工作並不是那麼容易的,所以知道了原理,只是第一步。

PID既可以適用於有模型的系統,也可以適用於無模型的系統,這是其廣為應用的另一個重要原因。經典控制中多研究有模型的系統,這時PID對系統的結構改變是可以從數學表達式中得知的。


PID控制,即Proportional (P)– Integral(I) – Derivative(D) Control, 實際上是三種反饋控制:比例控制,積分控制與微分

控制的統稱。根據控制對象和應用條件,可以採用這三種控制的部分組合,即P控制,PI控制,PD控制或者是三者的組合,即真正意義上的PID控制。我們可以籠統地去稱呼他們為PID控制律。採取這種控制規律的控制器,我們稱為PID控制器。

PID控制是經典控制理論裏一個重要的控制律(controls law),其歷史悠久並且至今仍是實用控制中最為常用的控制方法之一。關於PID控制的優缺點我們會在本系列最後幾篇文章中給出一些參考材料來幫助讀者理解。不過對於PID控制的一些明顯的優點,我們應該很快就能有所察覺。

PID控制的入門講解書籍繁多,此處參考[1]作基礎解釋。 推薦閱讀韓京清先生所著[2]的第一章《剖析經典PID調節器》作更深一步的理解。PID技術歷經多年也一直在發展 ,這還需要讀者自行搜索參考資料去探索。

話不多說,下面對每一種control進行解釋。

比例控制Proportional Control

反饋控制的目標之一就是抗幹擾從而減小穩態誤差。如果只採用開環控制,開環增益一旦變化,系統穩態值就會發生變化。這並不是我們希望看到的。因此減小系統穩態誤差,我們必須採用Feedback Control。

開環系統增益改變就會導致穩態誤差改變

考慮一種比例反饋控制如上式(4.56)定義的,把輸出與輸入的誤差e按照一定的比例K進行放大或者縮小作為系統的輸入。

比例控制的思想可以用 RC電路來解釋:已知RC電路的ODE為

T dot{x}+x=u 傳遞函數為

G(s)=frac{X}{U}=frac{1}{T s+1}

現在採用比例反饋P構成閉環控制系統,令增益為K。假設系統穩定,我們根據Final Value Theorem得知其閉環系統的step response:

e_{mathrm{ss}}=lim _{s 
ightarrow 0} s frac{1 / s}{1+K G(s)}=lim _{s 
ightarrow 0} frac{1}{1+frac{K}{T s+1}}=frac{1}{1+K}

閉環純比例控制的一階系統,我們發現,穩態值並不會隨著K的取值而從理論上變為階躍響應的幅值1。通過增加K的大小,我們可以得到更接近1的穩態值,但最終與1的差確是有限大小的。反映在電路上,如果充電電壓u不變,單純提高在RC電路中純比例提高其增益(增大K),輸出電壓只能不斷靠近u,但不能在理論上穩態達到u。這種誤差是系統機理造成的,稱之為系統靜差。

如果系統是一個二階系統,如式(4.58)所示。純比例控制 D_{s}=K 與G組成的閉環系統的傳遞函數為

G_{c l}=frac{K G}{1+K G}=frac{K A}{s^{2}+a_{1} s+a_{2}+K A}

對比未閉環的開環傳遞函數(4.58)

G_{open}=frac{A}{s^{2}+a_{1} s+a_{2}}

前後系統的特徵方程發生了變化,閉環系統的特徵方程的根受到了K取值的影響。對於這裡的二階系統,其根為:

s_{1,2}=frac{-a_{1} pm sqrt{a_{1}^{2}-4left(a_{2}+K A
ight)}}{2}

K的大小會導致s的虛部發生變化,因此對最後響應的動態部分會產生影響。 在實部不發生變化的情況下,虛部的值越大,意味著該系統的阻尼越小,從而產生比較大超調和振蕩。如果s是一個實數,那麼系統沒有超調和振蕩,但是響應速度就比較慢。我們再檢查閉環系統的穩態,假設我們採用單位階躍響應,利用Final Value Theorem。

e_{s s}=lim_{s 
ightarrow 0} sleft(frac{1}{s} cdot G_{cl}
ight)=lim _{s 
ightarrow 0} frac{K A}{s^{2}+a_{1} s+a_{2}+K A}=frac{K A}{a_{2}+K A}=frac{1}{frac{a_{2}}{K A}+1}

顯然K只要不斷增大,穩態值就會無限趨近於1,穩態誤差不斷減小。但給定任意一個K,其最終的穩態值與1之間永遠存在一個差值。我們取 a_{1}=2, a_{2}=2, A=2 , 畫出不同K值時閉環系統的step response。

純比例控制不同K值對於閉環穩態的影響

我們從上圖中可以看到K值對於系統響應的影響:大的K值系統的響應速度明顯提高,穩態精度也得到了提高,但代價是系統的大超調和嚴重的振蕩。試想如果這是一部電梯的位移曲線,乘客將毫無舒適度可言。有很多系統並不允許有振蕩和超調。雖然為了穩態精度和響應速度,我們需要提高K值,但我們需要平衡系統的超調和振蕩帶來的負面影響。 對於一般的二階系統,K值過大還可能導致閉環系統的極點落入右半s平面,從而使得系統變得不穩定。(請自己舉例並動手用MATLAB試試)。

對於常值幹擾造成的穩態誤差,有類似的結論。K值的增大會讓擾動產生的穩態誤差減小,即有效抑制擾動(reject disturbance)的作用,這從靈敏度的公式中也可以看出來。

對於一個高階的系統來講,K的增大對於每個模態的阻尼作用並不一致,但過大的K總是容易導致高階系統不穩定,並且減小系統總體上的阻尼,造成比較大的超調量。

總結來講: 比例控制P control能夠提高系統的響應速度和穩態精度,抑制擾動對系統穩態的影響。但過大的比例控制容易導致系統超調和振蕩,並且有可能使得系統變得不穩定。 純比例控制並不能消除穩態誤差,存在靜差。

積分控制Integral Control

我們前面講到單純的比例控制並不能消除穩態誤差,無論是由於參考信號而產生的追蹤誤差還是由常值擾動產生的穩態誤差。我們在《穩態誤差和系統類型》那一篇中講過,如果參考信號和擾動並不是一個常值,而是由k次多項式來描述的信號,那麼想要穩態誤差為0,則系統type必須大於k纔行。現在,以k次的參考信號為例,對於某個開環系統G,假設閉環系統穩定,我們利用Final Value Theorem來計算

e_{s s}=lim _{s 
ightarrow 0} frac{s R(s)}{1+G(s) D_{s}(s)}=lim _{s 
ightarrow 0} frac{sfrac{1}{s^{k+1}}}{1+G(s) D_{s}(s)}=lim _{s 
ightarrow 0} frac{frac{1}{s^{k}}}{1+G(s) D_{s}(s)}

對於我們的純比例控制 D_{s 1}=K ,則有

e_{s s}=lim _{s 
ightarrow 0} frac{1}{s^{k}+s^{k} K G(s)}

顯然,我們從中就可以看出,比例控制器 對k階參考信號想要產生恆定的穩態誤差是有條件的。這個條件就是開環系統G(s)是 k型系統,即G(s)中有且只有k個 frac{1}{s} 環節,等同於開環系統G(s)包含有k個積分器。這樣我們便有:

egin{array}{l}{G(s)=frac{G_{0}(s)}{s^{k}}} \ {e_{s s}=lim _{s 
ightarrow 0} frac{1}{s^{k}+s^{k} K frac{G_{0}(s)}{s^{k}}}=lim _{s 
ightarrow 0} frac{1}{K G_{0}(s)}=	ext { constant }}end{array}

如果系統階次高於k,那麼穩態誤差就會成為0。

我們前一節舉的二階系統的例子,就是個0型系統,只有0個積分器,因此對於階躍信號這樣的0階常值信號,比例控制P control也就只能產生恆定的穩態誤差了。如果系統是一個I型系統,包含1個積分環節,仍然是階躍信號輸入,那麼代入k=0,

egin{array}{l}{G(s)=frac{1}{s(s+1)}} \ {e_{s s}=lim _{s 
ightarrow 0} frac{1}{1+K frac{1}{s(s+1)}}=lim _{s 
ightarrow 0} frac{s}{s+K frac{1}{s+1}}=0}end{array}

這時候純比例控制就能夠讓系統的穩態誤差為0。

因此我們總結一下就是:純比例控制會產生穩態誤差的原因是其無法改變系統的型號。如果參考信號的階次小於等於系統信號的階次,那麼無論如何選取純比例控制的K值都無法使得穩態誤差消除。

現在我們討論開環系統plant自身是一個0型系統。我們已經知道單純採用比例控制並不能消除對階躍信號的追蹤誤差和擾動誤差。從上面的結論中我們想到,如果控制器 D_{s} 能夠引入積分環節,那麼我們就可以對開環系統進行「升型」,則其對階躍信號的誤差就可以為0。對下面的系統引入(4.62)所定義的積分控制

egin{array}{l}{G(s)=frac{1}{s^{2}+2 s+2}, D_{s2}=frac{1}{s}} \ {G_{o p en}=G(s) D_{s 2}=frac{1}{sleft(s^{2}+2 s+2
ight)}}end{array}

對於這個 G_{open} 的系統, 顯然對階躍信號的穩態誤差一定為0,因為它是I型系統。

一般地,如果一個0型系統 G_{0} ,我們引入(4.62)所定義的積分控制對階躍信號的穩態誤差為:

e_{s s}=lim _{s 
ightarrow 0} frac{s cdot R(s)}{1+G_{0}(s) D_{s 2}(s)}=lim _{s 
ightarrow 0} frac{s cdot frac{1}{s}}{1+frac{K_{i}}{s} G_{0}(s)}=lim _{s 
ightarrow 0} frac{s}{s+K_{i} G_{0}(s)}=0

如果我們要讓這個0型系統對於更高階的信號的穩態誤差為0,則必須引入k+1個積分器,那麼其對於k階參考信號的穩態誤差為,

e_{s s}=lim _{s 
ightarrow 0} frac{s cdot R(s)}{1+G_{0}(s) D_{s 2}(s)}=lim _{s 
ightarrow 0} frac{s cdot frac{1}{s^{k+1}}}{1+frac{K_{i}}{s^{k+1}} G_{0}(s)}=lim _{s 
ightarrow 0} frac{s}{s^{k+1}+K_{i} G_{0}(s)}=0

如果我們結合前面的比例控制P control,我們便可以提出比例-積分控制PI control

D_{s}=K_{p}+frac{K_{I}}{s}

引入I control的主要目的就是為了消除穩態誤差。我們應當注意,I control消除誤差的條件:

  1. 如果系統是0型的,那麼引入積分控制環節 frac{K_{I}}{s} ,能夠消除常值輸入信號(如階躍信號)和擾動的穩態誤差,但是對於變化過快的,高於0階多項式的信號,理論上要引入多個積分環節纔能夠消除穩態誤差,(4.62)所定義的積分控制是不足以達到要求的。
  2. 如果系統是大於0型的,那麼對於常值輸入信號或者擾動的穩態誤差已經為0,理論上可以不使用積分控制。對於高階的型號,控制器至少引入積分環節的數量可以由系統具體型號來確定。

因此什麼時候需要採用PI控制是需要針對系統的特點做出決定的,如果可以,我們不必要採用積分控制,從而簡化系統結構。積分控制本身會帶來一系列的問題,如積分飽和現象

總結來講:(4.62)定義的積分控制能夠消除0型系統對於常值輸入信號和常值擾動造成的輸出穩態誤差,可以與P control一起組成PI control。積分控制消除穩態誤差的作用對於高階的參考信號和擾動是無效的。積分控制並不一定是必須的,應當視系統的型號、輸入和幹擾類型決定。積分控制的常數 K_I 根據系統所需的動態進去選取,並不會影響消除誤差的效果,具有一定的魯棒性。

微分控制Derivative Control

(4.70)定義的控制我們成為微分控制(derivative control)。從表達式看,直覺上可以理解為什麼我們需要這樣一項控制。我們定義誤差為參考輸入與當前輸出之間的差,採用PD控制。如果我們輸出漸漸接近輸入,誤差會不斷減小,為一個正數,誤差的導數為負數 。u由比例控制Ke組成的部分是正數,仍在控制輸出靠近目標值,D control就會產生負數量,就會減小u的控制作用,相當於一種「制動」作用,防止輸出變化過快而超過目標值,即防止超調量過大。如果輸出超過了參考信號,那麼誤差就會變號,比例控制的組成部分是負數,控制量反向以再次接近目標,此時誤差的導數變為正數,D control使得控制量能夠在絕對值上得到削減。

上述直覺上的猜想是對的,微分控制D control的主要作用就是減少超調量,加速瞬態過程和提高系統的穩定性。我們想像D control就是一個阻尼器,它無時不刻都在系統運動的反方向,阻止系統失去穩定,減小超調的發生。

微分控制一般會和P control一起使用,組成PD控制。D控制單獨使用並不能起到很好的效果,因為當誤差保持為常數時,顯然控制量就會變為0。由於現實中不存在理想微分器,因此D控制的實現需要由一個信號 v(t) 和它短時間內的延遲信號 v(t-	au) 做差併除以該時間 	au 得到。[2]中涉及到了微分器的實現,以及微分器為什麼會對噪音放大的原因。我們在講了Bode圖之後簡單再提及這個問題。 我們先記住,微分器會對高頻噪音有放大的效果。

PI控制、PD控制與PID控制

單獨使用I和D都存在弊端,它們往往會和P一起使用,以加快系統響應速度和減小穩態誤差的作用。與P同樣的,我們可以將PI或者PD與開環系統結合在一起,寫出閉環系統的特徵方程,參數

都參與了閉環特徵方程的組成,由此對系統的模態產生了不同影響。對於二階系統以及複雜的高階系統,往往需要使用PID三種控制才能對系統的動態有一個完整的調節能力。如我們在P control中舉的二階系統比較特殊,沒有零點,它的特徵值s的實部是不能由Kp來調節的,因此無論如何其模態衰減速度已經基本固定。上同表明了這個一觀點。

PID改變系統動態以及穩態的直接原因就是因為控制器的引入改變了閉環系統的特徵方程,從而對系統的模態和解產生了影響。故而(4.77)中我們調節三個不同參數就能根據需求得到不同的系統響應了。

PID參數調節與無模型

PID控制器的控制效果與三個參數的tuning有直接和重大的關係。在[2]中涉及到了PID控制器的控制效果討論。 對於簡單低階系統,PID參數可以通過穩定性條件得到大致範圍,然後根據需要的動態手動進行調整得到。對於高階的系統,如果模型已知,我們可以通過Routh Array或者Hurwitz Criterion來判斷參數的範圍。

對於過程式控制制,許多複雜系統的模型難以建立或者建立成本過大,PID依舊可以勝任這種無模型的控制任務,依舊是調整三個參數,便於許多工程師操作,這是PID在工業界取得廣泛應用的原因。根據系統曲線進行PID tuning的方法有Ziegler-Nichols Tuning Method,臨界比例度法,衰減曲線法等等。

調參是件非常講究技術的活兒,別看PID結構和含義都容易理解,但是具體tuning卻是費腦子的活。有興趣的朋友可以參考《自動調節系統解析與PID整定》,這是一個工程師根據自己工作經驗寫的。

全文總結:

PID控制是比例-積分-微分三種反饋控制的總稱。應用PID控制律的控制器我們稱為PID控制器。PID三部分各自對系統都有不同的影響,根據需要可以採用PD,PI或者PID三種不同形式。PID可以在有模型和無模型兩種條件下工作,而且對於大部分系統都能實現有效的調節。雖然只有三個參數,但是現場PID參數整定工作並不都是十分輕鬆的,需要大量實踐經驗。當然現在已經開發出了很多自動調節參數的設備來改進這一缺點。

PID控制器的結構簡單,操作方便,學習門檻低,適合工程師學習和使用,並且適合無模型系統的控制,是其被廣泛應用的主要原因。針對PID控制器自身存在的缺點,後世又推出了許多改進的PID控制律,以及自動調節參數的PID控制器。

PID控制律是經典控制理論中非常重要的控制律之一。自動化專業的朋友應該對PID控制的理論部分有較深的理解。對於具體地實踐:紙上得來終覺淺,絕知此事要躬行。

Reference

[1] G.F. Franklin, J.D. Powell, A.Emami-Naeini, Feedback Control of Dynamic Systems, 7th Edition, 2014, Pearson

[2] 韓京清,自抗擾控制技術 ——估計補償不確定因素的控制技術,2008,國防工業出版社

[3] 胡壽松,自動控制原理(第六版),2013,科學出版社


若有紕漏,煩請指出。轉載還請私信聯繫,請勿私自轉載。O(∩_∩)O


推薦閱讀:
相關文章