RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Apollo代碼學(xué)習(xí)—MPC與LQR比較

YB7m_Apollo_Dev ? 來源:lp ? 2019-03-22 17:08 ? 次閱讀

LQR (線性二次調(diào)解器)理論是現(xiàn)代控制理論中發(fā)展最早也最為成熟的一種狀態(tài)空間設(shè)計法。特別可貴的是,LQR可得到狀態(tài)線性反饋的最優(yōu)控制規(guī)律,易于構(gòu)成閉環(huán)最優(yōu)控制。

LQR 最優(yōu)設(shè)計是指設(shè)計出的狀態(tài)反饋控制器 K 要使二次型目標(biāo)函數(shù) J 取最小值,而 K 由權(quán)矩陣 Q 與 R 唯一決定,故此 Q、R 的選擇尤為重要。

MPC(模型預(yù)測控制)是一種先進的過程控制方法,在滿足一定約束條件的前提下,被用來實現(xiàn)過程控制,它的實現(xiàn)依賴于過程的動態(tài)模型(通常為線性模型)。

在控制時域(一段有限時間)內(nèi),它主要針對當(dāng)前時刻進行優(yōu)化,但也考慮未來時刻,求取當(dāng)前時刻的最優(yōu)控制解,然后反復(fù)優(yōu)化,從而實現(xiàn)整個時域的優(yōu)化求解。

本文由社區(qū)開發(fā)者——呂伊鵬撰寫,對MPC與LQR進行了較為詳細(xì)的比較,希望這篇文給感興趣的同學(xué)帶來更多幫助。

Apollo中用到了PID、MPC和LQR三種控制器,其中,MPC和LQR控制器在狀態(tài)方程的形式、狀態(tài)變量的形式、目標(biāo)函數(shù)的形式等有諸多相似之處,因此結(jié)合自己目前了解到的信息,將兩者進行一定的比較。

MPC(Model Predictive Control,模型預(yù)測控制)和LQR(Linear–Quadratic Regulator,線性二次調(diào)解器) 在狀態(tài)方程、控制實現(xiàn)等方面,有很多相似之處,但也有很多不同之處,如工作時域、最優(yōu)解等,基于各自的理論基礎(chǔ),從研究對象、狀態(tài)方程、目標(biāo)函數(shù)、求解方法等方面,對MPC和LQR做簡要對比分析。

本文主要參考內(nèi)容:

【1】龔建偉,姜巖,徐威.無人駕駛車輛模型預(yù)測控制[M].北京理工大學(xué)出版社, 2014.

【2】Model predictive control-Wikipedia.

【3】Linear–quadratic regulator-Wikipedia.

【4】Inverted Pendulum: State-Space Methods for Controller Design.

【5】王金城. 現(xiàn)代控制理論[M]. 化學(xué)工業(yè)出版社, 2007。

LQR的研究對象是現(xiàn)代控制理論中以狀態(tài)空間方程形式給出的線性系統(tǒng)。MPC的研究對象可以是線性系統(tǒng),也可以是非線性系統(tǒng),只不過為了某些需求,如時效性,計算的便捷,操控性等,一般會將非線性系統(tǒng)轉(zhuǎn)換為線性系統(tǒng)進行計算。非線性系統(tǒng)的線性化可參考上一篇文章。

Apollo中,LQR和MPC控制器都選用的單車動力學(xué)模型作為研究對象,單車動力學(xué)模型為非線性系統(tǒng),但LQR和MPC控制器的目的是為了求最優(yōu)控制解,在具體的優(yōu)化求解時,均通過線性化方法將狀態(tài)方程轉(zhuǎn)化為線性方程進行求解,所以,可以說Apollo中LQR和MPC控制器的研究對象均為線性系統(tǒng)。

LQR的狀態(tài)方程多以微分方程的形式給出,如:

是一個連續(xù)線性系統(tǒng),在計算過程中需要轉(zhuǎn)換為如公式3的離散線性系統(tǒng)。

MPC的狀態(tài)方程可以為線性系統(tǒng),可以為非線性系統(tǒng),非線性系統(tǒng)形如下:

線性系統(tǒng)如公式3所示:

但LQR和MPC在計算求解時基本都是基于離散線性方程計算的。公式1可以很方便的轉(zhuǎn)化為公式3的形式。

按照維基百科的說法:

LQR在一個固定的時域上求解,且一個時域內(nèi)只有一個最優(yōu)解,而MPC在一個逐漸消減的時域內(nèi)(in a receding time window)求解最優(yōu)解,且最優(yōu)解經(jīng)常更新。

可以結(jié)合MPC的滾動優(yōu)化,以及圖1進行理解:

圖1 MPC和LQR的工作時域

