*Canonical parameterization* represents a
state-space system in a reduced parameter form where many elements
of *A*, *B* and *C* matrices
are fixed to zeros and ones. The free parameters appear in only a
few of the rows and columns in state-space matrices *A*, *B*, *C*, *D*,
and *K*. The free parameters are identifiable —
they can be estimated to unique values. The remaining matrix elements
are fixed to zeros and ones.

The software supports the following canonical forms:

**Companion form**: The characteristic polynomial appears in the rightmost column of the*A*matrix.**Modal decomposition form**: The state matrix*A*is block diagonal, with each block corresponding to a cluster of nearby modes.**Note:**The modal form has a certain symmetry in its block diagonal elements. If you update the parameters of a model of this form (as a structured estimation using`ssest`

), the symmetry is not preserved, even though the updated model is still block-diagonal.**Observability canonical form**: The free parameters appear only in select rows of the*A*matrix and in the*B*and*K*matrices.For more information about the distribution of free parameters in the observability canonical form, see the Appendix 4A, pp 132-134, on identifiability of black-box multivariable model structures in

*System Identification: Theory for the User*, Second Edition, by Lennart Ljung, Prentice Hall PTR, 1999 (equation 4A.16).

You can estimate state-space models with chosen parameterization at the command line.

For example, to specify an observability canonical form, use
the `'Form'`

name-value pair input argument, as follows:

m = ssest(data,n,'Form','canonical')

Similarly, set `'Form'`

as `'modal'`

or `'companion'`

to
specify modal decomposition and companion canonical forms, respectively.

If you have time-domain data, the preceding command estimates
a continuous-time model. If you want a discrete-time model, specify
the data sample time using the `'Ts'`

name-value
pair input argument:

md = ssest(data, n,'Form','canonical','Ts',data.Ts)

If you have continuous-time frequency-domain data, you can only estimate a continuous-time model.

Was this topic helpful?