Control engineering · Zacher/Reuter, Regelungstechnik für Ingenieure, 17. Aufl. 2024, Kap. 7 (Wurzelortskurvenverfahren)

Root locus calculator: closed-loop poles as a function of gain

Draw the root locus for G₀(s), compute breakaway points, imaginary-axis crossings (K_crit, ω_crit) and asymptotes and follow with the slider how the closed-loop poles travel as the gain grows.

G(s)Zacher/Reuter 2024
01

Plant and controller

G₀(s) = 2 · [1] / [s^3 + 3.5·s^2 + 3.5·s + 1]

All views update immediately. Times in the selected unit, angular frequencies in rad/s (= 1/s).

02

Key figures

K_PR = 2

Stability limit at K_PR,krit ≈ 11.25 · range 0.033733.75

Closed loop
stable
ω_dGain crossover: |G₀(jω_d)| = 1 (0 dB).
0.6321 rad/s
φ_RdPhase margin φ_Rd = φ₀(ω_d) + 180° (Zacher/Reuter eq. 6.65). Recommended 40…70°.
78.5°
ω_πPhase crossover: φ₀(ω_π) = −180°; T_crit = 2π/ω_π.
1.8708 rad/s · T_krit = 3.359 s
A_RGain margin A_R = 1/|G₀(jω_π)| as factor and in dB; K_crit = K·A_R.
5.625 = 15 dB
x_mOvershoot: first maximum above the steady-state value in percent.
21.1 %
T_anRise time 10 % → 90 %.
1.548 s
T_ausSettling time until the response stays within ±2 % (±5 % in brackets).
8.199 s (5.257 s)
e(∞)Steady-state error e(∞) = w₀ − x(∞) for w₀ = 1.
0.3333
Dominant poleSlowest closed-loop pole (smallest |Re s|) – it shapes settling time and damping.
-0.451 − j0.975 1/s
D / ω₀
0.42 / 1.0748 rad/s
Root locus for 0 ≤ K_PR < ∞
-3-2-10-2-1012σ = Re s [1/s]jω [1/s]× open-loop poleszerosclosed-loop poles (current K)

Breakaway points

  • σ = -0.7257 1/s at K_PR = 0.0789

Imaginary-axis crossings

  • K_PR,krit = 11.25, ω_krit = 1.8708 rad/s, T_krit = 3.359 s

Asymptotes

σ_a = -1.1667 1/s, angles 60°, 180°, 300°

Poles at K_PR = 2

s [1/s]T = 1/|σ| [s]Dω₀ [rad/s]
-2.59710.3852.5971
-0.4514 − j0.97542.2150.421.0748
-0.4514 + j0.97542.2150.421.0748
Linked views – same loop, same gain
Method

What is calculated?

The closed-loop poles are the solutions of the characteristic equation 1 + K·G₀'(s) = 0, i.e. N(s) + K·Z(s) = 0 (Zacher/Reuter eq. 7.1–7.5). The root locus is the set of all these solutions for 0 ≤ K < ∞: for K = 0 the closed-loop poles sit on the open-loop poles, for K → ∞ they run into the zeros of G₀ or along asymptotes to infinity (sec. 7.2). Points on the locus satisfy the angle condition Σφ_N − Σφ_P = (2i + 1)·180° (eq. 7.6); the corresponding gain follows from the magnitude condition (eq. 7.5). The calculator solves the characteristic equation numerically for a dense grid of K values, connects the roots into branches, finds breakaway points from N'·Z − N·Z' = 0 (sec. 7.1, eq. 7.22/7.31) and locates the imaginary-axis crossings from the phase crossover of the frequency response – the same stability limit that Hurwitz gives with a₁a₂ = a₀a₃.

Equations

1 + K·Z(s)/N(s) = 0 ⇔ N(s) + K·Z(s) = 0

Winkelbedingung: Σφ_Ni − Σφ_Pi = (2i + 1)·180° (Gl. 7.6)

Betragsbedingung: K = |N(s)|/|Z(s)| (Gl. 7.5)

Verzweigungspunkte: N'(σ)·Z(σ) − N(σ)·Z'(σ) = 0

Asymptoten: σ_a = (Σs_P − Σs_N)/(n − m), Winkel (2i + 1)·180°/(n − m)

Limits

Assumptions and typical mistakes

Only for rational G₀(s), i.e. without dead time. The parameter is the gain K_PR (or K_S without controller); for other parameters such as Tn the characteristic equation must be rearranged (Zacher/Reuter sec. 7.1, point b). Branches are computed numerically at discrete K values and joined linearly.

