Routh-Hurwitz stability criterion

The Routh array, counting right-half-plane roots from first-column sign changes, the zero-element and zero-row special cases, and finding the stable gain range, marginal gain and oscillation frequency.

Drafted with Aria, reviewed by the AiCanCode.org team. Spotted an error? Use Give Feedback at the bottom of the page.

Why it matters

Before tuning a servo for speed or accuracy you must know whether it is stable at all — and up to what gain. Finding the roots of a fourth- or fifth-order characteristic equation by hand is impractical, but the Routh–Hurwitz test tells you how many roots lie in the right half-plane, and the range of a gain for stability, using only the polynomial coefficients. It is the first check in almost every gain-selection problem.

Key ideas

Stability. An LTI system is BIBO stable if and only if every root of its characteristic equation (every closed-loop pole) has a negative real part. A root with positive real part gives a growing exponential; simple roots on the jω-axis give sustained oscillation (marginal stability); repeated jω-axis roots give growing oscillation.

Characteristic equation. For a feedback loop it is 1 + G(s)H(s) = 0, cleared to polynomial form a₀sⁿ + a₁sⁿ⁻¹ + … + aₙ = 0 with a₀ > 0.

Necessary condition (quick screen). All coefficients must be present and of the same sign. A missing term or a sign change means the system is not stable — stop. But all-positive coefficients are not sufficient for third and higher order; you still need the array. (For first- and second-order polynomials, all-positive coefficients are sufficient.)

Building the Routh array.

  1. Row sⁿ: a₀, a₂, a₄, … (starting with the highest power, every second coefficient).
  2. Row sⁿ⁻¹: a₁, a₃, a₅, …
  3. Each new element uses the two rows above: b₁ = (a₁a₂ − a₀a₃)/a₁, b₂ = (a₁a₄ − a₀a₅)/a₁, and so on — the first-column elements of the two rows above, cross-multiplied with the next column.
  4. Continue down to row s⁰. Any row may be multiplied by a positive constant to simplify arithmetic.

The criterion. The number of sign changes in the first column equals the number of roots in the right half-plane. The system is stable if and only if every first-column element is positive (no sign changes, no zeros).

Special case 1 — a zero first element, rest of row not all zero. Replace the zero by a small positive ε, continue, and count sign changes as ε → 0⁺. (Alternatively replace s by 1/s and test the reversed polynomial.) This case always means at least one root is not in the left half-plane.

Special case 2 — an entire row of zeros. The polynomial has roots placed symmetrically about the origin: a real pair ±σ, an imaginary pair ±jω, or a complex quadruple. Form the auxiliary polynomial A(s) from the row just above the zero row (it uses only every second power), replace the zero row with the coefficients of dA/ds, and continue. The roots of A(s) are the symmetric roots themselves and also a factor of the original polynomial. Sign changes below the zero row count right-half-plane roots; jω-axis roots come from solving A(s) = 0.

Parameter range. With a gain K in the coefficients, require every first-column entry > 0 to get the range of K. The value that makes the s¹ row zero is the marginal (critical) gain K_mar; the s² row's auxiliary equation at that gain gives the frequency of sustained oscillation — the same point where the root locus crosses the jω-axis.

Limits. Routh tells you whether roots are in the left half-plane, not how far in. To check relative stability (all roots left of s = −σ), substitute s = z − σ and test the new polynomial. It applies to polynomials only — not to systems with pure time delay (use Nyquist or Bode).

Formulas

a₀sⁿ + a₁sⁿ⁻¹ + a₂sⁿ⁻² + … + aₙ = 0 (a₀ > 0)

b₁ = (a₁·a₂ − a₀·a₃)/a₁, b₂ = (a₁·a₄ − a₀·a₅)/a₁ c₁ = (b₁·a₃ − a₁·b₂)/b₁

  • aᵢ: polynomial coefficients; b, c: entries of the third and fourth rows.

Third-order stability condition for a₀s³ + a₁s² + a₂s + a₃ = 0: all aᵢ > 0 and a₁·a₂ > a₀·a₃

Auxiliary polynomial: A(s) from the row above an all-zero row; replace the zero row with dA/ds.

Relative stability: substitute s = z − σ and apply Routh in z.

Worked examples

