Fiveable

🎛️Control Theory Unit 6 Review

QR code for Control Theory practice questions

6.2 Routh-Hurwitz criterion

6.2 Routh-Hurwitz criterion

Written by the Fiveable Content Team • Last updated August 2025
Written by the Fiveable Content Team • Last updated August 2025
🎛️Control Theory
Unit & Topic Study Guides

Routh-Hurwitz Criterion Overview

The Routh-Hurwitz criterion lets you determine whether a linear time-invariant (LTI) system is stable using only the coefficients of its characteristic polynomial. You never need to actually solve for the roots. This makes it one of the fastest stability checks available in control theory.

The criterion gives you necessary and sufficient conditions for stability: it tells you definitively whether all roots of the characteristic polynomial lie in the left-half of the ss-plane, and if they don't, it tells you exactly how many are in the right-half plane.

Characteristic Polynomial

The characteristic polynomial captures a system's dynamic behavior. You get it from the denominator of the transfer function or from det(sIA)=0\det(sI - A) = 0 in state-space form.

For a continuous-time system, it takes the form:

P(s)=a0sn+a1sn1++an1s+anP(s) = a_0 s^n + a_1 s^{n-1} + \cdots + a_{n-1} s + a_n

where aia_i are real-valued coefficients and nn is the system order. The roots of this polynomial are the system's poles, and their locations determine stability and transient response.

Quick necessary condition (before you even build the Routh array): All coefficients aia_i must be present and must have the same sign. If any coefficient is zero or differs in sign, the system is already unstable. This check alone can save you time, but it's not sufficient on its own for systems of order 3 or higher.

Routh Array

The Routh array is a table you build from the polynomial coefficients. Once complete, you read stability directly from its first column.

Construction of the Routh Array

Here's how to build it, step by step. Suppose your characteristic polynomial is P(s)=a0sn+a1sn1+a2sn2+a3sn3+P(s) = a_0 s^n + a_1 s^{n-1} + a_2 s^{n-2} + a_3 s^{n-3} + \cdots

Step 1: Fill the first two rows by alternating coefficients.

RowCol 1Col 2Col 3...
sns^na0a_0a2a_2a4a_4...
sn1s^{n-1}a1a_1a3a_3a5a_5...
If a coefficient doesn't exist (the polynomial ran out of terms), fill it with zero.

Step 2: Compute each element in the sn2s^{n-2} row using this formula:

b1=a1a2a0a3a1,b2=a1a4a0a5a1,b_1 = \frac{a_1 \cdot a_2 - a_0 \cdot a_3}{a_1}, \quad b_2 = \frac{a_1 \cdot a_4 - a_0 \cdot a_5}{a_1}, \quad \ldots

The pattern is: take the two elements from the rows above, form a 2×2 cross-multiplication, and divide by the first-column element of the row directly above.

Step 3: Repeat this process for each subsequent row, always using the two rows immediately above, until you reach the s0s^0 row. Each row will have one fewer computed element than the row two above it.

Worked Example

Consider P(s)=s3+4s2+5s+2P(s) = s^3 + 4s^2 + 5s + 2.

