({{, (RefLink[OutputControllabilityMatrix, paclet:ref/OutputControllabilityMatrix])[ssm] 
gives the output controllability matrix of the state-space model ssm.}})

OpenersNotesSection(Spacer1)Details

The state-space model ssm can be given as (RefLink[StateSpaceModel, paclet:ref/StateSpaceModel])[{a,b,c,d}], where a, b, c, and d represent the state, input, output, and transmission matrices in either a continuous-time or a discrete-time system:

The output controllability matrix is given by (({{c.b, c.a.b, c.(a^2).b, …, c.(a^(n-1)).b, d}})), where n is the dimension of the square state matrix a.

For a descriptor state-space model, (RefLink[OutputControllabilityMatrix, paclet:ref/OutputControllabilityMatrix]) returns a matrix (({{(Subscript[q, s]), (Subscript[q, f])}})) where (Subscript[q, s]) is associated with the slow subsystem and (Subscript[q, f]) is associated with the fast subsystem.

For (RefLink[StateSpaceModel, paclet:ref/StateSpaceModel])[{a,b,c,d,e}] with singular descriptor matrix e, the output controllability matrix is computed by decoupling the slow and fast subsystems:

The output controllability matrix where (Subscript[e, 2]) has nilpotency index h is given by (({{(Subscript[c, 1]).(Subscript[b, 1]), (Subscript[c, 1]).(Subscript[a, 1]).(Subscript[b, 1]), …, (Subscript[c, 1]).(Subscript[a, 1]^((Subscript[n, 1])-1)).(Subscript[b, 1]), (Subscript[c, 2]).(Subscript[b, 2]), (Subscript[c, 2]).(Subscript[e, 2]).(Subscript[b, 2]), …, (Subscript[c, 2]).(Subscript[e, 2]^(h-1)).(Subscript[b, 2]), d}})).

(RefLink[OutputControllabilityMatrix, paclet:ref/OutputControllabilityMatrix]) only takes descriptor systems in which (RefLink[Det, paclet:ref/Det])[λ e - a]≠0 for some λ.

OpenersPrimaryExamplesSection(Spacer1)Examples  (7)

OpenersExampleSection0(Spacer1)Basic Examples  (1)

The output controllability matrix of a state-space model:

OutputControllabilityMatrix[(StateSpaceModelFull[0, 1, 3, 2, -2, -2, -1, 3, 2, 0, -3, -3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, , , ])]//MatrixForm

OpenersExampleSection1(Spacer1)Scope  (2)

The output controllability matrix of a continuous-time system:

OutputControllabilityMatrix[(StateSpaceModelFull[-3, -1, -2, -2, -1, 1, -2, -1, 0, -3, -1, 0, 1, 1, 1, 0, 1, -1, -1, 0, , , ])]//MatrixForm

A descriptor system:

OutputControllabilityMatrix[(StateSpaceModelFull[1, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, , , ])]

OpenersExampleSection3(Spacer1)Properties & Relations  (4)

A system is output controllable when the rank of the matrix equals the number of outputs:

ssm=(StateSpaceModelFull[-3, -2, 0, 0, 1, 3, 2, -2, 1, 3, 1, -2, 1, -1, 0, 0, 1, 0, -1, 0, , , ]);

MatrixRank[OutputControllabilityMatrix[ssm]]==Last@SystemsModelDimensions[ssm]

OutputControllableModelQ[ssm]

This system is not output-controllable but is state-controllable:

ssm=(StateSpaceModelFull[1, 1, 1, -1, -2, -1, 1, -1, 0, -1, 1, 0, , , ]);

{OutputControllableModelQ[ssm],ControllableModelQ[ssm]}

This system is output-controllable but not state-controllable:

ssm=(StateSpaceModelFull[-1.5`, -1.5`, 0.5`, -0.5`, 3, -0.5`, -3.5`, 0.5`, -1.5`, 2, -0.5`, -0.5`, -2.5`, -1.5`, 2, 0.5`, -0.5`, -0.5`, -2.5`, 1, 0, (1/3), 0, (1/3), 0, 0.5`, -(1/6), 0.5`, -(1/6), 0, , , ]);

{OutputControllableModelQ[ssm],ControllableModelQ[ssm]}

The output controllability matrix does not depend on the sampling period:

OutputControllabilityMatrix[(StateSpaceModelFull[-3, -1, -2, -2, -1, 1, -2, -1, 0, -3, -1, 0, 1, 1, 1, 0, 1, -1, -1, 0, T, , ])]//MatrixForm

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

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Analysis of State-Space Models, paclet:guide/AnalysisOfStateSpaceModels])}})}})