www.gusucode.com > robust 案例源码程序 matlab代码 > robust/UncertainSystemBoundingAnLTIArrayExample.m
%% Uncertain System Bounding an LTI Array % % Consider a third order transfer function with an uncertain gain, filter % time constant and a lightly damped flexible mode. This model is used to % represent a physical system from which frequency response data is acquired. % Copyright 2015 The MathWorks, Inc. gain = ureal('gain',10,'Perc',20); tau = ureal('tau',.6,'Range',[.42 .9]); wn = 40; zeta = 0.1; usys = tf(gain,[tau 1])*tf(wn^2,[1 2*zeta*wn wn^2]); sysnom = usys.NominalValue; parray = usample(usys,30); om = logspace(-1,2,80); parrayg = frd(parray,om); bode(parrayg) %% % The frequency response data in |parray| represents 30 experiments % performed on the system. The command |ltiarray2uss| is used to generate % an uncertain model, |umod|, based on the frequency response data. Initially % an input multiplicative uncertain model is used to characterize the % collection of 30 frequency responses. First and second order input % multiplicative uncertainty weight are calculated from the data. [umodIn1,wtIn1,diffdataIn] = ltiarray2uss(sysnom,parrayg,1); [umodIn2,wtIn2,diffdataIn] = ltiarray2uss(sysnom,parrayg,2); bodemag(wtIn1,'b-',wtIn2,'g+',diffdataIn,'r.',om) title('Input Multiplicative Uncertainty Model Using ltiarray2uss') legend('1st order','2nd order','difference','Location','SouthEast') %% % Alternatively, an additive uncertain model is used to characterize the % collection of 30 frequency responses. [umodAdd1,wtAdd1,diffdataAdd] = ltiarray2uss(sysnom,parrayg,1,'Additive'); [umodAdd2,wtAdd2,diffdataAdd] = ltiarray2uss(sysnom,parrayg,2,'Additive'); bodemag(wtAdd1,'b-',wtAdd2,'g+',diffdataAdd,'r.',om) title('Additive Uncertainty Model Using ltiarray2uss') legend('1st order','2nd order','difference')