Part 6 · Chapter 26

Pole Placement, State Feedback, and Observer Design

Chapter 25 asked whether every mode of a system can be driven and every mode can be seen; this chapter spends those two answers, using full state feedback to put all \(n\) closed-loop poles exactly where the specification demands and an observer to manufacture the states the sensors never measured.

Control Systems Prof. Mithun Mondal Reading time ≈ 45 min
i What you'll learn
  • Why the control law \(u=-\mathbf{Kx}\) gives \(n\) independent knobs where the root locus of Chapter 12 gave only one.
  • How to find \(\mathbf{K}\) by direct coefficient matching, by the controllable canonical form, and by Ackermann's formula.
  • Why complete controllability is exactly the condition for arbitrary pole placement.
  • How to choose the desired pole locations sensibly — and the price of choosing them too far left.
  • Why state feedback leaves the zeros and the DC gain untouched, and what \(\bar{N}\) and integral action do about it.
  • How a full-order observer reconstructs \(\mathbf{x}\) from \(y\), with error dynamics \(\mathbf{A}-\mathbf{LC}\) designed by duality.
  • The separation principle, and why the finished controller is an \(n\)th-order dynamic compensator.
Section 26-1

From One Knob to \(n\) Knobs

Every design method in Parts 3, 4 and 5 shared a quiet limitation. The root locus of Chapter 12 showed where the closed-loop poles can go as a single gain \(K\) varies, and Chapter 13 taught us to pick a point on that locus. The locus itself was fixed by the plant; if the point we wanted was not on it, we had to bend the locus by adding a compensator pole and zero (Chapter 21) and try again. Frequency-domain design in Chapters 17 and 22 worked the same way: one scalar gain, one phase-lead network, an iterative search.

The reason for that limitation is structural. Output feedback \(u = -k\,y\) uses a single measured signal, so it offers a single number to choose. But Chapter 23 taught us that the internal condition of an \(n\)th-order system is an \(n\)-vector \(\mathbf{x}\), and Chapter 24 showed that \(\mathbf{x}(t)\) carries everything there is to know about the system's future. If we could feed back all of \(\mathbf{x}\), each of its \(n\) components would come with its own gain — \(n\) numbers to choose, and \(n\) closed-loop poles to place. That count is not a coincidence, and this chapter turns it into a design method.

Two obstacles stand in the way, and Chapter 25 has already named both. Feeding back a state is useless if the input cannot influence that state, which is the question of controllability. And feeding back a state is impossible if no sensor measures it, which is answered by observability — if the missing states are observable we can compute them from the output history rather than measure them. Sections 26-2 through 26-7 solve the first problem; Sections 26-8 and 26-9 solve the second.

The shift in mindset. Classical design asks "what does this compensator do to my system?" and iterates. Pole placement inverts the question: state where the poles must be, then solve for the gains that put them there. It is a one-shot algebraic construction rather than a search — which is its great strength, and, as Section 26-6 warns, also the place where inexperience does the most damage.
Section 26-2

The State Feedback Law

Take the single-input state model of Chapter 23,

Plant
\[ \dot{\mathbf{x}} = \mathbf{A}\mathbf{x} + \mathbf{B}u, \qquad y = \mathbf{C}\mathbf{x}, \]

with \(\mathbf{A}\) an \(n\times n\) matrix and \(\mathbf{B}\) an \(n\times 1\) column. Suppose for the moment that every component of \(\mathbf{x}\) is available for measurement. The state feedback law forms the input as a weighted sum of all the states:

Control law
\[ u = -\mathbf{K}\mathbf{x}, \qquad \mathbf{K} = \begin{bmatrix} k_1 & k_2 & \cdots & k_n \end{bmatrix} \]

The row vector \(\mathbf{K}\) is the state feedback gain matrix; the minus sign is convention, so that positive \(k_i\) means negative feedback. Substituting into the plant collapses the loop into a single autonomous equation:

🔑
Closed-loop state equation
\[ \dot{\mathbf{x}} = (\mathbf{A} - \mathbf{B}\mathbf{K})\,\mathbf{x}, \qquad \Delta_{cl}(s) = \det\!\left(s\mathbf{I} - \mathbf{A} + \mathbf{B}\mathbf{K}\right) \]

State feedback replaces the system matrix \(\mathbf{A}\) by \(\mathbf{A}-\mathbf{BK}\). The closed-loop poles are the eigenvalues of that new matrix, and every entry of \(\mathbf{K}\) can influence them.

Read the result carefully, because two things did not change. The input matrix \(\mathbf{B}\) is untouched, and so is the output matrix \(\mathbf{C}\). Since the transfer-function numerator of Chapter 23 is built from \(\mathbf{C}\,\mathrm{adj}(s\mathbf{I}-\mathbf{A})\,\mathbf{B}\), and one can show the adjugate combination is unaffected by the substitution \(\mathbf{A}\to\mathbf{A}-\mathbf{BK}\), state feedback moves the poles but leaves the zeros exactly where they were. Section 26-7 returns to the consequences.

The figure below shows the arrangement. A scalar reference is admitted through a feedforward gain \(\bar{N}\) whose purpose is explained in Section 26-7; for pure regulation (driving the state to zero from a disturbed initial condition) that path is absent and \(r=0\).

r + u B + + ∫ dt x C y A K full state feedback plant dynamics
State feedback wraps a new loop around the plant's own A-loop
Section 26-3

Placement by Coefficient Matching

The design problem now states itself. We are handed a set of \(n\) desired closed-loop pole locations \(\mu_1,\dots,\mu_n\) — chosen from a transient specification exactly as in Chapter 8, and closed under complex conjugation so that \(\mathbf{K}\) comes out real. Form the desired characteristic polynomial

Desired polynomial
\[ \phi(s) = (s-\mu_1)(s-\mu_2)\cdots(s-\mu_n) = s^n + \alpha_{n-1}s^{n-1} + \cdots + \alpha_1 s + \alpha_0 \]

and require the actual closed-loop polynomial to equal it:

The placement condition
\[ \det\!\left(s\mathbf{I} - \mathbf{A} + \mathbf{B}\mathbf{K}\right) \;\equiv\; \phi(s) \quad\text{for all } s \]

Both sides are monic polynomials of degree \(n\), so matching them means matching \(n\) coefficients. Because \(\mathbf{K}\) enters \(\mathbf{A}-\mathbf{BK}\) linearly, and the determinant is linear in each row, every coefficient of the left-hand polynomial is a linear function of \(k_1,\dots,k_n\). We therefore face \(n\) linear equations in \(n\) unknowns — a system that has a unique solution precisely when its coefficient matrix is nonsingular, and that nonsingularity turns out to be the controllability condition of Chapter 25.

For second- and third-order systems this is the fastest route by hand: expand the determinant symbolically and equate coefficients. Take a double integrator with drag, \(\mathbf{A}=\begin{bmatrix}0&1\\0&-2\end{bmatrix}\), \(\mathbf{B}=\begin{bmatrix}0\\1\end{bmatrix}\), and \(\mathbf{K}=\begin{bmatrix}k_1&k_2\end{bmatrix}\). Then

Expanding the determinant
\[ \mathbf{A}-\mathbf{BK} = \begin{bmatrix}0 & 1\\ -k_1 & -2-k_2\end{bmatrix}, \qquad \det(s\mathbf{I}-\mathbf{A}+\mathbf{BK}) = \begin{vmatrix} s & -1 \\ k_1 & s+2+k_2 \end{vmatrix} = s^2 + (2+k_2)s + k_1 \]

Every coefficient is now a knob: \(k_1\) sets the constant term outright and \(k_2\) sets the \(s\)-coefficient. Any polynomial \(s^2+\alpha_1 s+\alpha_0\) can be produced, so any pair of poles can be reached. That freedom is complete only because the two unknowns appeared in two different coefficients; when a system is uncontrollable, one or more coefficients lose all dependence on \(\mathbf{K}\) and the corresponding modes are frozen.

🔑
The pole placement theorem
The eigenvalues of \(\mathbf{A}-\mathbf{BK}\) can be assigned to any self-conjugate set of \(n\) locations by a suitable real \(\mathbf{K}\) if and only if the pair \((\mathbf{A},\mathbf{B})\) is completely state controllable.

If the controllability matrix \(\mathbf{M}_c=\begin{bmatrix}\mathbf{B}&\mathbf{AB}&\cdots&\mathbf{A}^{n-1}\mathbf{B}\end{bmatrix}\) has rank \(r<n\), the Kalman decomposition of Chapter 25 splits the system into a controllable part and an uncontrollable part. Feedback reshapes the \(r\) controllable eigenvalues and leaves the other \(n-r\) exactly where the plant put them. Design is still possible if those fixed eigenvalues are already in the left half-plane — the system is then called stabilisable — but arbitrary placement is not.

Section 26-4

Controllable Canonical Form and Bass–Gura

Coefficient matching by hand becomes unpleasant beyond third order. The systematic route exploits a coordinate system in which the answer is written down by inspection. Recall from Chapter 23 the controllable canonical form of a system whose open-loop characteristic polynomial is \(\Delta(s) = s^n + a_{n-1}s^{n-1}+\cdots+a_0\):

Controllable canonical form
\[ \bar{\mathbf{A}} = \begin{bmatrix} 0 & 1 & 0 & \cdots & 0\\ 0 & 0 & 1 & \cdots & 0\\ \vdots & & & \ddots & \vdots\\ 0 & 0 & 0 & \cdots & 1\\ -a_0 & -a_1 & -a_2 & \cdots & -a_{n-1} \end{bmatrix}, \qquad \bar{\mathbf{B}} = \begin{bmatrix} 0\\0\\\vdots\\0\\1 \end{bmatrix} \]

The whole characteristic polynomial lives in the bottom row, and \(\bar{\mathbf{B}}\) touches only that row. So if we feed back \(\bar{\mathbf{u}} = -\bar{\mathbf{K}}\bar{\mathbf{x}}\) with \(\bar{\mathbf{K}}=\begin{bmatrix}\bar{k}_1&\cdots&\bar{k}_n\end{bmatrix}\), the matrix \(\bar{\mathbf{A}}-\bar{\mathbf{B}}\bar{\mathbf{K}}\) is identical to \(\bar{\mathbf{A}}\) except that its bottom row becomes \(\begin{bmatrix}-(a_0+\bar{k}_1) & -(a_1+\bar{k}_2) & \cdots & -(a_{n-1}+\bar{k}_n)\end{bmatrix}\). It is still in canonical form, so its characteristic polynomial can be read straight off:

Closed loop in canonical coordinates
\[ \Delta_{cl}(s) = s^n + (a_{n-1}+\bar{k}_n)s^{n-1} + \cdots + (a_1+\bar{k}_2)s + (a_0+\bar{k}_1) \]
🔑
Gain in canonical coordinates
\[ \bar{\mathbf{K}} = \begin{bmatrix} \alpha_0 - a_0 & \alpha_1 - a_1 & \cdots & \alpha_{n-1}-a_{n-1} \end{bmatrix} \]

In controllable canonical form the gain is simply the coefficient-by-coefficient difference between what we want and what the plant already has. Nothing needs solving.

A general plant is not handed to us in that form, but Chapter 25 showed how to get there. The transformation \(\mathbf{x}=\mathbf{T}\bar{\mathbf{x}}\) with \(\mathbf{T}=\mathbf{M}_c\mathbf{W}\) carries the canonical pair into the given one, where \(\mathbf{M}_c\) is the controllability matrix and \(\mathbf{W}\) is the Hankel matrix of the open-loop coefficients:

The transformation matrix
\[ \mathbf{W} = \begin{bmatrix} a_1 & a_2 & \cdots & a_{n-1} & 1\\ a_2 & a_3 & \cdots & 1 & 0\\ \vdots & \vdots & & \vdots & \vdots\\ a_{n-1} & 1 & \cdots & 0 & 0\\ 1 & 0 & \cdots & 0 & 0 \end{bmatrix} \]

