Pole Placement

From ControlTheoryPro.com

Jump to: navigation, search
Pole Placement
Green carrot left.gif
SISO All MATLAB Articles
Green carrot.jpg
In order to prevent spam, users must register before they can edit or create articles.

1 Introduction to Pole Placement (or Polynomial Approach or Polynomial Design) to Controller Design

Pole placement is the most straightforward means of controller design.

  1. The design starts with an assumption of what form the controller must take in order to control the given plant.
  2. From that assumption a symbolic characteristic equation is formed.
  3. At this point the desired closed-loop poles must be determined.
  4. Typically, specifications designate overshoot, rise time, etc. This leads to the formation of a 2nd order equation. Most of the time the final characteristic equation will have more than 2 poles. So additional desired poles must be determined.
  5. Once the closed loop poles are decided a desired characteristic equation is formed.
  6. The coefficients for each power of s are equated from the symbolic characteristic equation to the desired.
  7. Algebra is used to determine the controller coefficients necessary to achieve the desired closed-loop poles with the assumed controller form.

Typically, an integrator is used to drive the steady-state error towards 0. This implies that the final characteristic equation will have at least 1 more pole than the uncontrolled system started with.

The following pole placement examples show you how to decide on the desired closed-loop poles, determine the "extra" closed-loop poles, and create a generic and PID controller to achieve those desired closed-loop poles.

2 Generic Control design using Pole Placement

This example is lifted from the hovering helicopter example in which the dynamics of Blackhawk helicopter are defined and controller for pitch attitude is designed. Feedforward commands are generated by integrating gyro measurements.

Let's assume a 2nd order system of with the following form

LaTeX: H(s)=K\frac{\omega_n^2}{s^2+2\zeta\omega_n s+\omega_n^2} \mbox{ for } 0 \le \zeta \le 1 Generic 2nd Order System

LaTeX: K is the system gain
LaTeX: \omega_n is the system's natural frequency
LaTeX: \zeta is the system's damping ratio.

Also, we assume a compensator of form

LaTeX: K\left(s\right)=\frac{\left(B_{0}+B_{1}s\right)}{A_{0}+A_{1}s} 1

is adequate to control the plant.

The resulting characteristic equation is

LaTeX: \Phi=\left(s^2+2\zeta\omega_ns+\omega_n^2\right)\left(A_0+A_1s\right) + \left(B_0+B_1s\right)\omega_n^2

This can be reduced to

LaTeX: \Phi=A_1s^3+\left(2A_1\zeta\omega_n+A_0\right)s^2+\left(A1\omega_n^2+2A_0\zeta\omega_n+B_1\omega_n^2\right)s+\omega_n^2\left(A_0+B_0\right) 2a

In matrix form this is

LaTeX: \begin{bmatrix}p_0\\p_1\\p_2\\p_3\end{bmatrix}=\begin{bmatrix}\omega_n^2 & \omega_n^2 & 0 & 0 \\ 2\zeta\omega_n & 0 & \omega_n^2 & \omega_n^2 \\ 1 & 0 & 2\zeta\omega_n & 0 \\ 0 & 0 & 1 & 0\end{bmatrix}\begin{bmatrix}A_0\\B_0\\A_1\\B_1\end{bmatrix} 2b

At this point we must decide what closed loop poles we would like. In order to do this we need to consider system overshoot and settling time (or time to peak). The equations for each are

LaTeX: M_p=e^{\left(\frac{-\pi\zeta}{\sqrt{1-\zeta^2}}\right)} Overshoot

LaTeX: \tau_s=\frac{4.6}{\zeta\omega_n} Settling Time

LaTeX: \tau_p=\frac{\pi}{\omega_n\sqrt{1-\zeta^2}} Time to Peak

I've never worked on a helicopter but I'm going to guess that minimizing overshoot is desired. Using the Overshoot equation we find that a common value, LaTeX: \zeta=\frac{1}{\sqrt{2}}, provides an overshoot of only 4.3%. Examination of the Time to Peak equation lets you know that a value of LaTeX: \omega_n=\sqrt{2} provides a peak time of \pi seconds. However, a little over 3 seconds is probably too slow. Let's shoot for 0.5 seconds instead. This requires LaTeX: \omega_n=\sqrt{2}\frac{\pi}{0.5}.


  • LaTeX: \zeta=\zeta_{desired}=\frac{1}{\sqrt{2}}
  • LaTeX: \omega_{n}=\omega_{desired}=\sqrt{2}\frac{\pi}{0.5}=8.8858

However, this leaves us with only 2 roots (poles) in our desired characteristic equation. Since we want the above parameters to dominate the closed loop system dynamics we choose a 3rd pole that is well above the desired natural frequency.

LaTeX: \left(s+a\right)\left(s^2+2\zeta_{desired}\omega_{desired}s+\omega_{desired}^2\right) 3


  • LaTeX: a=10\omega_{desired} is our 3rd pole.

