# Root locus analysis
**Root locus analysis** is a graphical method in classical [[Control_theory|control theory]] for tracing how the closed-loop poles of a linear, time-invariant feedback system move through the complex plane as one parameter, almost always the loop gain, is varied continuously from zero to infinity. Walter R. Evans introduced the technique in 1948, developing it while working as a control engineer on servomechanism problems, and followed it two years later with a hand-operated mechanical aid, the Spirule, built to carry out the method's angle arithmetic without a table of tangents.[^evans1948][^evans1950][^evans-employer] The related microsim on this page builds a small closed feedback loop from a proportional–integral controller and two lagging stages and lets the reader raise the controller's gains until the loop's own poles, tracked implicitly in its response, cross from a damped return to a setpoint into sustained ringing and then outright growth.
The method answers a design question other classical tools answer only indirectly: for a chosen gain, exactly where do the closed-loop poles sit, and so exactly how fast, how oscillatory and how stable is the resulting response. It complements the [[Nyquist_stability_criterion|Nyquist criterion]] and the [[Bode_plot|Bode plot]], which read stability off a system's frequency response rather than off its pole locations directly, and it remains the standard way to explain why raising a [[PID_controller|PID controller]]'s gain past some point turns a well-behaved loop into an oscillating one: the poles the root locus tracks are doing exactly that, migrating toward and then across the boundary between decay and growth.
## Uses
Root locus analysis is used wherever a single adjustable parameter, almost always a controller or loop gain K, must be chosen to meet a transient-response specification stated in terms of the closed-loop poles: a maximum overshoot, a minimum damping ratio, a settling time no longer than some bound. Because the locus shows every achievable pole location for every value of K at once, a specification drawn as a region of the complex plane, a wedge of minimum damping ratio or a vertical line of minimum decay rate, turns into a graphical question of where that region first touches the plotted curve, rather than a separate calculation for each candidate gain. The same picture shows stability directly, since a loop is stable exactly where its locus stays in the left half of the [[Complex_analysis|complex plane]], and it shows how a proposed compensator, an added pole or zero meant to reshape the response, will pull the locus toward or away from a target region before the compensator is built. The question root locus answers, where a feedback loop's characteristic roots actually sit, is the same one [[James_Clerk_Maxwell|Maxwell]] first posed mathematically for a mechanical governor in 1868, decades before a graphical method for answering it existed.[^maxwell1868] In loop tuning generally, and in [[PID_controller|PID controller]] tuning specifically, the method explains a fact every hand-tuned loop eventually demonstrates: pushing a gain higher speeds a system's response only up to a point, beyond which the same closed-loop poles that were converging on a desired location cross into oscillation or outright instability.
## Definition
A point s0 in the complex plane lies on the root locus of a loop with open-loop [[Transfer_function|transfer function]] G(s)H(s) exactly when it satisfies the closed-loop characteristic equation 1 + K·G(s)H(s) = 0 for some real, non-negative K, equivalent to requiring K·G(s0)H(s0) = −1. Because s0 and G(s0)H(s0) are both complex, this single complex equation splits into two independent real conditions: one that fixes which points can possibly lie on the locus, and one that fixes what gain puts the locus there.
### Angle condition
The angle condition is the sum of the angles from every open-loop zero to s0, minus the sum of the angles from every open-loop pole to s0, equal to an odd multiple of 180°. It does not involve K at all, which is what makes it useful for sketching: a point either satisfies the angle condition, and so lies on the locus for some gain, or it does not, and no gain places a closed-loop pole there.
### Magnitude condition
Once a point satisfies the angle condition, the magnitude condition, K = 1 / |G(s0)H(s0)|, gives the one gain value that actually places a closed-loop pole there. The two conditions divide the work cleanly: angle finds where the locus can go, and magnitude reads off, at any point already found, which gain gets it there.
## Sketching root locus
A handful of rules, all consequences of the angle condition, let the overall shape of a locus be sketched from a [[Transfer_function|transfer function]]'s poles and zeros without plotting a single intermediate point. The locus has as many branches as the open-loop transfer function has poles, one starting at each pole when K = 0, since at K = 0 the characteristic equation reduces to the open-loop poles themselves; each branch ends either at an open-loop zero as K grows without bound, or, if zeros run out first, escapes to infinity along a straight-line asymptote. A stretch of the real axis belongs to the locus exactly when the number of open-loop poles and zeros to its right, counted together, is odd, a direct consequence of the angle condition applied to real points, where a complex pole or zero pair contributes a net angle of 360° and only real poles and zeros to the right of the test point contribute the odd multiple of 180° the condition needs.
Two real-axis branches converging toward each other break away into the complex plane at a breakaway point, and two complex branches can equally converge back onto the real axis at a break-in point; both are found from the same condition, that the gain K, expressed as a function of s along the real axis, reaches a local extremum there. Where the locus crosses the imaginary axis, marking the exact gain at which the loop turns unstable, is found from the Routh–Hurwitz stability criterion applied to the closed-loop characteristic polynomial, without needing to factor that polynomial at all.
## Plotting root locus
A locus is rarely plotted by hand today; software factors the characteristic polynomial at a dense sequence of gains and connects the resulting roots into continuous branches, tracking each root's identity from one gain to the next so branches do not appear to cross where two roots merely pass close to one another. Evans's Spirule, the analogue alternative to plotting individual points from scratch, laid a spiral scale and a rotating arm over the s-plane so the angle and magnitude conditions could be satisfied by eye and by hand; it remained in use for control system design until general-purpose digital computers made the same search a numerical one instead.[^evans1950]
### Example
The classic case G(s)H(s) = K / (s(s+1)(s+2)), open-loop [[Pole–zero_plot|poles]] at 0, −1 and −2 with no finite zeros, illustrates every rule above with numbers that check exactly. The real-axis locus occupies the two stretches (−1, 0) and (−∞, −2); the three asymptotes meet at their centroid, (0 − 1 − 2)/3 = −1, and leave it at 60°, 180° and 300°; and the breakaway point, where the branch starting at 0 and the branch starting at −1 meet and turn into the complex plane, sits at s ≈ −0.423, reached at a gain of about 0.385. Raising the gain further, those same two branches cross the imaginary axis at ±j1.414 when K = 6, the exact gain and frequency the Routh–Hurwitz array applied to s³ + 3s² + 2s + K also gives; beyond that gain the loop is unstable.
## z-plane versus s-plane
Everything above assumes a continuous-time loop, whose characteristic equation is a polynomial in the [[Laplace_transform|Laplace]] variable s and whose stability boundary is the imaginary axis, the left half-plane stable and the right half unstable. A sampled-data or digital control loop instead has a characteristic equation that is a polynomial in the [[Z-transform|Z-transform]] variable z, related to s by z = e^(sT) for a sample interval T, and that mapping carries the entire left half of the s-plane onto the interior of the unit circle in the z-plane, so a discrete loop is stable exactly when every closed-loop pole lies inside that circle rather than to the left of an axis. The angle and magnitude conditions carry over to the z-plane unchanged in form, arg[G(z)H(z)] equal to an odd multiple of 180° and K = 1/|G(z)H(z)|, so every sketching rule above applies to a discrete root locus without modification beyond substituting z for s and the unit circle for the imaginary axis as the boundary that matters. What changes is the geometry: the exponential map bends straight lines in s into curves in z, so asymptotes and real-axis segments computed the same way can look quite different once drawn, even for a loop whose continuous-time counterpart would sketch simply.
## Microsims
The related sketch on this page, *Automatic control*, builds the closed loop root locus analysis is used to tune, rather than plotting a locus directly: a [[PID_controller|proportional–integral controller]] drives two cascaded first-order lags, with the controller's proportional gain Kp and integral gain Ki set directly by the reader, a setpoint control, a disturbance button that injects a step load partway through the run, and a feedback toggle that opens the loop for comparison. Raising Kp and Ki together speeds the loop's return to its setpoint, exactly the effect of pushing a root-locus branch further from the origin, until the same gains push the implicit closed-loop poles into the ringing and then the outright growth a root locus plotted for this loop would show migrating toward and across the imaginary axis. ILLUSTRATIVE: the plant is fixed to two identical first-order lags rather than the general pole–zero pattern a real process would have, chosen so the connection between rising gain and rising oscillation stays visible without a separate root-locus plot on screen.
*Try:* Raise Kp and Ki together from their defaults until the output first overshoots and rings before settling, then keep raising them until the ringing stops decaying at all, the same gain a root locus for this loop would show crossing into the right half-plane.
A three.js companion plots the actual root locus for a third-order loop, tracking breakaway and the axis crossing as gain sweeps.
<!-- SIGSIM:BEGIN g35 — Signal Processing portal microsim (framework build, specs/sims/Root_locus_analysis.json); do not hand-edit inside -->
**Microsim — three.js (Wikitube framework), pending deploy:** *Root locus analysis: closed-loop poles migrate with gain* will play here once `https://wikitube-3d-microsims.netlify.app/signal/Root_locus_analysis.html` is live.
<!-- pending: <div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/signal/Root_locus_analysis.html" data-title="Root locus analysis"></div> -->
*Built from `MICROSIM_GUIDE/specs/sims/Root_locus_analysis.json`; part of the [[Signal_processing]] set ([[PORTAL_Signal_Processing]]).*
<!-- SIGSIM:END -->
## Wikipedia : Wikitube
**Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Root_locus_analysis) : [Wikitube](https://en.wikitube.io/wiki/Root_locus_analysis)
Skeleton mirrored at revision 1358730133. Prose, emphasis and the microsims are Wikitube's own.
## See also
- [[Control_theory]]
- [[Transfer_function]]
- [[Pole–zero_plot]]
- [[Bode_plot]]
- [[Nyquist_stability_criterion]]
- [[PID_controller]]
- [[Z-transform]]
- [[Laplace_transform]]
## References
[^evans1948]: Walter R. Evans, "Graphical Analysis of Control Systems," *Transactions of the American Institute of Electrical Engineers*, vol. 67, no. 1 (1948), pp. 547–551. https://ui.adsabs.harvard.edu/abs/1948TAIEE..67..547E/abstract
[^evans1950]: Walter R. Evans, "Control System Synthesis by Root Locus Method," *Transactions of the American Institute of Electrical Engineers*, vol. 69, no. 1 (1950), pp. 66–69. https://ui.adsabs.harvard.edu/abs/1950TAIEE..69...66E/abstract
[^evans-employer]: Citation needed: a primary record (contemporary employer, project or internal report) of the specific servomechanism work that prompted Evans's 1948 method.
[^maxwell1868]: James Clerk Maxwell, "On Governors," *Proceedings of the Royal Society of London*, vol. 16 (1868), pp. 270–283. https://doi.org/10.1098/rspl.1867.0055
## Further reading
- Christian Tiberius; Max Mulder. *Engineering Signal Analysis: From Fourier to filtering: Theory*. 2026. Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/engineering-signal-analysis-from-fourier-to-filtering-theory
- Don Johnson. *Fundamentals of Electrical Engineering I*. 2014. Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/fundamentals-of-electrical-engineering-1
- John Dyer; Chad Davis. *Measurement and Instrumentation: An Introduction to Concepts and Methods*. 2020. Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/measurement-and-instrumentation-an-introduction-to-concepts-and-methods
## External links
- [Automatic control (live microsim)](https://editor.p5js.org/sciencenibber/full/nIoKSZZHo)
- [Automatic control (editor / fork)](https://editor.p5js.org/sciencenibber/sketches/nIoKSZZHo)
<!-- Hubs: Signal_processing. Portals: PORTAL_Signal_Processing. Signal Processing portal wave 1 · 2026-09-17 · drafted. -->