Because \(u=-\bar{\mathbf{K}}\bar{\mathbf{x}} = -\bar{\mathbf{K}}\mathbf{T}^{-1}\mathbf{x}\), the gain in the original coordinates is \(\mathbf{K}=\bar{\mathbf{K}}\mathbf{T}^{-1}\). Written out, this is the Bass–Gura formula:

Bass–Gura
\[ \mathbf{K} = \begin{bmatrix} \alpha_0-a_0 & \alpha_1-a_1 & \cdots & \alpha_{n-1}-a_{n-1}\end{bmatrix}\left(\mathbf{M}_c\mathbf{W}\right)^{-1} \]

The formula makes the controllability requirement visible: \(\mathbf{T}^{-1}\) exists only if \(\mathbf{M}_c\) is nonsingular, since \(\mathbf{W}\) is always nonsingular (its anti-diagonal is all ones). An uncontrollable plant simply has no such coordinate change, and the canonical form does not exist.

Section 26-5

Ackermann's Formula

Bass–Gura works but asks for two matrices. Ackermann's formula compresses the whole construction into one line, and it is the version worth memorising for examinations.

🔑
Ackermann's formula
\[ \mathbf{K} = \begin{bmatrix} 0 & 0 & \cdots & 0 & 1 \end{bmatrix}\mathbf{M}_c^{-1}\,\phi(\mathbf{A}) \]

Here \(\mathbf{M}_c=\begin{bmatrix}\mathbf{B}&\mathbf{AB}&\cdots&\mathbf{A}^{n-1}\mathbf{B}\end{bmatrix}\) and \(\phi(\mathbf{A}) = \mathbf{A}^n+\alpha_{n-1}\mathbf{A}^{n-1}+\cdots+\alpha_1\mathbf{A}+\alpha_0\mathbf{I}\) is the desired characteristic polynomial evaluated at the plant matrix.

The formula looks unmotivated until one asks what \(\phi(\mathbf{A})\) actually measures. By the Cayley–Hamilton theorem of Chapter 24, every matrix satisfies its own characteristic equation, so \(\Delta(\mathbf{A}) = \mathbf{A}^n + a_{n-1}\mathbf{A}^{n-1}+\cdots+a_0\mathbf{I} = \mathbf{0}\). Subtracting this zero from \(\phi(\mathbf{A})\) costs nothing and reveals the structure:

Why \(\phi(\mathbf{A})\) is the right object
\[ \phi(\mathbf{A}) = \phi(\mathbf{A}) - \underbrace{\Delta(\mathbf{A})}_{=\;\mathbf{0}} = (\alpha_{n-1}-a_{n-1})\mathbf{A}^{n-1} + \cdots + (\alpha_1-a_1)\mathbf{A} + (\alpha_0-a_0)\mathbf{I} \]

The \(n\)th-power terms cancel exactly, and what survives is a polynomial in \(\mathbf{A}\) of degree \(n-1\) whose coefficients are precisely the differences \(\alpha_i - a_i\) that Section 26-4 identified as the canonical gain. The premultiplier \(\begin{bmatrix}0&\cdots&0&1\end{bmatrix}\mathbf{M}_c^{-1}\) is the row that extracts those coefficients and converts them back to the original coordinates; carrying out that verification in canonical form reproduces \(\bar{\mathbf{K}}\) exactly. So Ackermann's formula is Bass–Gura with the bookkeeping done in advance.

Two practical remarks. First, \(\mathbf{M}_c^{-1}\) is required, so once again controllability is the gatekeeper — and a nearly uncontrollable plant gives a badly conditioned \(\mathbf{M}_c\), producing enormous and unreliable gains. Second, for \(n\) beyond four or five the formula is numerically poor and production software uses orthogonal-transformation algorithms instead; for hand calculation up to third order it is unbeatable.

A useful sanity check. Ackermann's formula and coefficient matching must give the same \(\mathbf{K}\). Working a second-order problem both ways — as Examples 1 and 2 do — costs a minute and catches a sign error before it propagates through an entire design.
Section 26-6

Choosing the Closed-Loop Poles

The algebra will place the poles anywhere we ask, which makes the asking the hard part of the design. Nothing in the formulas penalises a foolish choice, so the engineer must supply the judgement.

The usual construction begins with the transient specification. From Chapter 8, an overshoot and a settling time fix a damping ratio and a natural frequency,

From specification to a dominant pair
\[ \zeta = \frac{-\ln(M_p)}{\sqrt{\pi^2+\ln^2(M_p)}}, \qquad \omega_n \approx \frac{4}{\zeta\,t_s}, \qquad \mu_{1,2} = -\zeta\omega_n \pm j\,\omega_n\sqrt{1-\zeta^2} \]

and the remaining \(n-2\) poles are placed far enough to the left that they contribute negligibly — the dominant-pole idea of Chapter 8, now enforced by construction instead of hoped for. A common rule is to put them five to ten times further left than the real part of the dominant pair, with the extra poles kept real to avoid introducing new oscillatory modes.

σ -1 -3 -10 open-loop poles × −2 + j2 −2 − j2 −10 ζ = 0.707 non-dominant pole, 5× further left
Pole placement carries every open-loop pole to a chosen destination

The temptation is to place all the poles very far left and enjoy a very fast response. That temptation must be resisted, for four reasons that no formula will remind you of.

Consequence of poles placed far leftWhy it hurts
Large entries in \(\mathbf{K}\)\(u=-\mathbf{Kx}\) becomes huge for ordinary states; the actuator saturates and the closed loop no longer behaves like the linear design at all.
Wide closed-loop bandwidthSensor noise above the plant's real bandwidth is amplified straight into the control signal, heating actuators and wearing hardware.
Model validity exceededUnmodelled high-frequency dynamics — flexible modes, actuator lags neglected in Chapter 2 — sit inside the new bandwidth and can destabilise a loop the design predicted to be stable.
Loss of robustnessAggressive gains make the closed-loop poles more sensitive to parameter error; the placement is exact only for the model, not for the machine.
Speed costs energy, always. Pole placement makes the transient specification exactly attainable, which hides the fact that it is not free. The honest statement of the trade-off is the quadratic cost \(J=\int_0^\infty(\mathbf{x}^T\mathbf{Qx}+ru^2)\,dt\), which prices response error against control effort and lets an optimisation choose the poles for us. That is the linear quadratic regulator, and it is where Chapter 30 begins.
Section 26-7

