LQR (線性二次調解器)理論是現代控制理論中發展最早也最為成熟的一種狀態空間設計法。特別可貴的是,LQR可得到狀態線性反饋的最優控制規律,易于構成閉環最優控制。
LQR 最優設計是指設計出的狀態反饋控制器 K 要使二次型目標函數 J 取最小值,而 K 由權矩陣 Q 與 R 唯一決定,故此 Q、R 的選擇尤為重要。
MPC(模型預測控制)是一種先進的過程控制方法,在滿足一定約束條件的前提下,被用來實現過程控制,它的實現依賴于過程的動態模型(通常為線性模型)。
在控制時域(一段有限時間)內,它主要針對當前時刻進行優化,但也考慮未來時刻,求取當前時刻的最優控制解,然后反復優化,從而實現整個時域的優化求解。
本文由社區開發者——呂伊鵬撰寫,對MPC與LQR進行了較為詳細的比較,希望這篇文給感興趣的同學帶來更多幫助。
Apollo中用到了PID、MPC和LQR三種控制器,其中,MPC和LQR控制器在狀態方程的形式、狀態變量的形式、目標函數的形式等有諸多相似之處,因此結合自己目前了解到的信息,將兩者進行一定的比較。
MPC(Model Predictive Control,模型預測控制)和LQR(Linear–Quadratic Regulator,線性二次調解器) 在狀態方程、控制實現等方面,有很多相似之處,但也有很多不同之處,如工作時域、最優解等,基于各自的理論基礎,從研究對象、狀態方程、目標函數、求解方法等方面,對MPC和LQR做簡要對比分析。
本文主要參考內容:
【1】龔建偉,姜巖,徐威.無人駕駛車輛模型預測控制[M].北京理工大學出版社, 2014.
【2】Model predictive control-Wikipedia.
【3】Linear–quadratic regulator-Wikipedia.
【4】Inverted Pendulum: State-Space Methods for Controller Design.
【5】王金城. 現代控制理論[M]. 化學工業出版社, 2007。
LQR的研究對象是現代控制理論中以狀態空間方程形式給出的線性系統。MPC的研究對象可以是線性系統,也可以是非線性系統,只不過為了某些需求,如時效性,計算的便捷,操控性等,一般會將非線性系統轉換為線性系統進行計算。非線性系統的線性化可參考上一篇文章。
Apollo中,LQR和MPC控制器都選用的單車動力學模型作為研究對象,單車動力學模型為非線性系統,但LQR和MPC控制器的目的是為了求最優控制解,在具體的優化求解時,均通過線性化方法將狀態方程轉化為線性方程進行求解,所以,可以說Apollo中LQR和MPC控制器的研究對象均為線性系統。
LQR的狀態方程多以微分方程的形式給出,如:
是一個連續線性系統,在計算過程中需要轉換為如公式3的離散線性系統。
MPC的狀態方程可以為線性系統,可以為非線性系統,非線性系統形如下:
線性系統如公式3所示:
但LQR和MPC在計算求解時基本都是基于離散線性方程計算的。公式1可以很方便的轉化為公式3的形式。
按照維基百科的說法:
LQR在一個固定的時域上求解,且一個時域內只有一個最優解,而MPC在一個逐漸消減的時域內(in a receding time window)求解最優解,且最優解經常更新。
可以結合MPC的滾動優化,以及圖1進行理解:
圖1 MPC和LQR的工作時域
針對同一工作時域[t,t+N],LQR在該時域中,有唯一最優控制解u?(t),而MPC僅在t時刻有最優解u?(t),但它會計算出一個控制序列U(t) ,并僅將序列的第一個值u?(t)作為控制量輸出給控制系統,然后在下一采樣時間結合車輛當前狀況求取下一個最優控制解u?(t+1),這就是MPC所謂的滾動優化。
這么做的目的是為了使控制效果在一定時間內可期,并且能根據控制效果盡早調整控制變量,使實際狀態更切合期望狀態。
此外,LQR的工作時域可以拓展到無限大,即可以求取無限時域的最優控制解。而MPC只針對有限時域。
優化求解問題一般離不開目標函數的設計。
LQR的目標函數的一般形式為:
其中,終端狀態,
正定的終端加權矩陣,x為狀態變量,多為各種誤差,u為控制變量,Q為半正定的狀態加權矩陣,R為正定的控制加權矩陣,實際應用中,Q、R多為對角矩陣。
MPC的目標函數的一般形式為:
其中,
從形式上可以看出,LQR的目標函數為積分形式,MPC的目標函數為求和形式,但其實都是對代價的累計。
兩者第一部分均為終端代價函數,當系統對終端狀態要求極嚴的情況下才添加,一般情況下可省略。
跟蹤代價,表示跟蹤過程中誤差的大小,控制代價,表示對控制的約束或要求等。
正如工作時域所述,針對同一工作時域,LQR有唯一最優控制解,也就是在該控制周期內,LQR只進行一次計算。
而MPC滾動優化的思想,使其給出該時域內的一組控制序列對應不同的采樣時刻(采樣周期和控制周期不一定相同),但是只將該序列的第一個值輸出給被控系統,作為該時刻的最優控制解。
因此,對于工作時域[t,t+N],LQR只有唯一解,對于線性MPC,本質是凸優化問題,只有唯一解;但非線性MPC,可能會有N個local optimal。
最優控制解的求取多基于目標函數進行,取線性約束下的目標函數的極值為最優控制解。對于系統為線性,目標函數為狀態變量和控制變量的二次型函數的線性二次性問題,最優解具有統一的解析表達式。
Apollo中的MPC將優化問題轉化為二次規劃問題,利用二次規劃求解器進行求解。橫向控制中用的是LQR調節器,它通過假設控制量u(t)不受約束,利用變分法求解。
此外,LQR對整個時域進行優化求解,且求解過程中假設控制量不受約束,但是實際情況下,控制量是有約束的。
而MPC通常在比整個時域更小的時間窗口中解決優化問題,因此可能獲得次優解,且對線性不作任何假設,它能夠處理硬約束以及非線性系統偏離其線性化工作點的遷移,這兩者都是MPC的缺點。
-
線性系統
+關注
關注
0文章
41瀏覽量
14560 -
Apollo
+關注
關注
5文章
326瀏覽量
18294 -
LQR
+關注
關注
1文章
6瀏覽量
3107
原文標題:開發者說 | Apollo代碼學習—MPC與LQR比較
文章出處:【微信號:Apollo_Developers,微信公眾號:Apollo開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論