Root Locus

March 25, 2026 · View on GitHub

Overview & Motivation

When designing a feedback control system, a fundamental question is: how do the closed-loop poles move as I change the loop gain? The root locus answers this by plotting the trajectories of the closed-loop poles in the complex plane as a scalar gain KK varies from KminK_{\min} to KmaxK_{\max}.

This visualization immediately reveals whether increasing gain will drive the system unstable (poles crossing into the right half-plane), where oscillatory modes appear (complex pole pairs), and which gain ranges produce acceptable damping. It is one of the oldest and most intuitive tools in classical control design.

Mathematical Theory

Closed-Loop Characteristic Equation

Given an open-loop transfer function:

G(s)=KN(s)D(s)G(s) = K \cdot \frac{N(s)}{D(s)}

the closed-loop characteristic equation (for unity feedback) is:

D(s)+KN(s)=0D(s) + K \cdot N(s) = 0

The root locus is the set of all roots of this equation as KK varies over [Kmin,Kmax][K_{\min}, K_{\max}].

Key Properties

  • Starting points (K0K \to 0): Roots begin at the open-loop poles (roots of D(s)D(s)).
  • Ending points (KK \to \infty): Roots converge to the open-loop zeros (roots of N(s)N(s)) or diverge to infinity along asymptotes.
  • Number of branches: Equal to the order of D(s)D(s).
  • Symmetry: For real-coefficient polynomials, complex roots always appear in conjugate pairs.

Gain Sweep

The gain is swept logarithmically to provide uniform resolution across decades:

Ki=10log10(Kmin)  +  iN1(log10(Kmax)log10(Kmin))K_i = 10^{\,\log_{10}(K_{\min}) \;+\; \frac{i}{N-1}\left(\log_{10}(K_{\max}) - \log_{10}(K_{\min})\right)}

where NN is the number of gain steps and i[0,N1]i \in [0, N-1].

At each gain step, the roots of D(s)+KiN(s)=0D(s) + K_i \cdot N(s) = 0 are found using the Durand-Kerner polynomial root-finder.

Complexity Analysis

CaseTimeSpaceNotes
AllO(Ngn2k)O(N_g \cdot n^2 \cdot k)O(Ngn)O(N_g \cdot n)NgN_g = gain steps, nn = polynomial order, kk = Durand-Kerner iterations per step

Why: At each of the NgN_g gain steps, a degree-nn polynomial is solved via Durand-Kerner, which performs kk iterations each costing O(n2)O(n^2) (evaluating the polynomial and computing the denominator product for all nn roots).

Step-by-Step Walkthrough

System: G(s)=Ks+1s(s+2)G(s) = K \cdot \frac{s + 1}{s(s + 2)}, sweep KK from 0.01 to 10.

Step 1 — Identify poles and zeros

  • Open-loop poles: s=0s = 0, s=2s = -2 (roots of D(s)=s2+2sD(s) = s^2 + 2s)
  • Open-loop zero: s=1s = -1 (root of N(s)=s+1N(s) = s + 1)

Step 2 — Form characteristic polynomial at K=1K = 1

D(s)+KN(s)=s2+2s+1(s+1)=s2+3s+1D(s) + K \cdot N(s) = s^2 + 2s + 1 \cdot (s + 1) = s^2 + 3s + 1

Step 3 — Solve using Durand-Kerner:

s=3±942=3±520.382,  2.618s = \frac{-3 \pm \sqrt{9 - 4}}{2} = \frac{-3 \pm \sqrt{5}}{2} \approx -0.382,\; -2.618

Both poles are real and negative → system is stable at K=1K = 1.

Step 4 — Repeat for each gain step and plot all root positions in the complex plane.

Im(s)
  |
  |     × zero (-1)
--●-----×------●--> Re(s)
  0    -1     -2
 pole         pole

As KK increases: the two poles approach each other on the real axis, meet between 0 and −2, then split into a complex conjugate pair. One branch eventually converges to the zero at s=1s = -1; the other diverges to -\infty.

Pitfalls & Edge Cases

  • Strictly positive gains required — the logarithmic sweep cannot handle K0K \leq 0. For negative feedback analysis, negate the numerator.
  • Proper transfer function assumeddeg(D)deg(N)\deg(D) \geq \deg(N). Improper transfer functions (more zeros than poles) are not supported.
  • Branch tracking ambiguity — Durand-Kerner returns roots sorted by real part, not by branch identity. For smooth visualization, apply nearest-neighbor matching between consecutive gain steps.
  • Clustered or repeated roots cause slower convergence in Durand-Kerner; increase the maximum iteration count if the locus appears jagged.

Variants & Generalizations

VariantKey Difference
Complementary root locusTraces roots for K<0K < 0 (positive feedback)
Root contourVaries two or more parameters simultaneously
Discrete root locusSame concept applied to zz-domain polynomials for digital control
Evans rulesAnalytical rules for sketching the root locus by hand (angle/magnitude criteria)

Applications

  • Gain selection — Choosing the operating gain that meets damping and bandwidth specifications.
  • Compensator design — Adding poles/zeros (lead/lag networks) and observing how the locus reshapes.
  • Stability analysis — Determining the gain margin (gain at which the locus crosses the imaginary axis).
  • Educational tool — Developing intuition about how feedback affects system dynamics.

Connections to Other Algorithms

graph LR
    RL["Root Locus"] --> DK["Durand-Kerner"]
    RL --> LQR["LQR (pole placement alternative)"]
    DK --> RL
AlgorithmRelationship
Durand-KernerUsed at each gain step to find the roots of the characteristic polynomial
LQRAlternative approach to pole placement — LQR optimizes a cost rather than manually selecting gain via root locus

References & Further Reading

  • Evans, W.R., "Graphical Analysis of Control Systems", Transactions of the AIEE, 67(1), 1948.
  • Franklin, G.F., Powell, J.D. and Emami-Naeini, A., Feedback Control of Dynamic Systems, 8th ed., Pearson, 2019 — Chapter 5.
  • Ogata, K., Modern Control Engineering, 5th ed., Prentice Hall, 2010 — Chapter 6.