Routh Stability


Jump to: navigation, search
Routh Stability
Green carrot left.gif
SISO Controller Design
Green carrot.jpg
In order to prevent spam, users must register before they can edit or create articles.

1 Introduction to Routh's Stability Criteria

There are several methods for extracting information about the roots of a polynomial without solving for the roots. These were especially useful prior to the widespread use of modern computers and software like MATLAB. With software like MATLAB 2008a finding the roots of most polynomials are easily found with 1 or 2 commands. However, methods such as the Routh Stability Array can still provide some useful information. Specifically the Routh Array can aid in controller design.

When the characteristic equation is symbolic such as

LaTeX: a\left(s\right)=s^{n}+a_{1}s^{n-1}+a_{2}s^{n-2}+\ldots+a_{n-1}s+a_{n} Char Eqn - (4.68)[1]

then the Routh Array can be the most useful. Using this the Routh Array for controller design is similar to using pole placement for controller design. Pole placement requires that the designer has an idea of the form the controller should take. Using that form a characteristic equation is created with that controller form. The controller coefficients are then manipulated in order to force the closed loop poles to be where the controller designer wants them. The Routh Array provides information about stability and the examples below it is obvious how a Routh Array can help in the assignment of 1 or 2 controller parameters. The Routh Array will allow a designer to define a range for these parameters which will provide closed loop stability.

1.1 Necessary Condition for Routh Stability[2]

All the roots of Eqn. (4.68) must have negative real parts.

1.2 Necessary and Sufficient Condition for Stability[3]

If all the coefficients of LaTeX: a\left(s\right) are positive the syste will be stable; LaTeX: a_{i}>0.

2 Routh Array[4]

The Routh Array is defined in the following manner

Table 1: Routh Array
Row Power First Column Second Column Third Column


LaTeX: s^{n}:


LaTeX: a_{2}

LaTeX: a_{4}

LaTeX: \ldots

n - 1

LaTeX: s^{n-1}:

LaTeX: a_{1}

LaTeX: a_{3}

LaTeX: a_{5}

LaTeX: \ldots

n - 2

LaTeX: s^{n-2}:

LaTeX: b_{1}

LaTeX: b_{2}

LaTeX: b_{3}

LaTeX: \ldots

n - 3

LaTeX: s^{n-3}:

LaTeX: c_{1}

LaTeX: c_{2}

LaTeX: c_{3}

LaTeX: \ldots

LaTeX: \vdots

LaTeX: \vdots

LaTeX: \vdots

LaTeX: \vdots

LaTeX: \vdots


LaTeX: s^{2}:


LaTeX: s:


LaTeX: s^{0}:

LaTeX: b_{1}=-\frac{det\begin{bmatrix}1 & a_{2} \\ a_{1} & a_{3}\end{bmatrix}}{a_{1}}=\frac{a_{1}a_{2}-a_{3}}{a_{1}}

LaTeX: b_{2}=-\frac{det\begin{bmatrix}1 & a_{4} \\ a_{1} & a_{5}\end{bmatrix}}{a_{1}}=\frac{a_{1}a_{4}-a_{5}}{a_{1}}

LaTeX: b_{3}=-\frac{det\begin{bmatrix}1 & a_{6} \\ a_{1} & a_{7}\end{bmatrix}}{a_{1}}=\frac{a_{1}a_{6}-a_{7}}{a_{1}}

LaTeX: c_{1}=-\frac{det\begin{bmatrix}a_{1} & a_{3} \\ b_{1} & b_{2}\end{bmatrix}}{b_{1}}=\frac{b_{1}a_{3}-a_{1}b_{2}}{b_{1}}

LaTeX: c_{2}=-\frac{det\begin{bmatrix}a_{1} & a_{5} \\ b_{1} & b_{3}\end{bmatrix}}{b_{1}}=\frac{b_{1}a_{5}-a_{1}b_{3}}{b_{1}}

LaTeX: c_{3}=-\frac{det\begin{bmatrix}a_{1} & a_{7} \\ a_{1} & b_{4}\end{bmatrix}}{b_{1}}=\frac{b_{1}a_{7}-a_{1}b_{4}}{b_{1}}

2.1 Determination of Stability via Routh Array