This 3rd pole is a high frequency pole that allows the desired poles to the dominate the closed-loop system response while allowing the desired characteristic equation to have the correct number of poles.

Our desired characteristic equation, Eqn. 3, can be reduced to

LaTeX: \Phi_{desired}\left(s\right)=s^3+\left(2\zeta_{desired}\omega_{desired}+a\right)s^2+\left(\omega_{desired}^2+2\zeta_{desired}\omega_{desired}a\right)s+a\omega_{desired}^2

This results in

LaTeX: p_3=1

LaTeX: p_2=2\zeta_{desired}\omega_{desired}+a

LaTeX: p_1=\omega_{desired}^2+2\zeta_{desired}\omega_{desired}a

LaTeX: p_0=a\omega_{desired}^2

From here we go back to our characteristic equation (Eqn. 2a or 2b) to determine

LaTeX: A_1=1

LaTeX: A_0=2\zeta_{desired}\omega_{desired}+a-2\zeta\omega_n

LaTeX: B_0=\frac{\left(a\omega_{desired}^2-A_0\omega_n^2\right)}{\omega_n^2}

LaTeX: B_1=\frac{\omega_{desired}^2+2\zeta_{desired}\omega_{desired}a-2\zeta\omega_nA_0-A_1\omega_n^2}{\omega_n^2}

3 PID Control design using Pole Placement

Let's assume a 2nd order system of with the following form

LaTeX: H(s)=K\frac{\omega_n^2}{s^2+2\zeta\omega_n s+\omega_n^2} \mbox{ for } 0 \le \zeta \le 1 Generic 2nd Order System

LaTeX: K is the system gain
LaTeX: \omega_n is the system's natural frequency
LaTeX: \zeta is the system's damping ratio.

Let's assume we have a PID controller of form

LaTeX: C_{PID}\left(s\right)=K_P\left(k+\frac{k_{i}}{s}+k_{d}s\right) PID[1]

Roll LaTeX: K_p inside the parentheses and add a factor to denominator of the integrator

LaTeX: C_{PID}\left(s\right)=k+\frac{k_{i}}{\alpha s}+k_{d}s

Do a little algebra...

LaTeX: C_{PID}\left(s\right)=\frac{k\alpha s+k_{i}+k_{d}\alpha s^2}{\alpha s}

Finally, rearrange

LaTeX: C_{PID}\left(s\right)=\frac{k_{d}\alpha s^2+k\alpha s+k_{i}}{\alpha s}

The characteristic equation of this system is

LaTeX: \Phi_{CL}=\left(s^2+2\zeta\omega_{n}s+\omega_{n}^2\right)\alpha s+\omega_{n}^2\left(k_{d}\alpha s^2+k\alpha s+k_{i}\right)

LaTeX: \Phi_{CL}=\alpha s^3+\left(2\zeta\omega_{n}\alpha+k_{d}\alpha\omega_{n}^2\right)s^2+\left(\omega_{n}^2+k\alpha\omega_{n}^2\right)s+\omega_{n}^2k_{i}

From the order of LaTeX: \Phi_{CL} we know we need 3 stable closed loop poles so the form of the desired characteristic equation is

LaTeX: \beta s^3+\gamma s^2+\chi s+\nu


Table 1: Pole Placement Results

LaTeX: s^3

LaTeX: \beta=\alpha

LaTeX: s^2

LaTeX: \gamma=\left(2\zeta\omega_{n}\alpha+k_{d}\alpha\omega_{n}^2\right)

LaTeX: s^1

LaTeX: \chi=\left(\omega_{n}^2+k\alpha\omega_{n}^2\right)

LaTeX: s^0

LaTeX: \nu=\omega_{n}^2k_{i}

Once the desired closed loop poles are determined then LaTeX: \beta, \gamma, \chi, and LaTeX: \nu can be determined. Algebra does the rest.

4 Notes on 3rd poles

In the [Helicopter Hover Example|hovering helicopter example] the desired closed loop poles are determined by deciding what a reasonable overshoot and rise time would be. This allowed for the determination of a desired LaTeX: \zeta and LaTeX: \omega_n. From those a standard 2nd order system was formed. Since 3 poles were required, just as in the cases provided here, a 3rd pole was placed at an arbitrarily high frequency. The desired chracteristic equation from that became

LaTeX: \left(s+a\right)\left(s^2+2\zeta_{desired}\omega_{desired}s+\omega_{desired}^2\right)


  • LaTeX: a=10\omega_{desired} is our arbitrarily high 3rd pole.

The addition of the pole at LaTeX: -a required that a prefilter be included to reduce overshoot. That prefilter was

LaTeX: W\left(s\right)=\frac{a}{\left(s+a\right)}

5 See Also

Standard Controller Forms

6 References

  1. Franklin et all, pg. 185, Eqn. 4.31