系統(tǒng)理解PID控制,這篇文章就夠了,通俗易懂!
在我們實際工作經(jīng)常會用到PID控制系統(tǒng),但是對這個PID到底是什么?該如何調(diào)節(jié),我們相信大家都比較頭痛。但是今天,我們就用大白話的方式給大家講講PID。
一、PID應(yīng)用場景
其實不管是在自動化行業(yè)還是在生活中,我們都或多或少都會接觸PID。比如空調(diào)系統(tǒng)、定速巡航系統(tǒng)、恒壓供水系統(tǒng)(如圖1)上都可以見到PID的影子。在這些系統(tǒng)中,最大的一個特點(diǎn)就是我們需要設(shè)定一個我們想要的數(shù)據(jù),然后設(shè)備就根據(jù)我們的設(shè)定,自動進(jìn)行調(diào)節(jié)。
比如:在恒壓控制系統(tǒng)中,設(shè)定一個壓力(10MPa),那么這個系統(tǒng)就需要穩(wěn)定在我設(shè)定的壓力值10MPa左右;在空調(diào)系統(tǒng)中,我們設(shè)定好了一個溫度(26℃)之后,我們當(dāng)然希望室內(nèi)的溫度就一直穩(wěn)定在26℃左右嘛。在我們設(shè)定好了參數(shù)之后,設(shè)備如何自動調(diào)節(jié)呢?就是通過PID功能進(jìn)行調(diào)節(jié)的!

二、PID控制系統(tǒng)
在PID各參數(shù)的作用之前,我們先宏觀來了解一下PID控制系統(tǒng)。如圖2所示,一個完整的PID系統(tǒng)中主要由以下幾部分組成:給定環(huán)節(jié)、控制器、執(zhí)行機(jī)構(gòu)、被控對象、反饋環(huán)節(jié)。

我們逐個來說明每個環(huán)節(jié)的作用。為了說明這些環(huán)節(jié)的作用,我們舉一個生活的例子:
現(xiàn)在我們接到一個任務(wù),需要騎一輛自行車沿著直線走1000米。那么直線走1000米就是“給定環(huán)節(jié)”了,因為我預(yù)先就知道了需要走多少米距離并且走的是直線。騎車的是“人”,人由大腦控制,那么大腦就是“控制器”了,大腦不能直接控制車輛,然后大腦發(fā)命令的方式去控制我們的手和腳從而控制自行車,那么手和腳就是“執(zhí)行機(jī)構(gòu)了”,而最終我們控制的是自行車,那么自行車就是“被控對象”了。那么在騎車的過程中,可能會出現(xiàn)一陣風(fēng)或者路上出現(xiàn)石頭或者坑等,那么這些石頭或者坑呢,就是“擾動”。我們在走直線的過程中,到底有沒有沿著直線走呢?我們可以通過眼睛看,那么眼睛把自行車的信息收集起來(是否走歪了),這個過程就是“反饋環(huán)節(jié)”。僅僅知道是否走歪了還不行,需要及時調(diào)整,如何調(diào)整呢?就是通過預(yù)期設(shè)定(給定環(huán)節(jié))與實際路線(反饋環(huán)節(jié))相比較,得到的差值進(jìn)行修正。
那么把生活中的這個例子應(yīng)用到工業(yè)中來,其實是非常類似的。如圖4所示是:恒液位控制系統(tǒng)。我們通過觸摸屏設(shè)置水池里需要到達(dá)的液位高度,當(dāng)PLC接到我們設(shè)置的命令之后,通過傳感器反饋實際的液位高度與我們設(shè)定的液位高度相比較,得到差值。如果低于我們設(shè)定的液位值,則驅(qū)動變頻器帶動水泵往水池里加水,當(dāng)高于我們設(shè)定的液位值,變頻器則停止加水。
三、PID三個參數(shù)的作用
我們了解了PID控制系統(tǒng)是怎么回事之后,再來了解PID這三個參數(shù)的作用就會相對簡單了。首先我們從全局的眼光來看這個公式,如圖3所示:
①u(t) :輸出曲線,pid輸出值隨時間的變化曲線。也就是最終輸出信號的大小。
②Kp:比例系數(shù)。這個系數(shù)由人為給定,可以大也可以小,我們要調(diào)節(jié)PID參數(shù)的話,Kp這個系數(shù)尤為重要。
③e(t) :偏差,設(shè)定值與實際值的偏差。
④Ti:積分時間。
⑤Td:微分時間。

