8.2 Kalman Canonical Forms
The state equations in Eq. (8.1) can be transformed to the Kalman controllable canonical form (see, e.g., Brogan (1991), Section 11.7),
using a similarity transformation , where the orthogonal transformation matrix is constructed and partitioned in such a way that represents the subspace spanned by the columns of the controllability matrix and is the subspace orthogonal to . The space vector is partitioned into two corresponding parts, too: It is seen from Eq. (8.2) that state variables are uncontrollable, since there is no way to change either directly through input or indirectly through coupling.
Similarly, in the Kalman observable canonical form,
the state space is divided into observable and unobservable subspaces. Kalman controllable and observable canonical forms can be arrived at by using the functions KalmanControllableForm and KalmanObservableForm.
Finding Kalman canonical forms.
This is an example system defined previously.
This is the Kalman controllable canonical form of an example system defined previously. We can see that the uncontrollable mode (the third one) is moved to the end of the state vector.
This is the Kalman observable canonical form of the same system. Now the unobservable mode (the second one) is moved to the end.
The decomposition into controllable and uncontrollable (or observable and unobservable) subspaces can be performed using several methods that are accessible through the option DecompositionMethod. The default Automatic value for this option invokes the built-in function RowReduce for exact systems and SingularValues for inexact ones. Other available option values are QRDecomposition and NullSpace. Like all other functions in Control System Professional, the functions related to Kalman canonical forms accept the options belonging to the employed method and pass them on to their destinations. Kalman decomposition-related functions also accept the option RandomOrthogonalComplement.
Specifying the decomposition method.
KalmanControllableForm and KalmanObservableForm are similar to the functions ControllableSubsystem and ObservableSubsystem described in Section 8.1. However, the two former functions merely rearrange the order of variables in the state vector, whereas the latter two select controllable or observable subspaces of the given system. Similarly to ObservableSubsystem, KalmanObservableForm takes the options of KalmanControllableForm as well as the options of DualSystem.