📄 lqr_control.txt
字号:
///////////////////////////////////////////////////////////////////////////////////
%LQR控制器性能分析
clc;
clear all;
A=[-0.0191,-0.0008,0.0170,-0.3371,0.3839,0,0,-9.7924;
0.0010,-0.0349,-0.0017,-0.4032,-0.3381,0.1168,9.7777,0.0322;
0.0136,-0.0017,-0.2994,-0.0257,0.0237,0,0.5374,-0.5859;
0.0130,-0.2290,0,-10.6199,-3.0470,-0.0333,0,0;
0.0405,0.0024,-0.0026,0.5281,-1.8394,-0.0015,0,0;
0.0020,0.0039,0.0060,-1.8554,-0.5412,-0.3487,0,0;
0,0,0,1,-0.0033,0.0598,0,0;
0,0,0,0,0.9985,0.0549,0,0];
B=[5.2424,-10.3456,1.0793,0;
-0.3885,-1.0820,-10.3713,4.7239;
-87.0103,-0.7293,0.0755,0;
7.5007,-27.2884,-156.4425,-1.0690;
-1.5019,27.0900,-4.7239,-0.1857;
17.7373,-4.8969,-27.9728,-12.9304;
0,0,0,0;
0,0,0,0];
C=[0 0 0 0 0 0 1 2];
D=[0 0 0 0];
sys0=ss(A,B,C,D);
Q=diag([1 1 1 1 1 1 1 1]);
%Q=diag([50 50 50 50 50 50 50 50]);
R=diag([1 1 1 1]);
%R=diag([0.01 0.01 0.01 0.01]);
K2=lqr(A,B,Q,R);
A2=A-B*K2;
s2=ss(A2,B,C,0);
[y,t,x]=step(s2);
y1=y(:,1);
y2=y(:,2);
y3=y(:,3);
y4=y(:,4);
plot(t,y1,'.',t,y2,'-.',t,y3,t,y4,'--');
title('Q= diag([1 1 1 1 1 1 1 1]);R=diag([1 1 1 1])跃响应曲线')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -