Skip to content
Ahmet Çelik
← Back to Study Guides

Chapter 6: The Stability of Linear Feedback Systems

MECH304

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+5j)(s+5+j)(s+5-j)5±j-5 \pm jStable
(s+5)(s+3)(s1)(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+an1sn1++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(sr1)(sr2)(srn)q(s)=a_n(s-r_1)(s-r_2)\cdots(s-r_n):

q(s)= ansnan(sum of all roots)sn1+an(sum of products of roots taken two at a time)sn2an(sum of products of roots taken three at a time)sn3++an(1)n(r1r2rn)=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)nr1r2rna_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 r1r2rn=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)(s2s+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+an1sn1++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_nan2a_{n-2}an4a_{n-4}
sn1s^{n-1}an1a_{n-1}an3a_{n-3}an5a_{n-5}
sn2s^{n-2}b1b_1b2b_2b3b_3
sn3s^{n-3}c1c_1c2c_2c3c_3
s0s^0

7.2 Formulas for the Entries

b1=anan2an1an3an1,b2=anan4an1an5an1b_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=an1an3b1b2b1,c2=an1an5b1b3b1c_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^12-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=a4a2a3a1a3b_1=\dfrac{-\begin{vmatrix}a_4&a_2\\a_3&a_1\end{vmatrix}}{a_3}b2=a4a0a30a3b_2=\dfrac{-\begin{vmatrix}a_4&a_0\\a_3&0\end{vmatrix}}{a_3}00
s1s^1c1=a3a1b1b2b1c_1=\dfrac{-\begin{vmatrix}a_3&a_1\\b_1&b_2\end{vmatrix}}{b_1}0000
s0s^0d1=b1b2c10c1d_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=a1a00a1=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ϵ=7210ϵ212=6+ϵ226d_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^212/ϵ-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: K0K \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 changesunstable 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ω)(sjω)(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: K0K \ne 0.

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

Conditions:

  • K>0K>0 (NC1 / s0s^0 row)
  • 8K2>0K<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)(s2j)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\omegamarginally 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(sj)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)^2repeated 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
Atncos(ω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=100K1010>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+(10K25)(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)(10K25)s+10((10K25)s+5(10K25))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 =105(10K25)=0= 10 - 5(10K - 25) = 0

1050K+125=0K=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=817(K+10)8=126K8>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)(126K)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)[1T(s)]=As211+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=lims0sE(s)=10AKae_{ss} = \lim_{s \to 0} sE(s) = \frac{10A}{Ka}

Requirement:

ess=10AKa0.24A    Ka41.66e_{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)(126K)6442>0(K+10)(126-K) - 64 \cdot 42 > 0 K2116K+1428<0\Rightarrow K^2 - 116K + 1428 < 0

Solve quadratic for boundaries:

K=116±1162414282=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 14K102(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 Ka41.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+46+4=10q(-1) = -1 + 4 - 6 + 4 = 1 \ne 0 → not a root.
  • s=3s = -3: q(3)=27+3618+4=50q(-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+1612+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=0s2,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.