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 Value Variations Using linearize and Vary Operating Points and Obtain Multiple Transfer Functions Using slLinearizer.
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);

Was this topic helpful?