針對同一工作時域[t,t+N],LQR在該時域中,有唯一最優(yōu)控制解u?(t),而MPC僅在t時刻有最優(yōu)解u?(t),但它會計算出一個控制序列U(t) ,并僅將序列的第一個值u?(t)作為控制量輸出給控制系統(tǒng),然后在下一采樣時間結(jié)合車輛當(dāng)前狀況求取下一個最優(yōu)控制解u?(t+1),這就是MPC所謂的滾動優(yōu)化。

這么做的目的是為了使控制效果在一定時間內(nèi)可期,并且能根據(jù)控制效果盡早調(diào)整控制變量,使實際狀態(tài)更切合期望狀態(tài)。

此外,LQR的工作時域可以拓展到無限大,即可以求取無限時域的最優(yōu)控制解。而MPC只針對有限時域。

優(yōu)化求解問題一般離不開目標(biāo)函數(shù)的設(shè)計。

LQR的目標(biāo)函數(shù)的一般形式為:

其中,終端狀態(tài),

正定的終端加權(quán)矩陣,x為狀態(tài)變量,多為各種誤差,u為控制變量,Q為半正定的狀態(tài)加權(quán)矩陣,R為正定的控制加權(quán)矩陣,實際應(yīng)用中,Q、R多為對角矩陣。

MPC的目標(biāo)函數(shù)的一般形式為:

其中,

從形式上可以看出,LQR的目標(biāo)函數(shù)為積分形式,MPC的目標(biāo)函數(shù)為求和形式,但其實都是對代價的累計。

兩者第一部分均為終端代價函數(shù),當(dāng)系統(tǒng)對終端狀態(tài)要求極嚴(yán)的情況下才添加,一般情況下可省略。

跟蹤代價,表示跟蹤過程中誤差的大小,控制代價,表示對控制的約束或要求等。

正如工作時域所述,針對同一工作時域,LQR有唯一最優(yōu)控制解,也就是在該控制周期內(nèi),LQR只進行一次計算。

而MPC滾動優(yōu)化的思想,使其給出該時域內(nèi)的一組控制序列對應(yīng)不同的采樣時刻(采樣周期和控制周期不一定相同),但是只將該序列的第一個值輸出給被控系統(tǒng),作為該時刻的最優(yōu)控制解。

因此,對于工作時域[t,t+N],LQR只有唯一解,對于線性MPC,本質(zhì)是凸優(yōu)化問題,只有唯一解;但非線性MPC,可能會有N個local optimal。

最優(yōu)控制解的求取多基于目標(biāo)函數(shù)進行,取線性約束下的目標(biāo)函數(shù)的極值為最優(yōu)控制解。對于系統(tǒng)為線性,目標(biāo)函數(shù)為狀態(tài)變量和控制變量的二次型函數(shù)的線性二次性問題,最優(yōu)解具有統(tǒng)一的解析表達(dá)式。

Apollo中的MPC將優(yōu)化問題轉(zhuǎn)化為二次規(guī)劃問題,利用二次規(guī)劃求解器進行求解。橫向控制中用的是LQR調(diào)節(jié)器,它通過假設(shè)控制量u(t)不受約束,利用變分法求解。

此外,LQR對整個時域進行優(yōu)化求解,且求解過程中假設(shè)控制量不受約束,但是實際情況下,控制量是有約束的。

而MPC通常在比整個時域更小的時間窗口中解決優(yōu)化問題,因此可能獲得次優(yōu)解,且對線性不作任何假設(shè),它能夠處理硬約束以及非線性系統(tǒng)偏離其線性化工作點的遷移,這兩者都是MPC的缺點。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 線性系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    14698
  • Apollo
    +關(guān)注

    關(guān)注

    5

    文章

    342

    瀏覽量

    18443
  • LQR
    LQR
    +關(guān)注

    關(guān)注

    1

    文章

    6

    瀏覽量

    3144

原文標(biāo)題:開發(fā)者說 | Apollo代碼學(xué)習(xí)—MPC與LQR比較

