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

    %% Sample Multiple Parameters in Tunable Model
%
%% 
% Create a model with a pole at |s = a| and a gain of |b*c|, where |a|, |b|,
% and |c| are tunable scalars.
a = realp('a',1);  
b = realp('b',3);  
c = realp('c',1);
G = tf(b*c,[1 a]);
%%
% Pick 5 samples for |a| and 3 samples for |(b,c)| pairs. Evaluate
% |G| over the corresponding 5-by-3 grid of |(a,b,c)| combinations.
as = 0.8:0.1:1.2;
bs = 2:4;
cs = [0.5 1 1.5];
Gs = sampleBlock(G,'a',as,{'b','c'},{bs,cs});
%%
% Grouping the values for |b| and |c| in cell arrays causes |sampleBlock|
% to treat them as the |(b,c)| pairs, (2,0.5), (3,1), and (1,5). |Gs| is a
% 5-by-3 array of state-space models, in which |a| varies along the first
% dimension and  |(b,c)| varies along the second dimension.  Thus, for
% example, |Gs(:,:,3,2)| corresponds to |a| = 1, |(b,c)| = (3,1). 
%
% A step plot shows a set of responses for each of the three |(b,c)| pairs.
% Each set contains a response for each of the five |a| values.
stepplot(Gs)
%%
%
% If you do not group the values, |sampleBlock| replaces all values
% independently, resulting in a 5-by-3-by-3 model array.  
GsInd = sampleBlock(G,'a',as,'b',bs,'c',cs);
size(GsInd)
%%
% For example, in |GsInd|, |Gs(:,:,3,2,1)| is a model with |a| = 1, |b| =
% 3, and |c| = 0.5.