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

We will explain the Routh array below.

### The Routh\'s Array

The Routh array is formed by taking all the coefficients a~i~ 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 s^0^. 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 a~N-1~, and in row c, the pivot element is b~N-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 C~N-3~

\\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}}`</math>`{=html}}}

### Example: Stable Third Order System

= 3`</math>`{=html}

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

The auxiliary equation is to be differentiated with respect to s and the
coefficients of this equation replaces the all zero row. Routh array can
be further calculated using these new values.

### 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. If the sign coefficient above the (ε) is the same
as below it, this indicates a pure imaginary root.

