Main Content

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 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 as one of the following values:

  • '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, specified as one of the following values:

  • '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

collapse all

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');

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.

Version History

Introduced in R2012b