Constrained Feedback Stabilization

Make sure the application is loaded.

<< NumericalControlMethods`

Load the collection of test examples.

<< NumericalControlMethods`Examples`

This is a model of a drum boiler.

ss  =  DrumBoiler[]

These are the open-loop poles, arranged in ascending order of their real parts.

poles = 
      Sort[Eigenvalues[
          ss[[1]]]]

The feedback gain matrix guarantees that the closed-loop system has both the damping factor less than -0.58 and the damping ratio greater than 0.9.

k = 
      StateFeedbackGains[ss, 
        DampingFactorRegion[-0.58] && DampingRatioRegion[0.9]]

Make sure the function MultipleListPlot is available.

<< Graphics`MultipleListPlot`

This displays the closed-loop poles of the drum boiler model on the complex plane.

clp = 
      Eigenvalues[
        ss[[1]] - 
          ss[[2]] . k]

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