DynamicSystems
Grammians
compute the controllability and observability grammians
Calling Sequence
Parameters
Options
Description
Examples
Grammians( sys, opts )
sys
-
System(ss); state-space System object
opts
(optional) equation(s) of the form option = value; specify options for the Grammians command
checkstability = truefalse
True means check whether the system is stable; if it is not stable, an error occurs. False means skip the check. The default is true.
output = C or O or list of these names
Specifies the returned values. If equal to C, then the controllability grammian is returned. If equal to O, then the observability grammian is returned. If a list of these names, then the output is a list/sequence (see returnlist) with each C replaced with the controllability grammian and each O replaced with the observability grammian. The default is [C,O].
returnlist = truefalse
True means return a list; false means return an expression sequence. The default is false.
The Grammians command computes the grammians of sys, a state-space system.
Depending on the value of the output option, either the controllability grammian, the observability grammian, or both, is computed.
For a grammian to exist, the system must be stable. For a continuous-time system, all eigenvalues, λ, of A must lie in the open left-half plane: ℜ⁡λ<0. For a discrete-time system, all eigenvalues, λ, of A must lie in the open unit-circle: λ<1. If sys is not stable, an error occurs, unless the option checkstability is false.
A grammian is the positive-definite matrix X that solves the appropriate Lyapunov equation (see LyapunovSolve).
Controllability Grammian
For a continuous system, the Lyapunov equation is A·X+X·AT=−B·BT.
For a discrete system, the Lyapunov equation is A·X·AT−X=−B·BT.
Observability Grammian
For a continuous system, the Lyapunov equation is AT·X+X·A=−CT·C.
For a discrete system, the Lyapunov equation is AT·X·A−X=−CT·C.
with⁡DynamicSystems:
Assign a state-space system.
aSys≔StateSpace⁡−5,3|3,−4,2,3,1,0|0,1,0,0:
Compute its controllability grammian.
Cg≔Grammians⁡aSys,output=C
Cg≔1.681818181818182.136363636363642.136363636363642.72727272727273
Verify that Cg meets the Lyapunov equation (b^+ is the transpose of b, see LinearAlgebra[Transpose]).
useaSysin`.`⁡a,Cg+`.`⁡Cg,a=−`.`⁡b,b%Tend use
−4.00000000000000−6.00000000000000−6.00000000000000−9.00000000000001=−4−6−6−9
See Also
DynamicSystems[ControllabilityMatrix]
DynamicSystems[ObservabilityMatrix]
DynamicSystems[Observable]
DynamicSystems[SSTransformation]
LinearAlgebra
LinearAlgebra[Eigenvalues]
LinearAlgebra[LyapunovSolve]
LinearAlgebra[Rank]
Download Help Document