在圖3這個公式中,其中u(t)和e(t)是比較好理解的,剩下的就是Kp、Ti、Td參數(shù),這三個參數(shù)正是我們需要人為調(diào)節(jié)的(當(dāng)然,很多設(shè)備也有自動調(diào)節(jié)的功能,比如PLC就有自動整定這三個參數(shù)的功能)。但是在這個公式中,我們可以得到幾個結(jié)論。
第一個就是:當(dāng)e(t)為0則整個PID結(jié)果為0,也就是偏差為0時,PID沒有輸出,從而說明了PID輸出一定是需要有偏差的;
第二:P+I+D的結(jié)果等于u(t)。
01?比例系數(shù):Kp
比例調(diào)節(jié)就是根據(jù)當(dāng)前的值與目標(biāo)值的差值,乘以了一個Kp的系數(shù),來得到一個輸出值,這輸出值直接影響了下次當(dāng)前值的變化。公式為:U(t)=Kp*e(t)
舉例:(1) 如圖4所示,有個水池,需要時刻保持1m的高度,目前水桶里有0.2m的水。

那么采用P(比例)的方法加水:即每次測量與1m的誤差,并加入與誤差成比例的水量,比如設(shè)Kp=0.5:
第一次,誤差是1-0.2=0.8m,那么加入水量是:Kp*0.8= 0.4mm,
第二次,誤差是1-0.6 =0.4m那么加入水量是:Kp*0.4=0.2m。
按照此種方式,我們加若干次水,然后繪制成表格(如圖5)及曲線圖(如圖6)。我們可以看到加到了第8次水之后,基本上就沒有誤差,基于誤差的輸出也只有0.00313。而從圖6的曲線圖也可以看到,從第6次開始,水位基本上就是趨于穩(wěn)定的。那么,這不正是我們想看到的結(jié)果嗎?預(yù)期是需要保持1m的高度,加了8次水剛好就到了1m左右。但是在實際的工程中,可能是一邊放水,一邊往水池里加水。如圖4所示,如果說有人把水池的水龍頭打開了一邊加水一邊放水,還是加8次水就剛好到了1m的位置嗎?


我們一起來分析一邊放水一邊加水的這種情況。有個水池下面安裝了水龍頭,仍需保持1m 的高度,目前水桶里有0.2m 的水,但每次加水都會流出0.1m。
我們?nèi)匀辉O(shè)Kp=0.5
第一次:誤差是 1-0.2=0.8m,那么加入水量是 Kp*0.8=0.4m.最終水位時是0.4+0.2-0.1=0.5
第二次:誤差是1-0.5 =0.5mm 那么加入水量是 Kp*0.5=0.25m,最終水位是0.5+0.25-0.1=0.65
我們按照這種方式推算,繪制成表格(如圖7)及曲線圖(如圖8)。從表格和曲線中可以看到,從第6次開始水位基本上穩(wěn)定在0.79左右,也就是水再也上不去了,這其實也很好理解,因為每次加的水量基本上等于流出的水量(0.1m),所以水位基本上就沒上升,也沒下降。那么這種情況呢,就叫做穩(wěn)態(tài)誤差,這也就是比例調(diào)節(jié)的不足,需要積分參數(shù)來彌補(bǔ)。當(dāng)然,有的人會提出,那是不是把Kp這個參數(shù)往大了調(diào),是不是就可以讓水時刻穩(wěn)定在1m的位置呢?
為了驗證,我們把Kp修改成2,而不再是0.5了,那這個表格(如圖9所示)和曲線(圖10所示)??梢钥吹奖壤刂埔肓朔€(wěn)態(tài)誤差,且無法消除。比例常數(shù)增大可以減小穩(wěn)態(tài)誤差,但如果太大則引起系統(tǒng)震蕩,不穩(wěn)定。




02?積分系數(shù):Ki
為了消除穩(wěn)態(tài)誤差, 加入積分,積分控制就是將歷史誤差全部加起來乘以積分常數(shù)。公式為Ki*( e(1)+ e(2)+ e(3)……)。e(1)代表的是第一次誤差,e(2)代表的是第二次誤差,依次類推。
還是先設(shè)Kp=0.5,Ki= 0.3
第一次: 誤差為0.8, 比例部分 Kp*0.8=0.4, 積分部分 Ki*(e(1))= 0.24,加入水量u為0.4+0.24=0.64,最終水位0.2+0.64-0.1= 0.74m。
第二次: 誤差為0.26,比例部分Kp * 0.26=0.13,積分部分Ki*(e(1)+e(2))= 0.318,加入水量u為 0.13+0.318=0.448,最終水位:0.74+0.448-0.1=1.088m。將推算的數(shù)據(jù)繪制成表格(如圖11)及曲線圖(如圖12)。從表格及曲線圖可以看到,水位第一次到第5次水是有些波動,但是隨著積分項發(fā)揮作用,水位逐漸趨于穩(wěn)定在1m左右。這就完美解決了比例項的弊端(存在穩(wěn)態(tài)誤差)。


最后,還是微分參數(shù)沒有寫出來,那如果加入微分項,你覺得這個PID輸出曲線是如何變化的呢?歡迎大家評論留言!
技成培訓(xùn)網(wǎng)原創(chuàng),作者:郭彪,未經(jīng)授權(quán)不得轉(zhuǎn)載,違者必究!
粉絲福利
微信掃碼領(lǐng)西門子全系列PLC電子資料包
