Skip to content
Ahmet Çelik

Chapter 6: The Stability of Linear Feedback Systems

MECH304 11 minute read

Exam-Focused Study Guide


1. Why Stability Matters

  • Stability is an important topic in control system design.

  • An unstable closed-loop system has no practical value.

  • A stable system is a dynamic system with a bounded response to a bounded input.

  • Stability of a feedback system is directly related to the location of the roots of the characteristic equation of the system transfer function.


2. The Concept of Stability (Cone Analogy)

The response to a displacement (or initial condition) leads to:

CaseResponseInterpretation
(a)DecreasingStable
(b)NeutralMarginal-type
(c)IncreasingUnstable

3. Stability Defined by Pole Locations

A system is:

  • Stable if and only if all poles of the transfer function have negative real parts (all poles in the left half-plane, LHP).
  • Unstable if any pole is in the right half-plane (RHP).
  • Marginally stable if the characteristic equation has simple roots on the imaginary axis jωj\omega and all the other roots are in the LHP.

Important: Marginally stable systems are not considered stable.


4. Quick Classification Examples

For each q(s)=0q(s)=0, classify the system:

q(s)q(s)RootsResult
(s+5)(s+3)(s+5)(s+3)−5, −3-5,\ -3Stable
(s+5+j)(s+5−j)(s+5+j)(s+5-j)−5±j-5 \pm jStable
(s+5)(s+3)(s−1)(s+5)(s+3)(s-1)−5, −3, +1-5,\ -3,\ +1Unstable
(s+10)(s2+16)(s+10)(s^2+16)−10, ±4j-10,\ \pm 4jMarginally stable

5. High-Order q(s)q(s): Need a Method Without Computing Roots

For a high-order

q(s)=ansn+an−1sn−1+⋯+a1s+a0=0q(s) = a_n s^n + a_{n-1} s^{n-1} + \cdots + a_1 s + a_0 = 0

finding roots manually is hard. We need a method that determines stability without computing the roots.

Expanding q(s)=an(s−r1)(s−r2)⋯(s−rn)q(s)=a_n(s-r_1)(s-r_2)\cdots(s-r_n):

q(s)= ansn−an(sum of all roots) sn−1+an(sum of products of roots taken two at a time) sn−2−an(sum of products of roots taken three at a time) sn−3+⋯+an(−1)n(r1r2⋯rn)=0\begin{aligned} q(s) =\ & a_n s^n - a_n(\text{sum of all roots})\,s^{n-1} \\ & + a_n(\text{sum of products of roots taken two at a time})\,s^{n-2} \\ & - a_n(\text{sum of products of roots taken three at a time})\,s^{n-3} + \cdots \\ & + a_n(-1)^n (r_1 r_2 \cdots r_n) = 0 \end{aligned}

6. Necessary Conditions (NC) for Stability

From the expansion above:

  • NC1: All coefficients of q(s)q(s) must have the same sign. Reason: e.g., an(−1)nr1r2⋯rna_n(-1)^n r_1 r_2 \cdots r_n: if a root has a different sign, the product changes sign.
  • NC2: All coefficients of q(s)q(s) must be non-zero. Reason: if r1r2⋯rn=0r_1 r_2 \cdots r_n = 0, one root is zero → system not stable.

These are necessary but NOT sufficient.

Example — NC1, NC2 Satisfied but Still Unstable

q(s)=s3+s2+2s+8q(s) = s^3 + s^2 + 2s + 8
  • NC1 ✓, NC2 ✓
  • Factor: q(s)=(s+2)(s2−s+4)q(s) = (s+2)(s^2 - s + 4)
  • Roots: s1=−2,s2,3=12±152js_1 = -2,\quad s_{2,3} = \tfrac{1}{2} \pm \tfrac{\sqrt{15}}{2} j
  • Roots in RHP → unstable.

7. The Routh–Hurwitz Stability Criterion

This is a necessary and sufficient condition for stability.

7.1 Build the Routh Array

For q(s)=ansn+an−1sn−1+⋯+a1s+a0=0q(s) = a_n s^n + a_{n-1}s^{n-1} + \cdots + a_1 s + a_0 = 0:

RowCol 1Col 2Col 3…
sns^nana_nan−2a_{n-2}an−4a_{n-4}…
sn−1s^{n-1}an−1a_{n-1}an−3a_{n-3}an−5a_{n-5}…
sn−2s^{n-2}b1b_1b2b_2b3b_3…
sn−3s^{n-3}c1c_1c2c_2c3c_3…
⋮⋮⋮⋮
s0s^0

7.2 Formulas for the Entries

b1=−∣anan−2an−1an−3∣an−1,b2=−∣anan−4an−1an−5∣an−1b_1 = -\frac{\begin{vmatrix} a_n & a_{n-2} \\ a_{n-1} & a_{n-3} \end{vmatrix}}{a_{n-1}}, \qquad b_2 = -\frac{\begin{vmatrix} a_n & a_{n-4} \\ a_{n-1} & a_{n-5} \end{vmatrix}}{a_{n-1}} c1=−∣an−1an−3b1b2∣b1,c2=−∣an−1an−5b1b3∣b1c_1 = -\frac{\begin{vmatrix} a_{n-1} & a_{n-3} \\ b_1 & b_2 \end{vmatrix}}{b_1}, \qquad c_2 = -\frac{\begin{vmatrix} a_{n-1} & a_{n-5} \\ b_1 & b_3 \end{vmatrix}}{b_1}

7.3 The Criterion

  • Number of roots in the RHP = number of sign changes in the first column of the array.
  • System is stable ⇔ no sign changes in the first column.

7.4 Quick Example (Slide 21)

RowCol 1
s3s^311
s2s^211
s1s^1−2-2
s0s^011

Sign sequence: +,+,−,++,+,-,+ → 2 sign changes → 2 roots in RHP → unstable.

7.5 Worked Template — n=4n=4

For q(s)=a4s4+a3s3+a2s2+a1s+a0q(s)=a_4 s^4 + a_3 s^3 + a_2 s^2 + a_1 s + a_0:

RowCol 1Col 2Col 3
s4s^4a4a_4a2a_2a0a_0
s3s^3a3a_3a1a_100
s2s^2b1=−∣a4a2a3a1∣a3b_1=\dfrac{-\begin{vmatrix}a_4&a_2\\a_3&a_1\end{vmatrix}}{a_3}b2=−∣a4a0a30∣a3b_2=\dfrac{-\begin{vmatrix}a_4&a_0\\a_3&0\end{vmatrix}}{a_3}00
s1s^1c1=−∣a3a1b1b2∣b1c_1=\dfrac{-\begin{vmatrix}a_3&a_1\\b_1&b_2\end{vmatrix}}{b_1}0000
s0s^0d1=−∣b1b2c10∣c1d_1=\dfrac{-\begin{vmatrix}b_1&b_2\\c_1&0\end{vmatrix}}{c_1}0000

8. The Four Possible Cases

Case 1 — No Element in the First Column is Zero

Standard Routh array. Apply the criterion directly.

Example: q(s)=a2s2+a1s+a0q(s) = a_2 s^2 + a_1 s + a_0

RowCol 1Col 2
s2s^2a2a_2a0a_0
s1s^1a1a_100
s0s^0b1=a1a0−0a1=a0b_1 = \dfrac{a_1 a_0 - 0}{a_1} = a_000

Stability conditions:

  • NC1: a2,a1,a0a_2,a_1,a_0 all same sign
  • NC2: a2,a1,a0a_2,a_1,a_0 all nonzero

If NC1 + NC2 are satisfied → all first-column entries have same sign → stable.


Case 2 — Zero in First Column, Other Entries in That Row Nonzero

Method: replace the 00 in the first column by a small positive ϵ\epsilon. Complete the array, then analyze the limit ϵ→0+\epsilon \to 0^+.

Example: q(s)=s5+2s4+2s3+4s2+11s+10=0q(s) = s^5 + 2s^4 + 2s^3 + 4s^2 + 11s + 10 = 0

(NC1 ✓, NC2 ✓.)

Initial array:

RowCol 1Col 2Col 3
s5s^511221111
s4s^422441010
s3s^30→ϵ0 \to \epsilon66
s2s^24ϵ−12ϵ\dfrac{4\epsilon-12}{\epsilon}1010
s1s^1d1d_100
s0s^01010

Compute d1d_1:

d1=6 ⁣(−12ϵ)−10 ϵ−12ϵ=−72−10ϵ2−12=6+ϵ22≈6d_1 = \frac{6\!\left(\frac{-12}{\epsilon}\right) - 10\,\epsilon}{\frac{-12}{\epsilon}} = \frac{-72 - 10\epsilon^2}{-12} = 6 + \frac{\epsilon^2}{2} \approx 6

Also 4ϵ−12ϵ≈−12ϵ\dfrac{4\epsilon-12}{\epsilon} \approx \dfrac{-12}{\epsilon} (large negative for small ϵ>0\epsilon>0).

Final first column:

RowValueSign
s5s^511++
s4s^422++
s3s^3ϵ\epsilon++
s2s^2−12/ϵ-12/\epsilon−-
s1s^166++
s0s^01010++

→ 2 sign changes → 2 poles in RHP → unstable.


Case 2 Variant with Parameter KK

q(s)=s4+s3+s2+s+K=0q(s) = s^4 + s^3 + s^2 + s + K = 0, with NC1: K>0K>0; NC2: K≠0K \ne 0.

RowCol 1Col 2Col 3
s4s^41111KK
s3s^3111100
s2s^2ϵ\epsilonKK00
s1s^1ϵ−Kϵ\dfrac{\epsilon - K}{\epsilon}0000
s0s^0KK0000

If K>0K>0, ϵ−Kϵ\dfrac{\epsilon-K}{\epsilon} is large negative → 2 sign changes → unstable for all K>0K>0.


Case 3 — Entire Row of Zeros

Trigger: Occurs when factors such as (s+σ)(s−σ)(s+\sigma)(s-\sigma) or (s+jω)(s−jω)(s+j\omega)(s-j\omega) appear.

Method: The row preceding the zero row gives the auxiliary polynomial U(s)U(s), which is a factor of the characteristic polynomial. The order of U(s)U(s) is always even.

Example A — Range of KK for Stability

q(s)=s3+2s2+4s+K=0q(s) = s^3 + 2s^2 + 4s + K = 0. NC1: K>0K>0. NC2: K≠0K \ne 0.

RowCol 1Col 2
s3s^31144
s2s^222KK
s1s^18−K2\dfrac{8-K}{2}00
s0s^0KK00

Conditions:

  • K>0K>0 (NC1 / s0s^0 row)
  • 8−K2>0⇒K<8\dfrac{8-K}{2} > 0 \Rightarrow K < 8
0<K<8 for stability\boxed{0 < K < 8 \text{ for stability}}

What if K=8K = 8?

q(s)=s3+2s2+4s+8q(s) = s^3 + 2s^2 + 4s + 8

RowCol 1Col 2
s3s^31144
s2s^22288
s1s^100 ← row of zeros00
s0s^0

Auxiliary polynomial (from s2s^2 row): U(s)=2s2+8U(s) = 2s^2 + 8.

Polynomial division:

s3+2s2+4s+82s2+8=s2+1\frac{s^3 + 2s^2 + 4s + 8}{2s^2 + 8} = \frac{s}{2} + 1

So:

q(s)=(s2+1)(2s2+8)=(s+2)(s+2j)(s−2j)q(s) = \left(\tfrac{s}{2}+1\right)(2s^2+8) = (s+2)(s+2j)(s-2j)

Roots: −2, ±2j-2,\ \pm 2j → simple roots on jωj\omega → marginally stable.


Case 4 — Repeated Roots on the Imaginary Axis

Critical pitfall: Routh–Hurwitz fails to detect this kind of instability — there will be no sign change, yet the system is unstable.

Example: q(s)=(s+1)(s+j)2(s−j)2=s5+s4+2s3+2s2+s+1q(s) = (s+1)(s+j)^2(s-j)^2 = s^5 + s^4 + 2s^3 + 2s^2 + s + 1

RowCol 1Col 2Col 3
s5s^5112211
s4s^4112211
s3s^3ϵ\epsilonϵ\epsilon00
s2s^21111
s1s^1ϵ\epsilon00
s0s^011

Auxiliary polynomial: U(s)=s4+2s2+1=(s2+1)2U(s) = s^4 + 2s^2 + 1 = (s^2+1)^2 → repeated roots at ±j\pm j.

No sign change → looks marginally stable, but it is unstable.

Why?

  • A simple pair of poles on jωj\omega → undamped sinusoid: Acos⁡(ωt+ϕ)A\cos(\omega t + \phi) → marginally stable.
  • A repeated pair of poles on jωj\omega → response of the form
A tncos⁡(ωt+ϕ)A\,t^{n}\cos(\omega t + \phi)

where n=1n=1 for the second repeated pair, n=2n=2 for the third, …

  • Because tnt^n grows without bound → unstable.

Memorize: Repeated roots on jωj\omega ⇒ unstable. Routh–Hurwitz won’t show it via sign changes.


9. Worked Example — Mars Rover

System (block diagram):

G1(s)=10s+10,G2(s)=1s2,H(s)=Ks+1G_1(s) = \frac{10}{s+10},\qquad G_2(s) = \frac{1}{s^2},\qquad H(s) = Ks + 1

Negative feedback. Goal:

  1. Find KK for stability.
  2. Find KK such that one root of the characteristic equation is at s=−5s = -5.

(a) Stability via Routh–Hurwitz

T(s)=Y(s)R(s)=10s2(s+10)+10(Ks+1)=10s3+10s2+10Ks+10T(s) = \frac{Y(s)}{R(s)} = \frac{10}{s^2(s+10) + 10(Ks+1)} = \frac{10}{s^3 + 10s^2 + 10Ks + 10}

Characteristic equation:

Δ(s)=s3+10s2+10Ks+10\Delta(s) = s^3 + 10s^2 + 10Ks + 10

Routh array:

RowCol 1Col 2
s3s^31110K10K
s2s^210101010
s1s^1b1b_1b2b_2
s0s^0
b1=100K−1010>0  ⇒  K>0.1b_1 = \frac{100K - 10}{10} > 0 \;\Rightarrow\; \boxed{K > 0.1}

(b) One root at s=−5s = -5

When Δ(s)\Delta(s) is divided by (s+5)(s+5), the remainder must be zero.

s3+10s2+10Ks+10s+5=s2+5s+(10K−25)(quotient)\frac{s^3 + 10s^2 + 10Ks + 10}{s+5} = s^2 + 5s + (10K - 25)\quad \text{(quotient)}

Long division:

s3+10s2+10Ks+10−(s3+5s2)‾5s2+10Ks−(5s2+25s)‾(10K−25)s+10−((10K−25)s+5(10K−25))‾0(must be zero)\begin{aligned} &s^3 + 10s^2 + 10Ks + 10 \\ &\underline{-(s^3 + 5s^2)} \\ &\quad 5s^2 + 10Ks \\ &\quad \underline{-(5s^2 + 25s)} \\ &\qquad (10K-25)s + 10 \\ &\qquad \underline{-((10K-25)s + 5(10K-25))} \\ &\qquad\qquad 0\quad \text{(must be zero)} \end{aligned}

Remainder =10−5(10K−25)=0= 10 - 5(10K - 25) = 0

10−50K+125=0⇒K=2710=2.710 - 50K + 125 = 0 \Rightarrow K = \frac{27}{10} = \boxed{2.7}

10. Worked Example — Tracked Vehicle Turning Control

System with unity negative feedback, where:

Gc(s)=s+as+1,G(s)=Ks(s+2)(s+5)G_c(s) = \frac{s+a}{s+1},\qquad G(s) = \frac{K}{s(s+2)(s+5)}

Goal: Select KK and aa such that:

  1. The closed-loop system is stable.
  2. Steady-state error for a ramp input is ≤24%\le 24\% of the magnitude of the command.

Step 1 — Closed-Loop Transfer Function and Characteristic Equation

T(s)=Y(s)R(s)=Gc(s)G(s)1+Gc(s)G(s)T(s) = \frac{Y(s)}{R(s)} = \frac{G_c(s)G(s)}{1 + G_c(s)G(s)} q(s)=s(s+1)(s+2)(s+5)+K(s+a)=s4+8s3+17s2+(K+10)s+Kaq(s) = s(s+1)(s+2)(s+5) + K(s+a) = s^4 + 8s^3 + 17s^2 + (K+10)s + Ka

Step 2 — Routh–Hurwitz

RowCol 1Col 2Col 3
s4s^4111717KaKa
s3s^388K+10K+1000
s2s^2b1b_1KaKa
s1s^1c1c_100
s0s^0KaKa
b1=8⋅17−(K+10)8=126−K8>0b_1 = \frac{8 \cdot 17 - (K+10)}{8} = \frac{126 - K}{8} > 0 c1=b1(K+10)−8Kab1>0c_1 = \frac{b_1(K+10) - 8Ka}{b_1} > 0

Stability conditions:

  • (i) K<126K < 126
  • (ii) (K+10)(126−K)−64Ka>0(K+10)(126-K) - 64Ka > 0
  • (iii) Ka>0Ka > 0

Step 3 — Steady-State Error for a Ramp

Ramp input: R(s)=As2R(s) = \dfrac{A}{s^2}.

E(s)=R(s) [1−T(s)]=As2⋅11+Gc(s)G(s)E(s) = R(s)\,[1 - T(s)] = \frac{A}{s^2}\cdot\frac{1}{1 + G_c(s)G(s)} ess=lim⁡s→0sE(s)=10AKae_{ss} = \lim_{s \to 0} sE(s) = \frac{10A}{Ka}

Requirement:

ess=10AKa≤0.24A  ⇒  Ka≥41.66‾e_{ss} = \frac{10A}{Ka} \le 0.24A \;\Rightarrow\; Ka \ge 41.6\overline{6}

Take Ka=42Ka = 42.

Step 4 — Combine Conditions (using Ka=42Ka=42)

Plug Ka=42Ka = 42 into condition (ii):

(K+10)(126−K)−64⋅42>0(K+10)(126-K) - 64 \cdot 42 > 0 ⇒K2−116K+1428<0\Rightarrow K^2 - 116K + 1428 < 0

Solve quadratic for boundaries:

K=116±1162−4⋅14282=116±77442=116±882K = \frac{116 \pm \sqrt{116^2 - 4 \cdot 1428}}{2} = \frac{116 \pm \sqrt{7744}}{2} = \frac{116 \pm 88}{2} K1=14,K2=102K_1 = 14,\qquad K_2 = 102 14≤K≤102(with Ka=42 )\boxed{14 \le K \le 102 \quad \text{(with } Ka = 42\text{ )}}

Also need K<126K < 126 (already implied) and Ka>0Ka > 0 (✓ since Ka=42Ka=42).

