If a system is not controllable, how does one find what "isn't controllable", i.e. what states can't be achieved. Is it the null space of the controllablility matrix?

Sean Humbert, 28 Oct 02

For a given system, the state space (set of all possible states) can always be decomposed into two subspaces; a controllable subspace and an uncontrollable subspace. This decomposition is a direct sum, which means that the sum of the two subspaces equals the total state space and the intersection of the two subspaces is the zero vector. Another way to say this is that the controllable subspace and the uncontrollable subspace are orthogonal complements.

To find the controllable subspace, we find a basis of vectors that span the range (image) of the controllability matrix [B AB A2B ... An-1B]. The easiest way to do this is look at the span of the columns of the controllability matrix.

In general you will need "m" vectors (m < n where n = dimension of the state space). Of course m = n if the system is completely controllable. To find the uncontrollable subspace, you need to find a basis of vectors that span the orthogonal complement of the controllable subspace. There are several ways to go about doing this....at the moment I would say pick n-m additional vectors that are all linearly independent from the basis of the controllable subspace, then from each of those vectors subtract off the projection of that vector into the subspace spanned by the controllable states (the controllable subspace).

Note: In general, the uncontrollable subspace will NOT be the null space of the controllablility matrix. For example, take the matrix

[0 1]
[0 0]

The range of this matrix (i.e. the controllable subspace) is span{[1 0]T}, but that is also the null space!