From: Ashgard on
Hey,

For a school project I'm trying to control an inverted wedge system. Now I'd like to compare the robustness properties of both controller which each other. So for robust performance I can use the robustperf(sys) command of matlab. Now, if I'm not mistaking, the input sys is the weighted closed loop interconnection.

For the first controller, I used the dksyn command on the weighted interconnection, cl, to obtain controller Kmu. So I can analyse the robust performance via robustperf( lft(cl,Kmu) ).

For the second controller I used a PI controller, Kpi. Can I now again use the command robustperf( lft(cl,Kpi) ) to analyse the robust performance?

For clarity I have included an example below. My question is: Is this correct or am I not allowed to do it this way?

Thanks for your help.
Bob

%% Example code for robust performance analysis

% uncertain system
k = ureal('k',1,'percentage',[-25 25]);
tau = ureal('tau',1,'percentage',[-25 25]);
G = tf(k,[tau 1]);

% weighted interconnection
wu = ss(1e-2);
ws = makeweight(1e8,20,.1);
systemnames = 'G wu ws';
inputvar = '[r;u]';
input_to_G = '[u]';
input_to_wu = '[u]';
input_to_ws = '[r-G]';
outputvar = '[wu;ws;r-G]';
cleanupsysic = 'yes';
cl = sysic;

% mu controller synthesis
opt = dkitopt('MixedMU','on');
[Kmu,clp,bnd,dkinfo] = dksyn(cl,1,1,opt);

% pi controller
s=tf('s');
Kpi = 50 * (1 + 1/(0.5*s));

% weighted cl
cl_mu = lft(cl,Kmu);
cl_pi = lft(cl,Kpi);

% robust performance analysis
[perfmarg_mu,wcu_mu,report_mu,info_mu] = robustperf(cl_mu);
[perfmarg_pi,wcu_pi,report_pi,info_pi] = robustperf(cl_pi);

% robust performance ssv
figure(1);clf;
semilogx(info_mu.MussvBnds, info_pi.MussvBnds)