文章出處:【微信號:Apollo_Developers,微信公眾號:Apollo開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    LQR線性二次調(diào)制系統(tǒng)的記錄

    LQR 控制本blog主要記錄LQR 線性二次調(diào)制系統(tǒng)的,學(xué)習(xí)教程為兩個B站的教學(xué)視頻。狀態(tài)空間4-LQR控制 MATLAB官方教程視頻鏈接: [原創(chuàng)翻譯]狀態(tài)空間4-
    發(fā)表于 08-30 08:00

    如何對Apollo2.5 CANBUS進行全面調(diào)試?

    前言:CANBUS是Apollo需要根據(jù)你的底盤寫代碼的地方,感覺也是Apollo最難調(diào)試的部分。這部分首先要選好CAN卡,因為不是Apollo推薦的CAN卡,驅(qū)動程序和對應(yīng)接口,可能
    發(fā)表于 08-30 06:02

    Apollo Heritage版音頻接口附帶的插件

     Universal Audio在去年推出的Apollo Heritage版音頻接口提供了5個或10個獲獎的UAD插件,包括Teletronix?、Fairchild?、Pultec?、Helios
    發(fā)表于 01-24 08:59

    MPC8240與MPC106的性能比較

    Performance Differences between the MPC8240 and the MPC106 Top Changwatchai and Roy Jenevein
    發(fā)表于 04-01 22:04 ?13次下載

    MPC8240與MPC106的性能比較

    This paper discusses some of the major performance differences between the MPC8240Õsmemory
    發(fā)表于 07-01 12:28 ?8次下載

    MPC5XX系列芯片比較

    MPC5XX系列芯片性能比較
    發(fā)表于 05-10 16:36 ?38次下載
    <b class='flag-5'>MPC</b>5XX系列芯片<b class='flag-5'>比較</b>

    一級倒立擺的LQR控制與遺傳算法下的LQR控制算法

    LQR的算法與遺傳算法下的LQR算法相結(jié)合,得到最優(yōu)化下的轉(zhuǎn)態(tài)空間反饋矩陣
    發(fā)表于 10-28 11:41 ?2次下載

    MPC82G516 MCU的LCM示例代碼

    MPC82G516 MCU的LCM示例代碼分享
    發(fā)表于 07-01 10:34 ?0次下載
    <b class='flag-5'>MPC</b>82G516 MCU的LCM示例<b class='flag-5'>代碼</b>

    MPC82系列MCU的ADC(模數(shù)轉(zhuǎn)換)采樣代碼

    MPC82系列MCU的ADC(模數(shù)轉(zhuǎn)換)采樣代碼文件下載
    發(fā)表于 07-01 10:32 ?0次下載
    <b class='flag-5'>MPC</b>82系列MCU的ADC(模數(shù)轉(zhuǎn)換)采樣<b class='flag-5'>代碼</b>

    MPC82系列MCU的鍵掃描和斷電示例代碼

    MPC82系列MCU的鍵掃描和斷電示例代碼免費下載。
    發(fā)表于 07-01 10:28 ?0次下載
    <b class='flag-5'>MPC</b>82系列MCU的鍵掃描和斷電示例<b class='flag-5'>代碼</b>

    MPC82系列MCU的PCA捕獲模式示例代碼

    MPC82系列MCU的PCA捕獲模式示例代碼免費下載。
    發(fā)表于 07-01 10:27 ?0次下載
    <b class='flag-5'>MPC</b>82系列MCU的PCA捕獲模式示例<b class='flag-5'>代碼</b>

    MPC82G516 MCU的串行UART示例代碼

    MPC82G516 MCU的串行UART示例代碼
    發(fā)表于 06-30 17:24 ?0次下載
    <b class='flag-5'>MPC</b>82G516 MCU的串行UART示例<b class='flag-5'>代碼</b>

    MPC82G516 MCU的ISP函數(shù)示例代碼

    MPC82G516 MCU的ISP函數(shù)示例代碼免費下載。
    發(fā)表于 06-28 17:36 ?0次下載
    <b class='flag-5'>MPC</b>82G516 MCU的ISP函數(shù)示例<b class='flag-5'>代碼</b>

    LQR控制算法之最優(yōu)控制

    LQR算法是最優(yōu)控制中經(jīng)典的算法,而且LQR是一個應(yīng)用較多的控制算法,所以在這里我以最優(yōu)控制為起點介紹LQR控制算法。 注意LQR控制算法的基礎(chǔ)是你要有現(xiàn)代控制理論的基礎(chǔ),需要知
    的頭像 發(fā)表于 05-19 16:33 ?4085次閱讀
    <b class='flag-5'>LQR</b>控制算法之最優(yōu)控制

    Matlab/yalmip工具編寫自動駕駛模型預(yù)測控制(MPC)代碼

    在無人駕駛的運動控制中,模型預(yù)測控制(MPC)算法得到了廣泛使用,龔建偉《無人駕駛車輛模型預(yù)測控制》一書對MPC算法進行了細(xì)致的講解,并提供了源代碼,非常值得參考 和學(xué)習(xí)。但書中提及
    發(fā)表于 06-06 09:38 ?1次下載
    Matlab/yalmip工具編寫自動駕駛模型預(yù)測控制(<b class='flag-5'>MPC</b>)<b class='flag-5'>代碼</b>
    RM新时代网站-首页