What State Feedback Cannot Fix

Section 26-2 noted that \(\mathbf{B}\) and \(\mathbf{C}\) survive the feedback untouched. The consequences deserve to be spelled out, because a design that places the poles perfectly can still track the reference badly.

The zeros do not move. Whatever \(\mathbf{K}\) we choose, the closed-loop transfer function \(\mathbf{C}(s\mathbf{I}-\mathbf{A}+\mathbf{BK})^{-1}\mathbf{B}\) has the same numerator as the open-loop plant. A non-minimum-phase zero in the right half-plane — the source of the initial undershoot discussed in Chapter 6 — is still there afterwards, and the fundamental limitation it imposes on achievable bandwidth is untouched. Pole placement is not a cure for bad plant structure.

The DC gain is wrong. Setting \(u=-\mathbf{Kx}\) drives the state to zero, which is exactly what a regulator should do but useless for tracking. Admitting the reference as \(u=-\mathbf{Kx}+\bar{N}r\) gives a steady state \(\mathbf{x}_{ss} = -(\mathbf{A}-\mathbf{BK})^{-1}\mathbf{B}\bar{N}r\), so \(y_{ss}=r\) requires

🔑
Reference input scaling
\[ \bar{N} = \frac{-1}{\mathbf{C}\left(\mathbf{A}-\mathbf{BK}\right)^{-1}\mathbf{B}} \]

Equivalently, \(\bar{N}\) is the reciprocal of the closed-loop DC gain computed with \(\bar{N}=1\). It is a pure feedforward number: it corrects the scale but adds no feedback and therefore no robustness.

And that scaling is fragile. \(\bar{N}\) is computed from the model. If the plant gain drifts by ten per cent, the output is ten per cent wrong for ever, and no amount of pole placement notices — the loop has no integrator, so by the type analysis of Chapter 9 it is a type-0 system with a finite step error. A constant load disturbance produces a permanent offset for the same reason.

The repair is the one Chapter 19 taught: put an integrator in the loop, and put it there before designing the gains. Augment the state with the integral of the tracking error, \(\dot{x}_I = r-y = r-\mathbf{Cx}\), and design for the enlarged \((n+1)\)th-order plant

Integral action by state augmentation
\[ \frac{d}{dt}\begin{bmatrix}\mathbf{x}\\ x_I\end{bmatrix} = \underbrace{\begin{bmatrix}\mathbf{A} & \mathbf{0}\\ -\mathbf{C} & 0\end{bmatrix}}_{\mathbf{A}_a}\begin{bmatrix}\mathbf{x}\\ x_I\end{bmatrix} + \underbrace{\begin{bmatrix}\mathbf{B}\\ 0\end{bmatrix}}_{\mathbf{B}_a}u + \begin{bmatrix}\mathbf{0}\\ 1\end{bmatrix}r, \qquad u = -\begin{bmatrix}\mathbf{K} & -k_I\end{bmatrix}\begin{bmatrix}\mathbf{x}\\ x_I\end{bmatrix} \]

Now \(n+1\) poles are placed, the extra one associated with the integrator, and the closed loop is type 1: constant references are tracked and constant disturbances rejected with zero steady-state error, robustly, without depending on the accuracy of any feedforward constant. The augmented pair \((\mathbf{A}_a,\mathbf{B}_a)\) is controllable provided the original pair is controllable and the plant has no zero at the origin.

Section 26-8

The State Observer

Everything so far assumed that all \(n\) states can be measured. In practice they cannot. A servomotor has an encoder on the shaft but no tachometer; an aircraft measures attitude but not every aerodynamic state; a chemical reactor measures temperature but not concentration. Instrumenting every state is expensive, sometimes impossible, and always one more thing to fail.

The way out was found by Luenberger in 1964, and it is beautifully direct: build a simulation of the plant inside the controller, run it in parallel with the real machine, and correct it whenever its predicted output disagrees with the measured one. Call the simulated state \(\hat{\mathbf{x}}\). A naive copy would be \(\dot{\hat{\mathbf{x}}}=\mathbf{A}\hat{\mathbf{x}}+\mathbf{B}u\), which drifts away from the truth for ever if the initial condition is wrong. Adding the correction term gives the full-order observer:

🔑
Full-order (Luenberger) observer
\[ \dot{\hat{\mathbf{x}}} = \mathbf{A}\hat{\mathbf{x}} + \mathbf{B}u + \mathbf{L}\left(y - \mathbf{C}\hat{\mathbf{x}}\right) \]

The bracket is the output estimation error — the only discrepancy we can actually see. The \(n\times 1\) column \(\mathbf{L}\) is the observer gain matrix, and it decides how hard the estimate is pulled toward agreement with the measurement.

To see whether the estimate converges, define the estimation error \(\mathbf{e}=\mathbf{x}-\hat{\mathbf{x}}\) and subtract the observer equation from the plant equation. The input \(u\) is fed to both, so it cancels — the estimator does not need to know what the controller is doing, only what it did:

Error dynamics
\[ \begin{aligned} \dot{\mathbf{e}} &= \left(\mathbf{A}\mathbf{x}+\mathbf{B}u\right) - \left(\mathbf{A}\hat{\mathbf{x}}+\mathbf{B}u+\mathbf{L}\mathbf{C}\mathbf{x}-\mathbf{L}\mathbf{C}\hat{\mathbf{x}}\right)\\ &= \mathbf{A}(\mathbf{x}-\hat{\mathbf{x}}) - \mathbf{L}\mathbf{C}(\mathbf{x}-\hat{\mathbf{x}}) = \left(\mathbf{A}-\mathbf{L}\mathbf{C}\right)\mathbf{e} \end{aligned} \]

