動力學主要研究作用於物體的力與物體運動的關系。
車輛動力學模型一般用於分析車輛的平順性和車輛操縱的穩定性。
對於車來說,研究車輛動力學,主要是研究車輛輪胎及其相關部件的受力情況。
比如縱向速度控制,通過控制輪胎轉速實現;
橫向航向控制,通過控制輪胎轉角實現。
正常情況下,車輛上的作用力沿着三個不同的軸分布:
縱軸上的力包括驅動力和制動力,以及滾動阻力和拖拽阻力作滾擺運動;
橫軸上的力包括轉向力、離心力和側風力,汽車繞橫軸作俯仰運動;
立軸上的力包括車輛上下振盪施加的力,汽車繞立軸作偏擺或轉向運動。
無論是LQR或是MPC控制,都需要有車輛的模型作為基礎。
動力學模型
-
小角度側偏角
-
勻速
-
不考慮環境因素
-
設e1為橫向偏差,e2為航向角偏差,
進而得:
其中
-
其中:
LQR 理論是現代控制理論中發展最早也最為成熟的一種狀態空間設計法。特別可貴的是,LQR可得到狀態線性反饋的最優控制規律,易於構成閉環最優控制。
LQR 最優設計是指設計出的狀態反饋控制器 K 要使二次型目標函數 J 取最小值,而 K 由權矩陣 Q 與 R 唯一決定,故此 Q、R 的選擇尤為重要。
而且 Matlab 的應用為 LQR 理論仿真提供了條件,更為我們實現穩、准、快的控制目標提供了方便。
線性二次調節器(Linear Quadratic Regulator 或LQR)是基於模型的控制器,它使用車輛的狀態來使誤差最小化。
Apollo 使用 LQR 進行橫向控制。橫向控制包含四個組件:
橫向誤差
橫向誤差的變化率
朝向誤差
朝向誤差的變化率
變化率與導數相同,我們用變量名上面的一個點來代表。
我們稱這四個組件的集合為X,這個集合X捕獲車輛的狀態。除了狀態之外,該車有三個控制輸入:轉向、加速和制動。我們將這個控制輸入集合稱為U。
我們考慮有如下離散線性系統:
為了達到上述效果,定義代價函數:
其中x為狀態量,u為控制量,Q為狀態權重矩陣,R為控制權重矩陣,
為最終狀態權重矩陣,N為到達最終狀態的控制序列數。
其中K即為通過迭代求解黎卡提方程得到的等效閉環反饋矩陣。
至此,LQR算法求解過程可以總結為:
-
令P等於最終狀態權重矩陣;
-
迭代黎卡提方程求出新的P;
-
當兩次P的差值足夠小時,計算反饋矩陣K;
-
根據反饋矩陣K獲取最優控制量u;
采用《Apollo控制算法之汽車動力學模型》一文中的模型,代入AD、BD、
到以上算法對應各項,因模型中的CD項為常量,在LQR求解完成后加入即可獲得最終所需的系統控制量。
-
另外參見:
https://blog.csdn.net/heyijia0327/article/details/39270597