Routh-Hurwitz stability criterion

Builds the Routh array, counts right-half-plane roots, handles the zero-element and zero-row special cases, and finds the stable gain range 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 you worry about overshoot or error, a control loop must be stable. Raising the gain of a level or temperature controller too far makes the loop oscillate, and the Routh–Hurwitz test tells you exactly where that limit is — and the frequency at which the loop will oscillate — without solving for the roots. It is the quickest stability check in the syllabus and appears in GATE almost every year.

Key ideas

Stability of an LTI system

  • BIBO / asymptotic stability: every bounded input gives a bounded output, which for a rational transfer function means every closed-loop pole has a negative real part (lies in the open left half-plane).
  • Marginally stable: no right-half-plane (RHP) poles, but non-repeated poles on the jω-axis — the system oscillates forever at constant amplitude. Repeated jω-axis poles make it unstable.
  • Unstable: at least one RHP pole, or repeated poles on the jω-axis.
  • The closed-loop poles are the roots of the characteristic equation 1 + G(s)H(s) = 0, written as a polynomial a0·s^n + a1·s^(n−1) + … + an = 0.

Necessary (not sufficient) condition: all coefficients must be present (no missing power of s) and have the same sign. If any coefficient is zero or negative, there is at least one root that is not in the open LHP. For first- and second-order polynomials this condition is also sufficient.

Building the Routh array

  1. Row s^n: a0, a2, a4, …. Row s^(n−1): a1, a3, a5, ….
  2. Each new element uses the two rows above: b1 = (a1·a2 − a0·a3)/a1, b2 = (a1·a4 − a0·a5)/a1, and so on. Fill missing entries with zero.
  3. Continue down to the s^0 row. Any row may be multiplied by a positive constant to simplify.

Routh's criterion: the number of roots in the RHP equals the number of sign changes in the first column. The system is stable if and only if the first column has no sign change (and no zero).

Special case 1 — zero in the first column, rest of the row non-zero: replace the zero by a small positive ε, continue, and count sign changes as ε → 0⁺. (Alternatively, substitute s = 1/z and test the reversed polynomial.) The system is not stable.

Special case 2 — an entire row of zeros: the polynomial has roots placed symmetrically about the origin (pairs ±jω, ±σ, or quadruples ±σ ± jω).

  • Form the auxiliary polynomial A(s) from the row just above the zero row (it has only even or only odd powers).
  • Replace the zero row with the coefficients of dA/ds and continue.
  • The roots of A(s) = 0 are the symmetric roots. Sign changes below the zero row count RHP roots among them; jω-axis roots give no sign change. If all symmetric roots are on the jω-axis and there are no other sign changes, the system is marginally stable.

Finding a gain range: put the gain K into the characteristic equation, build the array in terms of K, and require every first-column element to be positive. The critical gain makes one row zero; the auxiliary equation at that gain gives the frequency of sustained oscillation.

Limits: Routh tells you how many roots are in the RHP, not where they are or how well damped the stable ones are. To test relative stability (all roots left of s = −σ), substitute s = z − σ and apply Routh to the shifted polynomial. Routh does not apply directly to systems with dead time e^(−sT).

Formulas

  • 1 + G(s)H(s) = 0 — characteristic equation (closed-loop poles).
  • b1 = (a1·a2 − a0·a3)/a1, b2 = (a1·a4 − a0·a5)/a1 — third-row elements.
  • c1 = (b1·a3 − a1·b2)/b1 — fourth-row first element.
  • a1·a2 > a0·a3 with all ai > 0 — necessary and sufficient condition for a cubic a0s³ + a1s² + a2s + a3.
  • A(s) = 0 at K = K_cr → s = ±jω_osc — frequency of sustained oscillation (rad/s).

The coefficients ai take the units implied by the polynomial; K is the loop gain in its own units (often s⁻¹ or dimensionless); ω_osc is in rad/s.

Worked examples

Example 1 — counting RHP roots Given: s⁴ + 2s³ + 3s² + 4s + 5 = 0.

  1. All coefficients are positive, so the quick test passes, but it is not sufficient.
  2. Row s⁴: 1, 3, 5. Row s³: 2, 4.
  3. Row s²: (2 × 3 − 1 × 4)/2 = 1, (2 × 5 − 1 × 0)/2 = 5.
  4. Row s¹: (1 × 4 − 2 × 5)/1 = −6.
  5. Row s⁰: 5.
  6. First column 1, 2, 1, −6, 5: two sign changes (1 → −6 and −6 → 5).

Result: 2 roots in the RHP — the system is unstable, even though every coefficient is positive.