The estimation error obeys a homogeneous linear equation of its own. If every eigenvalue of \(\mathbf{A}-\mathbf{LC}\) lies in the left half-plane, then \(\mathbf{e}(t)\to\mathbf{0}\) from any starting mismatch, and how fast is entirely up to us — a design problem identical in form to the one we just solved for \(\mathbf{A}-\mathbf{BK}\).

That identity is not a coincidence but the duality of Chapter 25. Because a matrix and its transpose share eigenvalues, \(\det(s\mathbf{I}-\mathbf{A}+\mathbf{LC}) = \det(s\mathbf{I}-\mathbf{A}^T+\mathbf{C}^T\mathbf{L}^T)\). The right-hand side is a state feedback problem for the pair \((\mathbf{A}^T,\mathbf{C}^T)\) with gain \(\mathbf{L}^T\), and it is solvable for arbitrary poles exactly when \((\mathbf{A}^T,\mathbf{C}^T)\) is controllable — which is precisely the statement that \((\mathbf{A},\mathbf{C})\) is observable.

Regulator problemDual observer problem
Closed-loop matrix \(\mathbf{A}-\mathbf{BK}\)Error matrix \(\mathbf{A}-\mathbf{LC}\)
Requires \((\mathbf{A},\mathbf{B})\) controllableRequires \((\mathbf{A},\mathbf{C})\) observable
\(\mathbf{M}_c = \begin{bmatrix}\mathbf{B}&\mathbf{AB}&\cdots\end{bmatrix}\)\(\mathbf{M}_o = \begin{bmatrix}\mathbf{C}\\ \mathbf{CA}\\ \vdots\end{bmatrix}\)
Unknown is a row \(\mathbf{K}\) (\(1\times n\))Unknown is a column \(\mathbf{L}\) (\(n\times 1\))
\(\mathbf{K}=\begin{bmatrix}0&\cdots&1\end{bmatrix}\mathbf{M}_c^{-1}\phi_c(\mathbf{A})\)\(\mathbf{L}=\phi_o(\mathbf{A})\,\mathbf{M}_o^{-1}\begin{bmatrix}0\\\vdots\\1\end{bmatrix}\)

Every technique of Sections 26-3 to 26-5 therefore transfers verbatim: coefficient matching, canonical forms, and the dual Ackermann formula in the last row of the table.

Choosing the observer poles follows one clear rule and one quiet caution. The rule: the estimate must converge much faster than the controlled dynamics, or the controller will spend the transient acting on stale information — so place the observer poles two to six times further left than the dominant closed-loop poles. The caution: a fast observer means a large \(\mathbf{L}\), and \(\mathbf{L}\) multiplies the measurement, so it multiplies the measurement noise as well. The observer is a filter, and its bandwidth is a compromise between trusting the model and trusting the sensor. The optimal compromise, given the statistics of the noise, is the Kalman filter of Chapter 30 — structurally identical to this observer, with \(\mathbf{L}\) computed rather than chosen.

u Real plant ẋ = Ax + Bu, y = Cx y measured + + + Model copy x̂̇ = Ax̂ + (·), ŷ = Cx̂ x̂ (estimate out) ŷ y − ŷ L correction L(y − ŷ)
The observer runs a model of the plant and corrects it with the output disagreement
Section 26-9

The Separation Principle

Two designs are now in hand: a gain \(\mathbf{K}\) that would work if we knew \(\mathbf{x}\), and an observer that produces \(\hat{\mathbf{x}}\). The obvious step is to combine them and feed back the estimate,

Observer-based state feedback
\[ u = -\mathbf{K}\hat{\mathbf{x}} \]

but the step is not obviously safe. The controller is now acting on an estimate that is itself wrong during the transient, and the plant's response feeds back into the very measurement the observer uses. Do the two designs interfere? The answer, remarkably, is no.

Write the closed loop in the coordinates \((\mathbf{x},\mathbf{e})\) with \(\mathbf{e}=\mathbf{x}-\hat{\mathbf{x}}\), so that \(\hat{\mathbf{x}} = \mathbf{x}-\mathbf{e}\). The plant equation becomes \(\dot{\mathbf{x}} = \mathbf{Ax}-\mathbf{BK}(\mathbf{x}-\mathbf{e}) = (\mathbf{A}-\mathbf{BK})\mathbf{x}+\mathbf{BKe}\), and the error equation we already derived is untouched by \(u\):

🔑
The separation principle
\[ \frac{d}{dt}\begin{bmatrix}\mathbf{x}\\ \mathbf{e}\end{bmatrix} = \begin{bmatrix}\mathbf{A}-\mathbf{BK} & \mathbf{BK}\\ \mathbf{0} & \mathbf{A}-\mathbf{LC}\end{bmatrix}\begin{bmatrix}\mathbf{x}\\ \mathbf{e}\end{bmatrix} \]

The system matrix is block upper triangular, so its \(2n\) eigenvalues are exactly the \(n\) eigenvalues of \(\mathbf{A}-\mathbf{BK}\) together with the \(n\) eigenvalues of \(\mathbf{A}-\mathbf{LC}\). The regulator and the observer may therefore be designed independently, and neither disturbs the other's pole locations.

The zero block in the lower left is the whole content of the theorem: the estimation error drives the state, but the state does not drive the estimation error. That is why the observer could be designed in Section 26-8 without any knowledge of \(\mathbf{K}\).

Two cautions belong with the result. First, separation guarantees the pole locations, not the transient shape — the term \(\mathbf{BKe}\) does inject the estimation transient into the state response, which is exactly why the observer is made faster than the regulator. Second, separation is a statement about the nominal model; the stability margins of the combined loop can be much poorer than those of the ideal full-state design, a phenomenon known as loss of the guaranteed margins of state feedback, and one of the reasons robust design in Chapter 30 exists.

Finally, it is worth seeing what the finished controller is, in the language of Parts 3 to 5. Substituting \(u=-\mathbf{K}\hat{\mathbf{x}}\) and \(y=\mathbf{Cx}\) into the observer gives a self-contained dynamic system driven by the measurement alone:

