Visual walkthrough — Pole placement — Ackermann's formula
We are chasing one target. We have a machine whose natural behaviour we dislike, and we want to choose a feedback rule so the combined machine behaves exactly as we specify. Everything below earns the pieces of
Step 1 — What a "pole" is, drawn as motion
WHAT. A system (no input yet) evolves in time. The little dot means "rate of change." The state is just a list of numbers describing the machine right now (position, velocity, ...). The matrix says how the current state pushes the change in state.
WHY. Before we move anything we must know what a pole controls. The whole motion is built from terms , where each (an eigenvalue) is a pole. A pole is a single number that sets one "flavour" of motion.
PICTURE. Three poles, three motions.
- (real, positive) grows — the red curve runs away: unstable.
- decays to zero: stable. More negative = faster decay.
- complex with negative real part decaying wiggle: oscillation that dies out.
Step 2 — Feedback rebuilds the matrix
WHAT. We add a control input. The rule says: look at the whole state, multiply by a row of gains , and push back. Substituting:
WHY. Each symbol has a job:
- — the column that says where the single push enters the state.
- — the gains we get to choose, one per state coordinate.
- — the closed-loop matrix. Its poles are the ones the machine will actually show.
Changing literally reshapes the matrix, and reshaping the matrix moves the poles. That is our only lever.
PICTURE. The state flows through ; a copy is tapped, scaled by , and fed back into the input.
Step 3 — Package the target as one polynomial
WHAT. Instead of tracking separate poles, multiply them into a single desired characteristic polynomial:
WHY. Each factor vanishes exactly at one target pole. Multiplying them out trades the roots (where the poles are) for coefficients (numbers we can add to a matrix). Coefficients are what a matrix formula can consume; roots are not.
PICTURE. Roots on the number line collapse into a coefficient list.
- Left: the chosen poles marked in red.
- Right: the same information as the coefficient row .
Goal restated: choose so that .
Step 4 — The easy world: controllable canonical form
WHAT. There is a special coordinate system, the Controllable canonical form (CCF), in which pole placement is trivial. In CCF the matrices look like
WHY this form. Two features make it magic:
- The actual characteristic coefficients sit exactly on the bottom row of .
- is all zeros except a at the bottom, so the input touches only the last row.
Therefore feedback changes only the bottom row:
PICTURE. The feedback vector lands surgically on the last row; everything above is untouched.
To hit the desired coefficients , just solve , i.e. In CCF, pole placement is subtraction. The catch: your real machine is almost never in CCF. Steps 5–6 fix that.
Step 5 — Cayley–Hamilton loads the gains into the bottom row
WHAT. The Cayley–Hamilton theorem says every matrix satisfies its own characteristic polynomial: if is the actual char. poly. of , then (the zero matrix). Now feed the desired polynomial into the matrix :
WHY it is not zero. and have the same powers of but different coefficients ( vs ). Subtracting, leaves Each surviving coefficient is exactly the gain from Step 4. Because of the staircase shape of , these land precisely in the bottom row. So the selector row plucks them out:
PICTURE. is a full matrix, but only its last row carries the gains; the arrow reads it off.
- — desired polynomial evaluated at the matrix.
- — selects the actuated (last) coordinate; that is why the row of zeros-and-a-one appears. It is "read the bottom row."
Step 6 — Return ticket: carries the answer home
WHAT. Your real is a rotated/stretched version of CCF. The change of coordinates is , and one can show the transform is where is your machine's controllability matrix and is the CCF one.
WHY appears. lists the directions the single input can push the state through repeated applications of : (push now), (where that push drifts after one step), , and so on. If these columns span the whole space, every direction is reachable — the system is controllable and is invertible. Pushing the CCF gain back through and simplifying, the canonical pieces cancel and only survives:
PICTURE. CCF is the easy room; is the door back to your coordinates.
- — target dynamics, computed in your coordinates now (same , matrix ).
- — the return ticket from the easy room.
- — read the bottom row.
Step 7 — The degenerate case: when it breaks
WHAT. If , then does not exist and the whole formula collapses.
WHY. A zero determinant means the columns do not span the space — some direction of the state can never be reached by the input. You cannot move a pole you cannot steer.
PICTURE. Reachable columns collapse onto a line; a whole direction is stranded.
The one-picture summary
Read the formula right-to-left as an assembly line: desired poles → coefficients → → un-transform with → read the bottom row with → out comes .
Recall Feynman: the whole walkthrough in plain words
You've got a wobbly machine. The "poles" are secret numbers that decide whether it runs away, settles slowly, or shakes. You want to pick better numbers. First you write down the numbers you want as one tidy polynomial — its coefficients are just a shopping list. Then you pretend, for a moment, that your machine is in a super-tidy form where the push only affects one row; there, fixing the poles is plain subtraction, and a theorem (Cayley–Hamilton) guarantees the right push-strengths line up along that one row — you grab them with a "point at the last row" vector . Your real machine isn't tidy, so you buy a return ticket — the inverse controllability matrix — that carries the tidy answer back into your real coordinates. Multiply the three pieces and out pops , the exact push-per-measurement. The one rule: your single push must be able to reach every wobble, or the return ticket doesn't exist.