Pole assignment state feedback design example using Mathematica

Nasser M. Abbasi

Nov 29, 2014

Detailed step by step showing how to design a gain vector K for single input system in state space such that the system has desired pole locations.

Define the A and B matrices for state space x’=Ax+Bu

convert to controllable form (we call this the target system)

Obtain controllability matrix for original system

Obtain controllability matrix for target system

Obtain T, the transformation matrix

Verify T

define the gains as unknowns. These are what we will determine using pole assignment

generate the closed loop state feedback A matrix using the traget A,B system

Find the CharacteristicPolynomial of the above matrix

Extract the coefficients so we can compare them to the design polynomial below

Generate the design polynomial from the desired pole locations

Extract the coefficients of the design polynomial

Solve for the gains by comparing coefficients of design polynomial with the closed loop polynomial

Convert the gain vector to original space using the transformation T found above

verify the original space now has designed eigenvalues with this gain vector

Using packaged function for design

The above design is implemented in my package now using the function nma`getStateGainVector. Here are examples using it

Another example

Turn on the flag to see the steps made in the design