📄 ex8_2.m
字号:
A=[0,1,0,0; -5000,-100/3,500,100/3; 0,-1,0,1; 0,100/3,-4,-60];
B=[0; 25/3; 0; -1]; C=[0,0,1,0]; D=0; G=[-1; 0; 0; 0];
Q=diag([5000,0,50000,1]); R=0.001;
Xi=7e-4; Theta=1e-8;
W=[Q,zeros(4,1); zeros(1,4),R];
V=[Xi*G*G',zeros(4,1); zeros(1,4),Theta];
[Af,Bf,Cf,Df]=lqg(A,B,C,D,W,V);
Gc=zpk(ss(Af,Bf,Cf,Df))
G=ss(A,B,C,D); G_c=feedback(G*Gc,1); step(G_c),
[m,p,w]=bode(G); [m1,p1]=bode(G*Gc,w);
figure
subplot(211), semilogx(w,20*log10(m(:)),w,20*log10(m1(:)),':')
subplot(212), semilogx(w,p(:),w,p1(:),':')
[Gm,Pm,Wcg,Wcp]=margin(G*Gc); [Gm,Pm,Wcg,Wcp]
rho=[100,10,1,0.1,0.01,0.001]; marg=[];
G=ss(A,B,C,D); y=[]; m=[]; p=[];
w=logspace(0,4); t=0:.005:0.5;
for i=1:length(rho)
W=[Q,zeros(4,1); zeros(1,4),rho(i)*R];
[Af,Bf,Cf,Df]=lqg(A,B,C,D,W,V);
Gc=ss(Af,Bf,Cf,Df);
G_o=G*Gc; G_c=feedback(G_o,1);
y=[y, step(G_c,t)]; [m1,p1]=bode(G_o,w);
m=[m,m1(:)]; p=[p,p1(:)];
[Gm,Pm,Wcg,Wcp]=margin(G_o);
marg=[marg; [Gm,Pm,Wcg,Wcp]];
end
plot(t,y), figure
subplot(211); semilogx(w,20*log10(m));
subplot(212); semilogx(w,p);
marg
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -