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

    %% Display Block Values of Tuned Control System Model  
% Tune the following control system using |systune|, and display the values
% of the tunable blocks.  
%
% <<../showtunable1.png>>
%
% The control structure includes a PI controller |C| and a tunable low-pass
% filter in the feedback path. The plant |G| is a third-order system.

%% 
% Create models of the system components and connect them together to create
% a tunable closed-loop model of the control system.
s = tf('s');
num = 33000*(s^2 - 200*s + 90000);
den = (s + 12.5)*(s^2 + 25*s + 63000);
G = num/den;

C0 = tunablePID('C','pi');
a = realp('a',1);
F0 = tf(a,[1 a]);
X = AnalysisPoint('X');

T0 = feedback(G*X*C0,F0);
T0.InputName = 'r';
T0.OutputName = 'y';

%%
% |T0| is a |genss| model that has two tunable blocks, the PI controller,
% |C|, and the parameter, |a|. |T0| also contains the switch block |X|.

%% 
% Create a tuning requirement that forces the output |y| to track the input
% |r|, and tune the system to meet that requirement.
Req = TuningGoal.Tracking('r','y',0.05);
[T,fSoft,~] = systune(T0,Req);

%%
% |systune| finds values for the tunable parameters that optimally meet
% the tracking requirement. The output |T| is a |genss| model with the same
% Control Design Blocks as |T0|. The current values of those blocks are
% the tuned values.

%% 
% Examine the tuned values of the tunable blocks of the control system.
showTunable(T)

%%
% |showTunable| displays the values of the tunable blocks only. If you use
% |showBlockValue| instead, the display also includes the switch block |X|.