Documentation Center

  • Trial Software
  • Product Updates

ssform

Quick configuration of state-space model structure

Syntax

sys1 = ssform(sys,Name,Value)

Description

sys1 = ssform(sys,Name,Value) specifies the type of parameterization and whether feedthrough and disturbance dynamics are present for the state-space model sys using one or more Name,Value pair arguments.

Input Arguments

sys

State-space model

Name-Value Pair Arguments

Specify comma-separated pairs of Name,Value arguments, where Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

'Form'

Specify structure of A, B and C matrices. Must be one of the following strings:

  • 'free'

    All entries of A, B, C are set free

  • 'companion'

    Companion form of the model where the characteristic polynomial appears in the far-right column of the state matrix A

  • 'modal'

    Modal decomposition form, where the state matrix A is block diagonal. Each block corresponds to a real or complex-conjugate pair of poles.

    You cannot use this value for models with repeated poles.

  • 'canonical'

    Observability canonical form of A, B, and C matrices, as described in [1].

'Feedthrough'

Specify whether the model has direct feedthrough from the input u(t) to the output y(t), (whether the elements of the matrix D are nonzero).

Must be a logical vector (true or false) of length equal to the number of inputs (Nu).

Feedthrough(i) = false sets sys.Structure.d.Value(:,i) to zero and sys.Structure.d.Free(:,i) to false.

Feedthrough(i) = true sets sys.Structure.d.Free(:,i) to true.

    Note:   Specifying this option for a previously estimated model causes the model parameter covariance information to be lost. Use translatecov to recompute the covariance.

'DisturbanceModel'

Specify whether to estimate the noise component of the model. Must be one of the following strings:

  • 'none'

    The value of the K matrix is fixed to zero.

  • 'estimate'

    The K matrix is treated as a free parameter

    Note:   Specifying this option for a previously estimated model causes the model parameter covariance information to be lost. Use translatecov to recompute the covariance.

Output Arguments

sys1

State-space model with configured parameterization, feedthrough, and disturbance dynamics

Examples

expand all

Convert a State-Space Model to Canonical Form

Convert a state-space model to canonical form.

Create a state-space model.

rng('default'); 
A = randn(2)-2*eye(2);
B = randn(2,1); 
C = randn(1,2); 
D = 0;
K = randn(2,1);
model = idss(A,B,C,D,K,'Ts',0);

The state-space model has free parameterization and no feedthrough.

Convert the model to observability canonical form.

model1 = ssform(model, 'Form', 'canonical');

Estimate State-Space Model Parameters in Canonical Form with Feedthrough

Estimate state-space model parameters in canonical form with feedthrough.

Load the estimation data.

load iddata1 z1;

Create a state-space model.

rng('default'); 
A = randn(2)-2*eye(2);
B = randn(2,1); 
C = randn(1,2); 
D = 0;
K = randn(2,1);
model = idss(A,B,C,D,K,'Ts',0);

The state-space model has free parameterization and no feedthrough.

Convert the model to observability canonical form and specify to estimate its feedthrough behavior.

model1 = ssform(model, 'Form', 'canonical', 'Feedthrough', true);

Estimate the parameters of the model.

model2 = ssest(z1, model1);

Alternatives

Use the Structure property of an idss model to specify the parameterization, feedthrough, and disturbance dynamics by modifying the Value and Free attributes of the A, B, C, D and K parameters.

References

[1] Ljung, L. System Identification: Theory For the User, Second Edition, Appendix 4A, pp 132-134, Upper Saddle River, N.J: Prentice Hall, 1999.

See Also

| |

Was this topic helpful?