Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

You can use subreferencing to create models with subsets of inputs and outputs from existing multivariable models. Subreferencing is also useful when you want to generate model plots for only certain channels, such as when you are exploring multiple-output models for input channels that have minimal effect on the output.

The toolbox supports subreferencing operations for `idtf`

, `idpoly`

, `idproc`

, `idss`

,
and `idfrd`

model objects.

Subreferencing is not supported for `idgrey`

models.
If you want to analyze the sub-model, convert it into an `idss`

model
first, and then subreference the I/Os of the `idss`

model.
If you want a grey-box representation of a subset of I/Os, create
a new `idgrey`

model that uses an ODE function
returning the desired I/O dynamics.

In addition to subreferencing the model for specific combinations of measured inputs and output, you can subreference dynamic and noise models individually.

Subreferencing nonlinear models is not supported.

Use the following general syntax to subreference specific input and output channels in models:

model(outputs,inputs)

In this syntax, `outputs`

and `inputs`

specify
channel indexes or channel names.

To select all output or all input channels, use a colon (`:`

).
To select no channels, specify an empty matrix (`[]`

).
If you need to reference several channel names, use a cell array of
character vectors.

For example, to create a new model `m2`

from `m`

from
inputs `1`

(`'power'`

) and `4`

(`'speed'`

)
to output number `3`

(`'position'`

),
use either of the following equivalent commands:

m2 = m('position',{'power','speed'})

or

m2 = m(3,[1 4])

For a single-output model, you can use the following syntax to subreference specific input channels without ambiguity:

m3 = m(inputs)

Similarly, for a single-input model, you can use the following syntax to subreference specific output channels:

m4 = m(outputs)

For linear models, the general symbolic model description is given by:

$$y=Gu+He$$

*G* is an operator that
takes the measured inputs *u* to the outputs and
captures the system dynamics.

*H* is
an operator that describes the properties of the additive output disturbance
and takes the hypothetical (unmeasured) noise source inputs to the
outputs. *H* represents the noise model. When you
specify to estimate a noise model, the resulting model include one
noise channel *e* at the input for each output
in your system.

Thus, linear, parametric models represent input-output relationships for two kinds of input channels: measured inputs and (unmeasured) noise inputs. For example, consider the ARX model given by one of the following equations:

$$A(q)y(t)=B(q)u\left(t-nk\right)+e(t)$$

or

$$y(t)=\frac{B(q)}{A(q)}u\left(t\right)+\frac{1}{A(q)}e(t)$$

In this case, the dynamic model is the relationship between
the measured input *u* and output *y*, $$G={\scriptscriptstyle \raisebox{1ex}{$B(q)$}\!\left/ \!\raisebox{-1ex}{$A(q)$}\right.}$$. The noise model is the contribution
of the input noise *e* to the output *y*,
given by$$H={\scriptscriptstyle \raisebox{1ex}{$1$}\!\left/ \!\raisebox{-1ex}{$A(q)$}\right.}$$.

Suppose that the model `m`

contains
both a dynamic model *G* and a noise model *H*.
To create a new model that only has *G* and no noise
contribution, simply set its `NoiseVariance`

property
value to zero value.

To
create a new model by subreferencing *H* due to
unmeasured inputs, use the following syntax:

m_H = m(:,[])

This operation creates a time-series model
from `m`

by ignoring the measured input.

The covariance matrix of *e* is
given by the model property `NoiseVariance`

, which
is the matrix $$\Lambda $$:

$$\Lambda =L{L}^{T}$$

The
covariance matrix of *e* is related to *v*,
as follows:

$$e=Lv$$

Was this topic helpful?