开发者说 | Apollo控制算法之汽车动力学模型和LQR控制
參考:https://mp.weixin.qq.com/s?__biz=MzI1NjkxOTMyNQ==&mid=2247486444&idx=1&sn=6538bf1fa74429600d8fa10f4f766a58&chksm=ea1e199edd699088aee4b3c72404649751c60a9901ab71421f64e7125759765193bb4827aa15&scene=0&xtrack=1
https://mp.weixin.qq.com/s?__biz=MzI1NjkxOTMyNQ==&mid=2247486554&idx=1&sn=4e3655d0adf0ba126b49d03df63bc64a&chksm=ea1e1e28dd69973eab7f08b2c520d4258877a7dcff8533646d2282bf5cb98a7999e9794a236f&scene=0&xtrack=1
動(dòng)力學(xué)主要研究作用于物體的力與物體運(yùn)動(dòng)的關(guān)系。
車輛動(dòng)力學(xué)模型一般用于分析車輛的平順性和車輛操縱的穩(wěn)定性。
對于車來說,研究車輛動(dòng)力學(xué),主要是研究車輛輪胎及其相關(guān)部件的受力情況。
比如縱向速度控制,通過控制輪胎轉(zhuǎn)速實(shí)現(xiàn);
橫向航向控制,通過控制輪胎轉(zhuǎn)角實(shí)現(xiàn)。
正常情況下,車輛上的作用力沿著三個(gè)不同的軸分布:
縱軸上的力包括驅(qū)動(dòng)力和制動(dòng)力,以及滾動(dòng)阻力和拖拽阻力作滾擺運(yùn)動(dòng);
橫軸上的力包括轉(zhuǎn)向力、離心力和側(cè)風(fēng)力,汽車?yán)@橫軸作俯仰運(yùn)動(dòng);
立軸上的力包括車輛上下振蕩施加的力,汽車?yán)@立軸作偏擺或轉(zhuǎn)向運(yùn)動(dòng)。
無論是LQR或是MPC控制,都需要有車輛的模型作為基礎(chǔ)。
動(dòng)力學(xué)模型
小角度側(cè)偏角
勻速
不考慮環(huán)境因素
設(shè)e1為橫向偏差,e2為航向角偏差,
進(jìn)而得:
其中
其中:
LQR 理論是現(xiàn)代控制理論中發(fā)展最早也最為成熟的一種狀態(tài)空間設(shè)計(jì)法。特別可貴的是,LQR可得到狀態(tài)線性反饋的最優(yōu)控制規(guī)律,易于構(gòu)成閉環(huán)最優(yōu)控制。
LQR 最優(yōu)設(shè)計(jì)是指設(shè)計(jì)出的狀態(tài)反饋控制器 K 要使二次型目標(biāo)函數(shù) J 取最小值,而 K 由權(quán)矩陣 Q 與 R 唯一決定,故此 Q、R 的選擇尤為重要。
而且 Matlab 的應(yīng)用為 LQR 理論仿真提供了條件,更為我們實(shí)現(xiàn)穩(wěn)、準(zhǔn)、快的控制目標(biāo)提供了方便。
線性二次調(diào)節(jié)器(Linear Quadratic Regulator 或LQR)是基于模型的控制器,它使用車輛的狀態(tài)來使誤差最小化。
Apollo 使用 LQR 進(jìn)行橫向控制。橫向控制包含四個(gè)組件:
橫向誤差
橫向誤差的變化率
朝向誤差
朝向誤差的變化率
變化率與導(dǎo)數(shù)相同,我們用變量名上面的一個(gè)點(diǎn)來代表。
我們稱這四個(gè)組件的集合為X,這個(gè)集合X捕獲車輛的狀態(tài)。除了狀態(tài)之外,該車有三個(gè)控制輸入:轉(zhuǎn)向、加速和制動(dòng)。我們將這個(gè)控制輸入集合稱為U。
我們考慮有如下離散線性系統(tǒng):
為了達(dá)到上述效果,定義代價(jià)函數(shù):
其中x為狀態(tài)量,u為控制量,Q為狀態(tài)權(quán)重矩陣,R為控制權(quán)重矩陣,為最終狀態(tài)權(quán)重矩陣,N為到達(dá)最終狀態(tài)的控制序列數(shù)。
其中K即為通過迭代求解黎卡提方程得到的等效閉環(huán)反饋矩陣。
至此,LQR算法求解過程可以總結(jié)為:
令P等于最終狀態(tài)權(quán)重矩陣;
迭代黎卡提方程求出新的P;
當(dāng)兩次P的差值足夠小時(shí),計(jì)算反饋矩陣K;
根據(jù)反饋矩陣K獲取最優(yōu)控制量u;
采用《Apollo控制算法之汽車動(dòng)力學(xué)模型》一文中的模型,代入AD、BD、到以上算法對應(yīng)各項(xiàng),因模型中的CD項(xiàng)為常量,在LQR求解完成后加入即可獲得最終所需的系統(tǒng)控制量。
另外參見:
https://blog.csdn.net/heyijia0327/article/details/39270597
總結(jié)
以上是生活随笔為你收集整理的开发者说 | Apollo控制算法之汽车动力学模型和LQR控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入研究Clang(四) Clang编译
- 下一篇: ES系列十六、集群配置和维护管理