This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Estimate State-Space Models with Canonical Parameterization

What Is Canonical Parameterization?

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.


    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).

Estimating Canonical State-Space Models

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.