# Control Systems/Routh-Hurwitz Criterion

## Stability Criteria[edit]

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[edit]

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:

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

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

### Routh-Hurwitz Tests[edit]

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:

- Rule 1
- All the coefficients a
_{i}must be present (non-zero) - Rule 2
- All the coefficients a
_{i}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 a_{i}. 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[edit]

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:

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:

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:

And

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:

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:

### Example: Calculating C_{N-3}[edit]

To calculate the value C_{N-3}, we must determine the values for **k l m** and **n**:

**k**is the left-most element two rows up: a_{N-1}**l**the pivot element, is the left-most element one row up: b_{N-1}**m**is the element from one-column to the right, and up two rows: a_{N-5}**n**is the element one column right, and one row up: b_{N-5}

Plugging this into our equation gives us the formula for C_{N-3}:

### Example: Stable Third Order System[edit]

We are given a system with the following characteristic equation:

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:

And we can calculate out all the coefficients:

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

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[edit]

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[edit]

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