The controller as a compensator
\[ \dot{\hat{\mathbf{x}}} = \left(\mathbf{A}-\mathbf{BK}-\mathbf{LC}\right)\hat{\mathbf{x}} + \mathbf{L}y, \qquad u = -\mathbf{K}\hat{\mathbf{x}} \;\;\Longrightarrow\;\; \frac{U(s)}{-Y(s)} = G_c(s) = \mathbf{K}\left(s\mathbf{I}-\mathbf{A}+\mathbf{BK}+\mathbf{LC}\right)^{-1}\mathbf{L} \]

This is an \(n\)th-order transfer function in the forward path of an ordinary unity-feedback loop — a cascade compensator of exactly the kind Chapter 21 built from resistors and capacitors, except that here it was derived from a specification rather than tuned into place. Example 6 computes one, and confirms that closing the loop with it reproduces the \(2n\) poles the separation principle promises.

Two languages, one controller. Classical design shapes \(G_c(s)\) directly and reads the pole locations off a root locus. State-space design specifies the pole locations and computes \(G_c(s)\). The compensator that comes out is a genuine lead- or lag-like network, and its Bode plot can be examined for gain and phase margin using Chapter 17 without any change of method. The two halves of the course describe the same object from opposite ends.

One refinement is worth knowing. If \(y\) already measures one state directly, estimating that state again is wasted effort. The reduced-order (minimal) observer estimates only the \(n-m\) unmeasured combinations, giving a controller of order \(n-m\) instead of \(n\). It is cheaper and faster, but it feeds the measurement straight through to the estimate, so sensor noise reaches the control signal unfiltered — full-order observers are often preferred in noisy hardware for exactly that reason.

Section 26-10

Worked Examples

1 Placement by coefficient matching

Problem. A plant has \(\mathbf{A}=\begin{bmatrix}0&1\\0&-2\end{bmatrix}\), \(\mathbf{B}=\begin{bmatrix}0\\1\end{bmatrix}\), \(\mathbf{C}=\begin{bmatrix}1&0\end{bmatrix}\). Design \(\mathbf{K}\) to place the closed-loop poles at \(-2\pm j2\).

Solution. First confirm controllability: \(\mathbf{M}_c=\begin{bmatrix}\mathbf{B}&\mathbf{AB}\end{bmatrix}=\begin{bmatrix}0&1\\1&-2\end{bmatrix}\), whose determinant is \(-1\neq 0\), so the pair is controllable and any pole set is reachable. The desired polynomial is \(\phi(s)=(s+2-j2)(s+2+j2)=s^2+4s+8\). Now expand the closed-loop determinant with \(\mathbf{K}=\begin{bmatrix}k_1&k_2\end{bmatrix}\):

Working
\[ \det(s\mathbf{I}-\mathbf{A}+\mathbf{BK}) = \begin{vmatrix} s & -1\\ k_1 & s+2+k_2 \end{vmatrix} = s^2+(2+k_2)s+k_1 \;\equiv\; s^2+4s+8 \]

Matching the constant term gives \(k_1=8\); matching the \(s\)-coefficient gives \(2+k_2=4\), so \(k_2=2\). Hence \(\mathbf{K}=\begin{bmatrix}8&2\end{bmatrix}\), and the control law is \(u=-8x_1-2x_2\). The closed-loop matrix is \(\begin{bmatrix}0&1\\-8&-4\end{bmatrix}\), giving \(\omega_n=\sqrt{8}=2.83\) rad/s and \(\zeta=4/(2\sqrt{8})=0.707\) — a well-damped response, as intended.

2 The same design by Ackermann's formula

Problem. For \(\mathbf{A}=\begin{bmatrix}0&1\\-2&-3\end{bmatrix}\), \(\mathbf{B}=\begin{bmatrix}0\\1\end{bmatrix}\), place the poles at \(-5\pm j5\) using Ackermann's formula, and verify by coefficient matching.

Solution. The desired polynomial is \(\phi(s)=s^2+10s+50\). Build the controllability matrix and invert it:

Step 1 — the controllability matrix
\[ \mathbf{M}_c=\begin{bmatrix}\mathbf{B}&\mathbf{AB}\end{bmatrix}=\begin{bmatrix}0&1\\1&-3\end{bmatrix}, \quad \det\mathbf{M}_c=-1, \quad \mathbf{M}_c^{-1}=\frac{1}{-1}\begin{bmatrix}-3&-1\\-1&0\end{bmatrix}=\begin{bmatrix}3&1\\1&0\end{bmatrix} \]

Next evaluate \(\phi(\mathbf{A})=\mathbf{A}^2+10\mathbf{A}+50\mathbf{I}\). Squaring first, \(\mathbf{A}^2=\begin{bmatrix}0&1\\-2&-3\end{bmatrix}\begin{bmatrix}0&1\\-2&-3\end{bmatrix}=\begin{bmatrix}-2&-3\\6&7\end{bmatrix}\).

Step 2 — the desired polynomial at \(\mathbf{A}\)
\[ \phi(\mathbf{A})=\begin{bmatrix}-2&-3\\6&7\end{bmatrix}+\begin{bmatrix}0&10\\-20&-30\end{bmatrix}+\begin{bmatrix}50&0\\0&50\end{bmatrix}=\begin{bmatrix}48&7\\-14&27\end{bmatrix} \]
Step 3 — assemble
\[ \mathbf{K}=\begin{bmatrix}0&1\end{bmatrix}\begin{bmatrix}3&1\\1&0\end{bmatrix}\begin{bmatrix}48&7\\-14&27\end{bmatrix} = \begin{bmatrix}1&0\end{bmatrix}\begin{bmatrix}48&7\\-14&27\end{bmatrix} = \begin{bmatrix}48&7\end{bmatrix} \]

