现代控制理论 之 LQR控制
生活随笔
收集整理的這篇文章主要介紹了
现代控制理论 之 LQR控制
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
clear,clc;
% 系統(tǒng)參數(shù)
m=2;
g=9.81;
I=1;
L=0.5;% 狀態(tài)空間模型
A = [0 1 0 0;0 0 -m*g*L^2/I 0;0 0 0 1;0 0 m*g*L/I 0]
B = [0;(I-m*L^2)/(I*m);0;L/I]
C = [1 0 0 0;0 0 1 0]
D=[0;0]
sys_ss = ss(A,B,C,D)% 可控可觀性判斷
cont = ctrb(sys_ss)
if rank(cont)==4disp("該系統(tǒng)可控!")
elsedisp("該系統(tǒng)不可控!")
end
obser = obsv(sys_ss)
if rank(obser)==4disp("該系統(tǒng)可觀!")
elsedisp("該系統(tǒng)不可觀!")
enddisp("-------------------------------")% LQR
Q = C'*C;
Q(1,1) = 5000;
Q(3,3) = 100;
R = 1;
K = lqr(A,B,Q,R) %狀態(tài)反饋控制增益矩陣% 新的狀態(tài)空間模型
Ac = [(A-B*K)]
Bc = [B]
Cc = [C]
Dc = [D]
sys_cl = ss(Ac,Bc,Cc,Dc)
% 可控可觀性判斷
cont = ctrb(sys_cl)
if rank(cont)==4disp("該系統(tǒng)可控!")
elsedisp("該系統(tǒng)不可控!")
end
obser = obsv(sys_ss)
if rank(obser)==4disp("該系統(tǒng)可觀!")
elsedisp("該系統(tǒng)不可觀!")
end
t = 0:0.01:5;
r =0.2*ones(size(t));
[y,t,x]=lsim(sys_cl,r,t);
[AX,H1,H2] = plotyy(t,y(:,1),t,y(:,2),'plot');
set(get(AX(1),'Ylabel'),'String','cart position (m)')
set(get(AX(2),'Ylabel'),'String','pendulum angle (radians)')
title('Step Response with LQR Control')
總結
以上是生活随笔為你收集整理的现代控制理论 之 LQR控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Quartus破解成功,但出现不支持某些
- 下一篇: java学生管理系统项目实训报告