({{, (RefLink[DescriptorStateSpace, paclet:ref/DescriptorStateSpace]) 
is an option to (RefLink[StateSpaceModel, paclet:ref/StateSpaceModel]) and (RefLink[StateSpaceTransform, paclet:ref/StateSpaceTransform]) that specifies whether to use descriptor or standard representation.}})

OpenersNotesSection(Spacer1)Details

In (RefLink[StateSpaceModel, paclet:ref/StateSpaceModel])[{a,b,c,d,e}], the matrix e is the descriptor matrix.

The equations governing continuous-time standard and descriptor state-space models are:

Discrete-time systems have analogous forms.

The option can take the following values:

With the setting (RefLink[DescriptorStateSpace, paclet:ref/DescriptorStateSpace])->(RefLink[Automatic, paclet:ref/Automatic]), (RefLink[StateSpaceModel, paclet:ref/StateSpaceModel]) uses the descriptor representation only if e is singular, and (RefLink[StateSpaceTransform, paclet:ref/StateSpaceTransform]) does not alter the representation.

OpenersPrimaryExamplesSection(Spacer1)Examples  (13)

OpenersExampleSection0(Spacer1)Basic Examples  (5)

Invert the descriptor matrix to create a standard state-space model:

StateSpaceModel[(StateSpaceModelFull[(Subscript[e, 1]), 0, (Subscript[a, 1]), 0, (Subscript[b, 1]), 0, (Subscript[e, 2]), 0, (Subscript[a, 2]), (Subscript[b, 2]), (Subscript[c, 1]), (Subscript[c, 2]), d, , , ]), DescriptorStateSpace->False]

Add an identity matrix to create a descriptor form:

StateSpaceModel[(StateSpaceModelFull[(Subscript[a, 1]), 0, (Subscript[b, 1]), 0, (Subscript[a, 2]), (Subscript[b, 2]), (Subscript[c, 1]), (Subscript[c, 2]), d, , , ]),DescriptorStateSpace->True]

Obtain the descriptor (RefLink[StateSpaceModel, paclet:ref/StateSpaceModel]):

StateSpaceModel[2 x'[t]==x[t]+u[t],x[t],u[t],x[t],t,DescriptorStateSpace->True]

By default, the standard form is obtained:

StateSpaceModel[2x'[t]==x[t]+u[t],x[t],u[t],x[t],t]

For singular systems, the descriptor form is obtained by default:

StateSpaceModel[{(Subscript[x, 1])'[t]==(Subscript[x, 1])[t]+u[t],(Subscript[x, 1])[t]==(Subscript[x, 2])[t]},{(Subscript[x, 1])[t],(Subscript[x, 2])[t]},u[t],(Subscript[x, 1])[t],t]

Because the descriptor matrix is singular, it is not possible to obtain the standard form:

StateSpaceModel[{(Subscript[x, 1])'[t]==(Subscript[x, 1])[t]+u[t],(Subscript[x, 1])[t]==(Subscript[x, 2])[t]},{(Subscript[x, 1])[t],(Subscript[x, 2])[t]},u[t],(Subscript[x, 1])[t],t,DescriptorStateSpace->False]

Obtain the result from (RefLink[StateSpaceTransform, paclet:ref/StateSpaceTransform]) in the descriptor form:

StateSpaceTransform[(StateSpaceModelFull[a, b, c, d, , ,{x}, ]),{{p}},DescriptorStateSpace->True]

By default, the form is unaltered:

StateSpaceTransform[(StateSpaceModelFull[a, b, c, d, , ,{x}, ]),{{p}}]

OpenersExampleSection1(Spacer1)Scope  (6)

Create a standard state-space model from a descriptor state-space model:

StateSpaceModel[(StateSpaceModelFull[1, 0, 2, 1, -1, 0, 1, 2, 0, 2, -1, -1, 1, 1, -1, 1, 1, 0, 1, 0, 2, 1, 0, 2, 1, -1, 0, 0, 0, , , ]), DescriptorStateSpace->False]

Create a descriptor state-space model from a standard state-space model:

StateSpaceModel[(StateSpaceModelFull[-1, 2, 1, 1, -4, 1, 1, 0, 0, , , ]), DescriptorStateSpace->True]

Convert a proper transfer-function model to a descriptor state-space model:

StateSpaceModel[(TransferFunctionModelFull[(1/(1-2 s+(s^2))), , , ]),DescriptorStateSpace->True]

Create a descriptor state-space model from an ODE:

StateSpaceModel[{(Subscript[a, 3]) x'''[t]+(Subscript[a, 2]) x''[t]+(Subscript[a, 1]) x'[t]+(Subscript[a, 0]) x[t]==f[t]},{{x[t],0},{x'[t],0},{x''[t],0}},{{f[t],0}},{x[t]},t,DescriptorStateSpace->True]

Obtain the state transformation of a standard (RefLink[StateSpaceModel, paclet:ref/StateSpaceModel]) in descriptor form:

StateSpaceTransform[(StateSpaceModelFull[a, b, c, d, , ,{x}, ]),{{p}},DescriptorStateSpace->True]

It gives the same result as an explicit descriptor specification:

StateSpaceTransform[(StateSpaceModelFull[1, a, b, c, d, , , ]),{{p}}]

Similar results can be obtained with the inverse transformation as well:

StateSpaceTransform[(StateSpaceModelFull[a, b, c, d, , ,{x}, ]),{Automatic,{{q}}},DescriptorStateSpace->True]

StateSpaceTransform[(StateSpaceModelFull[1, a, b, c, d, , , ]),{Automatic,{{q}}}]

A descriptor (RefLink[StateSpaceModel, paclet:ref/StateSpaceModel]) with an invertible descriptor matrix:

ssm =(StateSpaceModelFull[e, a, b, c, d, , ,{x}, ]);

Its state transformation can be obtained in standard form:

StateSpaceTransform[ssm,{{p}},DescriptorStateSpace->False]

OpenersExampleSection3(Spacer1)Properties & Relations  (2)

Improper transfer-function models will create descriptor state-space models by default:

tfm=(TransferFunctionModelFull[((s^3)/(1-2 s+(s^2))), , , ]);
StateSpaceModel[tfm,DescriptorStateSpace->Automatic]

There is no standard state-space realization:

StateSpaceModel[tfm,DescriptorStateSpace->False]

A descriptor (RefLink[StateSpaceModel, paclet:ref/StateSpaceModel]) with an invertible descriptor matrix:

ssm=(StateSpaceModelFull[(Subscript[e, 1]), 0, (Subscript[a, 1]), 0, (Subscript[b, 1]), 0, 0, 0, (Subscript[a, 2]), (Subscript[b, 2]), 1, 0, 0, 0, 1, 0, , , ]);

(RefLink[StateSpaceTransform, paclet:ref/StateSpaceTransform]) produces a descriptor model:

StateSpaceTransform[ssm,Array[(Subscript[q, ##])&,{2,2}]]

The state transformation cannot be obtained in standard form:

StateSpaceTransform[ssm,Array[(Subscript[q, ##])&,{2,2}],DescriptorStateSpace->False]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[StateSpaceModel, paclet:ref/StateSpaceModel])  ▪  (RefLink[StateSpaceTransform, paclet:ref/StateSpaceTransform])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Control Systems, paclet:guide/ControlSystems])}, {▪(RefLinkPlain[Basic Systems Modeling, paclet:guide/Modeling])}})}})