📄 zuiyou2.m
字号:
clear all;
for i=0.01:1:1.01
A=[-0.2 0.5 0 0 0;0 -0.5 1.6 0 0;0 0 -14.3 85.8 0;0 0 0 -33.3 100;0 0 0 0 0];
B=[0;0;0;0;30];
C=[1 0 0 0 0];
D=zeros(1);
Q1=diag([i,0,0,0,0]);
Q2=1;
Q=i;
N=zeros(1);
x0=[1 1 1 1 1];
[K,S,E]=lqr(A,B,Q1,Q2,N);
sys=ss(A-B*K,B,C,D);
[K1,S1,E1]=lqry(sys,Q,Q2,N);
sys1=ss(A-B*K1,B,C,D);
[y,T,xt]=initial(sys,x0);
n=length(T);
for j=1:n
u(j,:)=-K(1,:)*(xt(j,:))';
end
[y1,T1,xt1]=initial(sys1,x0);
m=length(T1);
for j=1:m
u1(j,:)=-K1(1,:)*(xt1(j,:))';
end
figure(1)
subplot(211),
plot(T,xt)
hold on
title('状态控制器的的状态曲线')
xlabel('time-sec')
ylabel('value');
grid on;
hold on
subplot(212),
plot(T,y)
hold on
title('状态控制器的输出曲线')
xlabel('time-sec')
ylabel('value');
grid on;
hold on
figure(2)
subplot(211),
plot(T1,xt1)
title('输出控制器的状态曲线')
xlabel('time-sec')
ylabel('value');
grid on;
hold on
subplot(212),
plot(T1,y1)
hold on
title('输出控制器的输出曲线')
xlabel('time-sec')
ylabel('value');
grid on;
hold on
gtext('jkj')
end
A=[0,1,0;0,0,1;-1,-4,-6];
B=[0,0,1]';
C=[1,0,0];
D=0;
Q=1;
R=1;
K=lqry(A,B,C,D,Q,R);
Ac=A-B*K;
Bc=B*K1;Cc=C;Dc=1;
Step(Ac,Bc,Cc,Dc);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -