PhysSandbox
Classical MechanicsWaves & SoundElectricity & MagnetismOptics & LightGravity & OrbitsLabs
🌙Astronomy & The Sky🌡️Thermodynamics🌍Biophysics, Fluids & Geoscience📐Math Visualization🔧Engineering🧪Chemistry

Related simulators

Continue with similar topics in this category — or all 48 in Engineering.

View category →
NewUniversity / research

Bode & Nyquist from Pole–Zero Map

Launch Simulator

Click the s-plane to place real or complex-conjugate poles (●) and zeros (×); G(s)=K∏(s−z)/∏(s−p). Live Bode magnitude/phase and Nyquist plot with −1 point; phase and gain margins from principal crossings (teaching heuristics).

NewUniversity / research

Cart–Pole: LQR vs MPC vs PID

Launch Simulator

Nonlinear cart inverted pendulum: linearize about upright φ = θ, discrete-time LQR from DARE (Q, R → K), finite-horizon LQ MPC with DARE terminal cost, and hand-tuned PID — same force limit, kicks, and plant as the mechanics cart-pole.

NewUniversity / research

AM / FM Modulation

Launch Simulator

Carrier + message: AM envelope vs FM phase; waveform and DFT spectrum snapshot.

NewUniversity / research

PID Controller (1D)

Launch Simulator

Cart on a track: Kp, Ki, Kd and random velocity impulses toward set-point x = 0.

NewUniversity / research

PID Tuning Sandbox

Launch Simulator

Second-order plant step response: overshoot, rise/settling time, Ziegler–Nichols Ku/Pu hints, actuator saturation, and disturbance rejection.

NewSchool

Four-Bar Linkage

Launch Simulator

Crank–rocker geometry with coupler-curve trace; link lengths and crank speed.

PhysSandbox

Interactive physics, chemistry, and engineering simulators for students, teachers, and curious minds.

Physics

  • Classical Mechanics
  • Waves & Sound
  • Electricity & Magnetism

Science

  • Optics & Light
  • Gravity & Orbits
  • Astronomy & The Sky

More

  • Thermodynamics
  • Biophysics, Fluids & Geoscience
  • Math Visualization
  • Engineering
  • Chemistry

© 2026 PhysSandbox. Free interactive science simulators.

PrivacyTermsContact
Home/Engineering/Root Locus: 1 + K·G(s) = 0

Root Locus: 1 + K·G(s) = 0

Same pole–zero plant editor as the Bode/Nyquist map: trace closed-loop poles as K sweeps log-spaced, asymptotes and real-axis locus sketch, Durand–Kerner roots at the current K; characteristic D(s)+K g₀ N₀(s)=0.

Plant G(s) and loop gain K

1
2.5
40

Characteristic: D(s) + K · g₀ · N₀(s) = 0 with D = ∏(s−p), N₀ = ∏(s−z).

Poles
0.00
-2.00
Zeros
-3.00

Shortcuts

  • •Shift+click removes the nearest pole or zero. Zeros are blocked if they would make deg N ≥ deg D (improper G).

Measured values

deg D, deg N2, 1
Proper?yes
RHP closed-loop poles1

About this model

This page studies unity negative feedback with a scalar plant G(s) = g₀ ∏(s − z_i) / ∏(s − p_j) edited on the same s-plane click map as the Bode/Nyquist pole–zero lab. The closed-loop characteristic equation is 1 + K G(s) = 0, equivalently D(s) + K g₀ N₀(s) = 0 where D and N₀ are monic polynomials built from the listed poles and zeros. A logarithmic sweep of K traces each closed-loop root as a colored polyline (a discrete sketch of the root locus). Asymptote directions and the real-axis segment rule (odd count of real poles+zeros to the right) are drawn as teaching overlays when deg D > deg N. Roots at each K are found with Durand–Kerner iteration on the monic polynomial; successive K samples reuse the previous root vector as the initial guess and apply a greedy permutation so branches stay visually continuous—this is a visualization aid, not a proof of Evans’s construction. The current K slider recomputes roots with the nearest sweep sample as a warm start; gold rings mark those roots and a counter flags right-half-plane closed-loop poles for quick instability feedback.

Who it's for: Undergraduates in classical control who have met the root-locus sketch rules and want a fast numeric picture tied to the same pole–zero placement UX as the companion Bode/Nyquist page.

Key terms

  • Root locus
  • Characteristic equation
  • Unity feedback
  • Open-loop poles and zeros
  • Asymptotes
  • Real-axis rule
  • Durand–Kerner
  • Closed-loop stability

How it works

Unity negative feedback with forward gain K and fixed plant G(s) = g₀ ∏(s−z)/∏(s−p) gives the characteristic equation 1 + K G(s) = 0 ⟺ D(s) + K g₀ N₀(s) = 0. The root locus is the set of closed-loop poles in the s-plane as K increases from 0 (you start at the open-loop poles) toward ∞ (branches tend toward zeros and asymptotes when n > m). Click to edit poles (●) and zeros (×) like the companion bode-nyquist-pole-zero page; dashed gray rays show asymptote angles (2q+1)π/(n−m) from the centroid; thick slate segments mark real-axis loci (positive K rule). Gold rings mark the closed-loop roots at the Current K slider. Roots are found with a Durand–Kerner polish on D + K g₀ N (teaching-grade numerics, not a certified control toolbox).

Key equations

1 + K G(s) = 0 ⟺ D(s) + K g₀ N₀(s) = 0
σ_a = (Σ p_i − Σ z_i) / (n − m), θ_k = (2k+1)π / (n − m)

Frequently asked questions

Why do some colored traces “jump” between K samples?
Root locus branches can cross or nearly coincide; a greedy matcher that permutes roots between successive K values can pick the wrong pairing for a step. Increasing K sweep max or zooming mentally along σ usually clarifies the geometry; for publication-grade plots you would branch-track with algebraic machinery beyond this teaching sketch.
Do the drawn asymptotes replace the actual locus?
No—they are the Evans centroid and angle recipe for n − m branches going to infinity as K → ∞. The polylines still come from the polynomial roots; the dashed rays are a reference when n > m.
Why block new zeros when deg N would reach deg D?
The plant must stay strictly proper for the usual unity-gain root-locus story (finite high-frequency behavior). The UI therefore refuses zeros that would make deg N ≥ deg D.
Is Durand–Kerner guaranteed to converge?
No—like many simultaneous root finders it is heuristic but works reliably here on moderate degrees with warm starts. If you place roots pathologically close, rerun by nudging a pole or K; the defaults target classroom polynomials.