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

    %% Study Parameter Variation by Sampling Tunable Model
% This example shows how to sample a parametric model of a second-order
% filter across a grid of parameter values using
% |sampleBlock|.
%%
% Consider the second-order filter represented by: 
%%
% 
% $$F\left( s \right) = \frac{{\omega _n^2}}{{{s^2} + 2\zeta {\omega _n}s + \omega _n^2}}.$$
% 
%% 
% Sample this filter at varying values of the damping constant $\zeta$ and
% the natural frequency $\omega_{n}$.  Create a parametric model of the
% filter by using tunable elements for $\zeta$ and
% $\omega_{n}$.
wn = realp('wn',3);
zeta = realp('zeta',0.8);
F = tf(wn^2,[1 2*zeta*wn wn^2])
%%
% |F| is a |genss| model with two tunable Control Design Blocks, the
% |realp| blocks |wn| and |zeta|.  The blocks |wn| and |zeta| have initial
% values of 3 and 0.8, respectively. 
%%
% Sample |F| over a 2-by-3 grid of (|wn|, |zeta|) values.
wnvals = [3;5];
zetavals = [0.6 0.8 1.0];
Fsample = sampleBlock(F,'wn',wnvals,'zeta',zetavals);
%%
% Here, |sampleBlock| samples the model independently over the two
% $\omega_{n}$ values and three $\zeta$ values. Thus, |Fsample| is a 2-by-3 array
% of state-space models.  Each entry in the array is a state-space model
% that represents |F| evaluated at the corresponding (|wn|, |zeta|) pair.
% For example, |Fsample(:,:,2,3)| has |wn| = 5 and |zeta| = 1.0.
%%
% Set the |SamplingGrid| property of the model array to help keep track of
% which set of parameter values corresponds to which entry in the array. To
% do so, create a grid of parameter values that matches the dimensions of
% the array. Then, assign these values to |Fsample.SamplingGrid| in a
% structure with the parameter names.
[wngrid,zetagrid] = ndgrid(wnvals,zetavals);
Fsample.SamplingGrid = struct('wn',wngrid,'zeta',zetagrid);
%%
% The |ndgrid| command produces the full 2-by-3 grid of (|wn|, |zeta|)
% combinations. When you display |Fsample| in the command window, the
% parameter values in |Fsample.SamplingGrid| are displayed along with the
% each transfer function in the array.  The parameter information is also
% available in response plots.  For instance, examine the step response of
% |Fsample|.
stepplot(Fsample)
%%
% The step response plots show the variation in the natural frequency and
% damping constant across the six models in the array.  When you click on
% one of the responses in the plot, the datatip includes the corresponding |wn| and
% |zeta| values as specified in |Fsample.SamplingGrid|.