Main Content


Access state-space model data


[a,b,c,d] = ssdata(sys)
[a,b,c,d,Ts] = ssdata(sys)


[a,b,c,d] = ssdata(sys) extracts the matrix (or multidimensional array) data A, B, C, D from the state-space model (LTI array) sys. If sys is a transfer function or zero-pole-gain model (LTI array), it is first converted to state space. See ss (Control System Toolbox) for more information on the format of state-space model data.

If sys appears in descriptor form (nonempty E matrix), an equivalent explicit form is first derived.

If sys has internal delays, A, B, C, D are obtained by first setting all internal delays to zero (creating a zero-order Padé approximation). For some systems, setting delays to zero creates singular algebraic loops, which result in either improper or ill-defined, zero-delay approximations. For these systems, ssdata cannot display the matrices and returns an error. This error does not imply a problem with the model sys itself.

For generalized state-space (genss) models, ssdata returns the state-space models evaluated at the current, nominal value of all control design blocks. To access the dependency of a genss model on its static control design blocks, use the A, B, C, and D properties of the model.

[a,b,c,d,Ts] = ssdata(sys) also returns the sample time Ts.

You can access the remaining LTI properties of sys with get or by direct referencing. For example:


For arrays of state-space models with variable numbers of states, use the syntax:

[a,b,c,d] = ssdata(sys,'cell')

to extract the state-space matrices of each model as separate cells in the cell arrays a, b, c, and d.

Version History

Introduced before R2006a

See Also

(Control System Toolbox) | | (Control System Toolbox) | | | (Control System Toolbox) | |