ex8_22.m

来自「反馈控制系统设计与分析(matlab程序)」· M 代码 · 共 33 行

M
33
字号
num=1; den=[1,0,0]; G=tf(num,den); nW1=[0.5,2]; dW1=[1,1];
[a,b,c,d]=tf2ss(num,den); 
p1=-0.1; a_shift=a-p1*eye(size(a));
S_shift=mksys(a_shift,b,c,d);
beta=100; alpha=1.5; w1c=3; zeta1=0.7; zeta2=0.7;
w1=[beta*[alpha 2*zeta1*w1c*sqrt(alpha) w1c*w1c];...
     [beta 2*zeta2*w1c*sqrt(beta) w1c*w1c]];
TSS_shift=augtf(S_shift,w1,[],[1,0,0; 0,0,100]);
[gg,ss_Fopt_shift]=hinfopt(TSS_shift);

[af_shift,bf,cf,df]=branch(ss_Fopt_shift); 
af=af_shift+p1*eye(size(af_shift));
Gc=zpk(ss(af,bf,cf,df))

G_o=G*Gc; G_c=feedback(G_o,1);
step(G_c), 
figure, ngrid('new'), nichols(G_o), axis([-360,0,-40,40])

w1c0=[1:10]; f1=figure; f2=figure; ngrid('new'); 
for i=1:length(w1c0), w1c=w1c0(i);
   w1=[beta*[alpha 2*zeta1*w1c*sqrt(alpha) w1c*w1c];...
[beta 2*zeta2*w1c*sqrt(beta) w1c*w1c]];
   TSS_shift=augtf(S_shift,w1,[],[1,0,0; 0,0,100]);
   [gg,ss_Fopt_shift]=hinfopt(TSS_shift);
   [af_shift,bf,cf,df]=branch(ss_Fopt_shift); 
   af=af_shift+p1*eye(size(af_shift)); 
   Gc=ss(af,bf,cf,df); 
   G_o=G*Gc; G_c=feedback(G_o,1);
   figure(f1); step(G_c); hold on
   figure(f2); nichols(G_o)
end
figure(f2), axis([-360,0,-40,40]);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?