Example 1 (standard — gain range). A unity-feedback loop has G(s) = K/(s(s + 1)(s + 2)). Find the range of K for stability, the marginal gain and the frequency of oscillation.

  1. Characteristic equation: s(s + 1)(s + 2) + K = 0, i.e. s³ + 3s² + 2s + K = 0.
  2. Array: s³: 1, 2; s²: 3, K; s¹: (3 × 2 − 1 × K)/3 = (6 − K)/3; s⁰: K.
  3. Need (6 − K)/3 > 0 and K > 0: 0 < K < 6.
  4. Marginal gain K_mar = 6 (the s¹ row becomes zero).
  5. Auxiliary equation from the s² row: 3s² + 6 = 0 → s = ±j√2, so the loop oscillates at ω = 1.414 rad/s.

Example 2 (GATE level — row of zeros). Determine the location of the roots of s⁵ + 2s⁴ + 24s³ + 48s² − 25s − 50 = 0.

  1. A coefficient is negative, so the system is unstable; Routh tells us where the roots are.
  2. s⁵: 1, 24, −25; s⁴: 2, 48, −50.
  3. s³: (2 × 24 − 1 × 48)/2 = 0 and (2 × (−25) − 1 × (−50))/2 = 0 — a full row of zeros.
  4. Auxiliary polynomial from s⁴: A(s) = 2s⁴ + 48s² − 50; dA/ds = 8s³ + 96s. New s³ row: 8, 96.
  5. s²: (8 × 48 − 2 × 96)/8 = 24, and (8 × (−50) − 2 × 0)/8 = −50 → 24, −50.
  6. s¹: (24 × 96 − 8 × (−50))/24 = 2704/24 = 112.7; s⁰: −50.
  7. First column: 1, 2, 8, 24, 112.7, −50 → one sign change → one root in the right half-plane.
  8. A(s) = 0 → s⁴ + 24s² − 25 = (s² + 25)(s² − 1) = 0 → s = ±1 and s = ±j5.
  9. Result: one root at s = +1 (RHP), two on the jω-axis at ±j5, two in the LHP (the remaining factor is (s + 1)(s + 2)). The system is unstable.

Common mistakes

  • Starting row 1 with "even powers": row 1 always starts with the coefficient of the highest power, whatever its parity.
  • Concluding stability from all-positive coefficients for a third- or higher-order polynomial.
  • Arithmetic sign slips in the cross-multiplication; write b₁ = (a₁a₂ − a₀a₃)/a₁ explicitly each time.
  • Treating a single zero in the first column as a row of zeros (or vice versa) — they need different fixes.
  • Forgetting to also require K > 0 from the s⁰ row when finding a gain range.
  • Reading the oscillation frequency from the wrong row: use the row just above the zero row at K = K_mar.

For GATE ME

Expect: number of RHP roots for a given polynomial; range of K for stability of a unity-feedback loop; marginal gain and oscillation frequency; special cases with a zero element or a row of zeros; and conceptual MCQs on necessary versus sufficient conditions. Practise the third-order shortcut a₁a₂ > a₀a₃ — it saves time on many questions.

Quick check

  1. Is s³ + 5s² + 8s + 10 = 0 stable?
  2. For s⁴ + 3s³ + 5s² + 7s + 9 = 0, what is the first element of the s² row?
  3. What does an entire row of zeros indicate?
  4. For s³ + 3s² + 2s + K = 0, what is the marginal gain?
  5. Can s⁴ + 2s² + 3 = 0 be stable?

Answers: 1. Yes — 5 × 8 = 40 > 10 and the first column 1, 5, 6, 10 is all positive. 2. (3 × 5 − 1 × 7)/3 = 2.67. 3. Roots symmetric about the origin (for example a pair on the jω-axis), found from the auxiliary polynomial. 4. K = 6. 5. No — the s³ and s terms are missing.