Check by matching: \(\mathbf{A}-\mathbf{BK}=\begin{bmatrix}0&1\\-2-k_1&-3-k_2\end{bmatrix}\) has characteristic polynomial \(s^2+(3+k_2)s+(2+k_1)\). Setting \(3+k_2=10\) and \(2+k_1=50\) gives \(k_2=7\) and \(k_1=48\) — the same answer.

3 Third order via the canonical form

Problem. A plant with transfer function \(G(s)=\dfrac{1}{s(s+1)(s+3)}\) is realised in controllable canonical form. Place the closed-loop poles at \(-2\pm j2\) and \(-10\).

Solution. Expand the denominator: \(s(s+1)(s+3)=s^3+4s^2+3s\), so \(a_2=4\), \(a_1=3\), \(a_0=0\) and the canonical realisation is

Plant in canonical form
\[ \mathbf{A}=\begin{bmatrix}0&1&0\\0&0&1\\0&-3&-4\end{bmatrix}, \qquad \mathbf{B}=\begin{bmatrix}0\\0\\1\end{bmatrix} \]

The desired polynomial is \(\phi(s)=(s^2+4s+8)(s+10)=s^3+14s^2+48s+80\), so \(\alpha_2=14\), \(\alpha_1=48\), \(\alpha_0=80\). Because the plant is already canonical, the gain is the coefficient difference:

Working
\[ \mathbf{K}=\begin{bmatrix}\alpha_0-a_0 & \alpha_1-a_1 & \alpha_2-a_2\end{bmatrix} = \begin{bmatrix}80-0 & 48-3 & 14-4\end{bmatrix} = \begin{bmatrix}80&45&10\end{bmatrix} \]

Verifying, \(\mathbf{A}-\mathbf{BK}\) has bottom row \(\begin{bmatrix}-80&-48&-14\end{bmatrix}\), whose characteristic polynomial is \(s^3+14s^2+48s+80\) as required. The dominant pair sets \(\zeta=0.707\) and \(\omega_n=2.83\) rad/s; the third pole at \(-10\) is 5 times further left and contributes little.

4 Reference scaling, and why it is not enough

Problem. Using the plant and gain of Example 1, find the feedforward constant \(\bar{N}\) that makes the step response settle at \(y=r\). Comment on what happens if the plant gain is 10 % low.

Solution. With \(u=-\mathbf{Kx}+\bar{N}r\) the closed-loop transfer function is \(\bar{N}\,\mathbf{C}(s\mathbf{I}-\mathbf{A}+\mathbf{BK})^{-1}\mathbf{B}\). From Example 1 the closed-loop matrix is \(\begin{bmatrix}0&1\\-8&-4\end{bmatrix}\), so

Working
\[ \mathbf{C}(\mathbf{A}-\mathbf{BK})^{-1}\mathbf{B} = \begin{bmatrix}1&0\end{bmatrix}\frac{1}{8}\begin{bmatrix}-4&-1\\8&0\end{bmatrix}\begin{bmatrix}0\\1\end{bmatrix} = \begin{bmatrix}1&0\end{bmatrix}\begin{bmatrix}-1/8\\0\end{bmatrix} = -\frac{1}{8} \]

Hence \(\bar{N}=-1/(-1/8)=8\). The same number follows from the transfer function: \(Y(s)/R(s)=\bar{N}/(s^2+4s+8)\), whose DC value is \(\bar{N}/8\), so \(\bar{N}=8\) gives unity.

If the true plant has an input gain 10 % below the model, the closed-loop DC gain becomes \(0.9\times\) the design value and the output settles at \(0.9r\) — a permanent 10 % error that the feedback never removes, because \(\bar{N}\) is pure feedforward. Adding the integral state of Section 26-7 makes the loop type 1 and drives that error to zero regardless of the gain mismatch.

5 Designing the observer gain

Problem. Only \(y=x_1\) is measured on the plant of Example 1. Design a full-order observer with both error poles at \(s=-20\).

Solution. Check observability first: \(\mathbf{M}_o=\begin{bmatrix}\mathbf{C}\\ \mathbf{CA}\end{bmatrix}=\begin{bmatrix}1&0\\0&1\end{bmatrix}\), which is nonsingular, so any error poles are attainable. Write \(\mathbf{L}=\begin{bmatrix}\ell_1\\ \ell_2\end{bmatrix}\); then \(\mathbf{LC}=\begin{bmatrix}\ell_1&0\\ \ell_2&0\end{bmatrix}\) and

Working
\[ \det\!\left(s\mathbf{I}-\mathbf{A}+\mathbf{LC}\right)=\begin{vmatrix} s+\ell_1 & -1\\ \ell_2 & s+2 \end{vmatrix} = s^2+(2+\ell_1)s+(2\ell_1+\ell_2) \]

The desired error polynomial is \((s+20)^2=s^2+40s+400\). Matching the \(s\)-coefficient gives \(2+\ell_1=40\), so \(\ell_1=38\); matching the constant gives \(2(38)+\ell_2=400\), so \(\ell_2=324\). Hence \(\mathbf{L}=\begin{bmatrix}38\\324\end{bmatrix}\).

The error poles at \(-20\) are about seven times further left than the regulator poles at \(-2\pm j2\), so the estimate converges in roughly \(4/20=0.2\) s while the controlled response takes about \(4/2=2\) s — comfortably separated. The price is the large second gain, 324, which multiplies any noise on \(y\) by that factor when reconstructing \(x_2\).

6 The observer-based compensator and its poles

Problem. Combine the gain of Example 1 with the observer of Example 5. Find the compensator transfer function \(G_c(s)=\mathbf{K}(s\mathbf{I}-\mathbf{A}+\mathbf{BK}+\mathbf{LC})^{-1}\mathbf{L}\), and verify that the closed-loop poles are those the separation principle predicts.

Solution. Assemble the compensator matrix. With \(\mathbf{A}-\mathbf{BK}=\begin{bmatrix}0&1\\-8&-4\end{bmatrix}\) and \(\mathbf{LC}=\begin{bmatrix}38&0\\324&0\end{bmatrix}\),

