LQR控制算法及matlab/simulink仿真
目錄
- 1. LQR控制算法介紹
- 1.1 全狀態反饋控制
- 1.2 LQR控制推導
- 2. 倒立擺模型仿真
- 2.1 倒立擺狀態空間方程推導
- 2.2 開環仿真
- 2.3 閉環LQR仿真
- 2.4 LQR對比仿真
1. LQR控制算法介紹
1.1 全狀態反饋控制
??首先回顧一下全狀態反饋控制器的模型:
??假設一個線性系統的狀態空間方程表示為:
??在此,我們需要設計一個狀態反饋控制器:
??使得該線性系統達到期望的穩定性能。將 u=-kx 帶入到狀態空間方程可得:
??由上式可知,引入狀態反饋后,線性系統的傳遞函數的極點為行列式 A-Bk 的特征值。通過配置反饋矩陣 k ,可以使得系統達到所期望的狀態。
??那么如何選取傳遞函數的極點使系統的性能最好以及矩陣 k 如何計算?這就需要引入LQR控制了。
1.2 LQR控制推導
??LQR的目標就是找到一組控制量,使得同時滿足狀態量足夠小(系統達到穩定狀態),控制量足夠小(控制量盡量小)。
??引入代價函數:
??其中,Q和R是需要設計的半正定矩陣和正定矩陣。
??代價函數 J 需要達到最小值,那么在 t 趨近于無窮時,狀態向量 x(t) 肯定趨近于0,即是達到了系統穩態;同理,t 趨近于無窮時,控制向量 u(t) 也會趨近于0,意味著,隨著時間的推移,需要對系統施加的控制量會越來越小,意味著使用最小的控制量使得系統達到了最終控制目標。
??那么Q和R矩陣的取值如何確定呢?
??一般來說,為了方便觀察各個系統狀態量,Q和R選取對角陣。Q矩陣的某一個元素值增大,意味著這個元素值作用的系統狀態量將以更快的速度衰減到0,比如,Q11 選取較大的值,那么 x11 將會很快衰減到0;另外一方面,R矩陣的某一個元素值增大,意味著這個元素值作用的控制量減小,控制器執行更少的動作,系統的狀態衰減將變慢。所以,Q和R矩陣的選取要根據實際應用場景。
??推導過程:
??LQR控制結構圖為:
2. 倒立擺模型仿真
??本文以下仿真內容是對up主DR_CAN講解內容的復現。
??視頻鏈接:https://www.bilibili.com/video/BV1RW411q7FDshare_source=copy_web
??建議先觀看視頻學習。
2.1 倒立擺狀態空間方程推導
2.2 開環仿真
??圖中x1積分模塊初始值設置為5,表示初始角度為5°;仿真時間1s。
??圖中三條曲線分別代表x1,x2,u即角度,角速度,輸入。倒立擺模型建立在小角度近似的基礎上,故當角度增大到一定程度時,模型失效,對應波形圖中x1和x2一直保持發散的趨勢。
2.3 閉環LQR仿真
??根據模型的A和B矩陣及自行設置的Q和R矩陣,在matlab命令行窗口利用lqr函數計算K矩陣。
??根據K矩陣元素值構建閉環simulink模型。
??引入狀態反饋后,x1和x2最終保持收斂,達到穩定狀態。
2.4 LQR對比仿真
??更改Q和R矩陣,重新計算K矩陣。
??將兩個閉環模型分別封裝成三輸出的Subsysytem,進行對比仿真。
??仿真時間3s。
??黃色曲線代表Q=[100 0;0 1],R=0.01的仿真結果,藍色曲線代表Q=[1 0;0 1],R=100的仿真結果。黃色曲線的x1和x2收斂速度更快,說明黃色曲線更關注收斂速度;藍色曲線的u值更小且變化比較平滑,說明藍色曲線更關注能耗問題。兩條曲線最終都實現了狀態的收斂即角度和角速度為零。
??如果本文對您有所幫助,麻煩一鍵三連,謝謝!
總結
以上是生活随笔為你收集整理的LQR控制算法及matlab/simulink仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搞深度学习框架的那帮人,不是疯子,就是骗
- 下一篇: scara机器人dh参数表_机器人之DH