再線性控制器中講到:
舉例說明(線性控制器中的一個例子)博客中有說明
在matlab中:使用lqr求解K1、K2
這里希望角度(即x1)能迅速變化,所以Q矩陣中Q11為100,並沒有關心角速度(dot角度)變化的情況所以Q22為1,也不關心能量U的變化,所以R=0.01。
最終求解到K1 = -100.4988; K2 = -17.9164
根據系統的狀態方程(在右側已列出),在simulink中搭建模型:(將求解到的K1、K2寫入到模型中的K1、 K2中)
從右往左看第一個積分1/s雙擊進入設置初始角度值(假如設成5),K1,K2帶入lqr(A,B,Q,R)求得的值
仿真結果:
相對當R值很大Q矩陣中的值小時,更關心能量的影響(R大時穩定所需要的能量小)
Q=[1, 0 ; 0 ,1]
R = 100;
自行去測試;最終兩中情況的對比如下(紫色是R= 100的情況)
最下面是能量的曲線,可以發現能量消耗要比之前低得多。
最上面的是角度變化曲線,相比於第一種,角度變化到穩定時刻要慢一些。