Main Content

obsvf

Compute observability staircase form

Syntax

[Abar,Bbar,Cbar,T,k] = obsvf(A,B,C)
obsvf(A,B,C,tol)

Description

If the observability matrix of (A,C) has rank rn, where n is the size of A, then there exists a similarity transformation such that

A¯=TATT,   B¯=TB,   C¯=CTT

where T is unitary and the transformed system has a staircase form with the unobservable modes, if any, in the upper left corner.

A¯=[AnoA120Ao], B¯=[BnoBo], C¯=[0 Co]

where (Co, Ao) is observable, and the eigenvalues of Ano are the unobservable modes.

[Abar,Bbar,Cbar,T,k] = obsvf(A,B,C) decomposes the state-space system with matrices A, B, and C into the observability staircase form Abar, Bbar, and Cbar, as described above. T is the similarity transformation matrix and k is a vector of length n, where n is the number of states in A. Each entry of k represents the number of observable states factored out during each step of the transformation matrix calculation [1]. The number of nonzero elements in k indicates how many iterations were necessary to calculate T, and sum(k) is the number of states in Ao, the observable portion of Abar.

obsvf(A,B,C,tol) uses the tolerance tol when calculating the observable/unobservable subspaces. When the tolerance is not specified, it defaults to 10*n*norm(a,1)*eps.

Examples

Form the observability staircase form of

A =
     1     1
     4    -2

B =
     1    -1
     1    -1

C =
     1     0
     0     1

by typing

[Abar,Bbar,Cbar,T,k] = obsvf(A,B,C)
Abar =
     1     1
     4    -2
Bbar =
     1     1
     1    -1
Cbar =
     1     0
     0     1
T =
     1     0
     0     1
k =
     2     0

Algorithms

obsvf implements the Staircase Algorithm of [1] by calling ctrbf and using duality.

References

[1] Rosenbrock, M.M., State-Space and Multivariable Theory, John Wiley, 1970.

Version History

Introduced before R2006a

See Also

|