Skip to content
Ahmet Çelik

Chapter 7: The Root Locus Method

MECH304 7 minute read

A self-contained, exam-focused study guide built strictly from the uploaded Ch07 slides and the Desired Outcomes document.


1. What the Root Locus Is

For a unity-feedback system with controller gain KK and plant G(s)G(s):

T(s)=Y(s)R(s)=KG(s)1+KG(s)T(s) = \frac{Y(s)}{R(s)} = \frac{KG(s)}{1 + KG(s)}

Characteristic equation:

q(s)=1+KG(s)=0q(s) = 1 + KG(s) = 0

Root locus plot: the graphical display of the closed-loop pole locations in the ss-plane as KK varies over 0≤K≤∞0 \le K \le \infty.

Why we use it: transient response is closely related to the locations of the closed-loop poles. For many systems, simple gain adjustment moves the closed-loop poles to desired locations, so design reduces to choosing an appropriate KK.


2. Angle and Magnitude Conditions

For the more general feedback configuration with feedback path H(s)H(s):

Y(s)R(s)=G(s)1+G(s)H(s)\frac{Y(s)}{R(s)} = \frac{G(s)}{1 + G(s)H(s)}

Characteristic equation:

1+G(s)H(s)=0  ⟹  G(s)H(s)=−11 + G(s)H(s) = 0 \;\Longrightarrow\; G(s)H(s) = -1

Because −1-1 has unit magnitude and angle ±180∘\pm 180^\circ:

Angle condition

∠G(s)H(s)=±180∘(2k+1),k=0,1,2,…\angle G(s)H(s) = \pm 180^\circ(2k+1), \quad k = 0, 1, 2, \ldots

Magnitude condition

∣G(s)H(s)∣=1|G(s)H(s)| = 1

The values of ss that satisfy both conditions are the closed-loop poles.

After rearranging to standard form

1+K(s+z1)(s+z2)⋯(s+zm)(s+p1)(s+p2)⋯(s+pn)=1+KZ(s)P(s)=01 + K\frac{(s+z_1)(s+z_2)\cdots(s+z_m)}{(s+p_1)(s+p_2)\cdots(s+p_n)} = 1 + K\frac{Z(s)}{P(s)} = 0

the angle condition reads

(ϕz1+⋯+ϕzm)−(ϕp1+⋯+ϕpn)=±180∘(2k+1)(\phi_{z_1} + \cdots + \phi_{z_m}) - (\phi_{p_1} + \cdots + \phi_{p_n}) = \pm 180^\circ(2k+1)


3. Introductory Example: G(s)=1s(s+2)G(s) = \dfrac{1}{s(s+2)}

Closed-loop:

Y(s)R(s)=Ks2+2s+K\frac{Y(s)}{R(s)} = \frac{K}{s^2 + 2s + K}

Characteristic equation:

q(s)=s2+2s+K=0  ⟹  s1,2=−1±1−Kq(s) = s^2 + 2s + K = 0 \;\Longrightarrow\; s_{1,2} = -1 \pm \sqrt{1-K}

KKPoles
00, −20,\ -2
3/4−1/2, −3/2-1/2,\ -3/2
1−1, −1-1,\ -1 (breakaway)
5−1±2j-1 \pm 2j

Observations:

  • K=0K=0: closed-loop poles equal the open-loop poles.
  • 0<K≤10 < K \le 1: real distinct poles, no oscillations.
  • K>1K > 1: complex conjugate poles, oscillatory but stable.
  • Loci start at open-loop poles when K=0K=0 and travel toward zeros (finite or at infinity) as K→∞K \to \infty.

Verification at s1,2=−1±js_{1,2} = -1 \pm j

Magnitude: K=∣−1+j∣⋅∣−1+j+2∣=2⋅2=2K = |-1+j|\cdot|-1+j+2| = \sqrt{2}\cdot\sqrt{2} = 2.

Angle: −∠s1−∠(s1+2)=−135∘−45∘=−180∘-\angle s_1 - \angle(s_1+2) = -135^\circ - 45^\circ = -180^\circ ✓


4. Eight-Step Construction Procedure

Demonstrated on G(s)H(s)=Ks(s+1)(s+2)G(s)H(s) = \dfrac{K}{s(s+1)(s+2)} throughout.

Step 1 — Locate open-loop poles and zeros

  • Loci start at the poles of Z(s)/P(s)Z(s)/P(s) when K=0K = 0.
  • Loci end at the zeros of Z(s)/P(s)Z(s)/P(s) when K→∞K \to \infty (finite or at infinity).

For the example: poles 0,−1,−20, -1, -2; no finite zeros.

Step 2 — Root loci on the real axis (point test)

A point on the real axis lies on a root locus iff the total number of real poles and zeros to its right is odd.

For the example: loci exist on [−1,0][-1, 0] and on (−∞,−2](-\infty, -2].

Step 3 — Asymptotes

Number of asymptotes=#p−#z\text{Number of asymptotes} = \#p - \#z

ψ=±180∘(2k+1)#p−#z,σ=∑poles−∑zeros#p−#z\psi = \frac{\pm 180^\circ(2k+1)}{\#p - \#z}, \quad \sigma = \frac{\sum \text{poles} - \sum \text{zeros}}{\#p - \#z}

For the example: 3 asymptotes; ψ=±60∘,±180∘\psi = \pm 60^\circ, \pm 180^\circ; σ=−1\sigma = -1.

Step 4 — Breakaway / break-in points

Solve dKds=0\dfrac{dK}{ds} = 0 and keep only roots that lie on root-locus segments.

  • Two adjacent open-loop poles on a locus segment ⇒ at least one breakaway.
  • Two adjacent open-loop zeros on a locus segment ⇒ at least one break-in.

For the example: K=−s(s+1)(s+2)K = -s(s+1)(s+2), dKds=−(3s2+6s+2)=0⇒s=−0.4226, −1.5774\dfrac{dK}{ds} = -(3s^2 + 6s + 2) = 0 \Rightarrow s = -0.4226,\, -1.5774. Only s=−0.4226s = -0.4226 is on the locus.

Step 5 — Angle of departure / arrival

Angle of departure from p1=180∘−∑i≠1ϕpi+∑jϕzj\text{Angle of departure from } p_1 = 180^\circ - \sum_{i\ne 1}\phi_{p_i} + \sum_j\phi_{z_j}

Angle of arrival at z1=180∘−∑j≠1ϕzj+∑iϕpi\text{Angle of arrival at } z_1 = 180^\circ - \sum_{j\ne 1}\phi_{z_j} + \sum_i\phi_{p_i}

Slide example: angle of departure from p2=180∘−(120∘+90∘)+20∘=−10∘p_2 = 180^\circ - (120^\circ+90^\circ) + 20^\circ = -10^\circ.

Step 6 — Imaginary-axis crossings

Apply Routh–Hurwitz; the KK that creates a row of zeros, plus the auxiliary polynomial, gives the crossing.

For q(s)=s3+3s2+2s+Kq(s) = s^3 + 3s^2 + 2s + K:

RowCol 1Col 2
s3s^31122
s2s^233KK
s1s^1(6−K)/3(6-K)/300
s0s^0KK

(6−K)/3=0⇒K=6(6-K)/3 = 0 \Rightarrow K = 6. Auxiliary U(s)=3s2+6=0⇒s=±j2U(s) = 3s^2 + 6 = 0 \Rightarrow s = \pm j\sqrt{2}.

Step 7 — Sketch the loci

The plot is symmetric about the real axis. For K>6K > 6 (this example), the system is unstable.

num = [1];
den = [1 3 2 0];
sys = tf(num, den);
rlocus(sys);

Step 8 — Select closed-loop poles and find KK

Magnitude condition:

K=∣s+p1∣ ∣s+p2∣⋯∣s+z1∣ ∣s+z2∣⋯∣s=sdesiredK = \frac{|s+p_1|\,|s+p_2|\cdots}{|s+z_1|\,|s+z_2|\cdots}\bigg|_{s=s_\text{desired}}

Damping-ratio line: ζ=cos⁡θ\zeta = \cos\theta, with θ\theta from the negative real axis.

For ζ=0.5\zeta = 0.5 (θ=60∘\theta = 60^\circ): s1,2=−0.3337±j0.5780s_{1,2} = -0.3337 \pm j0.5780, K=1.0383K = 1.0383, third pole s3=−2.3326s_3 = -2.3326.


5. Worked Example with Real-Axis Zeros

1+Ks2−8s+15s2+3s+2=01 + K\frac{s^2 - 8s + 15}{s^2 + 3s + 2} = 0

Poles −1,−2-1, -2; zeros +3,+5+3, +5. #p−#z=0\#p - \#z = 0 → no asymptotes.

Breakaway/break-in: 11s2−26s−61=0⇒s=−1.4511s^2 - 26s - 61 = 0 \Rightarrow s = -1.45 (breakaway), s=3.82s = 3.82 (break-in).

Imaginary-axis crossing: Routh row-of-zeros at K=3/8K = 3/8; auxiliary 118s2+618=0⇒s=±2.355j\tfrac{11}{8}s^2 + \tfrac{61}{8} = 0 \Rightarrow s = \pm 2.355j.

Design (Tp≤4T_p \le 4 s and Ts≤8T_s \le 8 s):

Tp=πωd≤4⇒∣ωd∣≥0.79T_p = \frac{\pi}{\omega_d} \le 4 \Rightarrow |\omega_d| \ge 0.79

Ts=4ζωn≤8⇒∣ζωn∣≥0.5T_s = \frac{4}{\zeta\omega_n} \le 8 \Rightarrow |\zeta\omega_n| \ge 0.5

Select locus points satisfying both.


6. Worked Example — Parameter Other Than Gain

q(s)=s3+(5+α)s2+8.5s+5=0q(s) = s^3 + (5+\alpha)s^2 + 8.5s + 5 = 0

Convert to standard form:

1+αs2s3+5s2+8.5s+5=01 + \alpha\frac{s^2}{s^3 + 5s^2 + 8.5s + 5} = 0

  • Zeros: z1=z2=0z_1 = z_2 = 0 (double at origin).
  • Poles: s1=−2s_1 = -2, s2,3=−1.5±0.5js_{2,3} = -1.5 \pm 0.5j.
  • 1 asymptote.

Breakaway: s4−8.5s2−10s=0⇒s(s3−8.5s−10)=0s^4 - 8.5s^2 - 10s = 0 \Rightarrow s(s^3 - 8.5s - 10) = 0; keep s1=0s_1 = 0.

Angle of departure from p1=−1.5+0.5jp_1 = -1.5 + 0.5j:

180∘−(90∘+45∘)+(161.6∘+161.6∘)=368.2∘≡8.2∘180^\circ - (90^\circ + 45^\circ) + (161.6^\circ + 161.6^\circ) = 368.2^\circ \equiv 8.2^\circ


7. PID Controller

Gc(s)=KP+KIs+KDs=KD(s+z1)(s+z2)sG_c(s) = K_P + \frac{K_I}{s} + K_D s = \frac{K_D(s+z_1)(s+z_2)}{s}

u(t)=KP e(t)+KI ⁣∫e(t) dt+KD e˙(t)u(t) = K_P\, e(t) + K_I\!\int e(t)\,dt + K_D\,\dot e(t)

GainMeaning
KPK_POutput proportional to error
KIK_IOutput proportional to time error is present
KDK_DOutput proportional to rate of change of error

Structural insight: PID adds one pole at the origin and two LHP-placeable zeros.

Effect of increasing PID gains on step response

Gain ↑%OvershootSettling TimeSteady-State Error
KPK_PIncreasesMinimal impactDecreases
KIK_IIncreasesIncreasesZero (eliminates)
KDK_DDecreasesDecreasesNo impact

8. PID + Root Locus Example

Plant: s+6(s+3)(s2+9)\dfrac{s+6}{(s+3)(s^2+9)} — poles −3,±3j-3, \pm 3j; zero −6-6.

(a) P-controller

#p−#z=2\#p - \#z = 2, ψ=±90∘\psi = \pm 90^\circ, σ=(−3−3j+3j)−(−6)2=1.5\sigma = \dfrac{(-3-3j+3j)-(-6)}{2} = 1.5 (RHP). Cannot stabilize.

(b) PD-controller (zero at −9-9)

#p−#z=1\#p - \#z = 1, ψ=±180∘\psi = \pm 180^\circ (heads left). Can be stabilized.


9. Mass-Spring-Damper PID Example

Plant from mx¨+bx˙+kx=Fm\ddot x + b\dot x + kx = F with m=1,b=10,k=20m=1, b=10, k=20:

X(s)F(s)=1s2+10s+20\frac{X(s)}{F(s)} = \frac{1}{s^2 + 10s + 20}

Unit step: open-loop xss=0.05x_{ss} = 0.05, ess=0.95e_{ss} = 0.95.

Closed-loop TFs:

P: T(s)=Kps2+10s+(20+Kp)T(s) = \dfrac{K_p}{s^2 + 10s + (20+K_p)}

PD: T(s)=Kds+Kps2+(10+Kd)s+(20+Kp)T(s) = \dfrac{K_d s + K_p}{s^2 + (10+K_d)s + (20+K_p)}

PID: T(s)=Kds2+Kps+Kis3+(10+Kd)s2+(20+Kp)s+KiT(s) = \dfrac{K_d s^2 + K_p s + K_i}{s^3 + (10+K_d)s^2 + (20+K_p)s + K_i}

ControllerKPK_PKIK_IKDK_Dxssx_{ss}esse_{ss}Notes
Open loop———0.050.95very large error
P300——0.93750.0625oscillatory
PD300—100.93750.0625same error, fewer oscillations, faster TsT_s
PID3503005010fast rise, small OS, no error

10. How to Choose PID Gains

With a TF model: MATLAB / Simulink PID Tuner.

Without a model — Ziegler–Nichols:

  1. Set KI=KD=0K_I = K_D = 0.
  2. Slowly increase KPK_P until output has stable, consistent oscillations at ultimate gain KuK_u with period TuT_u.
ControllerKPK_PTiT_iTdT_dKIK_IKDK_D
P0.5 Ku0.5\,K_u————
PI0.45 Ku0.45\,K_u0.80 Tu0.80\,T_u—0.54 Ku/Tu0.54\,K_u/T_u—
PD0.8 Ku0.8\,K_u—0.125 Tu0.125\,T_u—0.10 KuTu0.10\,K_u T_u
Classic PID0.6 Ku0.6\,K_u0.5 Tu0.5\,T_u0.125 Tu0.125\,T_u1.2 Ku/Tu1.2\,K_u/T_u0.075 KuTu0.075\,K_u T_u
Pessen Integral0.7 Ku0.7\,K_u0.4 Tu0.4\,T_u0.15 Tu0.15\,T_u1.75 Ku/Tu1.75\,K_u/T_u0.105 KuTu0.105\,K_u T_u
Some overshoot0.33 Ku0.33\,K_u0.50 Tu0.50\,T_u0.33 Tu0.33\,T_u0.66 Ku/Tu0.66\,K_u/T_u0.11 KuTu0.11\,K_u T_u
No overshoot0.20 Ku0.20\,K_u0.50 Tu0.50\,T_u0.33 Tu0.33\,T_u0.40 Ku/Tu0.40\,K_u/T_u0.066 KuTu0.066\,K_u T_u

11. Full Worked Study Question (from Desired Outcomes)

GH(s)=K(s+5)s2+4s+3GH(s) = \frac{K(s+5)}{s^2 + 4s + 3}

Poles −1,−3-1, -3; finite zero −5-5; one zero at infinity.

Real-axis loci: between −1-1 and −3-3; between −5-5 and −∞-\infty.

Asymptotes: #p−#z=1\#p-\#z = 1, ψ=±180∘\psi = \pm 180^\circ (single asymptote — no centroid needed).

Breakaway/break-in:

K=−s2+4s+3s+5,dKds=−(2s+4)(s+5)−(s2+4s+3)(s+5)2=0K = -\frac{s^2 + 4s + 3}{s+5}, \quad \frac{dK}{ds} = -\frac{(2s+4)(s+5) - (s^2+4s+3)}{(s+5)^2} = 0

s2+10s+17=0⇒s=−5±22s^2 + 10s + 17 = 0 \Rightarrow s = -5 \pm 2\sqrt{2}

s1=−7.83,s2=−2.17s_1 = -7.83,\quad s_2 = -2.17

  • s=−2.17s = -2.17: breakaway between poles −1-1 and −3-3, at K=0.343K = 0.343.
  • s=−7.83s = -7.83: break-in between zero −5-5 and −∞-\infty, at K=11.66K = 11.66.

MATLAB code

clc; clear; close all;
num = [1 5];
den = [1 4 3];
GH = tf(num, den);
figure;
rlocus(GH);
grid on;
title('Root Locus of GH(s) = K(s+5) / (s^2 + 4s + 3)');
xlabel('Real Axis');
ylabel('Imaginary Axis');

Range of KK for overdamped response (real poles)

0<K≤0.343or11.66<K<∞0 < K \le 0.343 \quad\text{or}\quad 11.66 < K < \infty

Range of KK for underdamped response (complex poles)

0.343<K<11.660.343 < K < 11.66

Find KK for Ts=0.8T_s = 0.8 s

Ts≈4ζωn⇒ζωn=5T_s \approx \dfrac{4}{\zeta\omega_n} \Rightarrow \zeta\omega_n = 5. Vertical line at σ=−5\sigma = -5.

Grid intersection: s=−5±2.8js = -5 \pm 2.8j.

K=∣s2+4s+3s+5∣s=−5+2.8j=16.82.8=6K = \left|\frac{s^2+4s+3}{s+5}\right|_{s=-5+2.8j} = \frac{16.8}{2.8} = 6

Verification: T(s)=K(s+5)s2+(4+K)s+(3+5K)T(s) = \dfrac{K(s+5)}{s^2 + (4+K)s + (3+5K)}; 2ζωn=4+K⇒10=4+K⇒K=62\zeta\omega_n = 4+K \Rightarrow 10 = 4+K \Rightarrow K = 6. With K=6K=6: q(s)=s2+10s+33q(s) = s^2+10s+33, roots −5±22j≈−5±2.8j-5 \pm 2\sqrt{2}j \approx -5 \pm 2.8j ✓


12. Useful Derivations

Asymptote-angle formula

At a far test point, all pole/zero angles ≈ ψ\psi. The angle condition becomes

#z ψ−#p ψ=±180∘(2k+1)⇒ψ=±180∘(2k+1)#p−#z\#z\,\psi - \#p\,\psi = \pm 180^\circ(2k+1) \Rightarrow \psi = \frac{\pm 180^\circ(2k+1)}{\#p - \#z}

Breakaway condition dK/ds=0dK/ds = 0

From P(s)+KZ(s)=0P(s) + KZ(s) = 0, incrementing KK by ΔK\Delta K and dividing by the original characteristic polynomial yields, at a root of multiplicity nn:

ΔKΔs=−(Δsi)n−1ci  →Δs→0  dKds=0\frac{\Delta K}{\Delta s} = -\frac{(\Delta s_i)^{n-1}}{c_i} \;\xrightarrow{\Delta s \to 0}\; \frac{dK}{ds} = 0


13. Key Facts to Remember

  1. Loci start at open-loop poles (K=0K=0) and end at open-loop zeros (K→∞K\to\infty, finite or at infinity).
  2. Number of branches = number of open-loop poles.
  3. Plot is symmetric about the real axis.
  4. Real-axis test: odd count of real poles + zeros to the right.
  5. Number of asymptotes = #p−#z\#p - \#z.
  6. jωj\omega-axis crossings: Routh–Hurwitz + auxiliary polynomial.
  7. PID contributes one pole at the origin and two LHP-placeable zeros.
  8. Ts≈4/(ζωn)T_s \approx 4/(\zeta\omega_n) → vertical line in ss-plane.
  9. Tp=π/ωdT_p = \pi/\omega_d → horizontal line in ss-plane.
  10. ζ=cos⁡θ\zeta = \cos\theta, θ\theta measured from the negative real axis.