簡單的說,PID博而不專,因為物理意義還算明確,對很多系統都能上去調幾下子,不論有沒有模型,有沒有輸入輸出數據。
而一旦有了模型,乃至有了輸入輸出數據,除了三階(包括)以下的LTI系統,對大多數系統來說,PID效果只能算可以接受。一般都能找到專門適應於某一小類系統的控制演算法,比PID效果好;但這些演算法往往專而不博,換到另外一個系統上可能會出大問題。
其實很多時候,PID只是底層,或曰內環,先把某個系統穩定住,或是改變下其動態。然後中層、上層再引入其它控制演算法。當然,好幾層都是PID的也挺常見的。
另外,PID做些小改動,在實際中用的也不少。其實最簡單的PID也是要考慮飽和的。但同時,很多控制系統,比如電力的,乃至粒子加速器的,等等,用的都是很奇怪的控制演算法,當然不是PID或改進PID,效果也都很好。據我所知,這很多實際中在用的,沒人也很難分析其效能(穩定性啥的),但實際中用著還不錯。
這裏有個很奇怪現象,很多領域都有:現實中在用的,往往很難分析為什麽效果好;論文中在寫的,往往很難用在實際中。我知道的一個,就不具體說了,某控制演算法,是法國人在工廠裏搞出來的,後來全世界出名,在很多500強的公司在用,沒出過問題(爆炸什麽的),但就是沒法證明其穩定性。後來有人竟然為了證明穩定性,把這個演算法改了一下。。。這不就是一個人鑰匙在別處丟了,可偏偏跑到路燈下來找,僅僅因為路燈下面有亮麽。。。
相當一部份學術圈的人,全世界各國的,靠在這個方向發論文來糊口,至今仍是一個非常hot的方向(當然在工程中確實效果很好)。說了之後,豈不是得罪這麽多人。
扯遠了。。。
---
其實如果仔細想想,控制器的本質是被控物件輸出(也就是控制器出入)跟控制輸出的函數對映關系。其實從這個角度來看,時變非線性的控制器其實參數空間最大,線性時不變的算是很受限制的了,而PID是則線上性時不變的基礎上限制到三個自由度。視具體系統,有的就夠了,有的甚至只要兩個自由度(PD或PI),有的一個就行(P)。
當然,實際中,PID其實要加很多trick。比如考慮到執行環節的動態,防止過飽和,考慮傳感器的動態等等,其實就不再是限制到三個自由度了,乃至已經是時變非線性的了。而且最簡單的,串級PID,其實綜合起來的話,已經不只是三個自由度了。另一個方面,有的高階系統無法分離,也就無法用串級的話,那PID就很難調到很好的效果了。
PID的限制多了去了。比如時延。個人預測,時延是未來控制系統的一個大問題,因為是物理上無法克服的,而全球、萬物互聯又是大趨勢。有人用預估器等,當然也就不是原來的PID了。但預估器也要知道時延的大小或範圍吧。現實中在用的一個,是改變了系統的拓撲結構(如果只有控制器跟系統,則沒有拓撲結構可言;有了網絡之後,比如在遙操作時,則存在拓撲結構了),可以做到對時延非常魯棒。你說是PID吧,已經面目全非了,而且原初的PID再調也調不到這個效果;你說不是吧,PID也還是其中一個環節。
PID也可以用魯棒控制那一套來分析和設計啊,你說是魯棒呢還是PID呢。也可以用最佳化那一套來調參啊。也可以做到分工況(模糊等)啊,自適應啊,等等。就是各個模組湊在一起。這在工程中是普遍的,也無可厚非。直到出現一個更寬廣的理論,可以更簡潔而具有包容性。但當然,在沒有更好的框架之前,PID加上各種trick,不失為好的工程方案。但你不能說這就到頭了,誰知道未來會不會出現控制界的卡爾曼呢?
這裏插一句,電梯的曲線,很多感覺不舒服,有的超調、振蕩非常明顯,還有的加速沒最佳化,其實就是沒調好。PID好好調,加上小trick,足夠了。還有一點,就是最好加上個監測是不是有人被卡住的環節。
話說回來,到底什麽樣的曲線算好呢?其實不存在最優的,比如有的對速度、加速度有限制,有的則對能耗比較側重,有的一定不能有超調等等,有的則是響應越快越好。當然,所有的這些都是在功率限制之下。為什麽說這個呢?因為再偵錯時,有用機器學習或最佳化演算法調參的,需要有量化最佳化指標或是比較曲線優劣,但這個指標或評價標準卻很難確定,但同時卻又非常重要。很多指標,二次型,絕對值,等等。但選取哪個?如何評判指標?有沒有指標的指標?問題多著呢。。。
物理學中,有兩種情況需要重視,一是實驗中有出乎意料現象,但找不到理論解釋;一是理論有出乎意料的預測,但實驗中尚未觀察到。這兩種情況,都可能帶來物理學的大變革。當然,有很多出乎意料的現象,是可以用已存在的理論解釋的,只是人們沒認識到;同時,很多理論的預測是錯的。
對應地說,有時候工程中,在PID上修修補補,或是幾個現有方法的組合,效果很好。這時候可能背後有更簡單的理論,可以作為更簡潔的框架。比如卡爾曼之前,很多人在現有的濾波基礎上增增減減,效果也不錯,直到卡爾曼濾波出現。不恰當的比喻,這就像地心說時,有的觀察很難解釋,用地心說加上修修補補也能解釋,但很復雜;一改成日心說,就簡單地多了。
而就理論而言,很多新理論,聲稱自己效果好,但大部份其實不如已有的。可另外一方面,人類的控制理論,不大可能到今天就為止了吧?PID也才有不到一百年的歷史。這些新理論中,只有極少的,可以真正帶來變革。現在覺得一個有可能,不能確定。只能拭目以待。
---
在采用常規PID控制器可能會遇到什麽問題? - 自動化 的回答:
PID比較適用的是低階LTI系統,特別是三階以下的。確切的說,單入單出、三階一下、LTI系統。(PID提供三個參數自由度,視具體情況,有的系統三個已經足夠,有的甚至只需要兩個、乃至一個)。或是高階系統,但可以串級控制,或者本身就是縱向級聯系統。每一級都是三階以下的,每一級引出個反饋用PID控制。形象點,是深度系統。當然有時候,幾入幾出,耦合不是很強,也可以。
但十幾入十幾出以上的寬度系統,耦合強的話,那用PID調經常是很難的。還有無法串級的高階系統也是問題。
有的系統需要自適應,比如地鐵的自動駕駛,每站上下人,所以每站質素會變;在比如雲台不能隨便換掛載。
時延系統。即使常數時延,預估器太脆弱,加大反饋又有飽和限制。而如果只知道時延的大概範圍,就更難處理了。
對精度要求很高的系統,一般是variance降低多少就可以獲得多少效益的系統。特別是階數一高,輸入輸出一多(且帶著強耦合),往往光靠PID則不行。
---
有較精確的模型,且對控制效能要求較高時。
非線性較強,時變系統。
多入多出系統。特別是變量較多,或耦合較強時。解耦方法比較難調。
有約束的系統。其實所有系統都有約束,至少有個飽和環節吧,比如馬達最高轉速。但很多時候,可以基本忽略。如果不能忽略,PID就無能無力了。
這裏岔開一句,其實狀態估計就是個反饋控制器,目標是讓狀態估計的變異數最小。Kalman濾波,針對LTI系統,高斯白雜訊是最優的,但Kalman濾波是個線性時變的。如果換成LTI的(當然包括PID),就不是最優了。
等等。