9.1.2 Robust Pole Assignment
Ackermann's formula does not provide for multiinput control and, even for a singleinput case, the resulting matrix can be very badly conditioned. The robust algorithm by Kautsky et al. (1985), which is accessible via the method KNVD, often offers a better alternative. In the case where the number of states is greater than the number of control inputs, the algorithm uses the additional degrees of freedom to find the solution that is as insensitive to perturbations as possible.
State feedback design using the robust method by Kautsky et al.
The algorithm depends heavily on numerical quantities of the system in question and so is implemented for inexact input parameters only. However, for the particular case where the number of inputs is equal to the number of states and matrix is not singular, the solution may be found simply from (where is the diagonal matrix determined by the eigenvalues
), and is attempted for exact and symbolic arguments, too.
In the KNVD regime, StateFeedbackGains accepts the option RandomOrthogonalComplement, similarly to other functions that need to reconstruct the basis of the vector space given an insufficient number of orthogonal components.
The "robustness" of the system designed using the KNVD method may improve after several iterations, the number of which can be set via the option MaxIterations. Note, however, that the implemented algorithm is not guaranteed to converge.
Option specific to the KNVD method.
In the rest of this section, the solutions obtained with the Ackermann and KNVD methods are compared in terms of their robustness for the aircraft model.
This finds the feedback via Ackermann's formula—reproducing the result we already have.
In[20]:=
Out[20]=
Now we obtain the feedback using the KNVD algorithm with a single iteration.
In[21]:=
Out[21]=
This is the solution using the same method after 10 iterations.
In[22]:=
Out[22]=
To measure the robustness of the solutions, we distort the feedback matrices to some extent (as if due to noise in the line) and see how that will affect the locations of the poles of the closedloop system. In practice, we would prefer the noise to have as little effect as possible.
This is a utility function that distorts all numeric values in expr to some degree, up to the maximum relative error err.
In[23]:=
We form the list comprising all three feedback matrices we have computed so far and distort them as much as percent.
In[24]:=
These are the three groups of eigenvalues of the corresponding distorted closedloop systems.
In[25]:=
Out[25]=
Finally, these are the maximum relative errors introduced by the distortion.
In[26]:=
Out[26]=
The last value in the list—and the smallest one—is the solution found after ten iterations with the KNVD method. This solution indeed looks robust—the relative error in pole location is about as big as the imposed distortion of the feedback matrix. Comparing the second and the third values, we see that the robustness has somewhat improved with iterations. On the other end, the solution obtained with Ackermann's formula (the first element in the list) is not stable against the noise.