Example 2 — critical gain and oscillation frequency (GATE level) Given: unity feedback, G(s) = K/[s(s + 2)(s + 4)]. Find the range of K for stability and the frequency of oscillation at the limit.

  1. Characteristic equation: s(s + 2)(s + 4) + K = s³ + 6s² + 8s + K = 0.
  2. Row s³: 1, 8. Row s²: 6, K.
  3. Row s¹: (6 × 8 − 1 × K)/6 = (48 − K)/6. Row s⁰: K.
  4. Stability needs 48 − K > 0 and K > 0, so 0 < K < 48.
  5. At K = 48 the s¹ row is zero. Auxiliary polynomial from the s² row: 6s² + 48 = 0 → s² = −8 → s = ±j2.83.

Result: stable for 0 < K < 48; at K = 48 the loop oscillates at ω = √8 = 2.83 rad/s.

Common mistakes

  • Concluding "stable" because all coefficients are positive — that is only a necessary condition from third order upward.
  • Mixing up which coefficients go in the first two rows (the first row starts with the highest power and takes every second coefficient).
  • Forgetting a zero placeholder when a row runs out of coefficients.
  • Taking the auxiliary polynomial from the zero row itself rather than the row above it.
  • Reading the oscillation frequency in Hz when the auxiliary equation gives rad/s.
  • Forgetting that K > 0 (from the s⁰ row) is also part of the stability range.

For GATE IN

Expect questions that give a characteristic polynomial or open-loop transfer function and ask for the number of RHP roots, the range of K for stability, the critical gain and oscillation frequency, or whether the system is stable, marginally stable or unstable. Practise the row-of-zeros case, polynomials with a parameter in two coefficients, and the cubic shortcut a1·a2 > a0·a3.

Quick check

  1. Is s³ + 4s² + 6s + 8 = 0 stable?
  2. Is s³ + 2s² − s + 3 = 0 stable?
  3. For s³ + 3s² + 2s + K = 0, what is the maximum K for stability?
  4. What does an entire row of zeros in the Routh array tell you?

Answers: 1. Yes — 4 × 6 = 24 > 8 and all coefficients positive; 2. No — a negative coefficient; 3. K < 6; 4. The polynomial has roots symmetric about the origin, found from the auxiliary polynomial.

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 in descending powers. The first row takes the 1st, 3rd, 5th … coefficients and the second row the 2nd, 4th, 6th …, padding with zeros. Each later element is formed from the two rows above, e.g. b1 = (a1·a2 − a0·a3)/a1, and the process continues to the s⁰ row. The number of sign changes in the first column equals the number of right-half-plane roots.

  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 responds predictably and does not exhibit undesirable behaviors like oscillations or divergence.

  4. 4.What happens if there is a row of zeros in the Routh array?Application

    If a row of zeros appears in the Routh array, it indicates the presence of symmetrical roots about the origin in the s-plane, which could be purely imaginary roots. To resolve this, a special procedure involving the auxiliary polynomial is used. The auxiliary polynomial is derived from the row just above the zero row, and its derivative is used to replace the zero row, allowing the Routh array construction to continue.

  5. 5.How can you determine the number of right-half plane poles using the Routh-Hurwitz criterion?Application

    The number of right-half plane poles is determined by counting the number of sign changes in the first column of the Routh array. Each sign change corresponds to a pole in the right-half plane, which indicates instability. If there are no sign changes, the system is stable with all poles in the left-half plane.

  6. 6.What is the significance of a zero in the first column of the Routh array?Application

    A zero in the first column of the Routh array can indicate potential stability issues, as it may lead to division by zero in subsequent calculations. To handle this, a small positive number, ε, is substituted for the zero, and the limit is taken as ε approaches zero. This allows the Routh array to be completed and the stability analysis to continue.

  7. 7.Explain the concept of marginal stability in the context of the Routh-Hurwitz criterion.Concept

    A system is marginally stable when it has non-repeated poles on the jω-axis and none in the right half-plane, so its natural response oscillates at constant amplitude. In the Routh array this shows up as a full row of zeros; the auxiliary polynomial from the row above gives the symmetric roots. Only if those roots are purely imaginary and there are no sign changes in the first column is the system marginally stable — a zero row can also come from real pairs ±σ, which means instability.

  8. 8.Given the characteristic equation s^3 + 2s^2 + 3s + 4 = 0, construct the first two rows of the Routh array.Numerical

    For the characteristic equation s^3 + 2s^2 + 3s + 4 = 0, the first row of the Routh array is [1, 3], and the second row is [2, 4]. These rows are formed by taking the coefficients of the polynomial's even and odd powers, respectively.

  9. 9.For the polynomial s⁴ + 3s³ + 3s² + 2s + 1 = 0, determine if the system is stable using the Routh-Hurwitz criterion.Numerical

    Row s⁴: 1, 3, 1. Row s³: 3, 2. Row s²: (3×3 − 1×2)/3 = 7/3 and (3×1 − 0)/3 = 1. Row s¹: (7/3 × 2 − 3×1)/(7/3) = 5/7. Row s⁰: 1. The first column 1, 3, 7/3, 5/7, 1 has no sign change, 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?