Analyze responses of a control system by using `getIOTransfer`

to
compute responses between various inputs and outputs of a closed-loop
model of the system.

Consider the following control system.

Create a `genss`

model of the system
by specifying and connecting the numeric plant models `G1`

and `G2`

,
the tunable controllers `C1`

, and the `AnalysisPoint`

blocks `X1`

and `X2`

that
mark potential loop-opening or signal injection sites.

If you tuned the free parameters of this model (for example,
using the Robust Control Toolbox™ tuning command `systune`

),
you might want to analyze the tuned system performance by examining
various system responses.

For example, examine the response at the output, *y*,
to a disturbance injected at the point *d*_{1}.

`H1`

represents the closed-loop response of
the control system to a disturbance injected at the implicit input
associated with the `AnalysisPoint`

block `X1`

,
which is the location of *d*_{1}:

`H1`

is a `genss`

model that
includes the tunable blocks of `T`

. If you have tuned
the free parameters of `T`

, `H1`

allows
you to validate the disturbance response of your tuned system. For
example, you can use analysis commands such as `bodeplot`

or `stepplot`

to
analyze `H1`

. You can also use `getValue`

to
obtain the current value of `H1`

, in which all the
tunable blocks are evaluated to their current numeric values.

Similarly, examine the response at the output to a disturbance
injected at the point *d*_{2}.

You can also generate a two-input, one-output model representing
the response of the control system to simultaneous disturbances at
both *d*_{1} and *d*_{2}.
To do so, provide `getIOTransfer`

with a cell array
that specifies the multiple input locations.

Compute the response from *r* to *y* of
the following cascaded control system, with the inner loop open, and
the outer loop closed.

Create a `genss`

model of the system
by specifying and connecting the numeric plant models `G1`

and `G2`

,
the tunable controllers `C1`

, and the `AnalysisPoint`

blocks `X1`

and `X2`

that
mark potential loop-opening or signal injection sites.

If you tuned the free parameters of this model (for example,
using the Robust Control Toolbox tuning command `systune`

),
you might want to analyze the tuned system performance by examining
various system responses.

For example, compute the response of the system with the
inner loop open, and the outer loop closed.

By default, the loops are closed at the analysis points `X1`

and `X2`

.
Specifying `'X2'`

for the `openings`

argument
causes `getIOTransfer`

to open the loop at `X2`

for
the purposes of computing the requested transfer from *r* to *y*.
The switch at `X1`

remains closed for this computation.