Try answering each one aloud before you open it.

  1. 1.What is the Routh-Hurwitz stability criterion?Concept

    The Routh-Hurwitz stability criterion is a mathematical test used to determine the stability of a linear time-invariant (LTI) system. It provides a way to assess whether all the roots of the characteristic equation of a system have negative real parts, which is necessary for the system to be stable. The criterion involves constructing the Routh array and checking the sign changes in the first column.

  2. 2.Explain how the Routh array is constructed.Concept

    Write the characteristic polynomial a₀sⁿ + a₁sⁿ⁻¹ + … + aₙ with a₀ > 0. The first row holds a₀, a₂, a₄, … and the second row a₁, a₃, a₅, … — every second coefficient starting from the highest power, so the first row is not simply the even powers. Each later element is formed from the two rows above, for example b₁ = (a₁a₂ − a₀a₃)/a₁, and you continue until the s⁰ row. Any row may be scaled by a positive constant, and zero-element or zero-row cases use the ε method or the auxiliary polynomial.

  3. 3.Why is the Routh-Hurwitz criterion important in control systems?Application

    The Routh-Hurwitz criterion is important because it provides a systematic way to determine the stability of a control system without explicitly calculating the roots of the characteristic equation. This is particularly useful for high-order systems where finding roots analytically is complex. Stability is crucial for ensuring that a system behaves predictably and does not exhibit undesirable oscillations or diverge over time.

  4. 4.What does it mean if there is a sign change in the first column of the Routh array?Application

    A sign change in the first column of the Routh array indicates that there is at least one root of the characteristic equation with a positive real part. This means the system is unstable. The number of sign changes corresponds to the number of roots with positive real parts, which directly affects the system's stability.

  5. 5.How can the Routh-Hurwitz criterion be used to determine the range of a parameter for stability?Application

    To determine the range of a parameter for stability using the Routh-Hurwitz criterion, include the parameter in the characteristic equation and construct the Routh array. Analyze the conditions under which all elements in the first column of the Routh array remain positive. Solving these conditions will provide the range of values for the parameter that ensures system stability.

  6. 6.What happens if a row of zeros appears in the Routh array?Application

    An all-zero row means the polynomial has roots placed symmetrically about the origin: a real pair ±σ, an imaginary pair ±jω, or a complex quadruple. Form the auxiliary polynomial A(s) from the row just above the zero row, replace the zero row with the coefficients of dA/ds and continue the array. Sign changes in the first column still count right-half-plane roots, and solving A(s) = 0 gives the symmetric roots, including any on the jω-axis. In gain problems this happens at the marginal gain, and A(s) gives the oscillation frequency.

  7. 7.Explain the significance of the auxiliary polynomial in the Routh-Hurwitz criterion.Concept

    The auxiliary polynomial is significant because it helps address situations where a row of zeros appears in the Routh array. This polynomial is derived from the row immediately above the zero row and represents a factor of the characteristic equation. By using its derivative to replace the zero row, the Routh array can be completed, allowing the stability analysis to proceed.

  8. 8.What is the impact of having a zero in the first column of the Routh array?Application

    If only the first element of a row is zero and the rest of the row is not, the next row cannot be computed because you would divide by zero. Replace the zero by a small positive ε, complete the array and count the sign changes as ε → 0⁺; each sign change is a right-half-plane root. Either way, a zero first element means the system is not asymptotically stable. It is different from an entire row of zeros, which needs the auxiliary polynomial.

  9. 9.Given the characteristic equation s^3 + 2s^2 + 3s + 4 = 0, determine if the system is stable using the Routh-Hurwitz criterion.Numerical
    1. Construct the Routh array:
      • First row: 1, 3
      • Second row: 2, 4
      • Third row: (23 - 14)/2 = 1, 0
      • Fourth row: 4
    2. Check the first column: 1, 2, 1, 4 (all positive)
    3. Since there are no sign changes, the system is stable.
  10. 10.For the characteristic equation s^4 + 3s^3 + 3s^2 + 2s + 1 = 0, use the Routh-Hurwitz criterion to determine stability.Numerical

    Row s⁴: 1, 3, 1. Row s³: 3, 2. Row s²: (3 × 3 − 1 × 2)/3 = 7/3 and (3 × 1 − 1 × 0)/3 = 1. Row s¹: ((7/3) × 2 − 3 × 1)/(7/3) = 5/7. Row s⁰: 1. The first column 1, 3, 2.33, 0.714, 1 has no sign changes, so all four roots are in the left half-plane and the system is stable.

Finished this topic? Mark it so your progress, study plan and readiness keep up.

Stuck on something here?