Main Content

State-space model with identifiable parameters

Use `idss`

to create a continuous-time or discrete-time state-space
model with identifiable (estimable) coefficients, or to convert Dynamic System Models to
state-space form.

A state-space model of a system with input vector *u*, output vector
*y*, and disturbance *e* takes the following form in
continuous time:

$$\begin{array}{c}\frac{dx\left(t\right)}{dt}=Ax\left(t\right)+Bu\left(t\right)+Ke\left(t\right)\\ y\left(t\right)=Cx\left(t\right)+Du\left(t\right)+e\left(t\right)\end{array}$$

In discrete time, the state-space model takes the following form:

$$\begin{array}{c}x\left[k+1\right]=Ax\left[k\right]+Bu\left[k\right]+Ke\left[k\right]\\ y\left[k\right]=Cx\left[k\right]+Du\left[k\right]+e\left[k\right]\end{array}$$

For `idss`

models, the elements of the state-space matrices
*A*, *B*, *C*, and *D*
can be estimable parameters. The elements of the state disturbance *K* can
also be estimable parameters. The `idss`

model stores the values of these
matrix elements in the `A`

, `B`

, `C`

,
`D`

, and `K`

properties of the model.

You can obtain an `idss`

model object in one of three ways.

Estimate the

`idss`

model based on the input-output measurements of a system by using`n4sid`

or`ssest`

. These estimation commands estimate the values of the estimable elements of the state-space matrices. The estimated values are stored in the`A`

,`B`

,`C`

,`D`

, and`K`

properties of the resulting`idss`

model. The`Report`

property of the resulting model stores information about the estimation, such as on the handling of initial state values and the options used in estimation. For example:sys = ssest(data,nx); A = sys.A; B = sys.B; sys.Report

For more examples of estimating an

`idss`

model, see`ssest`

or`n4sid`

.Create an

`idss`

model using the`idss`

command. For example:You can create ansys = idss(A,B,C,D)

`idss`

model to configure an initial parameterization for estimation of a state-space model to fit measured response data. When you do so, you can specify constraints on one or more of the state-space matrix elements. For instance, you can fix the values of some elements, or specify minimum or maximum values for the free elements. You can then use the configured model as an input argument to an estimation command (`ssest`

or`n4sid`

) to estimate parameter values with those constraints. For examples, see Create State-Space Model with Identifiable Parameters and Configure Identifiable Parameters of State-Space Model.Convert an existing dynamic system model to an

`idss`

model using the`idss`

command. For example:sys_ss = idss(sys_tf);

For information on functions you can use to extract information from or transform
`idss`

model objects, see Object Functions.

creates a state-space
model with specified state-space matrices `sys`

= idss(A,B,C,D)`A,B,C,D`

. By default, `sys`

is a discrete-time model with
an unspecified sample time and no state disturbance element. Use this syntax especially
when you want to configure an initial parameterization as an input to a state-space
estimation function such as `n4sid`

or `ssest`

.

sets additional properties using one or more name-value pair arguments. Specify
name-value pair arguments after any of the input argument combinations in the previous
syntaxes.`sys`

= idss(___,`Name,Value`

)

converts `sys`

= idss(`sys0`

,'split')`sys0`

to `idss`

model form, and treats the
last *Ny* input channels of `sys0`

as noise channels
in the returned model.
`sys0`

must be a numeric (nonidentified) `tf`

(Control System Toolbox), `zpk`

(Control System Toolbox), or `ss`

(Control System Toolbox) model object. Also, `sys0`

must have at least as many
inputs as outputs.

In general, any function applicable to Dynamic System Models is
applicable to an `idss`

model object. These functions are of four general types.

Functions that operate and return

`idss`

model objects enable you to transform and manipulate`idss`

models. For instance:Functions that perform analytical and simulation functions on

`idss`

objects, such as`bode`

and`sim`

Functions that retrieve or interpret model information, such as

`advice`

and`getpar`

Functions that convert

`idss`

objects into a different model type, such as`idpoly`

or`idtf`

for time domain or`idfrd`

for continuous domain

The following lists contain a representative subset of the functions that you can use with
`idss`

models.

`idssdata`

| `ssest`

| `ssestOptions`

| `n4sid`

| `pem`

| `idgrey`

| `idpoly`

| `idproc`

| `idtf`

| `translatecov`