LQR控制算法及代码实践
生活随笔
收集整理的這篇文章主要介紹了
LQR控制算法及代码实践
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景
假設有一個線性系統能用狀態向量的形式表示成:
設計一個狀態反饋控制器:
u=?Kxu=?Kx u=?Kx
則此時狀態方程可以寫為:
由于讓系統穩定的條件是矩陣Acl的特征值的實部均為負數,因此我們可以手動選擇幾個滿足上述條件的特征值,然后反解出K,從而得到控制器。
那么問題來了,我們該如何選擇特征值,才能讓控制器的控制效果最好呢?現在我們定義一種代價函數:
其中,Q和R是兩個對角參數矩陣,Q為半正定矩陣, R為正定矩陣。分別決定了狀態向量 x 和輸入向量 u 的重要性。顯然,J是一個二次型函數,這也是LQR中“Q”的由來。
我們希望的是在滿足系統穩定的前提下,通過設計合適的K,讓代價函數J最小。
下面我們來分析代價函數的意義。
代價函數的意義
參考這一篇文章:
鏈接: link
概括來說就是:調節Q的大小可以控制系統狀態收斂的快慢;調節R的大小可以控制讓系統達到穩態所需輸入的大小;
Apollo2.0 LQR控制算法解讀
車輛動力學模型的推導可以看這篇:
鏈接: link
4. 上圖表示求出最佳轉角之后,只能保證(A-BK)x那部分達到穩態,所以還需要增加一個前饋控制量,試另一部分趨近于0.
4. 這個前饋控制量試可以通過縱向車速Vx和道路的半徑R計算得到
5. 最終的前輪轉角的控制量為最優狀態反饋控制量與前饋控制前輪轉角之和。計算的出前輪轉角經過上下限的限幅后進行輸出。
參考鏈接: link
link
總結
以上是生活随笔為你收集整理的LQR控制算法及代码实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用青龙面板自动化跑聚看点脚本
- 下一篇: 汉字编码