Assuming real-axis segments belong to the locus although the angle condition is violated there (only segments with an odd number of real poles and zeros to their right belong). Confusing a breakaway point with the stability limit.

Marked points

What the marked positions in the plot mean – and why they matter

Background for all points: a signal travels through controller and plant and is fed back with inverted sign at the comparator (negative feedback). If it returns after one trip with unchanged magnitude (|G₀| = 1) and a phase rotated by −180°, the negative feedback cancels that rotation – the signal sustains itself. All marked positions measure the distance from exactly this situation.

Imaginary axis (σ = 0)
The border between decaying (left, σ < 0) and growing (right, σ > 0) natural motions. A pole exactly on the axis represents an oscillation of constant amplitude – the loop oscillates permanently at ω_crit. Hence a branch crossing this axis marks the stability limit and the corresponding gain K_crit.
Breakaway points on the real axis
As long as two poles are real, the step response decays without oscillating (aperiodic). When they meet at the breakaway point and become complex conjugates, the loop starts to oscillate – the gain at this point is the largest at which the response does not yet overshoot.
Open-loop poles (×) and zeros (○)
Start and end points of the branches: at K = 0 the controller has no effect and the closed-loop poles are those of the plant. As K grows they are attracted by the zeros. A zero on the left (e.g. from Tn or Tv) pulls the branches in the stable direction – that is why derivative action stabilises.
Asymptotes
Surplus branches (more poles than zeros) run to infinity along these lines. If they point into the right half plane (always for n − m ≥ 3), the loop inevitably becomes unstable at sufficiently high gain – regardless of the time constants.
Lines of constant damping
All poles on a straight line through the origin share the same damping ratio D = cos(angle to the negative real axis). For design, find the point on the branch with the desired D (e.g. 0.5…0.7) and read the corresponding gain.
Understanding the diagrams

What the five diagrams show and what they are used for

All views arise from the same transfer function G₀(s) and the same gain. They show the same system from different angles – time domain, frequency domain and s-plane – and lead to the same stability statement. The highlighted diagram is the main plot of this page; the others are linked below.

Pole–zero map (s-plane)

What it shows: The complex s-plane with real part σ (horizontal, in 1/s) and imaginary part jω (vertical). Crosses are the poles of the open loop G₀(s), circles its zeros, filled dots the closed-loop poles at the current gain. The left half plane is shaded green.

Used for: Quick judgement of how a system responds to an excitation: each pole stands for a natural-motion term e^(σt)·cos(ωt). Poles left of the axis decay (stable), right of it grow (unstable), on the axis oscillate permanently. Distance from the axis sets the decay time, the angle to the negative real axis the damping.

How to read it: The further left a pole, the faster its share decays (T = 1/|σ|). The larger the imaginary part, the higher the oscillation frequency. A pole pair on a straight line through the origin has constant damping D = cos of the angle to the negative real axis – 45° corresponds to D ≈ 0.7. The closed loop is stable when all filled dots lie on the left.

Open the calculator with this main plot

Bode plot

What it shows: Two curves over logarithmically scaled angular frequency ω: the magnitude |G₀(jω)| in decibels (20·log) on top, the phase angle φ₀ in degrees below. Both describe how strongly and with what delay the open loop transmits a sinusoidal signal of frequency ω.

Used for: Stability proof and controller design in the frequency domain: at the crossover ω_d (0 dB) you read the phase margin, at the phase crossover ω_π (−180°) the gain margin. Because series elements simply add in dB and degrees, you immediately see which element (time constant, integrator, dead time, D action) consumes or supplies margin.

How to read it: Bends in the magnitude lie at the corner frequencies 1/T; each pole lowers the slope by 20 dB/decade and the phase by 90°, each zero raises both, dead time only rotates the phase. A gain change shifts the magnitude in parallel – the phase stays. Stable (simplified Nyquist criterion): phase at ω_d above −180°. Rules of thumb: φ_R 40…70°, A_R ≈ 6…12 dB.

Open the calculator with this main plot

Nyquist plot

What it shows: The frequency response G₀(jω) as a curve in the complex plane: one point with real and imaginary part for each frequency ω; ω runs along the curve from 0 to ∞. The critical point (−1, j0) and the unit circle |G₀| = 1 are drawn in.

Used for: The most general stability criterion – it also holds with dead time and for unstable plants where Hurwitz fails. It also shows intuitively why gain (curve is stretched) and dead time (curve curls inward) tip the loop over.

