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

    %% Control System Model With Both Numeric and Tunable Components  
% This example shows how to create a tunable model of a control system that
% has both fixed plant and sensor dynamics and tunable control components. 
%%
% Consider the the control system of the following illustration.
%
% <<../architecture.png>>
% 
% Suppose that the plant response is $G(s) = 1/(s + 1)^{2}$, and that the
% model of the sensor dynamics is $S(s) = 5/(s + 4)$. The controller $C$ is a
% tunable PID controller, and the prefilter $F = a/(s + a)$ is a low-pass
% filter with one tunable parameter, _a_.

%% 
% Create models representing the plant and sensor dynamics. 
% Because the plant and sensor dynamics are fixed, represent them using
% numeric LTI models.  
G = zpk([],[-1,-1],1);
S = tf(5,[1 4]);  

%% 
% To model the tunable components, use Control Design Blocks. Create a
% tunable representation of the controller _C_.
C = tunablePID('C','PID'); 

%%
% |C| is a |tunablePID| object, which is a Control Design Block with a
% predefined proportional-integral-derivative (PID) structure.  

%% 
% Create a model of the filter $F = a/(s + a)$ with one tunable parameter. 
a = realp('a',10); 
F = tf(a,[1 a]); 

%%
% |a| is a |realp| (real tunable parameter) object with initial value 10.
% Using |a| as a coefficient in |tf| creates the tunable |genss| model object
% |F|.  

%% 
% Interconnect the models to construct a model of the complete closed-loop
% response from _r_ to _y_.
T = feedback(G*C,S)*F 

%%
% |T| is a |genss| model object. In contrast to an aggregate model formed
% by connecting only numeric LTI models, |T| keeps track of the tunable
% elements of the control system. The tunable elements are stored in the
% |Blocks| property of the |genss| model object.  Examine the tunable elements of |T|. 
%% 
% 
T.Blocks 

%%
% When you create a |genss| model of a control system that has tunable
% components, you can use tuning commands such as |systune| to tune the
% free parameters to meet design requirements you specify.