State Feedback & Pole Placement

Full-state feedback changes the state matrix from A to A-BK, allowing controllable modes to be assigned. Pole placement makes that algebra explicit, but pole choice must also respect actuator limits, uncertainty, noise, neglected dynamics, reference tracking, and numerical conditioning.

State feedback uses the current internal state, not only the scalar tracking error, to shape dynamics. It can move controllable closed-loop modes directly, which makes the relationship between model structure and transient behavior unusually transparent. The same transparency exposes the limits: unavailable state, weak actuation, uncertainty, and saturation do not disappear when the pole equation has a solution.

Feedback changes the state matrix #

For

x˙=Ax+Bu,\dot x=Ax+Bu,

choose

u=−Kx+Nr.u=-Kx+Nr.

Then

x˙=(A−BK)x+BNr.\dot x=(A-BK)x+BNr.

The regulator dynamics are governed by A−BKA-BK. If (A,B)(A,B) is controllable, its nn eigenvalues can be assigned to any self-conjugate set using real KK. If the pair is only stabilizable, the controllable modes may be assigned while the uncontrollable modes remain fixed and must already be stable.

Full-state feedback with a reference prefilter Reference passes through prefilter N into a summing junction. The plant receives control u and emits state x and output y. State passes through gain K and returns negatively to the summing junction. r prefilter N Σ u plant ẋ = Ax + Bu y = Cx + Du y output gain K full state x − x K sets regulator dynamics A − BK; N sets nominal reference scaling and does not reject model error
The gain K feeds the state vector back to the plant input. A reference prefilter N changes steady-state command scaling but does not change the regulator poles; integral augmentation adds dynamics and is a different mechanism.

Worked double-integrator placement #

For position qq and velocity vv,

A=[0100],B=[01],K=[k1k2].A=\begin{bmatrix}0&1\\0&0\end{bmatrix},\qquad B=\begin{bmatrix}0\\1\end{bmatrix},\qquad K=\begin{bmatrix}k_1&k_2\end{bmatrix}.

The closed-loop matrix and characteristic polynomial are

A−BK=[01−k1−k2],A-BK=\begin{bmatrix}0&1\\-k_1&-k_2\end{bmatrix},

det⁡(sI−(A−BK))=s2+k2s+k1.\det(sI-(A-BK))=s^2+k_2s+k_1.

Desired poles at −2-2 and −3-3 give

(s+2)(s+3)=s2+5s+6,(s+2)(s+3)=s^2+5s+6,

so K=[6    5]K=[6\;\;5] and u=−6q−5vu=-6q-5v. This coefficient match is exact for the nominal model. Whether the acceleration limit can deliver the demanded uu from the permitted initial conditions is a separate feasibility question.

Pole location encodes a transient, not a complete specification #

A continuous complex pair

s=−ζωn±jωn1−ζ2s=-\zeta\omega_n\pm j\omega_n\sqrt{1-\zeta^2}

connects damping ratio ζ\zeta and natural frequency ωn\omega_n to a second-order approximation. Extra real poles are often placed faster so the pair dominates, but “five times faster” is only a heuristic. A fast pole may require high gain, amplify sensor noise through the eventual observer/controller, or excite a neglected actuator or structural mode.

Pole selection must reconcile:

  • settling, overshoot, and damping requirements;
  • peak and sustained control effort;
  • actuator magnitude, rate, and bandwidth;
  • sensor noise and state-estimation bandwidth;
  • time delay and sampling;
  • uncertain and omitted dynamics;
  • eigenvector geometry, not only eigenvalues.

For MIMO systems, a chosen pole set generally admits many gains KK. Those gains can have very different eigenvectors, control allocation, sensitivity, and robustness. Eigenvalue placement alone does not choose among them.

Ackermann's formula explains existence but is not the default algorithm #

For a controllable SISO pair with controllability matrix C\mathcal C, desired monic polynomial pd(s)p_d(s), and enT=[0  ⋯  0  1]e_n^T=[0\;\cdots\;0\;1],

K=enTC−1pd(A)K=e_n^T\mathcal C^{-1}p_d(A)

under the matching companion-form convention. This is Ackermann's formula. It demonstrates that feedback can replace the characteristic polynomial when the controllability matrix is invertible.

Explicitly forming C−1\mathcal C^{-1} and high powers of AA is numerically fragile. Use a robust pole-assignment implementation based on orthogonal transformations, and verify the achieved eigenvalues, gain magnitude, and sensitivity rather than treating a returned KK as proof.

Regulation is not reference tracking #

The law u=−Kxu=-Kx drives state toward the origin. Adding a reference directly as though it were a state generally gives the wrong steady-state gain. For a stable SISO closed loop with D=0D=0, a constant prefilter can be chosen as

N=−[C(A−BK)−1B]−1N=-\left[C(A-BK)^{-1}B\right]^{-1}

when the inverse exists, yielding unit nominal DC gain from rr to yy. This is feedforward calibration: plant mismatch or a constant disturbance reintroduces error.

Robust zero error for a declared class of persistent references or disturbances requires an internal model, often an added integral state; see Tracking, Disturbance Rejection & the Internal Model Principle.

Discrete-time placement #

For

xk+1=Adxk+Bduk,x_{k+1}=A_dx_k+B_du_k,

state feedback gives Ad−BdKA_d-B_dK. Closed-loop poles must lie strictly inside the unit circle. A continuous pole sis_i maps under exact sampling to

zi=esiTs.z_i=e^{s_iT_s}.

Designing directly from a sampled model accounts for the zero-order hold, but not for unmodeled computation delay or jitter. Very fast desired continuous poles can collapse near the origin in the zz-plane and demand control action the sampled actuator cannot supply.

Verification closes the gap from algebra to control #

After computing KK:

  1. confirm controllability or stabilizability with scaled numerical tests;
  2. compute achieved poles and eigenvalue condition numbers;
  3. simulate the full nonlinear model with saturation and rate limits;
  4. inspect state peaks, input peaks, and recovery from representative initial conditions and disturbances;
  5. perturb model parameters and include delays and neglected modes;
  6. repeat with the actual observer, sampler, hold, and implementation timing;
  7. verify startup and state initialization on hardware.

Pole placement is a synthesis primitive. A working controller is the resulting closed-loop mechanism under physical constraints and uncertainty.

Sources

  1. docsMathWorks: Pole Placement

Searches titles, aliases, headings, summaries, and full text.↑↓ move ↵ open esc close