引言
PID是Proportional(比例)、Integral(積分)、Differential(微分)三者的縮寫。PID調(diào)節(jié)是連續(xù)控制系統(tǒng)中技術(shù)最成熟、應(yīng)用最廣泛的調(diào)節(jié)方式。PID調(diào)節(jié)實(shí)質(zhì)是根據(jù)輸入的偏差值,按照比例、積分、微分的函數(shù)關(guān)系進(jìn)行運(yùn)算,運(yùn)算結(jié)果用以控制輸出。
之前在項(xiàng)目中也用到過不少PID的算法,但大多屬于一知半解的狀態(tài),或者胡亂調(diào)節(jié)的程度,最近在學(xué)習(xí)的過程偶然對PID有了一些新的認(rèn)識(shí),現(xiàn)在進(jìn)行一些記錄。
連續(xù)系統(tǒng)的PID控制
PID控制是將誤差信號e(t)的比例(P),積分(I)和微分(D)通過線性組合構(gòu)成控制量進(jìn)行控制,其輸出信號為:
對此式進(jìn)行拉普拉斯變換,并且整理后得到模擬PID調(diào)節(jié)器的傳遞函數(shù)為:
- Kp——比例系數(shù)
- Ti——積分時(shí)間常數(shù)
- Td——微分時(shí)間常數(shù)
- e(t)——偏差
- u(t)——控制量
模擬PID控制系統(tǒng)框圖
對PID參數(shù)的簡單理解
從上面的式子中可以看出
比例控制Kp能提高系統(tǒng)的動(dòng)態(tài)響應(yīng)速度,迅速反映誤差,從而減少誤差,但是不能消除誤差,簡單來說就是越大越快越小越慢但是可能會(huì)超調(diào)或者過慢有很多弊端,并且太大了會(huì)不穩(wěn)定。
Ki為積分控制作用,一般就是消除穩(wěn)態(tài)誤差,只要系統(tǒng)存在誤差積分作用就會(huì)不斷積累,輸出控制量來消除誤差,如果偏差為零這時(shí)積分才停止,但是積分作用太強(qiáng)會(huì)使得超調(diào)量加大,甚至使系統(tǒng)出現(xiàn)震蕩,那么問題來了,這個(gè)積分作用太強(qiáng)太弱是啥意思呢,我的理解是:積分作用就相當(dāng)與容錯(cuò)率高的意思,你容錯(cuò)太多了才開始調(diào)節(jié)那不就是超調(diào)量太大了么,反之你容錯(cuò)率低,剛剛誤差一點(diǎn)你就馬上進(jìn)行調(diào)節(jié),這樣不就容易引起震蕩了嘛,所以不管怎么說這個(gè)積分調(diào)節(jié)都有點(diǎn)滯后的意思在里面,不管你容錯(cuò)多少這個(gè)誤差都發(fā)生了,那么有沒有辦法對這種誤差進(jìn)行預(yù)測呢,就是需要微分環(huán)節(jié)了。
Kd為微分控制,微分顯然與變化率有關(guān),你可以把它理解為導(dǎo)數(shù),它可以減小超調(diào)量來克服震蕩,使系統(tǒng)穩(wěn)定性提高,同時(shí)加快響應(yīng)速度,使系統(tǒng)更快有更好的動(dòng)態(tài)性能,這就像個(gè)“預(yù)言家”,它可以根據(jù)變化率來判斷系統(tǒng)快要上升還是下降來提前改變系統(tǒng)的控制量這就與積分作用形成互補(bǔ),這樣一來系統(tǒng)就幾乎完美了。
用MATLAB軟件對PID控制做簡單的仿真
說了這么多有些抽象,這就用matlab來簡單仿真一下就明了了。
建立二階負(fù)反饋控制系統(tǒng),其開環(huán)傳遞函數(shù)為:
比例控制
輸出與輸入偏差成比例,即直接將誤差信號放大或縮小。比例控制的傳遞函數(shù)為:
G(s)=Kp
取不同的比例系數(shù),繪制系統(tǒng)的單位階躍響應(yīng)曲線:
Gs = tf(2,conv([3,1],[2,1])); %Gs是傳遞函數(shù),conv是可以理解為因式分解(3s+1)(2s+1)
Kp = [0.5,2,5,10]; %取不同的比例系數(shù),類似數(shù)組
for m = 1:4
sys = feedback(Kp(m)*Gs,1); %feedback(G,H),(G,H需事先設(shè)定)。
%其中G是傳遞函數(shù),H為反饋函數(shù),表示一個(gè)控制系統(tǒng)G,對其進(jìn)行負(fù)反饋H(要求正反饋用-H)。這里前面寫上比例環(huán)節(jié)與系統(tǒng)的串聯(lián),后面的1表示負(fù)反饋
step(sys); %求階躍響應(yīng),可以用形如step(feedback(G,H))
hold on;
end
隨著KP值的增大,系統(tǒng)響應(yīng)速度加快,但系統(tǒng)的超調(diào)也隨著增加,調(diào)節(jié)時(shí)間也隨著增長。當(dāng)KP增大到一定值后,閉環(huán)系統(tǒng)將趨于不穩(wěn)定。
比例控制具有抗干擾能力強(qiáng)、控制及時(shí)、過渡時(shí)間短的優(yōu)點(diǎn),但存在穩(wěn)態(tài)誤差,增大比例系數(shù)可提高系統(tǒng)的開環(huán)增益,減小系統(tǒng)的穩(wěn)態(tài)誤差,從而提高系統(tǒng)的控制精度,但這會(huì)降低系統(tǒng)的相對穩(wěn)定性,甚至可能造成閉環(huán)系統(tǒng)的不穩(wěn)定,因此,在系統(tǒng)校正和設(shè)計(jì)中,比例控制一般不單獨(dú)使用。
微分控制
輸出與輸入偏差的微分成比例,即與偏差的變化速度成比例。微分控制(與比例控制同時(shí)使用)的傳遞函數(shù)為:
G(s)=Kp(1+TdS)
取不同的微分系數(shù),繪制系統(tǒng)的單位階躍響應(yīng)曲線:
Kp = 10;
Td = [0,0.4,1,4];
for m = 1:4
G1 = tf([Kp*Td(m),Kp],[0,1]); %這個(gè)地方要注意 (Kp*Td(m)*S+Kp)/1=Kp(1+TdS)
sys = feedback(G1*Gs,1); %前面是微分環(huán)節(jié)與系統(tǒng)的串聯(lián),負(fù)反饋
step(sys); hold on;
end
隨著Td值的增大,系統(tǒng)超調(diào)量逐漸減小,動(dòng)態(tài)特征有改善。
自動(dòng)控制系統(tǒng)在克服誤差的調(diào)節(jié)過程中可能會(huì)出現(xiàn)振蕩甚至不穩(wěn)定,原因是存在有較大慣性或有滯后的組件,具有抑制誤差的作用,其變化總是落后于誤差的變化,在控制器質(zhì)中僅引入比例項(xiàng)是不夠的,比例項(xiàng)的作用僅是放大誤差的幅值,而微分項(xiàng)能預(yù)測誤差的變化趨勢,這樣,具有比例+微分的控制器,就能提前使抑制誤差的控制作用等于零,甚至為負(fù)值,從而避免被控量的嚴(yán)重超調(diào),改善動(dòng)態(tài)特性。
微分控制反映誤差的變化率,只有當(dāng)誤差隨時(shí)間變化時(shí),微分控制才會(huì)對系統(tǒng)起作用,而對無變化或緩慢變化的對象不起作用。另外,微分控制對純滯后環(huán)節(jié)不能起到改善控制品質(zhì)的作用,反而具有放大高頻噪聲信號的缺點(diǎn)。
積分控制
輸出與輸入偏差的積分成比例,即與誤差的積累成比例。積分控制(與比例控制同時(shí)使用)的傳遞函數(shù)為:
G(s)=Kp(1+1/Ti?1/s)
取不同的積分系數(shù),繪制系統(tǒng)的單位階躍響應(yīng)曲線:
Kp = 2;
Ti = [3,6,12,24];
for m = 1:4
G1 = tf([Kp,Kp/Ti(m)],[1,0]); %這里也是(KpS+Kp/Ti)/s
sys = feedback(G1*Gs,1);
step(sys); hold on;
end
加入積分控制后,消除了系統(tǒng)穩(wěn)態(tài)誤差,但隨著TI值的增大,達(dá)到穩(wěn)態(tài)的過渡時(shí)間也逐漸加長。
積分項(xiàng)對誤差取決于時(shí)間的積分,隨著時(shí)間的增加,積分項(xiàng)會(huì)增大。這樣,即使誤差很小,積分項(xiàng)也會(huì)隨著時(shí)間的增加而加大,它推動(dòng)控制器的輸出增大,使穩(wěn)態(tài)誤差進(jìn)一步減小,直到等于零,但會(huì)使系統(tǒng)穩(wěn)定性降低,過渡時(shí)間也加長。
比例積分微分控制,即PID控制
傳遞函數(shù)為:
G(s)=Kp(1+1/T?1/s+TdS)
取適當(dāng)?shù)谋壤?、積分、微分系數(shù),繪制系統(tǒng)的單位階躍響應(yīng)曲線:
Kp = 100; %取固定比例系數(shù)
Ti = 2.2;
Td =7;
G1 = tf([Kp*Td,Kp,Kp/Ti],[0,1,0]); %(Kp*Td*S^2+Kp*s+Kp/Ti)/s=Kp(Tds+1+1/STi)
sys = feedback(G1*Gs,1);
step(sys);
hold on;
PID控制通過積分作用消除誤差,而微分控制可縮小超調(diào)量、加快系統(tǒng)響應(yīng),是綜合了PI控制和PD控制長處并去除其短處的控制。
Matlab-PID調(diào)節(jié)器
在較新版本的MATLAB中有應(yīng)用程序,下有諸多的調(diào)節(jié)器,用起來簡直不要太方便啊,簡單介紹一下PID調(diào)節(jié)器,我的是R2015a:
在已知被控對象傳函的情況下,對單位負(fù)反饋中的PID進(jìn)行調(diào)節(jié),使得單位階躍響應(yīng)達(dá)到最佳。
點(diǎn)擊Plant下的Import輸入被調(diào)節(jié)對象的傳函,傳函是從matlab 工作區(qū)中選的,可以傳入多個(gè)一起調(diào)節(jié);
Type可以用來改變PID的類型(P/I/PI/PD/PID/PDF/PIDF);
Domain可以選擇是時(shí)域調(diào)節(jié)還是頻域調(diào)節(jié),時(shí)域調(diào)節(jié)是調(diào)節(jié)response time(響應(yīng)時(shí)間)和transient behavior(暫態(tài)特性),頻域調(diào)節(jié)是調(diào)節(jié)bandwidth(帶寬)和phase margin(相角裕度)。點(diǎn)擊圖標(biāo)可以加快或者減慢調(diào)節(jié);
show parameter可以看控制器的參數(shù)(窗口的最下端也有)和曲線的特性(超調(diào)量,穩(wěn)定性等等);
Export選中想要獲得的PID參數(shù),可以輸出到工作區(qū)中;
點(diǎn)擊曲線上的點(diǎn)可以顯示該點(diǎn)的橫縱坐標(biāo)。
總結(jié)
本文對連續(xù)系統(tǒng)的PID控制從理論和實(shí)際的角度進(jìn)行了剖析,并且學(xué)會(huì)了用Matlab進(jìn)行仿真,可以看到Matlab可以方便的進(jìn)行PID參數(shù)的整定調(diào)節(jié),在實(shí)際操作前可以通過此來進(jìn)行大量仿真來獲得可靠的數(shù)據(jù)為調(diào)節(jié)和應(yīng)用節(jié)約了大量成本?,F(xiàn)在對PID有了初步的認(rèn)識(shí)那么如何應(yīng)用到程序中去呢,這就需要PID算法的離散化了,這將在后面的文章中進(jìn)行講解,謝謝你這么好看讀完了這篇文章,希望對你有所幫助^_^.
|