Acceptable Designs (Examples)

  • (K,a)=(70, 0.6)(K, a) = (70,\ 0.6)
  • (K,a)=(50, 0.84)(K, a) = (50,\ 0.84)
  • … (any (K,a)(K,a) in the stable region with Ka≥41.6Ka \ge 41.6)

11. Practical Tip — Finding Roots of a Polynomial Manually

When you must find roots by hand (e.g., to verify or to factor a low-order q(s)q(s)):

Example: q(s)=s3+4s2+6s+4q(s) = s^3 + 4s^2 + 6s + 4

Step 1 — Try integer candidates.

  • s=−1s = -1: q(−1)=−1+4−6+4=1≠0q(-1) = -1 + 4 - 6 + 4 = 1 \ne 0 → not a root.
  • s=−3s = -3: q(−3)=−27+36−18+4=−5≠0q(-3) = -27 + 36 - 18 + 4 = -5 \ne 0 → not a root.
  • Sign change between −1-1 and −3-3 → a root lies between them.
  • s=−2s = -2: q(−2)=−8+16−12+4=0q(-2) = -8 + 16 - 12 + 4 = 0 ✓ → s=−2s = -2 is a root.

Step 2 — Polynomial division to get the remaining quadratic.

s3+4s2+6s+4s+2=s2+2s+2\frac{s^3 + 4s^2 + 6s + 4}{s+2} = s^2 + 2s + 2

Long division:

s3+4s2+6s+4−(s3+2s2)‾2s2+6s+4−(2s2+4s)‾2s+4−(2s+4)‾0\begin{aligned} &s^3 + 4s^2 + 6s + 4 \\ &\underline{-(s^3 + 2s^2)} \\ &\quad 2s^2 + 6s + 4 \\ &\quad \underline{-(2s^2 + 4s)} \\ &\qquad 2s + 4 \\ &\qquad \underline{-(2s + 4)} \\ &\qquad\qquad 0 \end{aligned}

Step 3 — Solve the quadratic.

s2+2s+2=0⇒s2,3=−1±js^2 + 2s + 2 = 0 \Rightarrow s_{2,3} = -1 \pm j

Final roots: s1=−2, s2,3=−1±js_1 = -2,\ s_{2,3} = -1 \pm j.


12. Quick-Reference Summary

ConceptStatement
Stability ↔︎ polesAll poles in LHP
Marginal stabilitySimple roots on jωj\omega, all others in LHP — not stable
NC1All coefficients of q(s)q(s) have the same sign
NC2All coefficients of q(s)q(s) are nonzero
NC1 + NC2Necessary, not sufficient
Routh–HurwitzNecessary and sufficient
#RHP roots= #sign changes in first column of Routh array
Case 2 (zero in first column)Replace 0 by ϵ→0+\epsilon \to 0^+
Case 3 (row of zeros)Form auxiliary polynomial U(s)U(s) from preceding row; U(s)U(s) is a factor of q(s)q(s); order of U(s)U(s) is even
Case 4 (repeated jωj\omega roots)Routh–Hurwitz fails to detect; system is unstable

13. Exam Strategy Checklist

  1. Check NC1 & NC2 first — fast reject of unstable systems.
  2. Build Routh array; track signs in the first column.
  3. If you see a single zero in column 1 → Case 2 (ϵ\epsilonmethod).
  4. If you see a whole row of zeros → Case 3 (auxiliary polynomial). Then test whether roots are simple or repeated on jωj\omega.
  5. For parametric stability (find range of KK, or KK and aa):
    • Force every first-column entry >0> 0.
    • Combine inequalities into a range / region.
  6. For error specs combined with stability (Tracked Vehicle pattern):
    • Compute esse_{ss} from E(s)=R(s)/(1+GcG)E(s)=R(s)/(1+G_cG).
    • Convert spec into an inequality on parameters.
    • Intersect with Routh–Hurwitz inequalities.
  7. Watch out for repeated jωj\omega roots — Routh–Hurwitz cannot catch them.