Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Controllability and observability Gramians

`Wc = gram(sys,'c')`

Wc = gram(sys,'o')

Wc = gram(___,opt)

calculates the controllability Gramian of the state-space (`Wc`

= gram(`sys`

,'c')`ss`

) model `sys`

.

calculates the observability Gramian of the `Wc`

= gram(`sys`

,'o')`ss`

model `sys`

.

calculates
time-limited or frequency-limited Gramians. `Wc`

= gram(___,`opt`

)`opt`

is
an option set that specifies time or frequency intervals for the computation.
Create `opt`

using the `gramOptions`

command.

You can use Gramians to study the controllability and observability
properties of state-space models and for model reduction [1] . They have better numerical properties
than the controllability and observability matrices formed by `ctrb`

and `obsv`

.

Given the continuous-time state-space model

$$\begin{array}{l}\dot{x}=Ax+Bu\\ y=Cx+Du\end{array}$$

the controllability Gramian is defined by

$${W}_{c}={\displaystyle {\int}_{0}^{\infty}{e}^{A\tau}}B{B}^{T}{e}^{{A}^{T}\tau}d\tau $$

The controllability Gramian is positive definite if and only
if (*A*, *B*) is controllable.

The observability Gramian is defined by

$${W}_{o}={\displaystyle {\int}_{0}^{\infty}{e}^{{A}^{T}\tau}{C}^{T}C{e}^{A\tau}d\tau}$$

The observability Gramian is positive definite if and only if
(*A*, *C*) is observable.

The discrete-time counterparts of the controllability and observability Gramians are

$$\begin{array}{cc}{W}_{c}={\displaystyle \sum _{k=0}^{\infty}{A}^{k}B{B}^{T}{({A}^{T})}^{k},}& {W}_{o}=\end{array}{\displaystyle \sum _{k=0}^{\infty}{({A}^{T})}^{k}{C}^{T}C{A}^{k}}$$

respectively.

Use time-limited or frequency-limited Gramians to examine the controllability or observability of states within particular time or frequency intervals. The definition of these Gramians is as described in [2].

Compute the controllability Gramian of the following state-space model. Focus the computation on the frequency interval with the most energy.

sys = ss([-.1 -1;1 0],[1;0],[0 1],0);

The model contains a peak at 1 rad/s. Use `gramOptions`

to specify an interval around that frequency.

opt = gramOptions('FreqIntervals',[0.8 1.2]); gc = gram(sys,'c',opt)

`gc = `*2×2*
4.2132 -0.0000
-0.0000 4.2433

The *A* matrix must be stable (all eigenvalues
have negative real part in continuous time, and magnitude strictly
less than one in discrete time).

The controllability Gramian *W _{c}* is
obtained by solving the continuous-time Lyapunov equation

$$A{W}_{c}+{W}_{c}{A}^{T}+B{B}^{T}=0$$

or its discrete-time counterpart

$$A{W}_{c}{A}^{T}-{W}_{c}+B{B}^{T}=0$$

Similarly, the observability Gramian *W _{o}* solves
the Lyapunov equation

$${A}^{T}{W}_{o}+{W}_{o}A+{C}^{T}C=0$$

in continuous time, and the Lyapunov equation

$${A}^{T}{W}_{o}A-{W}_{o}+{C}^{T}C=0$$

in discrete time.

The computation of time-limited and frequency-limited Gramians is as described in [2].

[1] Kailath, T., *Linear Systems*,
Prentice-Hall, 1980.

[2] Gawronski, W. and J.N. Juang. “Model
Reduction in Limited Time and Frequency Intervals.” *International
Journal of Systems Science*. Vol. 21, Number 2, 1990, pp.
349–376.

`balreal`

| `dlyap`

| `gramOptions`

| `hsvd`

| `lyap`