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