www.gusucode.com > robust 案例源码程序 matlab代码 > robust/ReductionWithFocusOnParticularFrequencyBandExample.m

    %% Reduction with Focus on Particular Frequency Band
% Reduce a 4th-order system to a second-order approximation with emphasis
% on the frequency band 10 rad/s - 100 rad/s. Consider the following system.
%%
sys = tf(1,[1 0.5 1]) + tf(100*[1/10 1],[1 10 1000]); 
bode(sys) 
%% 
% To focus the model-reduction algorithm on the higher-frequency dynamics,
% specify a function with a bandpass profile.
s = tf('s'); 
w1 = (s+1)/(s/10+1)/(s/60+1)*(s/600+1); 
bodemag(w1) 
%%
% The plot confirms that the weighting function |w1| has the desired
% profile, peaking between 10 rad/s and 100 rad/s.  To perform the
% reduction, specify the inverse of this profile as the output weight,
% using the |'Weights'| option of |balancmr|.
weight = {1/w1,1}; 
wrsys = balancmr(sys,2,'Weights',weight); 
%%
% Compare the result with a second-order model obtained without the weighting.
rsys = balancmr(sys,2);
bode(sys,rsys,wrsys) 
legend('Original','Unweighted','Weighted')
%%
% The model obtained with the weighting function provides a better match
% for the dynamics in the frequency band 10 rad/s - 100 rad/s.