不要只成為PID調(diào)參工程師
正文
大家好,我是bug菌~
最近跟一個(gè)同事聊了聊天,他說(shuō)一直用的位置式PID,從來(lái)沒(méi)在具體項(xiàng)目中用過(guò)增量式PID,感覺(jué)兩者沒(méi)啥區(qū)別呀?
于是跟他討論了一番,不由得讓人深思~
1
“萬(wàn)能”的PID
PID是一種非常經(jīng)典的控制類算法,憑著它的簡(jiǎn)單易用在工程上得到了廣泛的應(yīng)用,并且影響力也是極高,那為什么說(shuō)其簡(jiǎn)單易用呢?
可以說(shuō)只要你對(duì)PID的主要的參數(shù)對(duì)系統(tǒng)的影響理解得足夠好,完全可以通過(guò)手動(dòng)試湊的方式來(lái)獲得一套合適的PID參考,所以對(duì)一些非控制類的工程師應(yīng)用起來(lái)也是非常友好的。
當(dāng)然還有一個(gè)非常重要的原因,PID算法對(duì)大部分系統(tǒng)穩(wěn)定性、魯棒性以及可靠性都非常的高,有調(diào)試PID控制算法經(jīng)驗(yàn)的朋友應(yīng)該都有類似的感覺(jué),即便根據(jù)經(jīng)驗(yàn)隨便給系統(tǒng)一套參數(shù)都可以到達(dá)一個(gè)不錯(cuò)的控制效果。
所以在很多人眼里這算法就是"萬(wàn)能的",適應(yīng)的場(chǎng)景也非常的廣泛,然而自古有一種規(guī)律"熊掌和魚(yú)不可以兼得",PID算法雖然適應(yīng)性非常廣泛,對(duì)于處理一些特定的應(yīng)用場(chǎng)景,或許其并不會(huì)最優(yōu)的解決辦法。
基于大家在實(shí)際應(yīng)用中各種各樣的需求,曾經(jīng)一個(gè)發(fā)展涌現(xiàn)了非常的PID的變種,也就是對(duì)PID算法在特定的應(yīng)用場(chǎng)景進(jìn)行優(yōu)化、或者與其他一些控制方法進(jìn)行結(jié)合,以便達(dá)到相應(yīng)控制場(chǎng)景下的不錯(cuò)控制效果,比如微分先行PID、PID與智能控制的算法的結(jié)合等等。
當(dāng)然如果PID算法實(shí)在無(wú)法滿足需求了,那也不能勉強(qiáng),就只能考慮尋找另外更為匹配的控制策略,比如現(xiàn)在非常流行的自抗擾控制技術(shù)等等。
2
PID的理解
PID算法主要就是三項(xiàng),比例(P)-積分(I)-微分(D),在連續(xù)的時(shí)間域內(nèi)的表達(dá)式如下:
從上面的公式可以看出PID算法是一個(gè)非常純粹的數(shù)學(xué)表達(dá)式,既然是數(shù)學(xué)表達(dá)式那必然可以通過(guò)數(shù)學(xué)的方式進(jìn)行分析,拉式變換一下,獲得傳遞函數(shù),然后采用控制理論分析方法,結(jié)合被控對(duì)象分析其對(duì)動(dòng)態(tài)系統(tǒng)的穩(wěn)定性、準(zhǔn)確性以及快速性進(jìn)行分析,從而達(dá)到性能上的最優(yōu)解,這個(gè)控制系統(tǒng)的設(shè)計(jì)過(guò)程不是本文重點(diǎn),暫時(shí)就不進(jìn)行展開(kāi)了。
還記得最開(kāi)始了解這個(gè)算法的時(shí)候,有一句話非常相信的彰顯其魅力所在:P-I-D分別代表著當(dāng)前、過(guò)去和未來(lái)。P對(duì)當(dāng)前誤差的抑制作用;I對(duì)歷史誤差的累積控制,以便消除靜態(tài)誤差;D根據(jù)誤差的變化率進(jìn)行補(bǔ)償,從表達(dá)式也非常容易從根本上理解這幾句話。
3
數(shù)字PID
在前面跟大家簡(jiǎn)單描述了連續(xù)域內(nèi)的PID算法表達(dá)式,而連續(xù)域中該算法需要通過(guò)相應(yīng)的模擬電路來(lái)進(jìn)行實(shí)現(xiàn),特別是一些沒(méi)有數(shù)字芯片的嵌入式系統(tǒng)是經(jīng)??梢?jiàn)的。
但隨著數(shù)字系統(tǒng)的應(yīng)用,特別是單片機(jī)系統(tǒng),數(shù)字PID更加得到廣泛的應(yīng)用,被大部分人所熟知的兩種數(shù)字PID,分別是位置式PID和增量式PID。
大部分的教材都會(huì)描述著兩種形式的數(shù)字PID,然而這些教材一上來(lái)就介紹位置式PID與歷史狀態(tài)相關(guān),過(guò)去會(huì)對(duì)現(xiàn)在的控制輸出產(chǎn)生影響,而增量式PID僅僅只與最近的幾次誤差數(shù)據(jù)相關(guān)。
如下是位置式PID表達(dá)式:
而增量式PID的形式則可以通過(guò)位置式進(jìn)行如下表達(dá)式處理得到:
如下便可以得到增量式的表達(dá)式:
這樣看來(lái)增量式PID只與最近的兩次誤差有關(guān)系,不會(huì)存在累積誤差的問(wèn)題,說(shuō)來(lái)增量式PID必然是更好的,那為何還要介紹位置式PID呢?
也有伙計(jì)在自己的程序中使用增量式PID的表達(dá)式,畢竟增量式PID其輸出僅僅只是控制量的增量,最后還是需要把輸出量進(jìn)行累積,這與位置式根本沒(méi)啥區(qū)別。
于是很多初學(xué)者,甚至一些用PID多年的工程師對(duì)此都抱有一絲疑問(wèn)。
其實(shí)這兩種數(shù)字PID的應(yīng)用場(chǎng)景是有區(qū)別的,增量式PID控制輸出的僅僅只是控制量的增量,其主要是應(yīng)用在執(zhí)行機(jī)構(gòu)帶有積分部件的被控對(duì)象,而位置式PID其輸出的是實(shí)際的控制量,則用于不帶積分環(huán)節(jié)的執(zhí)行機(jī)構(gòu)。
當(dāng)然如果在一些不帶積分環(huán)節(jié)的執(zhí)行結(jié)構(gòu)系統(tǒng)中你執(zhí)意要使用增量PID的形式也無(wú)傷大雅,只是最后用數(shù)字積分進(jìn)行處理后輸出,其與位置式PID式?jīng)]有差異,增量式PID的優(yōu)勢(shì)并沒(méi)有展現(xiàn),因?yàn)檎嬲龁为?dú)使用增量式PID的執(zhí)行機(jī)構(gòu)的積分環(huán)節(jié)是連續(xù)的,這是數(shù)字離散的方式無(wú)法比擬的。