RowCol 1Col 2
s3s^315
s2s^242
s1s^1(4)(5)(1)(2)4=184=4.5\frac{(4)(5) - (1)(2)}{4} = \frac{18}{4} = 4.50
s0s^0(4.5)(2)(4)(0)4.5=2\frac{(4.5)(2) - (4)(0)}{4.5} = 2First column: 1, 4, 4.5, 2. All positive, so zero sign changes and the system is stable. ### Special Cases in the Routh Array Two situations require extra handling: A zero in the first column (but the rest of the row is not all zeros): You can't divide by zero in the next calculation. The standard fix is to replace the zero with a small positive number ϵ\epsilon, continue building the array, and then evaluate the sign changes as ϵ0+\epsilon \to 0^+. An entire row of zeros: This signals that the polynomial has roots that are symmetric about the origin. These could be purely imaginary roots (on the jωj\omega-axis), equal and opposite real roots, or a combination. To proceed: 1. Form the auxiliary polynomial from the row just above the all-zero row. 2. Take the derivative of that auxiliary polynomial. 3. Replace the zero row with the coefficients of this derivative. 4. Continue building the array as normal. The roots of the auxiliary polynomial are themselves roots of the original characteristic polynomial, and they often indicate marginal stability (oscillation without growth or decay). ## Stability Analysis Using Routh-Hurwitz The core rule is simple: > Count the sign changes in the first column of the completed Routh array. The number of sign changes equals the number of roots in the right-half ss-plane (roots with positive real parts). - Zero sign changes → all roots in the left-half plane → stable system - One or more sign changes → that many roots in the right-half plane → unstable system For example, if the first column reads: 1, 2, −3, 4, the signs go +, +, −, +. That's two sign changes (+ to − and − to +), meaning two roots have positive real parts. ### Necessary and Sufficient Conditions for Stability For all roots to have strictly negative real parts: - Necessary condition: All coefficients of the characteristic polynomial must be positive (assuming a0>0a_0 > 0). Any missing or negative coefficient immediately means instability. - Sufficient condition: All elements in the first column of the Routh array are strictly positive (no zeros, no sign changes). Both conditions together give you a definitive stability verdict. ## Advantages and Limitations Strengths: - No root-finding required. You only need the polynomial coefficients. - Computationally cheap, especially for higher-order systems. - Gives the exact count of unstable roots. - Useful for finding the range of a parameter (like gain KK) that keeps the system stable. Limitations: - Only works for LTI systems. - Tells you how many roots are unstable but not where they are. - Gives no information about relative stability, gain margin, or phase margin. - For discrete-time systems, you can't apply it directly to the zz-domain polynomial without a transformation (see below). ######
Coefficients of characteristic polynomial, HurwitzMatrix | Wolfram Function Repository
### Comparison with Other Stability Methods
---------------------------------
Routh-HurwitzAlgebraicStable/unstable + count of RHP roots
Root LocusGraphicalHow pole locations change with gain
Nyquist CriterionGraphical (frequency)Stability + gain/phase margins
Bode PlotGraphical (frequency)Gain and phase margins

Routh-Hurwitz gives a definitive yes/no answer. Root locus and frequency-domain methods give richer design insight but require more computation.

Applications of the Routh-Hurwitz Criterion

Control System Design and Analysis

The most common use is finding the range of gain KK that keeps a closed-loop system stable. You substitute KK into the characteristic polynomial, build the Routh array with KK as a symbolic parameter, and then set inequalities on the first-column elements to find the valid range.

For example, if a first-column element works out to 62K6 - 2K, stability requires 62K>06 - 2K > 0, giving K<3K < 3. Combined with other rows' constraints, you get the full stable range.

This approach pairs well with root locus and frequency response methods during the design process.

Stability Assessment Across Domains

The criterion applies anywhere you have a characteristic polynomial from an LTI model:

  • Electrical systems: Power grid stability, filter design, amplifier feedback circuits
  • Mechanical systems: Vibration analysis, suspension design, robotic arm control
  • Chemical processes: Reactor temperature control, distillation column regulation
  • Aerospace: Flight control stability, autopilot tuning, satellite attitude control

Applying the Criterion: Problem-Solving Approach

  1. Extract the characteristic polynomial from the transfer function denominator or from det(sIA)\det(sI - A).

  2. Check the necessary condition: Are all coefficients present and of the same sign? If not, stop. The system is unstable.

  3. Build the Routh array row by row using the cross-multiplication formula.

  4. Handle special cases if a first-column zero or an all-zero row appears.

  5. Count sign changes in the first column. Zero sign changes means stable; otherwise, the count gives the number of right-half plane roots.

Interpreting Results

  • All first-column elements the same sign → stable
  • Sign changes present → unstable, with the number of sign changes equaling the number of RHP poles
  • An all-zero row → roots on the imaginary axis (marginally stable at best). Analyze the auxiliary polynomial to find those roots explicitly.

Extensions for Discrete-Time Systems

For discrete-time systems with characteristic polynomials in zz, you can't apply Routh-Hurwitz directly because the stability region is the unit circle z<1|z| < 1, not the left-half plane.

The standard approach is to use a bilinear transformation (Jury's or Möbius transformation) to map the unit circle in the zz-plane to the left-half of a new ww-plane, then apply the Routh-Hurwitz criterion to the transformed polynomial. Alternatively, the Jury stability test is the direct discrete-time analog of Routh-Hurwitz.

Historical Background

The criterion is named after Edward John Routh (1831–1907) and Adolf Hurwitz (1859–1919), who developed their results independently in the late 19th century. Routh published his tabular method in 1876 for analyzing mechanical system stability, while Hurwitz formulated equivalent conditions using determinants of coefficient matrices in 1895.

Hurwitz's formulation uses the Hurwitz determinants: the system is stable if and only if all leading principal minors of the Hurwitz matrix are positive. Routh's array method and Hurwitz's determinant conditions are mathematically equivalent, but the Routh array is generally easier to compute by hand, which is why it's the version you'll typically use in coursework.

2,589 studying →