Root Locus Demo of Real Poles with Feedback

Donald Tillman, Sept 18, 2018

A passive filter built with resistors and capacitors will have its poles positioned along the negative real axis. Adding feedback will move the pole positions, first along the axis, and then off, onto the complex plane. This is an interactive simulation of the root locus movement as feedback is applied. I call it pole dancing.

A Super Concise Introduction

The transfer function of a filter is described in the form of a fraction with polynomials on both the numerator and denominator.

H ( s ) = z n s n + ... + z 2 s 2 + z 1 s + z 0 p n s n + ... + p 2 s 2 + p 1 s + p 0

Where:

H ( s ) is the filter transfer function

s = α + j ω , complex frequency

z is a set of numerator (zero) coefficients

p is a set of denomenator (pole) coefficients



The numerator determines the overall type of the filter (low-pass, high-pass, etc.) and the roots of the numerator polynomial are called the zeros. The denominator determines the characteristic shape of the curve (resonances, sharpness, etc.) and the roots of the denominator polynomial are called the poles.

The poles and zeros can be real or complex, and their arrangement on the complex plane is of great interest. The poles have to be on the left half of the plane for stability (for it to be a filter and not an oscillator). Poles on the real axis are smooth, gradual filter responses. Complex poles off the real axis are resonant with sharper curves.

A passive filter has poles positioned on the negative real axis. So there is a class of active filters where a gain stage is added to provide feedback around a passive filter, altering the pole positions, and liberating them from the real axis. This is called a root locus in system theory.

Here is a demonstration of that effect. Click to place poles on the negative real axis of the complex plane. Then add feedback to see how the real poles move around.

Primary Feedback: 0 Secondary (s) Feedback: 0

Clear

What's happening? Placing the poles along the real axis creates a polynomial. Applying feedback changes the value of the 0th coefficent of that polynomial. The altered polynomial has different roots, and those are displayed here.

The Primary Feedback slider controls the amount and polarity of feedback. The Secondary Feedback slider applies feedback as a derivative and affects the 1st coefficient of the root polynomial.

Complex poles can only exist in conjugate pairs; mirror images on either side of the real axis. So before any complex poles can be created, the real poles have to move around and pair up as double real poles. Only then can they split and leave the real axis. ('Weirdly like sex or cell division in biology.)

Some interesting things to note:

With a single pole, feedback will just move it along the X axis.

Starting with two poles at the same location, applying positive feedback will spread them apart on the real axis. Applying negative feedback will release them from the real axis for complex poles, vertically, in a line straight up and down. There are similar effects for two poles placed anywhere on the real axis.

With three poles at the same location, applying negative feedback will send two of them toward the Y axis and the third will fly to the left. Positive feedback goes in the other direction.

For the case of three poles spread out, adding negative feedback will bring the rightmost two together first, and then they can leap off the real axis, straight lines angled toward the Y-axis. Positive feedback will be the left-right reverse behavior.

The Moog Ladder Filter has 4 real poles at the same location. As negative feedback is added, the poles split apart in an "X" shape, and grow from there. With enough feedback, the pole pair on the right side crosses the Y axis, and that's the oscillation point. Positive feedback splits the poles into a "cross" shape.

Lots of poles at the same location spreads out like a ferris wheel. Positive and negative feedback provide two different rotations.

The second feedback slider is addresses the second term, the "s" term, of the polynomial. You see this bahavior on Sallen Key filters. So, starting with a double pole, adding positive feedback pops the poles off the real axis. But this time they go off in a semi-circle. This is effectively a 2 pole filter with constant frequency and adjusting the Q.

You can use both types of feedback together and get this delightfully crazy movement of poles, where a pole on the left travels to the right, bumps into the right pole, they split, and the rest of the poles move over.

How it works: Each mouse click adds to a list of real roots. Create a polynomial from those roots. The polynomial gets tweaked with the feedback factors. Then find the roots of the tweaked polynomial and present them on the plane. Plot a frequency response curve if the roots are all on the left hand plane.

The polynomial roots are found with this Javascript implementation of the Durand–Kerner method.

Have fun! Tell me what you find.