The transformation to Luenberger controllable canonical form, introduced here, is used in the full-rank pole assignment algorithm discussed in Section 6.3. Given an n"th"-order linear system in state-space form then using a transformation matrix T formed from the columns of the controllability matrix for the pair {A, B}, the resulting matrices and have special block structured forms, namely, for a system with p inputs where the diagonal blocks are in the controllable companion form for i = 1, ..., p, with dimensions i×i, and the symbol * stands for possible nonzero entries. The off-diagonal blocks have the form with dimensions i×j, for i, j = 1, ..., p, i ≠ j. The matrix where the i×p blocks have the special form where the unit entry in last row occurs in column i, and may be followed by some nonzero entries. These nonzero entries in the matrix can be readily removed, if desired, by a simple nonsingular transformation of the system inputs. Here, the matrix has no special form. The parameters k that appear in the formulation are the controllability indices of the system, and are defined as follows. Inspect the columns of the system controllability matrix from left to right, and retain only those vectors that are linearly independent of those previously selected. If the n linearly independent vectors, so selected, are formed into a new matrix then the integers {1, 2, ..., m} are the controllability indices of the system, and i = n. The parameter c = Max[i] is called the controllability index for the system. The function ControllabilityIndices can be used to determine these. ControllabilityIndices[statespace] |
| determine the controllability indices of the system statespace |
Controllability indices. The controllable canonical form of the system and the required transformation matrix T are both generated via elementary row and column operations on the original system A and B matrices, using a version of Daly's algorithm (Daly (1976)). If a state-space system is completely controllable, and the columns of its matrix B are linearly independent, then the function LuenbergerControllableForm can be used to transform the system into this canonical form. LuenbergerControllableForm[statespace] |
| find the Luenberger controllable form of the system statespace |
Luenberger controllable canonical form. Make sure the application is loaded. Consider again the state-space model of the aircraft. Out[3]= | |
These are its controllability indices. Out[5]= | |
These indices indicate that in the corresponding Luenberger controllable canonical form, the transformed matrix A will have two controllable companion form diagonal blocks each of size 2 × 2, with a two-block structured transformed matrix B. Out[7]= | |
The Control System Professional functions TransformationMatrix and SimilarityTransform are both applicable to LuenbergerControllableForm. This gives the transformation matrix between the two realizations. Out[9]= | |
You can confirm the similarity transformation of the original system with this matrix. Out[11]= | |
|