最優控制演算法例如LQR演算法,可以像PID一樣解決工程上的一般性控制問題嗎?

在車輛自動駕駛上應用了LQR演算法,但是基於了運動學模型,這是一個特例,想問在其他控制問題上,LQR可以推廣應用嗎?應用中會有哪些阻礙?


PID可以在不知道模型的情況下根據系統的輸入輸出來調參數。LQR的話需要知道系統的狀態空間的的參數才能解Riccati方程。在實際中精確的辨識系統的參數比較困難。

另外LQR用的是狀態反饋,需要能測量所有的狀態,當然了可以通過構建觀測器來估計不可測量的狀態。PID只需要系統的輸出即可。

只要系統能控,LQR肯定有解,PID不一定有解。


之前做過桁架的LQR控制+ Kalman 濾波,目的是振動抑制。我的體驗是,LQR 控制需要有很精確的模型狀態方程,而且對於桁架而言,「阻尼」量的實驗標定非常重要。一旦狀態方程中的矩陣估計不準確,控制效果會大打折扣。桁架為例,狀態空間估計得好,振動可以衰減90%,估計一般,就只有50%了。所以,LQR 控制很依賴模型估計的準確性,適用於容易建立動力學模型的控制對象。


PID控制器是目前工程領域應用最廣泛的,其原因在於工程師們用起來很容易,不需要建模等數學物理方法。再加上目前優良的伺服性能,使得我們幾乎可以無腦式的用PID演算法,只要調調參數就行。但據調查表明,80%的PID控制器,其參數並未調到最優。

當基於狀態空間的現代控制理論(包括最優控制演算法等)建立後,學術界一片雀躍,認為我們已經掌握住了極其厲害的控制工具,能神擋殺神,佛擋殺佛。幾十年前,由於電子技術等的限制,這些學術界寄予厚望的演算法沒有得到很好地運用。到現在,技術上已不是問題,但人們發現,工程界對這些高大上的演算法並不買賬,依然還是我行我素地使用PID演算法,其本質原因在於,PID演算法不需要建模和系統辨識,而其他的演算法,這方面需要深厚的功底。

但這並不意味這PID演算法是萬能的,其他基於建模的演算法在現實中一無所用。舉個例子,對於多自由度的機械臂,完成一般性運動,PID足夠了,但要完成高速高精度的運動,單獨的PID無能為力,一般還得基於動力學模型去加前饋補償。另外,傳統的機器人控制只要完成位置追蹤任務即可,現在的機器人由於與人接觸越來越多,需要人機協作地去完成任務(比如外骨骼),這樣就需要力控制和阻抗控制,而完成這些任務,單靠PID是完全不夠的,這就需要最優控制等基於系統動力學的演算法。


PID控制不依賴被控對象的數學模型只需要被控對象的輸入輸出數據,LQR控制是基於被控對象精確數學模型的控制方法,兩者不是一類的控制演算法。


在車輛自動駕駛上應用了LQR演算法

那我問你,你在車上運行了LQR演算法,解決了什麼問題?解決了前方一米處突然蹦出來一個人汽車該如何剎車以至於不撞人的問題嗎?顯然不是。所以問題來了,題目所說的「一般性控制問題」究竟指的什麼問題?假如你所指的問題是「對於一個近似線性、所有狀態可測的、輸入不受限的系統受到高斯白雜訊我該怎麼樣決定系統輸入以使得系統以最好最省的方式維持在平衡點附近」,那麼LQR顯然是可用的;反之,則不可以。

所以剩下的問題就在於你所指的「一般控制問題」能不能如此近似了。這個顯然仁者見仁智者見智了。此回答僅在於拋磚引玉,其他的回答可以從LQR真實用例和LQR的理論局限性展開。


最近正在做一個潛艇的控制項目,用的就是MPC和LQR。LQR這類演算法使用起來最大的難點就在於精確模型的建立,優勢在於能夠很好的處理控制中的各種約束問題。比如我正在做的項目,控制對象的精確模型是由研究所提供的,模型如下圖所示,每一項的參數都非常的多,全部都得依靠水動力實驗去測量得到。就此一項已經限制了LQR的使用範圍,目前用的較多的都是在航空航天等能夠不計成本去得到精確模型的對象上面。

對於一般的工業界使用,很少能夠有精確模型得到,因此在工業界應用最成功,最廣泛的也就是PID,滑模和預測控制了。


LQR最後求解CARE得到的是一個比例控制,在實際應用中考慮建模誤差,雜訊等等可能還是會加上I和(或)D環節。如果要是那種針對輸出誤差來靠經驗調節參數的PID控制器,那沒有系統狀態方程的話大多數現代控制理論里提到的基於模型(model based)的控制器都沒辦法設計。如果模型比較精確,可以嘗試一下MPC。


LQR 需要一個線性模型,並基於這個模型求最優的控制參數, 實際上等同於PD控制。 通過無腦調PID參數, 是可以弄出LQR的效果的。 事實上, LQR也需要無腦調參。 麻煩的是它還需要辨識系統參數。 在工程應用中, 優勢並不明顯, 增加了工作量, 也不一定減少無腦調參的這一步驟。

在實際中我碰到過的是, 一個非最小相位系統, 用PID可能會出現負調現象, 而用了LQR則完全避免了這個現象。 所以說, LQR有時候是值得一用的。


推薦閱讀:

Kalman Filter 卡爾曼濾波調參的實用方法和經驗有哪些?
為什麼非線性系統線性化一定要在平衡位置?
有哪些關於控制理論或應用(非線性控制、最優控制、估計、優化、機器人等等)方面的網路公開課推薦?
人工智慧這麼火熱,控制工程看得到未來嗎?
怎樣確定滑模變結構系統滑模面的參數?

TAG:自動控制 | 控制演算法 | 控制理論 | 卡爾曼濾波KalmanFilter | 最優控制 |