How to read it: For stable plants with at most a double pole at the origin: the curve must leave the critical point −1 on its left. The intersection with the negative real axis shows the gain margin (distance to −1), the intersection with the unit circle the phase margin (angle to the negative real axis). With integrators the curve starts at infinity (−90° per integrator); the calculator shows the region around −1.

Open the calculator with this main plot

Root locusthis page

What it shows: The paths along which the closed-loop poles travel in the s-plane as the gain K is raised from 0 to ∞. They start at the open-loop poles (×) and end in its zeros (○) or run to infinity along the asymptotes. Breakaway points and imaginary-axis crossings are marked.

Used for: Controller design by pole placement: choose K so the dominant pole pair has the desired damping and speed, and see at once from which gain the loop becomes unstable (K_crit). It also shows whether an additional D term (zero) pulls the branches to the left.

How to read it: Points near the crosses belong to small K, distant ones to large K; the marker shows the position at the selected gain. Where two branches meet on the real axis (breakaway point), oscillation begins. Where a branch crosses the imaginary axis lies the stability limit with the sustained-oscillation frequency ω_crit. If n − m ≥ 3 branches go to infinity, the loop inevitably becomes unstable at large K.

Step response

What it shows: The time course of the controlled variable x(t) after the setpoint is switched from 0 to 1 at time 0 (closed loop) – optionally the open-loop response to a step of the manipulated variable. Dashed: steady-state value, shaded: ±2 % tolerance band.

Used for: The most intuitive assessment of control performance and the proof of requirements: overshoot, rise time, settling time and steady-state error can be read directly and compared with specifications. All other diagrams are ultimately tools for shaping this curve.

How to read it: Overshoot: first maximum above the steady-state value (16 % at D = 0.5, 4.3 % at D = 0.707, 0 % aperiodic). Rise time: 10 % → 90 %. Settling time: from when the curve stays inside the band. If the curve ends below the setpoint, integral action is missing (steady-state error). Growing oscillations mean instability – the same statement as poles right of the axis or a negative phase margin.

Open the calculator with this main plot

Inputs

What you enter – and where the values come from

Plant type
Selects the plant form: 'lags' for P, I or PT plants built from individual time constants (the common case of Zacher/Reuter ch. 3), 'oscillatory PT2' for a denominator 1 + 2·D·T₀·s + T₀²·s² (spring–mass systems, RLC circuits) and 'polynomial' for arbitrary numerator/denominator coefficients when the transfer function is already expanded.
Plant gain K_S
Static gain of the plant: change of the controlled variable per unit of manipulated variable at steady state (dimensionless or e.g. K/% for temperature control). For integrating plants K_S is the integral gain K_IS in 1/s. Obtained from a step test (final value ÷ step size) or modelling; typically 0.1 to 10, must be > 0.
Integrators
Number of free integrators (poles at s = 0) of the plant: 0 for self-regulating plants (temperature, pressure), 1 for non-self-regulating plants (level, position with a velocity actuator), 2 for double integrators (position with a force actuator). Each integrator shifts the phase by −90°.
Time constants T₁, T₂, T₃
Lag time constants of the (1 + s·T) denominator factors in the selected time unit. 0 means 'not present'. From a step response (63 % time for PT1, see the PT1 time-constant calculator) or component data (RC, mass/damping). Order does not matter; typical values range from milliseconds (electronics) to minutes (thermal processes).
Numerator time constant Tz
Optional (1 + s·Tz) factor in the numerator, i.e. a zero at s = −1/Tz. It appears in plants with lead behaviour (e.g. sensors with a high-pass share). 0 = no zero.
Natural time T₀ and damping ratio D
Parameters of the oscillatory PT2 element per Zacher/Reuter sec. 3.5: T₀ = 1/ω₀ is the reciprocal of the undamped natural angular frequency, D the dimensionless damping ratio. D < 1 gives complex conjugate poles (oscillation), D ≥ 1 two real poles. From a decay test (see the logarithmic-decrement calculator) or component data.
Numerator/denominator polynomial
Coefficients in ascending powers of s, separated by comma or space: '1, 3, 2' means 1 + 3·s + 2·s². The numerator degree must not exceed the denominator degree. Use this form for transfer functions that are already computed or exported from simulation tools.
Dead time Tt
Transport delay e^(−s·Tt): the output reacts only after Tt to an input change (conveyor, pipeline, sampling). It leaves the magnitude unchanged but rotates the phase by −ω·Tt (in radians) and is therefore the main enemy of stability. 0 = no dead time. A root locus is only possible without dead time.
Controller type
'no controller' analyses the plant alone (G₀ = G_S). P, PI, PD and PID follow the additive form G_R(s) = K_PR·(1 + 1/(s·Tn) + s·Tv) of Zacher/Reuter sec. 4.3 with an ideal derivative term. Integral action removes the steady-state error; derivative action adds phase lead.
Controller gain K_PR
Proportional gain of the controller, dimensionless or in manipulated units per controlled unit. The slider below the results varies exactly this value (K_S without controller), so poles, curves and step response move live. Must be > 0.
Reset time Tn
Time after which the integral share has caught up with the proportional share for a constant error (Zacher/Reuter sec. 4.3.3). Small Tn = strong integration but less phase margin. PI/PID only.
Derivative time Tv
Weighting of the error rate in the derivative share (Zacher/Reuter sec. 4.3.5). Adds phase lead near ω = 1/Tv. The calculator uses an ideal derivative without a filter; real controllers need an additional filter time constant. PD/PID only, ≥ 0.
Time unit
Unit of all time constants and the dead time (ms, s, min, h). Internally everything is computed in seconds; angular frequencies are shown in rad/s.
Results

