⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hinf2dof.m

📁 国外经典书籍MULTIVARIABLE FEEDBACK CONTROL-多变量反馈控制 的源码
💻 M
字号:
function K=hinf2dof(Gs, Tref)
%HINF2DOF  synthesizes the H_inf 2-DOF controller in (9.80) 
% Uses MATLAB RCAST toolbox
% Usage: K=hinf2dof(Gs, Tref);
% INPUTS:  Shaped plant Gs and reference model Tref
% OUTPUT: Two degrees-of-freedom controller K
% 
% Coprime factorization of Gs 
[As,Bs,Cs,Ds] = ssdata(Gs);
[Ar,Br,Cr,Dr] = ssdata(Tref);
[nr,nr] = size(Ar); [lr,mr] = size(Dr);
[ns,ns] = size(As); [ls,ms] = size(Ds);
Rs = eye(ls)+Ds*Ds.'; Ss = eye(ms)+Ds'*Ds;
A1 = (As - Bs*inv(Ss)*Ds'*Cs); 
R1 = Cs'*inv(Rs)*Cs; Q1 = Bs*inv(Ss)*Bs'; 
% [Z1, Z2, fail, reig_min] = ric_schr([A1' -R1; -Q1 -A1]); Zs = Z2/Z1;
% Alt. Robust Control toolbox: 
[Z1,Z2,eig,zerr,wellposed,Zs] = aresolv(A1',Q1,R1);
%
% Choose rho=1 (Designer's choice) and
% build the generalized plant P in (9.87)
% 
rho=1;
A = blkdiag(As,Ar);
B1 = [zeros(ns,mr) ((Bs*Ds')+(Zs*Cs'))*inv(sqrtm(Rs));
      Br zeros(nr,ls)];
B2 = [Bs;zeros(nr,ms)];
C1 = [zeros(ms,ns+nr);Cs zeros(ls,nr);rho*Cs -rho*rho*Cr];
C2 = [zeros(mr,ns+nr);Cs zeros(ls,nr)];
D11 = [zeros(ms,mr+ls);zeros(ls,mr) sqrtm(Rs);-rho*rho*Dr rho*sqrtm(Rs)];
D12 = [eye(ms);Ds;rho*Ds];
D21 = [rho*eye(mr) zeros(mr,ls);zeros(ls,mr) sqrtm(Rs)];
D22 = [zeros(mr,ms);Ds];
B = [B1 B2]; C = [C1;C2]; D = [D11 D12;D21 D22];
P = ss(A,B,C,D);
% Alternative: Use sysic to generate P from Figure 9.21 
% but may get extra states, since states from Gs may enter twice. 
%
% Gamma iterations to obtain H-infinity controller
%
[l1,m2] = size(D12); [l2,m1] = size(D21); 
nmeas = l2; ncon = m2; gmin = 1; gmax = 5; gtol = 0.01;
[K, Gnclp, gam] = hinfsyn(P, nmeas, ncon, gmin, gmax, gtol);
% Alt. Robust toolbox, use command: hinfopt
%
% [K, Gnclp, gam] = hinfopt(P, nmeas, ncon, gtol, gmax, gmin)

⌨️ 快捷键说明

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