In short
Stability analysis asks whether a closed-loop system settles down or runs away, and how much margin it has before it misbehaves. Three classical tools answer it: the Routh-Hurwitz criterion tests the characteristic polynomial algebraically, the root locus traces closed-loop pole paths as gain varies, and Bode plots (with Nyquist as their polar cousin) read stability from open-loop frequency response. In Indian university exams and GATE EE/EC, this block carries a large share of control-systems marks, and placement interviews at BHEL, Siemens, ABB, L&T, Honeywell, Tata Power, ISRO and DRDO almost always ask gain and phase margin. On the job it decides drive tuning, governor settings, and whether a servo loop will chatter.
Explained
Stability definitions and pole locations
- BIBO stability: every bounded input produces a bounded output. For an LTI system this holds if and only if all closed-loop poles lie strictly in the left half of the s-plane (negative real parts).
- Asymptotic stability: the impulse response decays to zero as t → ∞; for LTI systems this coincides with BIBO stability.
- Marginally (limitedly) stable: simple, non-repeated poles exactly on the jω axis (including the origin) and none in the right half plane - the response is a sustained oscillation or constant, neither growing nor decaying.
- Unstable: any pole with a positive real part, or repeated poles on the jω axis.
- Conditionally stable: stable only for a band of gain values - gain both too low and too high causes instability.
- Absolute stability is the yes/no answer; relative stability measures how far from instability (settling time, damping ratio, gain margin, phase margin).
- Stability of a closed-loop system is a property of the characteristic equation 1 + G(s)H(s) = 0, not of the input. Open-loop poles may be unstable while the closed loop is stable.
Routh-Hurwitz criterion
For the characteristic equation aₙsⁿ + aₙ₋₁sⁿ⁻¹ + … + a₁s + a₀ = 0:
- Necessary condition: all coefficients must be present and have the same sign. A missing or opposite-sign coefficient proves instability immediately (no array needed).
- Build the Routh array: first row = alternate coefficients starting with aₙ, second row = the remaining ones; each later element = −(1/pivot) × the 2×2 determinant of the two rows above.
- Conclusion: the number of sign changes in the first column equals the number of roots in the right half plane. All-same-sign first column means stable.
- Special case 1 - a zero in the first column with a non-zero row: replace 0 by a small ε > 0 and continue, or substitute s → 1/z and run Routh on the reversed polynomial. Such a system is always unstable.
- Special case 2 - an entire row of zeros: symmetric roots about the origin exist (jω pairs, or ±σ pairs). Form the auxiliary equation from the row above, differentiate it with respect to s, and use those coefficients to replace the zero row. Roots of the auxiliary equation give the jω-axis crossing frequencies.
- Uses: finding the range of K for stability, the value of K for marginal stability and the resulting oscillation frequency, checking a relative-stability shift by substituting s = z − σ.
- Limitations: needs a polynomial (no transport delay e−sT unless approximated), gives only the count of RHP roots not their locations, and offers no design guidance.
Root locus
- Definition: the locus of closed-loop poles in the s-plane as an open-loop parameter (usually gain K) varies from 0 to ∞. Based on the magnitude condition |KG(s)H(s)| = 1 and the angle condition ∠G(s)H(s) = ±180°(2q+1).
- Construction rules:
- Locus is symmetric about the real axis; it has as many branches as open-loop poles (P), starting at the poles (K = 0) and ending at the zeros (K = ∞) or at infinity.
- Real-axis segments: a point on the real axis lies on the locus if the total number of real poles and zeros to its right is odd.
- Number of asymptotes = P − Z, at angles θ = ±180°(2q+1)/(P − Z), q = 0, 1, 2, …
- Centroid of asymptotes σ_A = (Σ real parts of poles − Σ real parts of zeros)/(P − Z).
- Breakaway/break-in points: solve dK/ds = 0 (equivalently d/ds[G(s)H(s)] = 0); keep only roots lying on the locus. Branches leave the real axis at ±90° when two branches meet.
- jω-axis crossing: apply Routh to 1 + KG(s)H(s) = 0, or substitute s = jω and equate real and imaginary parts - gives K_marginal and ω.
- Angle of departure from a complex pole = 180° + (Σ angles from zeros − Σ angles from other poles); angle of arrival at a zero uses the same expression with the sign reversed.
- Reading the plot: distance from the origin gives ωₙ; the angle from the negative real axis gives cos⁻¹ζ (lines of constant ζ are radial). Dominant poles are the pair closest to the jω axis.
- Complementary root locus (K < 0) uses the 0° angle condition and even counts on the real axis.
- Design use: place a pair of dominant poles for a target ζ and ωₙ; adding a zero (derivative/lead action) pulls the locus left and stabilises, while adding a pole (lag/integrator) pushes it right and destabilises.
- Limitations: parameter must appear linearly; multi-parameter and time-delay systems are awkward.
Frequency response: Bode plots
- Bode plot: two semi-log plots of the open-loop sinusoidal transfer function G(jω)H(jω) - magnitude in dB (20 log₁₀|G|) and phase in degrees, both against log ω.
- Asymptotic sketching:
- Constant K → horizontal line at 20 log K dB, 0° phase.
- Pole at origin (1/s) → −20 dB/decade slope, −90° phase; 1/sn → −20n dB/decade, −90n°.
- Simple pole 1/(1 + jωT) → 0 dB until the corner frequency ω = 1/T, then −20 dB/decade; phase 0° → −90°, passing −45° and −3 dB at the corner.
- Simple zero (1 + jωT) → +20 dB/decade after the corner; phase 0° → +90°.
- Quadratic pole 1/(1 + 2ζ(jω/ωₙ) + (jω/ωₙ)²) → −40 dB/decade beyond ωₙ, phase 0° → −180°; resonant peak M_r = 1/(2ζ√(1 − ζ²)) at ω_r = ωₙ√(1 − 2ζ²), existing only for ζ < 0.707.
- A transport delay e−sT leaves the magnitude unchanged but subtracts ωT radians of phase - the main reason real loops go unstable.
- Stability margins:
- Gain crossover frequency ω_gc: where |G| = 0 dB. Phase margin PM = 180° + ∠G(jω_gc).
- Phase crossover frequency ω_pc: where phase = −180°. Gain margin GM = −20 log|G(jω_pc)| dB (i.e. 1/|G| in absolute terms).
- For a minimum-phase system: ω_gc < ω_pc with both margins positive → stable; ω_gc = ω_pc → marginally stable; ω_gc > ω_pc → unstable.
- Practical design targets: PM 30°-60° (often 45°), GM 6-12 dB (often ≥ 6 dB).
- Correlations with time response: ζ ≈ PM/100 for PM up to about 60°; bandwidth ∝ ωₙ so higher ω_gc means faster response; large M_r means low damping and heavy overshoot.
- Advantages: experimental data can be plotted directly, handles delays exactly, shows noise and bandwidth behaviour, and compensator design (lead, lag, lag-lead) is straightforward.
- Limitation: margins can mislead for non-minimum-phase systems (RHP zeros) or conditionally stable systems - use Nyquist there.
Nyquist criterion and polar plots
- Polar plot: the locus of G(jω)H(jω) in the complex plane as ω goes from 0 to ∞ (a single plot, not two); the Nyquist plot completes it with the mirror image for ω from −∞ to 0 plus the closing arc of the Nyquist contour.
- Criterion: N = Z − P, where N = number of clockwise encirclements of the −1 + j0 point by the Nyquist contour's image, P = open-loop poles in the RHP, Z = closed-loop poles in the RHP. Stable only if Z = 0, i.e. anticlockwise encirclements must equal P.
- For an open-loop stable system (P = 0), stability simply requires no encirclement of −1.
- Handles time delays, non-minimum-phase systems and open-loop unstable plants - which Bode margins alone cannot settle.
- M-circles and N-circles on the polar plot (or the Nichols chart, a dB-versus-phase plot) give closed-loop magnitude and phase directly; the Nichols chart shows GM and PM as distances from the (−180°, 0 dB) point.
Comparing the three tools and Indian practice
- Routh: absolute stability and K-ranges, fast and exact, no insight into response shape.
- Root locus: s-plane (time-domain) view, excellent for pole placement and transient design, needs the plant model.
- Bode/Nyquist: frequency-domain, works with measured data and delays, directly sized for margins and bandwidth.
- Indian practice and codes: process-control loops in refineries and power plants are tuned to margin targets in the vendor DCS; IS/IEC 61508 functional-safety practice and IEEE 421.2 (excitation-system response, used by CEA/Grid-India for AVR and PSS testing) call out gain and phase margin explicitly. The Central Electricity Authority (CEA) Grid Standards and the Indian Electricity Grid Code require governor and AVR response tests whose acceptance limits are margin- and damping-based. Exact clause numbers and limits are revised periodically - check the current CEA notification before quoting a figure.
Key points
- Characteristic equation - 1 + G(s)H(s) = 0; its roots are the closed-loop poles that decide stability.
- Stability condition - all closed-loop poles strictly in the left half s-plane.
- Routh necessary test - all coefficients present and of the same sign; otherwise unstable without further work.
- Routh first column - number of sign changes = number of RHP roots.
- Row of zeros - symmetric roots; use the auxiliary equation and its derivative to continue.
- Marginal stability from Routh - K that makes a first-column entry zero; the auxiliary equation gives the oscillation frequency.
- Root locus start and end - starts at open-loop poles (K = 0), ends at zeros or infinity (K = ∞).
- Odd rule - a real-axis point is on the locus if real poles plus zeros to its right total an odd number.
- Asymptotes - (P − Z) of them, angles ±180°(2q+1)/(P − Z), meeting at σ_A.
- Breakaway point - where dK/ds = 0 and the root lies on the locus; branches leave at ±90°.
- Adding zeros stabilises, adding poles destabilises - zeros pull the locus left, poles push it right.
- Gain margin - factor by which gain can rise before instability, measured at ω_pc where phase is −180°.
- Phase margin - extra phase lag tolerable at ω_gc where gain is 0 dB; PM = 180° + ∠G(jω_gc).
- Stability from Bode - minimum-phase system is stable when ω_gc < ω_pc and both margins are positive.
- Corner frequency - ω = 1/T, where the asymptote slope changes by ±20 dB/decade; magnitude error 3 dB, phase −45° for a pole and +45° for a zero.
- Resonant peak - M_r = 1/(2ζ√(1 − ζ²)) for ζ < 0.707; a tall peak signals poor damping.
- Nyquist criterion - N = Z − P about the −1 + j0 point; essential for delays, RHP zeros and open-loop unstable plants.
- Dead time - adds phase lag ωT without changing magnitude, so it eats phase margin and is the usual real-world destabiliser.
Formulas and examples
Routh element: new = −(1/p) × det[[a₁ a₂],[p b₂]], p = first element of the row above; sign changes in column 1 = RHP roots
Root locus angle condition: ∠G(s)H(s) = ±180°(2q+1); magnitude condition |G(s)H(s)| = 1
Asymptote angles: θ = ±180°(2q+1)/(P − Z); centroid σ_A = (Σ p_i − Σ z_j)/(P − Z)
Breakaway: dK/ds = 0, with K = −1/[G(s)H(s)]
Magnitude in dB: |G|_dB = 20 log₁₀|G(jω)| (ω in rad/s)
Phase margin: PM = 180° + ∠G(jω_gc), where |G(jω_gc)| = 1 (0 dB)
Gain margin: GM = 1/|G(jω_pc)| (absolute) = −20 log₁₀|G(jω_pc)| dB, where ∠G(jω_pc) = −180°
Second-order standard form: G(s) = ωₙ²/(s² + 2ζωₙs + ωₙ²); ζ = damping ratio, ωₙ = natural frequency (rad/s)
Resonant peak M_r = 1/(2ζ√(1 − ζ²)); resonant frequency ω_r = ωₙ√(1 − 2ζ²), valid for ζ < 0.707
Delay phase lag: φ = −ωT radians = −57.3 ωT degrees (T in seconds)
Nyquist: N = Z − P (clockwise encirclements of −1 + j0)
Example 1 - Routh array, range of K. For G(s) = K/[s(s + 2)(s + 4)] with unity feedback, the characteristic equation is s³ + 6s² + 8s + K = 0.
| s³ | 1 | 8 |
|---|---|---|
| s² | 6 | K |
| s¹ | (6×8 − 1×K)/6 = (48 − K)/6 | 0 |
| s⁰ | K |
- First column positive requires 48 − K > 0 and K > 0 → 0 < K < 48.
- At K = 48 the s¹ row vanishes: auxiliary equation from the s² row is 6s² + 48 = 0 → s² = −8 → s = ±j2.83.
- So marginal stability at K = 48 with sustained oscillation at ω = 2.83 rad/s (f = 0.45 Hz).
Example 2 - Routh with a row of zeros. s⁵ + 2s⁴ + 3s³ + 6s² + 2s + 4 = 0.
| s⁵ | 1 | 3 | 2 |
|---|---|---|---|
| s⁴ | 2 | 6 | 4 |
| s³ | 0 → 8 | 0 → 12 | |
| s² | 3 | 4 | |
| s¹ | 12 − 8×4/3 → 4/3 | ||
| s⁰ | 4 |
- The s³ row came out all zeros. Auxiliary equation A(s) = 2s⁴ + 6s² + 4 = 0; dA/ds = 8s³ + 12s, giving the replacement row 8, 12.
- s² row: (8×6 − 2×12)/8 = 24/8 = 3, and (8×4 − 2×0)/8 = 4.
- s¹ row: (3×12 − 8×4)/3 = (36 − 32)/3 = 4/3. s⁰ row: 4.
- No sign changes in the first column (1, 2, 8, 3, 4/3, 4) → no RHP roots, but the auxiliary equation gives s² = −1 and s² = −2, i.e. poles at ±j1 and ±j1.414. The system is therefore marginally stable, not asymptotically stable.
Example 3 - Root locus for K/[s(s + 4)(s + 6)].
- P = 3 poles at 0, −4, −6; Z = 0 zeros. Three branches, all going to infinity.
- Real-axis locus: segments from 0 to −4 and from −6 to −∞ (odd count to the right).
- Asymptotes: P − Z = 3 → angles 60°, 180°, 300°; centroid σ_A = (0 − 4 − 6)/3 = −3.33.
- Breakaway: K = −s(s + 4)(s + 6) = −(s³ + 10s² + 24s); dK/ds = 0 → 3s² + 20s + 24 = 0 → s = [−20 ± √(400 − 288)]/6 = (−20 ± 10.583)/6 → s = −1.569 or −5.097. Only s = −1.569 lies on the locus (between 0 and −4).
- K at breakaway = −[(−1.569)³ + 10(−1.569)² + 24(−1.569)] = −[−3.862 + 24.62 − 37.66] = 16.9.
- jω crossing: s³ + 10s² + 24s + K = 0; Routh gives (240 − K)/10 > 0 → K < 240; at K = 240, 10s² + 240 = 0 → s = ±j4.90.
- So the loop is stable for 0 < K < 240, oscillating at 4.90 rad/s at the limit.
Example 4 - Bode margins for G(s) = 10/[s(1 + 0.1s)(1 + 0.05s)].
- Corner frequencies: 10 rad/s and 20 rad/s. Slopes: −20 dB/dec from low ω, −40 after 10, −60 after 20.
- Magnitude at ω = 1: 20 log 10 − 20 log 1 = 20 dB. Extending the −20 dB/dec asymptote, 0 dB would occur at ω = 10 rad/s, but the second corner starts there, so check ω_gc just above 10: at ω = 12, |G| = 10/(12 × √(1 + 1.44) × √(1 + 0.36)) = 10/(12 × 1.562 × 1.166) = 0.457 → −6.8 dB. At ω = 8: 10/(8 × √1.64 × √1.16) = 10/(8 × 1.281 × 1.077) = 0.906 → −0.86 dB. At ω = 7.5: 10/(7.5 × 1.25 × 1.068) = 0.998 → ≈ 0 dB. So ω_gc ≈ 7.5 rad/s.
- Phase at 7.5: −90° − tan⁻¹(0.75) − tan⁻¹(0.375) = −90° − 36.9° − 20.6° = −147.5° → PM = 32.5° (stable but lightly damped).
- ω_pc: need tan⁻¹(0.1ω) + tan⁻¹(0.05ω) = 90°, which holds when 0.1ω × 0.05ω = 1 → ω² = 200 → ω_pc = 14.14 rad/s.
- |G| at 14.14 = 10/(14.14 × √(1 + 2) × √(1 + 0.5)) = 10/(14.14 × 1.732 × 1.2247) = 0.333 → GM = 1/0.333 = 3.0 (9.5 dB).
- ω_gc < ω_pc and both margins positive → stable, and gain may be raised threefold (to K = 30) before instability.
Example 5 - dead time destroys margin. A loop has PM = 45° at ω_gc = 5 rad/s. A sensor introduces 0.1 s of transport delay.
- Extra lag = 57.3 × 5 × 0.1 = 28.7° → new PM = 45 − 28.7 = 16.3°: still stable, badly under-damped.
- A delay of 0.157 s would add 45° and drive PM to 0 - marginal. Hence sampling and filter lags must be budgeted in the phase margin.
| Tool | Domain | Needs | Gives | Blind spot |
|---|---|---|---|---|
| Routh-Hurwitz | Algebraic (s-plane) | Polynomial coefficients | Count of RHP roots, K-range | No transient info, no delays |
| Root locus | s-plane | Open-loop poles/zeros | Pole paths, ζ, ωₙ, pole placement | One linear parameter only |
| Bode | Frequency | G(jω) (model or measured) | GM, PM, bandwidth, compensator design | Misleads for non-minimum-phase |
| Nyquist | Frequency (polar) | G(jω) and RHP pole count P | Rigorous answer with delays, unstable plants | Harder to sketch and read |
| ζ | PM (approx) | M_r | % overshoot |
|---|---|---|---|
| 0.2 | 23° | 2.55 | 52.7 |
| 0.4 | 44° | 1.36 | 25.4 |
| 0.5 | 52° | 1.15 | 16.3 |
| 0.707 | 65° | 1.00 (no peak) | 4.3 |
Where it is used
- Power system control: AVR/excitation and turbine governor loops at NTPC, NHPC and state gencos are tuned for gain and phase margin; power system stabiliser (PSS) design is a root-locus and Bode exercise, validated during CEA/Grid-India compliance tests.
- Variable-frequency drives and servos: current, speed and position loop bandwidths in ABB, Siemens, Schneider, Delta and Bharat Bijlee drives are set from Bode margins; a chattering servo axis is almost always a phase-margin problem.
- Process industries: flow, level and temperature loops in refineries (IOCL, BPCL, RIL), fertiliser and cement plants, where dead time from transport and analysers forces conservative gains - loop-tuning engineers read Bode and Nyquist data from DCS step tests.
- Aerospace and defence: ISRO launch-vehicle attitude control, DRDO missile autopilots and HAL flight control laws are certified against gain and phase margin requirements under structural and aerodynamic uncertainty.
- Job roles: control systems engineer, drives and automation engineer, instrumentation and loop-tuning engineer, model-based design engineer (MATLAB/Simulink
rlocus,margin,nyquist), and design verification roles in railway signalling and metro traction (BEML, Alstom, Siemens Mobility India). - Electronics: op-amp and SMPS feedback compensation - loop gain is shaped for a 45°-60° phase margin, the same Bode arithmetic applied to type-II/type-III compensators.
Interview questions
- Q: What does the Routh-Hurwitz criterion actually tell you? A: It gives the number of characteristic-equation roots with positive real parts from sign changes in the first column of the Routh array, so it answers absolute stability without finding the roots.
- Q: If a coefficient of the characteristic polynomial is missing, what can you say? A: The system cannot be asymptotically stable - a missing or negative coefficient violates the necessary condition, so there is at least one root on or to the right of the jω axis.
- Q: How do you handle a complete row of zeros in a Routh array? A: Form the auxiliary equation from the row above, differentiate it with respect to s, use those coefficients as the zero row, and continue; the auxiliary roots are the symmetric (usually jω-axis) poles.
- Q: What is the difference between gain margin and phase margin? A: Gain margin is how much the loop gain can be increased at the phase crossover frequency before instability; phase margin is how much extra phase lag can be tolerated at the gain crossover frequency.
- Q: A system has positive gain margin but negative phase margin - is it stable? A: No. For a minimum-phase system both must be positive; mixed signs mean ω_gc has moved past ω_pc and the closed loop is unstable.
- Q: Why do we prefer Nyquist over Bode in some cases? A: Bode margin rules assume a minimum-phase, open-loop stable system; Nyquist's N = Z − P handles right-half-plane open-loop poles, RHP zeros, pure delays and conditionally stable systems rigorously.
- Q: What happens to the root locus when you add a zero in the left half plane? A: The locus is pulled towards the left, increasing damping and the stable gain range - this is why derivative or lead compensation stabilises a loop.
- Q: Why does a pure time delay destabilise a loop? A: It adds phase lag of ωT radians without reducing magnitude, so it eats phase margin at the gain crossover frequency while leaving the gain unchanged.
- Q: From a root locus, how do you find the gain for a given damping ratio? A: Draw the radial line at angle cos⁻¹ζ from the negative real axis, find where it cuts the locus, then apply the magnitude condition K = 1/|G(s)H(s)| at that point.
- Q: What is a conditionally stable system? A: One stable only within a gain band - its Nyquist plot encircles −1 for gains both below and above the band, so simply reducing gain is not always a cure.
- Q: What does the resonant peak tell you? A: M_r = 1/(2ζ√(1 − ζ²)) indicates damping; a peak above about 1.3 means ζ below roughly 0.4 and heavy overshoot, and no peak exists for ζ ≥ 0.707.
- Q: Can an open-loop unstable plant give a stable closed loop? A: Yes - feedback relocates the poles; Nyquist confirms it when anticlockwise encirclements of −1 equal the number of open-loop RHP poles, as in inverted-pendulum and boost-converter control.
Common mistakes
- Testing the open-loop transfer function for stability instead of 1 + G(s)H(s) = 0, or forgetting H(s) in a non-unity-feedback loop.
- Reporting a system with jω-axis poles as "stable" - it is marginally stable, and repeated jω poles make it unstable.
- Accepting every root of dK/ds = 0 as a breakaway point without checking that it lies on the locus.
- Using the odd-count real-axis rule or the 180° angle condition for negative K, where the 0° complementary rules apply.
- Reading gain margin in dB and then multiplying gain by that number - GM in dB must be converted (6 dB = factor 2).
- Applying "positive GM and PM means stable" to non-minimum-phase or open-loop unstable systems, where only Nyquist settles it.
- Mixing degrees and radians in phase-lag calculations for a delay, or forgetting that the −90° of an integrator is present at every frequency.
Related topics
Control systems basics · PID controllers and tuning · State space analysis · Digital control systems · Signals and systems: Laplace and transfer functions · Compensator design: lead, lag and lag-lead