What each value means

Locus branches
n curves (n = number of open-loop poles) from the poles (×) to the zeros (○) or to infinity. Symmetric to the real axis because complex poles come in pairs.
Breakaway/break-in points
Points on the real axis where two real poles meet and become complex (or vice versa), with the corresponding gain. Oscillation of the loop starts here.
Imaginary-axis crossing
Critical gain K_crit and angular frequency ω_crit of the sustained oscillation at the stability limit. For K > K_crit poles lie on the right – unstable. T_crit = 2π/ω_crit is the period for Ziegler–Nichols.
Current closed-loop poles
Pole positions at the selected gain (marker on the locus) with damping ratio D and ω₀ of the dominant pair. Design target: D ≈ 0.5…0.7 for 5…15 % overshoot.
Asymptotes
Directions in which n − m branches go to infinity and their common origin σ_a. For n − m ≥ 3 branches inevitably leave the left half plane – the loop becomes unstable at high gain.
Example

Worked example from the literature

Zacher/Reuter Beispiel 7.2: G₀ = K_PR·K_S/((1 + s·1 s)(1 + s·2 s)(1 + s·0.5 s)) with K_S = 1. The branches start at −1, −0.5 and −2 s⁻¹, two of them meet at σ₁ = −0.726 s⁻¹ (K = 0.079), become complex and cross the imaginary axis at ω_crit = 1.871 s⁻¹ for K = 11.25 – identical to the Hurwitz limit a₁a₂/a₃ − 1. The third branch runs along the real axis to −∞.

Context

What this calculator is for

Controller design by pole placement: choosing the gain so that damping and speed of the dominant pole pair fit; judging whether an additional D term (zero) pulls the branches to the left; determining K_crit and T_crit without an oscillation test on the plant.

How to proceed

  1. Enter plant and controller without dead time (use the Bode or Nyquist calculator for dead time).
  2. Follow the branches: where do they branch, where do they cross the imaginary axis?
  3. Sweep the gain with the slider or animation and watch the markers and the step response.
  4. Choose the gain so the dominant pole pair has the desired damping, then verify in the step-response calculator.
Source

Technical basis

Zacher/Reuter, Regelungstechnik für Ingenieure, 17th ed. 2024: ch. 7 root locus method (eq. 7.1–7.34), sec. 7.1 Beispiele 7.1 and 7.2, sec. 7.2 geometric properties; sec. 6.1 Hurwitz for the axis crossing.

The sources support the equations and worked examples; the reference examples are recomputed in the calculator's automated tests. The calculator does not replace a simulation with the complete nonlinear plant model.

Last updated: 2026-09-20

FAQ

Frequently asked questions

What is a transfer function?

G(s) = output(s)/input(s) describes a linear time-invariant element in the Laplace domain. The denominator holds the natural dynamics (poles), the numerator the input dynamics (zeros). With s = jω it becomes the frequency response from which Bode and Nyquist plots follow.

Why does the slider change only K_PR or K_S?

Loop gain is the parameter practitioners adjust first and the only one that shifts magnitude, root locus and step response proportionally without changing the phase curve. Change all other parameters in the input fields; the display updates immediately as well.

Why is the gain distributed logarithmically?

Near K = 0 the poles move fast, at large K slowly along the asymptotes. A logarithmic grid resolves both ranges evenly; the slider therefore also works logarithmically.

Can I design Tn or Tv with the root locus too?

Yes, by bringing the parameter into the form 1 + p·G*(s) = 0 (Zacher/Reuter sec. 7.1). The calculator varies only K; for Tn and Tv change the field values and compare the resulting curves.