Visual walkthrough — Nyquist stability criterion — encirclements of −1
We are re-deriving the central result of the parent note from the ground up, visually.
Step 1 — A complex number is an arrow with a length and an angle
WHAT. Before anything, we need one idea: a complex number is just an arrow drawn from the origin to the point on a flat sheet (the "complex plane"). Here is how far right, how far up, and the symbol is a bookkeeping tag meaning "this part points up, not right."
Every arrow has two facts we care about:
- its length — literally the ruler-distance from origin to tip;
- its angle — how far the arrow has swung counter-clockwise from pointing straight right (the positive -axis).
WHY these two. Because the entire Nyquist story is about angles that add up as we walk a loop. Length will barely matter; the swinging of the angle is the whole game. So we isolate the angle now.
PICTURE. The orange arrow below is . Its length is the magenta ruler; its angle is the violet wedge measured from the dashed rightward axis.
Step 2 — Multiplying arrows ADDS their angles
WHAT. Take two arrows and . When we multiply them, the product is a new arrow whose length is the product of lengths and whose angle is the sum of angles:
Each symbol: is how far the first arrow swung; the second; multiplying stacks the swings.
WHY we need this. Every transfer function we meet is built from factors like and multiplied and divided. If multiplication adds angles, then the total angle of a big product is just a sum of little angles — and a sum is something we can track as we walk a loop. This is the tool that turns "count encirclements" into "add up angle changes."
PICTURE. Two short arrows combine into a longer arrow whose angle is the two wedges laid end to end.
Step 3 — Walk a loop; watch how one factor's angle turns
WHAT. Now let the input point walk once, clockwise, around a closed loop in its own plane. Pick a single factor , where is a fixed point. This factor is itself an arrow with its tail at and its tip at (recall the general "arrow" definition in Step 1 — same rules, just a moved tail): it points from to . As marches around its loop, that arrow pivots.
Two cases, and only two:
- If sits inside the loop, the arrow from to must sweep a full turn: its angle changes by (minus because we walk clockwise).
- If sits outside the loop, the arrow wiggles back and forth but ends where it began: net angle change .
WHY this is the crux. This is the entire mechanism of encirclement counting, stripped bare. "Enclosed → one full turn; not enclosed → zero turns." Everything else is bookkeeping over many such factors.
PICTURE. Left: inside — the arrow makes a complete revolution. Right: outside — the arrow just rocks and returns.
Step 4 — Add all the factors: the Argument Principle appears
WHAT. A characteristic-type function is a ratio of such factors:
- Each is a zero (numerator arrow → adds angle).
- Each is a pole (denominator arrow → subtracts angle).
Walk clockwise around a loop . The total angle change of is the sum of every factor's angle change (Step 2: angles add). From Step 3, a factor contributes only if its point is inside , else :
Here = number of zeros of inside the loop, = number of poles inside.
WHY it matters. The net turning of around the origin is nothing but a headcount: (things that add a turn) minus (things that subtract a turn). We have connected a geometric winding to a pure integer count of poles and zeros — with no algebra solving for the roots.
PICTURE. The image curve drawn in the -plane; its arrow around the origin makes net clockwise loops.
Step 5 — Choose the loop that traps the whole danger zone
WHAT. "Unstable" means a closed-loop pole in the right-half plane (RHP) — the region where has . Real part positive means a signal that grows like instead of decaying.
So we want a loop that encloses the entire RHP. That loop, the Nyquist contour, is:
- march straight up the imaginary axis, , from to — wait, we go the clockwise way: down from to is CCW, so we take upward then close on the right;
- close it off with an infinite semicircle bulging into the RHP.
Traversed clockwise, this fence corrals every RHP point.
WHY the imaginary axis. Because that's the only part of the contour we can actually measure: on , the transfer function is the loop's real, physical frequency response — the same thing a Bode plot shows. The infinite arc, for any real proper system, shrinks its image to a single point (usually the origin), so it costs no encirclements.
A pole sitting ON the fence (axis pole). If has a pole exactly on the -axis (e.g. at ), the contour can't run through that blow-up point. We steer around it with a tiny semicircle that bulges to the RIGHT, into the RHP — the same side the big arc is on. Why right: this keeps the axis pole outside the enclosed region (the contour detours around it), so the pole is not counted in . This right-bulging indentation is our single, consistent convention; the phrase "indent right of the axis pole" is exactly this same choice (do not read it as bulging left). Riding this tiny right-hand half-loop, turns counter-clockwise through an angle of (a half-turn); the factor therefore turns clockwise through while its magnitude explodes, producing a huge clockwise half-sweep in the -plane. That sweep can add clockwise wraps to , so its direction matters — we detail it in Step 7.
PICTURE. Left: the -plane with the shaded RHP and the clockwise D-shaped Nyquist contour. The little dent shows the right-bulging indentation around a pole sitting on the axis (Step 7).
Recall Why does the big semicircle usually vanish?
Question ::: For a strictly proper (denominator degree higher than numerator), as , so the whole infinite arc maps to the single point — contributing no angle change.
Step 6 — Shift the target: origin becomes
WHAT. We apply Step 4 with the specific choice
where is the open-loop transfer function of the feedback loop: it is the total gain a signal picks up going once around the loop before the comparison point. In a standard loop , where is the forward-path transfer function (controller + plant, the block the error signal drives) and is the feedback-path transfer function (the sensor / measurement block that returns the output to be compared). Multiplying them chains the two blocks in series — exactly the "angles add" rule of Step 2. Then:
- zeros of = solutions of = the closed-loop poles → the RHP ones are exactly (the zombies we fear);
- poles of = poles of → the RHP ones are .
From Step 4, the curve winds around the origin times clockwise.
But we never plot ; we plot . And " around " is the same picture shifted left by one: it is " around ." Subtracting 1 slides the whole plot left, moving the target point from to .
Each symbol, one last time: = net clockwise loops of the drawn curve around ; = how many poles of already lived in the RHP (known before you plot); = the count we actually want — RHP closed-loop poles. Stable iff , i.e. iff .
WHY and not somewhere else. means : the open-loop response comes back flipped in sign and equal in size — perfect self-reinforcement (the canyon echo pushing back exactly as hard as you pushed). Encircling counts precisely how many poles have slipped into the "grows forever" region.
PICTURE. The origin-winding of (left) and the identical -winding of (right) — same shape, slid left by one.
Step 7 — Degenerate case: a pole sitting ON the fence
WHAT. Return to having a pole exactly at (or anywhere on the -axis). Our contour would otherwise run straight through a point where blows up — the picture is undefined there.
The fix (same convention as Step 5): dent the contour with a tiny semicircle that bulges to the RIGHT, into the RHP, so the axis pole stays outside the enclosed region (it is therefore not counted in ). As rides this tiny right-hand half-loop of radius , it turns counter-clockwise through ; the factor has magnitude and its angle turns clockwise through , so the image traces a huge clockwise semicircular arc at infinite radius.
WHY the direction matters. A pole on the boundary is neither clearly "in" nor "out"; the right-bulging indentation makes the choice explicit and consistent — the pole is excluded, so it never inflates . And because the image half-sweep is clockwise, it can contribute clockwise wraps to ; get the direction wrong and you'd miscount both and .
Cases to keep straight:
- Indent to the right of the axis pole (into the RHP) → the tiny detour excludes the pole from the enclosed region → not counted in . (Standard convention, used everywhere on this page.)
- The image arc is huge and clockwise, and this is where the big sweeps in plots like come from.
PICTURE. Left: the small right-bulging indentation in the -plane. Right: the giant clockwise arc it produces in the -plane.
Step 8 — Three outcomes, three pictures (all cases)
WHAT. Plug the boxed formula into the three archetypes from the parent note.
- , no wraps — . Starts at , sinks to the origin through the fourth quadrant, never reaching . : stable.
- , gain too high — . Its crossing of the negative real axis marches left as grows; past it slips beyond , giving . Then : unstable (two poles crossed into the RHP).
- , stabilised by feedback — . Here we need (one counter-clockwise wrap of ) to hit . If , the circle swallows CCW → stable; if it doesn't → unstable.
WHY show all three. They exhaust the sign logic: positive (bad when ), (safe when ), and negative (required when ). Sign and count both matter — mirror this against Routh–Hurwitz and root locus, which give the same by other means.
PICTURE. Three mini-plots side by side, each with marked and its verdict.
The one-picture summary
Everything collapses into a single flow: walk the RHP fence → factors add angles → net turns count poles → shift target to .
Recall Feynman retelling of the whole walkthrough
Think of every ingredient of the loop as a little arrow, and remember one magic rule: when arrows multiply, their angles just add. Now send a walker once around a big fence that pens in the entire "signals that grow" region. For each trapped point, the arrow pointing at the walker spins a full turn; for each free point, it just wiggles back home. So the total spin of the whole product is simply (trapped zeros) minus (trapped poles) — a headcount, no root-solving. We aim this at the function , whose trapped zeros are exactly the unstable modes and whose trapped poles are the plant's own bad poles . Since drawing around is the same as drawing around , we just count how many times our measured frequency-response curve loops the danger point , and which way it spins. That count is , and falls out. If , the echo dies — stable. (And if the curve passes right through , we're on the knife-edge — nudge the gain to see which way it falls.)
Connections
- Argument Principle (Cauchy) — the angle-counting engine behind Steps 3–4.
- Bode Plot & Gain/Phase Margins — the same data, and how close the curve passes to .
- Routh–Hurwitz Criterion — algebraic way to get the same (e.g. in Case 2).
- Root Locus — watches closed-loop poles cross into the RHP as varies.
- Feedback Control Basics — where and come from.
- Stability Margins in GNC Loops — applying -distance to autopilot/attitude loops.