www.gusucode.com > control 案例程序 matlab源码代码 > control/ConstrainNoiseAmplificationEvaluatedWithALoopOpeningExample.m

    %% Constrain Noise Amplification Evaluated with a Loop Opening  
% Create a requirement that constrains the amplification of the variance
% from the analysis point |AP2| to the output |y| of the following control system,
% measured with the outer loop open.      
%%
% 
% <<../tuninggoal5b.png>>
% 

%% 
% Create a model of the system. To do so, specify and connect the numeric
% plant models |G1| and |G2|, and the tunable controllers |C1| and |C2|.
% Also specify and connect the |AnalysisPoint| blocks |AP1| and |AP2| that mark
% points of interest for analysis and tuning. 
G1 = tf(10,[1 10]);
G2 = tf([1 2],[1 0.2 10]);
C1 = tunablePID('C','pi');
C2 = tunableGain('G',1);
AP1 = AnalysisPoint('AP1');
AP2 = AnalysisPoint('AP2');
T = feedback(G1*feedback(G2*C2,AP2)*C1,AP1);  

%% 
% Create a tuning requirement that constrains the noise amplification from
% the implicit input associated with the analysis point, |AP2|, to the output |y|. 
Req = TuningGoal.Variance('AP2','y',0.1); 

%%
% This constraint limits the amplification to a factor of 0.1.  

%% 
% Specify that the transfer function from |AP2| to |y| is evaluated with
% the outer loop open when tuning to this constraint. 
Req.Openings = {'AP1'}; 

%%
% Use |systune| to tune the free parameters of |T| to meet the tuning requirement
% specified by |Req|. You can then validate the tuned control system against
% the requirement using |viewSpec(Req,T,Info)|.