For stability only the 1st column of the array matters. If all numbers in the first column are positive then the system is stable. If they are not the number of sign changes equals the number of right half plane (RHP) or unstable closed loop system poles. Note that a sign change of + - + demonstrates 2 sign changes and therefore 2 RHP poles. There is the + - change and the - + change.

3 Examples of the Routh Array

3.1 Example #1: Controller Gain Design using the Routh Array[5]

This first example shows how the Routh Array can be used to determine a range of stable system gains.

When the closed loop characteristic equation is symbolic such as

LaTeX: p\left(s\right)=s^{3}+a_{1}s^{2}+a_{2}s+a_{3}

The example from Goodwin et all is as follows

LaTeX: p\left(s\right)=s^{3}+2s^{2}+s+K

Table 2: Routh Array Example #1

LaTeX: s^{3}

LaTeX: 1

LaTeX: 1

LaTeX: s^{2}

LaTeX: 2

LaTeX: K

LaTeX: s^{1}

LaTeX: 1-0.5K

LaTeX: s^{0}

LaTeX: K

The stability condition is for all values in the 1st column to be positive. From this array it is obvious that

LaTeX: 1-0.5K>0

LaTeX: K>0

leads to

LaTeX: 0<K<2

3.2 Example #2: Controller Design using the Routh Array such that the real parts of the closed loop poles smaller than -1[6]

This second example shows how the Routh Array can be used to determine a range of stable system gains that also provide closed loops poles with real parts to the left of -1.

Solving this problem is matter of shifting the imaginary axis to LaTeX: s = -1. We accomplish this shift by using the following substitution LaTeX: \omega=s+1.

The original closed loop characteristic equation is

LaTeX: p\left(s\right)=s^{3}+8s^{2}+16s+K

The new equation, with the sustitution is

LaTeX: p_{\omega}\left(\omega\right)=p\left(\omega-1\right)=\omega^{3}+5\omega^{2}+3\omega+K-9

The Routh Array for LaTeX: p_{\omega}\left(\omega\right)

Table 3: Routh Array Example #2

LaTeX: \omega^{3}

LaTeX: 1

LaTeX: 3

LaTeX: \omega^{2}

LaTeX: 5

LaTeX: K-9

LaTeX: \omega^{1}

LaTeX: 4.8-0.2K

LaTeX: \omega^{0}

LaTeX: K-9

The stability condition is for all values in the 1st column to be positive. From this Routh Array we conclude that

LaTeX: 9<K<24

4 Routh Stability Special Cases

4.1 Special Case: Row of All Zeros

If, while calculating our Routh-Hurwitz, we obtain a row of all zeros, we do not stop, but can actually learn more information about our system. If we obtain a row of all zeros, we can replace the zeros with a value ε, that we define as being an infinitely small positive number. We can use the value of epsilon in our equations, and when we are done constructing the Routh Array, we can take the limit as epsilon approaches 0 to determine the final format ouf our Routh array.

If we have a row of all zeros, the row directly above it is known as the Auxiliary Polynomial, and can be very helpful. The roots of the auxiliary polynomial give us the precise locations of complex conjugate roots that lie on the jω axis. However, one important point to notice is that if there are repeated roots on the jω axis, the system is actually unstable. Therefore, we must use the auxiliary polynomial to determine whether the roots are repeated or not.

4.2 Special Case: Zero in the First Column

In this special case, there is a zero in the first column of the Routh Array, but the other elements of that row are non-zero. Like the above case, we can replace the zero with a small variable epsilon (ε) and use that variable to continue our calculations. After we have constructed the entire array, we can take the limit as epsilon approaches zero to get our final values.

5 MATLAB Script

This script has not been fully tested but it has been tested on several examples. Including 1 where I found an error in 1 of my text books. It should produce a Routh Array well for most polynomials.



Fix File

6 References

  • Franklin, G. F., Emami-Naeini, A., and Powell, J. D. 1993 Feedback Control of Dynamic Systems. 3rd. Addison-Wesley Longman Publishing Co., Inc. ISBN 0201527472
  • Goodwin, G. C., Graebe, S. F., and Salgado, M. E. 2000 Control System Design. 1st. Prentice Hall PTR. ISBN 0139586539

6.1 Notes

  1. Franklin et all, pg. 215
  2. Franklin et all, pg. 215
  3. Franklin et all, pg. 215
  4. Franklin et all, pg. 216
  5. Goodwin et all, pg. 134
  6. Goodwin et all, pg. 134