Partial Pole Assignment

Make sure the application is loaded.

<< NumericalControlMethods`

Load the collection of test examples.

<< NumericalControlMethods`Examples`

This displays the open-loop poles of a special case of a multivariate servomechanism problem for a J-100 jet engine.

ss = ServoJ100[];

Eigenvalues[ss[[1]]]

The two most unstable poles, namely -0.182 and -0.648, are now reassigned to -1.7 and -1.68 using the Schur method. This improves the damping factor (for the definition, see Section 5.3) of the system nearly 10-fold.

k1 = StateFeedbackGains[ss, {-1.7, -1.68}];

This computes the norm of the feedback matrix.

MatrixNorm[k1]

Here are the computed closed-loop poles.

clp = 
      Chop[Eigenvalues[
          ss[[1]] - 
            ss[[2]] . k1]]

Make sure the function MultipleListPlot is available.

<< Graphics`MultipleListPlot`

This displays the closed-loop poles of the servomechanism problem on the complex plane.

MultipleListPlot[Transpose[{Re[clp], Im[clp]}], 
        SymbolShape -> PlotSymbol[Diamond, 3], 
        AxesLabel -> {TraditionalForm[σ], 
            TraditionalForm[j ω]}];