在過(guò)程控制中,按偏差的比例(P)、積分(I)和微分(D)進(jìn)行控制的PID控制器(亦稱PID調(diào)節(jié)器)是應(yīng)用最為廣泛的一種自動(dòng)控制器。它具有原理簡(jiǎn)單,易于實(shí)現(xiàn),適用面廣,控制參數(shù)相互獨(dú)立,參數(shù)的選定比較簡(jiǎn)單等優(yōu)點(diǎn);而且在理論上可以證明,對(duì)于過(guò)程控制的典型對(duì)象──“一階滯后+純滯后”與“二階滯后+純滯后”的控制對(duì)象,PID控制器是一種最優(yōu)控制。PID調(diào)節(jié)規(guī)律是連續(xù)系統(tǒng)動(dòng)態(tài)品質(zhì)校正的一種有效方法,它的參數(shù)整定方式簡(jiǎn)便,結(jié)構(gòu)改變靈活(PI、PD、…)。
控制點(diǎn)包含三種比較簡(jiǎn)單的PID控制算法,分別是:增量式算法,位置式算法,微分先行。 這三種PID算法雖然簡(jiǎn)單,但各有特點(diǎn),基本上能滿足一般控制的大多數(shù)要求。
PID算法簡(jiǎn)介
在智能車競(jìng)賽中,要想讓智能車根據(jù)賽道的不斷變化靈活的行進(jìn),PID算法的采用很有意義。
首先必須明確PID算法是基于反饋的。一般情況下,這個(gè)反饋就是速度傳感器返回給單片機(jī)當(dāng)前電機(jī)的轉(zhuǎn)速。簡(jiǎn)單的說(shuō),就是用這個(gè)反饋跟預(yù)設(shè)值進(jìn)行比較,如果轉(zhuǎn)速偏大,就減小電機(jī)兩端的電壓;相反,則增加電機(jī)兩端的電壓。
顧名思義,P指是比例(Proportion),I指是積分(Integral),D指微分(Differential)。在電機(jī)調(diào)速系統(tǒng)中,輸入信號(hào)為正,要求電機(jī)正轉(zhuǎn)時(shí),反饋信號(hào)也為正(PID算法時(shí),誤差=輸入-反饋),同時(shí)電機(jī)轉(zhuǎn)速越高,反饋信號(hào)越大。要想搞懂PID算法的原理,首先必須先明白P,I,D各自的含義及控制規(guī)律:
2 比例P:比例項(xiàng)部分其實(shí)就是對(duì)預(yù)設(shè)值和反饋值差值的發(fā)大倍數(shù)。舉個(gè)例子,假如原來(lái)電機(jī)兩端的電壓為U0,比例P為0.2,輸入值是800,而反饋值是1000,那么輸出到電機(jī)兩端的電壓應(yīng)變?yōu)閁0+0.2*(800-1000)。從而達(dá)到了調(diào)節(jié)速度的目的。顯然比例P越大時(shí),電機(jī)轉(zhuǎn)速回歸到輸入值的速度將更快,及調(diào)節(jié)靈敏度就越高。從而,加大P值,可以減少?gòu)姆欠€(wěn)態(tài)到穩(wěn)態(tài)的時(shí)間。但是同時(shí)也可能造成電機(jī)轉(zhuǎn)速在預(yù)設(shè)值附近振蕩的情形,所以又引入積分I解決此問(wèn)題。
比例控制理解
首先是比例控制。比例控制就好比是通過(guò)水桶往水缸加水或者從水缸舀水。假設(shè)我們需要把水平面穩(wěn)定在A平面,而實(shí)際水平面在B平面,那么水平面差值Err=A-B,那這個(gè)時(shí)候我們需要往里面加水的量就是Kp*Err,Kp就是我們的比例控制系數(shù)。
如果A》B,Err為正,就往水缸里面加水;如果A《B,Err為負(fù),就從水缸里面舀水出來(lái)。那么只要預(yù)期水平面和實(shí)際水平面有差值,我們都會(huì)通過(guò)水桶去加減水來(lái)調(diào)整系統(tǒng)。同時(shí)Kp的大小也有對(duì)系統(tǒng)的性能有影響。如果Kp的值比較大,優(yōu)點(diǎn)是從B平面達(dá)到A平面的速度快,缺點(diǎn)是在B平面已經(jīng)接近A平面的時(shí)候系統(tǒng)會(huì)產(chǎn)生比較大的震蕩。如果Kp的值比較小,優(yōu)點(diǎn)是B平面在接近A平面的時(shí)候系統(tǒng)震蕩小,缺點(diǎn)是從B平面達(dá)到A平面的速度慢。
這里也許有人會(huì)有疑問(wèn),如果這里把比例控制系數(shù)Kp直接設(shè)置成1,然后加水的量直接為Err=A-B不就可以了。然而實(shí)際上很多系統(tǒng)是做不到這點(diǎn)的。比如溫度控制系統(tǒng),實(shí)際溫度為10度,我要通過(guò)加熱把溫度提升到40度,這里難道我們能一次性準(zhǔn)確的給系統(tǒng)加30度?顯然這是做不到的。那么比例控制的最終結(jié)果是Err的值趨向于0。比例控制部分公式如下圖:
2 積分I:顧名思義,積分項(xiàng)部分其實(shí)就是對(duì)預(yù)設(shè)值和反饋值之間的差值在時(shí)間上進(jìn)行累加。當(dāng)差值不是很大時(shí),為了不引起振蕩。可以先讓電機(jī)按原轉(zhuǎn)速繼續(xù)運(yùn)行。當(dāng)時(shí)要將這個(gè)差值用積分項(xiàng)累加。當(dāng)這個(gè)和累加到一定值時(shí),再一次性進(jìn)行處理。從而避免了振蕩現(xiàn)象的發(fā)生。可見,積分項(xiàng)的調(diào)節(jié)存在明顯的滯后。而且I值越大,滯后效果越明顯。
積分控制理解
積分控制部分的作用主要是用來(lái)消除靜差。那么積分是怎樣來(lái)消除靜差的呢?
比例控制只能盡量將Err調(diào)節(jié)到0,而微分的作用是將曲線的斜率控制到0則停止對(duì)其作用,但斜率為0的時(shí)候Err并不一定為0。
這個(gè)時(shí)候我們就需要積分來(lái)起作用了。我們知道曲線的積分相當(dāng)于曲線與x軸圍出來(lái)的面積。如下圖,積分作用的目的是使紅色部分的面積和藍(lán)色部分的面積的和為0,那么即使系統(tǒng)在比例控制和微分控制部分已經(jīng)趨于穩(wěn)定,只要Err不為0就會(huì)存在靜差,只要存在靜差那么積分就會(huì)對(duì)系統(tǒng)產(chǎn)生影響,直到系統(tǒng)的Err值為0。那么這樣我們的PID控制在理論上就可以達(dá)到一個(gè)非常精確的控制效果。
來(lái)看看我們的積分公式部分:
2 微分D:微分項(xiàng)部分其實(shí)就是求電機(jī)轉(zhuǎn)速的變化率。也就是前后兩次差值的差而已。也就是說(shuō),微分項(xiàng)是根據(jù)差值變化的速率,提前給出一個(gè)相應(yīng)的調(diào)節(jié)動(dòng)作。可見微分項(xiàng)的調(diào)節(jié)是超前的。并且D值越大,超前作用越明顯。可以在一定程度上緩沖振蕩。比例項(xiàng)的作用僅是放大誤差的幅值,而目前需要增加的是“微分項(xiàng)”,它能預(yù)測(cè)誤差變化的趨勢(shì),這樣,具有比例+微分的控制器,就能夠提前使抑制誤差的控制作用等于零,甚至為負(fù)值,從而避免了被控量的嚴(yán)重超調(diào)。
微分控制理解
然后我們先看看微分控制。在我們的比例控制的作用下,Err是開始減小的(假設(shè)一開始預(yù)期水平面A大于實(shí)際水平面B,也就是說(shuō)Err是一個(gè)正值),那么也就是說(shuō)Err隨時(shí)間是一條斜率小于0的曲線,那么在周期時(shí)間內(nèi),Err越大,微分的絕對(duì)值越大,那么也就對(duì)Err的減小速度是起到抑制的作用的,直到最后斜率為0微分才會(huì)停止作用。微分公式如下:
那么隨著微分的影響,Err曲線的斜率最終是趨向于0的,如下圖:
二、參數(shù)調(diào)整一般規(guī)則
由各個(gè)參數(shù)的控制規(guī)律可知,比例P使反應(yīng)變快,微分D使反應(yīng)提前,積分I使反應(yīng)滯后。在一定范圍內(nèi),P,D值越大,調(diào)節(jié)的效果越好。各個(gè)參數(shù)的調(diào)節(jié)原則如下:
PID調(diào)試一般原則
a. 在輸出不振蕩時(shí),增大比例增益P。
b. 在輸出不振蕩時(shí),減小積分時(shí)間常數(shù)Ti。
c. 輸出不振蕩時(shí),增大微分時(shí)間常數(shù)Td。
三、參數(shù)調(diào)整一般步驟
a.確定比例增益P
確定比例增益P 時(shí),首先去掉PID的積分項(xiàng)和微分項(xiàng),一般是令Ti=0、Td=0,PID為純比例調(diào)節(jié)。輸入設(shè)定為系統(tǒng)允許的最大值的60%~70%,由0逐漸加大比例增益P,直至系統(tǒng)出現(xiàn)振蕩;再反過(guò)來(lái),從此時(shí)的比例增益P逐漸減小,直至系統(tǒng)振蕩消失,記錄此時(shí)的比例增益P,設(shè)定PID的比例增益P為當(dāng)前值的60%~70%。比例增益P調(diào)試完成。
b.確定積分時(shí)間常數(shù)Ti
比例增益P確定后,設(shè)定一個(gè)較大的積分時(shí)間常數(shù)Ti的初值,然后逐漸減小Ti,直至系統(tǒng)出現(xiàn)振蕩,之后在反過(guò)來(lái),逐漸加大Ti,直至系統(tǒng)振蕩消失。記錄此時(shí)的Ti,設(shè)定PID的積分時(shí)間常數(shù)Ti為當(dāng)前值的150%~180%。積分時(shí)間常數(shù)Ti調(diào)試完成。
c.確定積分時(shí)間常數(shù)Td
積分時(shí)間常數(shù)Td一般不用設(shè)定,為0即可。若要設(shè)定,與確定 P和Ti的方法相同,取不振蕩時(shí)的30%。
d.系統(tǒng)空載、帶載聯(lián)調(diào),再對(duì)PID參數(shù)進(jìn)行微調(diào),直至滿足要求
找三個(gè)以上PID算法應(yīng)用實(shí)例,結(jié)合實(shí)例明確參數(shù)調(diào)試的方法以及參數(shù)的意義,同時(shí)給小組成員做介紹
評(píng)論
查看更多