Step 1 — the compensator state matrix
\[ \mathbf{A}-\mathbf{BK}-\mathbf{LC}=\begin{bmatrix}-38&1\\-332&-4\end{bmatrix}, \qquad \det\!\left(s\mathbf{I}-\mathbf{A}+\mathbf{BK}+\mathbf{LC}\right)=(s+38)(s+4)+332=s^2+42s+484 \]

The inverse is the adjugate divided by that determinant, so carry the adjugate through first and divide at the end:

Step 2 — adjugate times \(\mathbf{L}\), then times \(\mathbf{K}\)
\[ \begin{bmatrix}s+4&1\\-332&s+38\end{bmatrix}\begin{bmatrix}38\\324\end{bmatrix} = \begin{bmatrix}38s+476\\ 324s-304\end{bmatrix}, \qquad \begin{bmatrix}8&2\end{bmatrix}\begin{bmatrix}38s+476\\ 324s-304\end{bmatrix} = 952s+3200 \]
Step 3 — the compensator
\[ G_c(s)=\frac{952s+3200}{s^2+42s+484} \]

This is a second-order network with a zero at \(s=-3.36\) and complex poles at \(-21\pm j6.56\) — a lead-like compensator of exactly the sort Chapter 21 designs by hand. The plant is \(G(s)=\mathbf{C}(s\mathbf{I}-\mathbf{A})^{-1}\mathbf{B}=1/[s(s+2)]\), so the closed-loop characteristic equation of the unity-feedback loop is

Step 4 — closing the loop
\[ s(s+2)\left(s^2+42s+484\right)+952s+3200 = s^4+44s^3+568s^2+1920s+3200 \]

and the separation principle predicts \(\left(s^2+4s+8\right)\left(s^2+40s+400\right)\), which expands to \(s^4+44s^3+568s^2+1920s+3200\). The two agree exactly: the four closed-loop poles are \(-2\pm j2\) from the regulator design and a double pole at \(-20\) from the observer design, each placed without regard to the other.

Review

Chapter Summary

The law

\(u=-\mathbf{Kx}\) gives \(\dot{\mathbf{x}}=(\mathbf{A}-\mathbf{BK})\mathbf{x}\); the poles are the eigenvalues of \(\mathbf{A}-\mathbf{BK}\).

When it works

Arbitrary placement is possible if and only if \((\mathbf{A},\mathbf{B})\) is completely controllable.

Canonical shortcut

In controllable canonical form \(\bar{k}_i=\alpha_{i-1}-a_{i-1}\) — the coefficient difference, nothing more.

Ackermann

\(\mathbf{K}=\begin{bmatrix}0&\cdots&1\end{bmatrix}\mathbf{M}_c^{-1}\phi(\mathbf{A})\), justified by Cayley–Hamilton.

Zeros survive

Feedback moves poles only; \(\bar{N}\) fixes the DC gain, integral action fixes it robustly.

The observer

\(\dot{\hat{\mathbf{x}}}=\mathbf{A}\hat{\mathbf{x}}+\mathbf{B}u+\mathbf{L}(y-\mathbf{C}\hat{\mathbf{x}})\) gives error dynamics \(\mathbf{A}-\mathbf{LC}\).

Duality

Observer design is regulator design for \((\mathbf{A}^T,\mathbf{C}^T)\); observability is the condition.

Separation

The \(2n\) closed-loop poles split cleanly into those of \(\mathbf{A}-\mathbf{BK}\) and \(\mathbf{A}-\mathbf{LC}\).

Practice

Problems

Test controllability or observability before designing anything; a rank deficiency changes the question rather than the arithmetic. Difficulty rises down the list.

  1. For \(\mathbf{A}=\begin{bmatrix}0&1\\0&-3\end{bmatrix}\), \(\mathbf{B}=\begin{bmatrix}0\\1\end{bmatrix}\), find \(\mathbf{K}\) placing the closed-loop poles at \(-3\pm j3\).
  2. Show that \(\mathbf{A}=\begin{bmatrix}1&1\\0&2\end{bmatrix}\), \(\mathbf{B}=\begin{bmatrix}1\\0\end{bmatrix}\) is not completely controllable, identify the eigenvalue that state feedback cannot move, and say whether the system is stabilisable.
  3. A plant has \(G(s)=1/[s^2(s+4)]\). Write its controllable canonical realisation and find \(\mathbf{K}\) placing the poles at \(-4\pm j4\) and \(-20\).
  4. For the closed loop of Problem 1, compute the feedforward gain \(\bar{N}\) that makes the unit-step response settle at unity, taking \(\mathbf{C}=\begin{bmatrix}1&0\end{bmatrix}\).
  5. With \(\mathbf{A}=\begin{bmatrix}0&1\\-6&-5\end{bmatrix}\) and \(\mathbf{C}=\begin{bmatrix}1&0\end{bmatrix}\), design an observer gain \(\mathbf{L}\) placing both error poles at \(s=-15\).
  6. Combine the gain of Problem 1 with an observer whose error poles are at \(-12\) and \(-15\), and write down the fourth-order closed-loop characteristic polynomial without ever forming the \(4\times4\) system matrix.
  7. For the plant of Problem 1, augment the state with the integral of the tracking error and find the three gains that place the augmented poles at \(-3\pm j3\) and \(-9\). Explain what this design achieves that Problem 4 does not.
  8. A colleague proposes placing all the poles of a third-order plant at \(s=-500\) because "faster is better". Give three concrete reasons the machine will not behave as the design predicts.
Tip: for any hand-worked pole-placement problem, expand \(\det(s\mathbf{I}-\mathbf{A}+\mathbf{BK})\) symbolically before reaching for Ackermann. Up to third order the determinant is quicker than inverting \(\mathbf{M}_c\), it shows immediately whether a coefficient is independent of \(\mathbf{K}\) — the signature of an uncontrollable mode — and it gives an independent check on the formula's answer. Reserve Ackermann for when the plant is not in a convenient form, and remember that the observer version simply swaps \(\mathbf{A}\to\mathbf{A}^T\) and \(\mathbf{B}\to\mathbf{C}^T\).