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