车辆控制知识总结(一):LQR算法
目錄
1 LQR簡介
2 現代控制理論基礎
2.1 狀態空間描述
2.2 線性定常系統的狀態空間描述框圖
2.3 線性系統連續系統的反饋控制
2.31 全狀態反饋控制器
3 LQR設計控制器的方法
3.1 什么是二次型
3.3 連續時間下的LQR調節器設計步驟
3.3.1 Q、R矩陣選取
3.3.2 求解Riccati方程得到矩陣P
3.3.3 計算反饋矩陣
3.3.4 計算控制量
3.4 離散時間下的LQR調節器的設計(重要!!)
3.41 推導
3.42 推導結果
3.43 離散lqr算法步驟:
轉載參考資料:
LQR:Linear Quadratic Regulator 線性二次型調節器_One.Wan的博客-CSDN博客_線性二次型調節器
【控制理論】離散及連續的LQR控制算法原理推導_CHH3213的博客-CSDN博客_lqr控制
1 LQR簡介
LQR:Linear Quadratic Regulator 線性二次型調節器,常用于車輛的橫向控制中。
那么,什么是LQR呢?
如果所研究的系統是線性的,且性能指標為狀態變量和控制變量的二次型函數,則最優控制問題稱為線性二次型問題。
而LQR,Linear Quadratic Regulator,即線性二次型調節器, 是求解線性二次型問題常用的求解方法。
LQR ,其對象是現代控制理論中以狀態空間形式給出的線性系統,而目標函數為對象狀態和控制輸入的二次型函數。
LQR最優設計是指設計出的狀態反饋控制器 K要使二次型目標函數J 取最小值,而 K由權矩陣Q 與 R 唯一決定,故此 Q、 R 的選擇尤為重要。
LQR理論是現代控制理論中發展最早也最為成熟的一種狀態空間設計法。特別可貴的是,LQR可得到狀態線性反饋的最優控制規律,易于構成閉環最優控制。
2 現代控制理論基礎
2.1 狀態空間描述
?
2.2 線性定常系統的狀態空間描述框圖
2.3 線性系統連續系統的反饋控制
經典控制理論中,我們依據描述對象輸入輸出行為的傳遞函數模型來設計控制器,因此只能用系統的可測量輸出作為反饋信號。
而現代控制理論則是用刻畫系統內部特征的狀態空間模型來描述對象,除了可測量的輸出信號外,還可以用系統的內部狀態來作為反饋信號。
根據可利用的信息是系統的輸出還是狀態,相應的反饋控制可分為輸出反饋和狀態反饋。
現代控制理論中,更多地使用狀態反饋,由于狀態反饋能提供更豐富的狀態信息和可供選擇的自由度,因而能使系統更容易獲得更為優異的性能。其實,輸出反饋是可以看做是部分狀態反饋。
2.31 全狀態反饋控制器
(1)設計一個狀態反饋控制器,如下圖所示:多了個K反饋環節,一般直接取u=-Kx;
?
(2)設計完反饋控制器的架構之后,下面要保證反饋系統的穩定性。
反饋系統穩定性的充要條件是系統閉環傳遞函數的所有極點均有負實部,即均在復頻域S平面的左側。
根據穩定性判定的條件,首先求閉環系統的傳遞函數。
為了書寫一致性,我們重寫系統狀態表達式將r替換成u:意思是最后實際是Y(s)/r(s);
?
可以得到系統的閉環傳遞函數的形式如式(6)所示,只需要分母表達式??梢娤到y傳遞的極點就是矩陣A ? BK的特征值。
因此,可以通過配置K矩陣 (r*n矩陣),使閉環系統達到我們期望的狀態。
問題是:當系統變量很多的時候,即使設計好了極點,但是矩陣K也不好計算。接下來開始引入LQR幫助求解K。
3 LQR設計控制器的方法
3.1 什么是二次型
在不指定優化標準的前提下,控制領域中的“最優”體現在“輸出能夠完全跟蹤控制,即在每一時刻輸出量與控制量完全一致”。實際過程并不是這樣完美的過程,每一時刻都會存在誤差。退而求其次,追求在整個工作時間的范圍內誤差最小,與軌跡誤差類似,我們研究狀態誤差。
因此,把整個工作時間內每一時刻狀態的誤差都累加起來,只要累加值更小,便會更加接近系統性能的期望。
1 首先,假設狀態向量x(t)的維度為1以及閉環系統穩定。
?
2. 擴充狀態變量到n個,則代價函數為:
?
類似的J的函數稱為二次型函數,變量的最高次數是2。
所有展開的函數最高次數為2的,這種類型的函數統稱為二次型函數。
3.2 二次型最優控制(注意:代價函數前面有公式加系數1/2)
3.3 連續時間下的LQR調節器設計步驟
3.3.1 Q、R矩陣選取
Q為半正定的狀態加權矩陣, R為正定的控制加權矩陣(注意這里),兩者通常取為對角陣。Q矩陣元素變大意味著希望狀態量能夠快速趨近于零;R矩陣元素變大意味著希望控制輸入能夠盡可能小,它意味著系統的狀態衰減將變慢。所以,Q、R的選取,要綜合看具體的實際應用場景來調節。
3.3.2 求解Riccati方程得到矩陣P
我們求解的前提是假定系統處于穩定狀態,此時的狀態反饋為 u(t)=-Kx(t);
將狀態方程代入到代價函數中
狀態方程:x ˙ ( t ) = ( A ? B K ) x ( t )
?
式(10)中A,B,Q,R 都是已知量,那么通過式(10)可以求解出 P(n×n維),式(10)就是著名的連續時間代數Riccati方程(CARE)。
3.3.3 計算反饋矩陣
根據P,可計算出反饋矩陣K=R-1BTP;
3.3.4 計算控制量
u=-Kx;
3.4 離散時間下的LQR調節器的設計(重要!!)
3.41 推導
首先,對狀態方程進行離散化,如下圖:Apollo是第二種
接著,以這個離散的系統進行dlqr推導,注意此時的代價函數略微不同,多了一項。
?
推導參考:
自動駕駛控制算法(四)離散LQR算法推導 - 知乎
基礎算法-LQR-離散時間有限邊界 | Henry-Z
3.42 推導結果
?
3.43 離散lqr算法步驟:
一般迭代個幾十步,P就不變了!!收斂了!!?
輸入A、B、Q、R、最大迭代次數N,以及精度,即P變化量多少時可以看做不變收斂了。
?
總結
以上是生活随笔為你收集整理的车辆控制知识总结(一):LQR算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bada 2D游戏编程之八——逐帧动画
- 下一篇: c语言算除法会把小数转成整数,在C语言中