Analyze Command-Line Batch Linearization Results Using Response Plots
This example shows how to plot and analyze the step response for
batch linearization results obtained at the command line. The term batch
linearization results refers to the ss
model array
returned by the slLinearizer
interface or
linearize
function. This array contains linearizations for
varying parameter values, operating points, or both, such as illustrated in Batch Linearize Model for Parameter Variations at Single Operating Point and
Vary Operating Points and Obtain Multiple Transfer Functions Using slLinearizer Interface. You can use the techniques illustrated in this example to analyze the frequency
response, stability, or sensitivity for batch linearization results.
Obtain Batch Linearization Results
Load the batch linearization results saved in
scd_batch_lin_results1.mat
.
The following code obtains linearizations of the watertank
model for four simulation snapshot times, t = [0 1 2 3]
. At each
snapshot time, the model parameters, A
and b
,
are varied. The sample values for A
are [10 20
30]
, and the sample values for b
are [4
6]
. The slLinearizer
interface includes analysis
points at the reference signal and plant output.
open_system('watertank') sllin = slLinearizer('watertank',{'watertank/Desired Water Level',... 'watertank/Water-Tank System'}) [A_grid,b_grid] = ndgrid([10,20,30],[4 6]); params(1).Name = 'A'; params(1).Value = A_grid; params(2).Name = 'b'; params(2).Value = b_grid; sllin.Parameters = params; sllin.OperatingPoints = [0,1,2,3]; linsys = getIOTransfer(sllin,'Desired Water Level','Water-Tank System');
linsys
, a 4-by-3-by-2 ss
model array,
contains the closed-loop transfer function of the linearized
watertank
model from the reference input to the plant output.
The operating point varies along the first array dimension of
linsys
, and the parameters A
and
b
vary along the second and third dimensions,
respectively.
Plot Step Responses of the Linearized Models
stepplot(linsys)
The step plot shows the responses of every model in the array. This plot shows the range of step responses of the system in the operating ranges covered by the parameter grid and snapshot times.
View Parameters and Snapshot Time of a Response
To view the parameters associated with a particular response, click the response on the plot.
A data tip appears on the plot, providing information about the selected response
and the related model. The last lines of the data tip show the parameter combination
and simulation snapshot time that yielded this response. For example, in this
previous plot, the selected response corresponds to the model obtained by setting
A
to 30
and b
to
4
. The software linearized the model after simulating the model
for three time units.
View Step Response of Subset of Results
Suppose you want to view the responses for models linearized at a specific simulation snapshot time, such as two time units. Right-click the plot and select Array Selector. The Model Selector for LTI Arrays dialog box opens.
The Selection Criterion Setup panel contains three columns,
one for each model array dimension of linsys
. The first column
corresponds to the simulation snapshot time. The third entry of this column
corresponds to the simulation snapshot time of two time units, because the snapshot
time array was [0,1,2,3]
. Select only this entry in the first
column.
Click OK. The plot displays the responses for only the models linearized at two time units.
Plot Step Response for Specific Parameter Combination and Snapshot Time
Suppose you want to examine only the step response for the model obtained by
linearizing the watertank
model at t = 3
, for
A = 10
and b = 4
. To do so, you can use the
SamplingGrid
property of linsys
, which is
specified as a structure. When you perform batch linearization, the software
populates SamplingGrid
with information regarding the variable
values used to obtain the model. The variable values include each parameter that you
vary and the simulation snapshot times at which you linearize the model. For
example:
linsys(:,:,1).SamplingGrid
ans = A: 10 b: 4 Time: 0
Here linsys(:,:,1)
refers to the first model in
linsys
. This model was obtained at simulation time t =
0
, for A = 10
and b = 4
.
Use array indexing to extract from linsys
the model obtained by
linearizing the watertank
model at t = 3
, for
A = 10
and b = 4
.
sg = linsys.SamplingGrid; sys = linsys(:,:,sg.A == 10 & sg.B == 4 & sg.Time == 3);
The structure, sg
, contains the sampling grid for all the
models in linsys
. The expression sg.A == 10 & sg.B ==
4 & sg.Time == 3
returns a logical array. Each entry of this array
contains the logical evaluation of the expression for corresponding entries in
sg.A
, sg.B
, and sg.Time
.
sys
, a model array, contains all the linsys
models that satisfy the expression.
View the step response for sys
.
stepplot(sys)