PID的重要性應(yīng)該不需多說(shuō),在自動(dòng)控制領(lǐng)域的應(yīng)用很廣泛。Jason通過(guò)記錄小明給水桶加水的過(guò)程展示經(jīng)典PID算法過(guò)程,以舉例子的形式給新手理解PID提供多一種思路。
Jason希望通過(guò)鮮活的例子解釋以下五個(gè)概念:
1、簡(jiǎn)單描述何為PID, 為何需要PID,PID 能達(dá)到什么作用
2、理解P(比例環(huán)節(jié))作用:基礎(chǔ)比例環(huán)節(jié)
缺點(diǎn): 產(chǎn)生穩(wěn)態(tài)誤差。
疑問(wèn): 何為穩(wěn)態(tài)誤差 為什么會(huì)產(chǎn)生穩(wěn)態(tài)誤差。
3、理解I(積分環(huán)節(jié))作用:消除穩(wěn)態(tài)誤差。
缺點(diǎn): 增加超調(diào)
疑問(wèn): 積分為何能消除穩(wěn)態(tài)誤差?
4、理解D(微分環(huán)節(jié))作用:加大慣性響應(yīng)速度,減弱超調(diào)趨勢(shì)
疑問(wèn): 為何能減弱超調(diào)
5、理解各個(gè)比例系數(shù)的作用
下面就開(kāi)始進(jìn)入正題。
1、何為PID以及為何需要PID?
以下是PID控制的整體框圖,過(guò)程描述為:設(shè)定一個(gè)輸出目標(biāo),反饋系統(tǒng)傳回輸出值,如與目標(biāo)不一致,則存在一個(gè)誤差,PID根據(jù)此誤差調(diào)整輸入值,直至輸出達(dá)到設(shè)定值。
疑問(wèn):那么我們?yōu)槭裁葱枰狿ID?比如我控制溫度,我不能監(jiān)控溫度值,溫度值一到就停止嗎?
這里必須要先說(shuō)下我們的目標(biāo),因?yàn)槲覀兯械目刂茻o(wú)非就是想輸出能夠達(dá)到我們的設(shè)定,即如果我們?cè)O(shè)定了一個(gè)目標(biāo)溫度值,那么我們想要一個(gè)什么樣的溫度變化呢。
比如設(shè)定目標(biāo)溫度為30℃,目標(biāo)無(wú)非是希望達(dá)到圖1的效果:希望其能夠快速而且沒(méi)有抖動(dòng)的達(dá)到30℃。
圖1 PID控制系統(tǒng)輸出的響應(yīng)目標(biāo)
那這樣大家應(yīng)該就明白,如果使用溫度一到就停止的辦法,當(dāng)然如果要求不高可能也行,當(dāng)肯定達(dá)不到圖1這樣的要求,因?yàn)闇囟鹊搅撕笥鄿匾矔?huì)讓溫度繼續(xù)升高,而且溫度自身也會(huì)通過(guò)空氣散熱。總結(jié):我們需要PID的原因無(wú)非就是普通控制手段沒(méi)有辦法使輸出快速穩(wěn)定的到達(dá)設(shè)定值。
如果你仍對(duì)此感到疑問(wèn),我們就開(kāi)始用一個(gè)常用的例子來(lái)具體說(shuō)明。
2、從小明給水桶加水的例子弄懂PID
在開(kāi)始前,我們需要將公式搬出:
咋一看,這個(gè)公式挺唬人的。其實(shí)你只要知道微分和積分的基本定義就可以理解。而且最終我們所有的努力也都是能夠理解這個(gè)公式,否則再精妙的比喻也無(wú)法使你真正的明白和使用。
這里我們將其離散化(如果這步驟有些太快的話,后面再加入對(duì)此的解釋):
公式中Kp為比例常數(shù),Ki=(Kp×T)/Ti為積分常數(shù),Kd=(Kp×Td)/T為微分常數(shù)
以下Jason就通過(guò)一個(gè)例子具體展示這個(gè)方程是如何工作的。
①小明接到一個(gè)任務(wù): 有個(gè)水桶,需要時(shí)刻保持1m的高度,目前水桶里有0.2m的水
那么小明采用P(比例)的方法加水:即每次測(cè)量與1m的誤差,并加入與誤差成比例的水量。比如設(shè)Kp=0.5
第一次加水:誤差是1-0.2=0.8m,那么加入水量是Kp×0.8=0.4m;
第二次加水,誤差是1-0.4 =0.6m,那么加入水量是 Kp×0.6=0.3m;
......
我們發(fā)現(xiàn)這太完美了,那么比例環(huán)節(jié)就能夠完美的解決問(wèn)題了,可是等等,在下這個(gè)結(jié)論前,我們看小明的新任務(wù)
②小明的新任務(wù):有個(gè)水桶,但桶底漏了個(gè)洞,仍需保持1m的高度,目前水桶里有0.2m的水,但每次加水都會(huì)流出0.1m。這個(gè)例子就接近我們實(shí)際工程的例子了,比如電機(jī)摩擦的阻力、損耗。
我們還是來(lái)給小明解決問(wèn)題吧,
方案一仍是使用P(比例控制)U=Kp×e,仍然設(shè)Kp=0.5. 則U=0.5×e,L(最終水位)=本次輸入U(xiǎn)加上上一次水位。
第一次加水:誤差是1-0.2=0.8m,那么加入水量是Kp×0.8=0.4m,最終水位時(shí)是0.4+0.2-0.1=0.5m。
第二次加水:誤差是1-0.5=0.5m,那么加入水量是Kp×0.5=0.25m,最終水位是0.5+0.25-0.1=0.65m
......
我們發(fā)現(xiàn)了問(wèn)題,水位最終在0.8m處穩(wěn)定了,這個(gè)也很好理解,當(dāng)誤差是0.2m時(shí),加水量時(shí)0.1,每次加入的剛好等于漏掉的。這里就引入了穩(wěn)態(tài)誤差的概念:穩(wěn)態(tài)誤差即當(dāng)系統(tǒng)到達(dá)穩(wěn)態(tài)時(shí)與目標(biāo)的誤差。
那么我們加大Kp呢,我們發(fā)現(xiàn)誤差變小了;
那我們繼續(xù)增大吧,我們發(fā)現(xiàn)系統(tǒng)開(kāi)始震蕩了。此處使用excel折線圖,大家可以調(diào)節(jié)參數(shù)觀察變化
結(jié)論: 比例控制引入了穩(wěn)態(tài)誤差,且無(wú)法消除.比例常數(shù)增大可以減小穩(wěn)態(tài)誤差,但如果太大則引起系統(tǒng)震蕩,不穩(wěn)定。
為了消除穩(wěn)態(tài)誤差,方案二:在比例基礎(chǔ)上加入積分,使用PI(比例積分控制),積分控制就是將歷史誤差全部加起來(lái)乘以積分常數(shù)。
這個(gè)式子什么意思呢,為啥就能消除穩(wěn)態(tài)誤差呢?還是先設(shè)Kp=0.5,Ki=0.3(這個(gè)值我這里是隨意設(shè)置的)
第一次加水:誤差為0.8,比例部分Kp×0.8=0.4m, 積分部分 Ki×[e(1)]=0.24m,加入水量u為0.4+0.24=0.64m,最終水位0.2+0.64-0.1=0.74m
第二次加水:誤差為0.26,比例部分Kp×0.26=0.13m,積分部分Kp×[e(1)+e(2)]=0.318m,加入水量u為0.13+0.318=0.448m。最終水位0.74+0.448-0.1=1.088m
我們發(fā)現(xiàn),雖然過(guò)程曲折,但是最終可以穩(wěn)定到設(shè)定值了。
如果加大Ki呢?此處使用excel 折線圖,大家可以調(diào)節(jié)參數(shù)觀察變化
結(jié)論:
①只要存在偏差,積分就不停的累計(jì),直到誤差為0,積分項(xiàng)不再累加,變成一個(gè)常數(shù),可以抵消穩(wěn)態(tài)誤差。
大家可以看到表2中系統(tǒng)穩(wěn)定后,積分項(xiàng)約是0.1。
②引入積分可以消除穩(wěn)態(tài)誤差,但會(huì)增加超調(diào),且Ki增大,超調(diào)量也增大。
為了消除超調(diào),我們引入微分作用。 現(xiàn)在式子變成了:
還是先設(shè)Kp=0.5,Ki=0.5,Kd=0.3
第一次加水:誤差為0.8m,比例部分Kp×0.8=0.4m,積分部分Ki×[e(1)]=0.24m,微分部分=0(因?yàn)闆](méi)加水前水位差就是0.8m,加入水量U為0.4+0.4=0.8m,最終水位0.2+0.8-0.1=0.9m
第二次加水:誤差為0.1m,比例部分Kp×0.1=0.5m,積分部分Kp×[e(1)+e(2)]=0.45m,微分部分為Kd×[e(2)-e(1)]=-0.21m,加入水量u為0.5+0.45-0.21=0.29,最終水位0.9+0.29-0.1=1.09m
我們發(fā)現(xiàn)對(duì)比上面那張Kp=0.5,Ki=0.5 的圖,這張圖的震蕩減輕了,這正是微分發(fā)生了作用,
大家可以看到表3中當(dāng)?shù)?次誤差為0.1時(shí),上一次誤差為0.8時(shí),微分是一個(gè)負(fù)數(shù),阻止結(jié)果快速的變化。
結(jié)論: 微分能夠減弱超調(diào)趨勢(shì)。
可是,這個(gè)波形還是在震蕩啊,是的,別忘了,這個(gè)值是我隨手設(shè)置的,我們不能指望我們隨便設(shè)一個(gè)值就能使PID完美的工作起來(lái),如果你自己用excel模擬一下你就會(huì)發(fā)現(xiàn),如果Ki,Kd設(shè)置大些,這個(gè)系統(tǒng)會(huì)大幅度震蕩起來(lái)。
因此我們就需要對(duì)Kp,Ki,Kd整定,其實(shí)就是試怎么使輸出達(dá)到圖1的要求。當(dāng)然這個(gè)例子其實(shí)使用PI就可以了,我們這里是為了理解其作用的原理。
能熟練進(jìn)行PID參數(shù)整定,將自動(dòng)控制系統(tǒng)投自動(dòng),這代表著工程技術(shù)人員的自動(dòng)化技能水平,但很多人并未真正掌握PID控制和PID參數(shù)整定。在本站“PID調(diào)節(jié)器”產(chǎn)品頁(yè)面免費(fèi)分享白志剛工程師編著的《自動(dòng)調(diào)節(jié)系統(tǒng)解析與PID整定》一書(shū),書(shū)中內(nèi)容沒(méi)有高深的理論公式,全是實(shí)戰(zhàn)干貨,理解了此書(shū)內(nèi)容真諦,高中學(xué)歷的儀表人也能整定PID參數(shù),將PID控制弄透徹!對(duì)您有幫助,還是免費(fèi)的,趕快去產(chǎn)品頁(yè)面“PID調(diào)節(jié)器”免費(fèi)領(lǐng)取這本書(shū)!