# Control Systems/Routh-Hurwitz Criterion

## Stability Criteria

The Routh-Hurwitz stability criterion provides a simple algorithm to decide whether or not the zeros of a polynomial are all in the left half of the complex plane (such a polynomial is called at times "Hurwitz"). A Hurwitz polynomial is a key requirement for a linear continuous-time time invariant to be stable (all bounded inputs produce bounded outputs).

Necessary stability conditions
Conditions that must hold for a polynomial to be Hurwitz.

If any of them fails - the polynomial is not stable. However, they may all hold without implying stability.

Sufficient stability conditions
Conditions that if met imply that the polynomial is stable. However, a polynomial may be stable without implying some or any of them.

The Routh criteria provides condition that are both necessary and sufficient for a polynomial to be Hurwitz.

## Routh-Hurwitz Criteria

The Routh-Hurwitz criteria is comprised of three separate tests that must be satisfied. If any single test fails, the system is not stable and further tests need not be performed. For this reason, the tests are arranged in order from the easiest to determine to the hardest.

The Routh Hurwitz test is performed on the denominator of the transfer function, the characteristic equation. For instance, in a closed-loop transfer function with G(s) in the forward path, and H(s) in the feedback loop, we have:

$T(s) = \frac{G(s)}{1 + G(s)H(s)}$

If we simplify this equation, we will have an equation with a numerator N(s), and a denominator D(s):

$T(s) = \frac{N(s)}{D(s)}$

The Routh-Hurwitz criteria will focus on the denominator polynomial D(s).

### Routh-Hurwitz Tests

Here are the three tests of the Routh-Hurwitz Criteria. For convenience, we will use N as the order of the polynomial (the value of the highest exponent of s in D(s)). The equation D(s) can be represented generally as follows:

$D(s) = a_0 + a_1s + a_2s^2 + \cdots + a_Ns^N$
Rule 1
All the coefficients ai must be present (non-zero)
Rule 2
All the coefficients ai must be positive (equivalently all of them must be negative, with no sign change)
Rule 3
If Rule 1 and Rule 2 are both satisfied, then form a Routh array from the coefficients ai. There is one pole in the right-hand s-plane for every sign change of the members in the first column of the Routh array (any sign changes, therefore, mean the system is unstable).

We will explain the Routh array below.

### The Routh Array

The Routh array is formed by taking all the coefficients ai of D(s), and staggering them in array form. The final columns for each row should contain zeros:

$\begin{matrix}s^N \\ s^{N-1} \end{matrix} \begin{vmatrix}a_N & a_{N - 2} & \cdots & 0 \\ a_{N-1} & a_{N-3} & \cdots & 0 \end{vmatrix}$

Therefore, if N is odd, the top row will be all the odd coefficients. If N is even, the top row will be all the even coefficients. We can fill in the remainder of the Routh Array as follows:

$\begin{matrix}s^N \\ s^{N-1} \\ \\ \\ s^0 \end{matrix} \begin{vmatrix}a_N & a_{N - 2} & \cdots & 0 \\ a_{N-1} & a_{N-3} & \cdots & 0 \\ b_{N-1} & b_{N-3} & \cdots \\ c_{N-1} & c_{N-3} & \cdots \\ \cdots \end{vmatrix}$

Now, we can define all our b, c, and other coefficients, until we reach row s0. To fill them in, we use the following formulae:

$b_{N-1} = \frac{-1}{a_{N-1}}\begin{vmatrix}a_N & a_{N-2} \\ a_{N-1} & a_{N-3}\end{vmatrix}$

And

$b_{N-3} = \frac{-1}{a_{N-1}}\begin{vmatrix}a_N & a_{N-4} \\ a_{N-1} & a_{N-5}\end{vmatrix}$

For each row that we are computing, we call the left-most element in the row directly above it the pivot element. For instance, in row b, the pivot element is aN-1, and in row c, the pivot element is bN-1 and so on and so forth until we reach the bottom of the array.

To obtain any element, we negate the determinant of the following matrix, and divide by the pivot element:

$\begin{vmatrix}k & m \\ l & n \end{vmatrix}$

Where:

• k is the left-most element two rows above the current row.
• l is the pivot element.
• m is the element two rows up, and one column to the right of the current element.
• n is the element one row up, and one column to the right of the current element.

In terms of k l m n, our equation is:

$v = \frac{(lm) - (kn)}{l}$

### Example: Calculating CN-3

To calculate the value CN-3, we must determine the values for k l m and n:

• k is the left-most element two rows up: aN-1
• l the pivot element, is the left-most element one row up: bN-1
• m is the element from one-column to the right, and up two rows: aN-5
• n is the element one column right, and one row up: bN-5

Plugging this into our equation gives us the formula for CN-3:

$\frac{-1}{b_{N-1}}\begin{vmatrix}a_{N-1} & a_{N-5} \\ b_{N-1} & b_{N-5} \end{vmatrix} = \frac{a_{N-1}b_{N-5} - b_{N-1}a_{N-5}}{- b_{N-1}}$

### Example: Stable Third Order System

We are given a system with the following characteristic equation:

$D(s) =s^3 + 2s^2 + 4s + 3$

Using the first two requirements, we see that all the coefficients are non-zero, and all of the coefficients are positive. We will proceed then to construct the Routh-Array:

$\begin{matrix}s^3 \\ s^2 \\ s^1 \\ s^0 \end{matrix} \begin{vmatrix}1 & 4 & 0 \\ 2 & 3 & 0 \\ b_{N-1} & b_{N-3} & 0 \\ c_{N-1} & c_{N-3} & 0 \end{vmatrix}$

And we can calculate out all the coefficients:

$b_{N-1} = \frac{(2)(4) - (1)(3)}{2} = \frac{5}{2}$
$b_{N-3} = \frac{(2)(0) - (0)(1)}{2} = 0$
$c_{N-1} = \frac{(3)\left(\frac{5}{2}\right) - (2)(0)}{\frac{5}{2}} = 3$
$c_{N-3} = \frac{(2)(0) - \left(\frac{5}{2}\right)(0)}{\frac{5}{2}} = 0$

And filling these values into our Routh Array, we can determine whether the system is stable:

$\begin{matrix}s^3 \\ s^2 \\ s^1 \\ s^0 \end{matrix} \begin{vmatrix}1 & 4 & 0 \\ 2 & 3 & 0 \\ \frac{5}{2} & 0 & 0 \\ 3 & 0 & 0 \end{vmatrix}$

From this array, we can clearly see that all of the signs of the first column are positive, there are no sign changes, and therefore there are no poles of the characteristic equation in the RHP.

### 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 of 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.

### 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.