State-Space Methods — Engineering Reference
1. At a glance
State-space is the dominant representation of dynamical systems in modern control theory — the framework that displaced single-input/single-output transfer functions for serious multivariable, optimal, and estimation work after Kalman’s 1960–1961 papers. A continuous-time linear time-invariant (LTI) plant is written:
where is the state vector (the minimum-information summary of the system’s internal condition), is the input, is the output, and are the four real matrices that define the system. Discrete-time analogue: , .
The shift in viewpoint matters. A transfer function captures only what enters and exits the plant; the state-space description captures everything happening inside it. That distinction is what makes state-space the natural format for:
- MIMO systems — and are vectors with no extra machinery.
- Time-varying systems — change in time.
- Nonlinear systems linearised about an operating point — the same equations with being the local Jacobians.
- Optimal control (LQR, LQG, H₂, H∞, MPC) — formulations express directly in .
- State estimation (Luenberger observer, Kalman filter) — observers are themselves state-space systems running in parallel.
- Digital implementation — embedded firmware computes from a stored gain matrix and an observer state .
Where it sits in the design stack: classical control (root locus, Bode, Nyquist, lead-lag — see classical-control) handles SISO plants where transfer-function intuition is sufficient; state-space is the layer that takes over for multi-actuator, multi-sensor, optimal, robust, and digital control. A practising controls engineer in 2026 builds the plant model in scientific or python-control, lifts it into state-space, designs LQR + Kalman in a few lines, and codegen’s the result to an STM32 / TI C2000 / dSPACE target.
2. Why it matters
Classical loop-shaping is sufficient for a single actuator driving a single output — a temperature controller, a DC-motor speed loop, a buck converter. It runs into three walls fast:
- Cross-coupling. Two actuators each affect two outputs (a distillation column, a multi-axis manipulator, a quadrotor). SISO loops fight each other; you need a controller that knows the full matrix.
- Optimality. Pole placement requires the designer to pick closed-loop poles; LQR computes them from a cost function and gives back guaranteed gain/phase margins for free (Anderson & Moore 1971).
- Estimation. Sensors are noisy and partial. Reconstructing unmeasured states (velocity from position, internal temperatures from surface measurements, angle from rate gyro + accelerometer) requires an observer — naturally a state-space construction.
State-space also opens the door to nonlinear control (feedback linearisation, sliding mode, backstepping), predictive control (mpc-control planned), and adaptive / learning control — all built on the same skeleton.
3. First principles
3.1 State definition
A state is a vector such that knowledge of plus the input for uniquely determines and . Equivalently: the state is the minimum information you need to predict the future given the future inputs. For an RLC circuit, the states are typically capacitor voltages and inductor currents (one state per independent energy storage); for a rigid body, position and velocity; for a chemical reactor, concentrations and temperatures.
The state vector is not unique — any similarity transformation with non-singular produces an equivalent realisation with identical input-output behaviour. Choice of state coordinates is a design freedom.
3.2 The state trajectory
For LTI continuous-time systems the full solution is:
The first term is the zero-input response (free decay from initial conditions); the second is the zero-state response (driven response to inputs, with ). Linearity guarantees these superpose.
The discrete-time analogue:
3.3 The matrix exponential
is computed three ways depending on context:
- Eigen-decomposition (when has distinct eigenvalues): with . Fast and physically interpretable — each eigenvalue defines a mode.
- Jordan form for repeated eigenvalues — produces and higher polynomial-times-exponential terms.
- Padé approximation with scaling and squaring — the numerical workhorse, used by MATLAB
expm(), SciPyscipy.linalg.expm(), SLICOTMB05ND. Eigen-decomposition is fragile when eigenvalues cluster; Padé is the production default (Higham 2008, Functions of Matrices).
The state transition matrix for LTI; for LTV it satisfies , . Key properties: (semigroup), .
3.4 LTI vs LTV vs nonlinear
- LTI — constant. Frequency-domain tools apply; eigenvalues = poles of transfer function.
- LTV — matrices depend on time but linearly in state. The matrix exponential no longer applies; you propagate numerically.
- Nonlinear — linearise about an operating point satisfying :
with , evaluated at the equilibrium. This is the bridge that makes state-space tools applicable to robots, aircraft, power systems, and reactors. The linearisation is valid in a neighbourhood; control engineers use gain scheduling, MPC, or nonlinear methods when the operating envelope is wide.
3.5 Equivalent realisations
Two realisations and are algebraically equivalent if , , . They have identical transfer functions, identical eigenvalues, identical input-output behaviour — but different state interpretations and different numerical conditioning. Balanced realisations (Moore 1981) are preferred for model reduction and numerical robustness.
4. Canonical forms
A canonical form is a particular choice of state coordinates that exposes structural properties. Four are standard.
| Form | Structure | Designed for |
|---|---|---|
| Controllable canonical (CCF) | companion, last row holds char-poly coefficients; | Pole placement (Ackermann) |
| Observable canonical (OCF) | Dual of CCF; is CCF | Observer pole placement |
| Modal (Jordan / diagonal) | when eigenvalues distinct | Stability proof, decoupling, modal truncation |
| Phase-variable | Single chain of integrators; , , … | Mechanical systems written by inspection |
Controllable canonical form
For a transfer function :
The pay-off is Ackermann’s formula for pole placement — it reads off the gain in one line.
Modal form
If has distinct real eigenvalues , decompose . With state :
The scalar equations are decoupled — each mode evolves independently. Used for stability proof (system stable iff all ), modal truncation in large systems, and physical interpretation.
Complex-conjugate eigenvalues give a real-modal block-diagonal form with rotation-scaling blocks; for the block is .
5p. Controllability
Definition. is controllable if for any and any target there exists an input on a finite interval driving to .
Kalman rank test (Kalman 1960)
is controllable iff the controllability matrix
has rank . Computed in MATLAB by ctrb(A, B), in Python by control.ctrb(A, B).
PBH (Popov-Belevitch-Hautus) test
is controllable iff for every eigenvalue of . Equivalent to Kalman but mode-by-mode — tells you which eigenvalues are uncontrollable, which is what you need to fix the design.
Stabilizability
is stabilizable if all unstable modes are controllable; stable modes may be uncontrollable without harm. Strictly weaker than controllability, sufficient for most practical control design — you only need authority over the modes that would otherwise blow up.
Why controllability fails in practice
- Symmetric actuation. Two actuators with identical effect on two states cannot independently command them — controllability matrix loses rank.
- Gyroscopic coupling. A spinning rotor’s pitch and yaw couple; commanding pitch alone may be impossible at certain spin rates.
- Aliased dynamics. Sample-rate too low — the discrete-time can lose controllability at specific sample periods where a mode aliases to a pole at (Kalman 1961).
- Near-singular controllability matrix. Numerically controllable but ill-conditioned — small noise or model error destroys authority. Always check , not just .
6p. Observability (dual to controllability)
Definition. is observable if knowledge of and on a finite interval uniquely determines .
Kalman rank test
is observable iff the observability matrix
has rank . MATLAB obsv(A, C), Python control.obsv(A, C).
PBH test (dual)
observable iff for every eigenvalue.
Detectability
All unstable modes observable. Sufficient for stable estimator design. A mode that is stable but unobservable is harmless because it dies out on its own — but unstable + unobservable means the observer cannot catch it before it diverges.
Engineering meaning
Observability is the question “can the chosen sensor set reconstruct everything I need?” An accelerometer alone cannot observe absolute position (double integration loses two states’ initial conditions); a single encoder on a flexible link cannot observe the tip mode separately from the base mode. Sensor placement is an observability-design problem; redundancy analysis is checking that loss of one sensor preserves observability.
The duality principle (Kalman 1960): controllable iff observable; every controllability result has an observability mirror.
7p. State-feedback control
Choose (full-state feedback, ). Closed-loop dynamics:
The closed-loop eigenvalues are those of . With controllable, the closed-loop poles can be placed arbitrarily — any self-conjugate set of complex numbers is achievable by some (Wonham 1967).
Ackermann’s formula
For SISO (), let be the desired closed-loop characteristic polynomial. Then:
(Ackermann 1972). MATLAB acker(A, B, poles); Python control.acker(A, B, poles). Numerically unsafe for or so — uses the inverse of .
Place algorithm (Kautsky-Nichols-Van Dooren 1985)
For MIMO and numerical stability, place() (MATLAB) / control.place() (Python) chooses the that places the poles using the freedom in eigenvector placement to minimise and condition the closed loop. Always prefer place() over acker() in production.
Bass-Gura formula
Closed-form alternative when CCF is computed explicitly: where , are desired and open-loop char-poly coefficients, is the Toeplitz matrix of , is the CCF similarity transform. Pedagogical; rarely used in production.
Robustness limitation
Pole placement gives no automatic robustness guarantee. A controller that aggressively places fast poles can produce matrices with huge elements; the resulting closed loop has a tiny gain margin and is sensitive to plant uncertainty and unmodelled dynamics. This is what motivates LQR — same machinery, with cost-function discipline.
8p. Linear Quadratic Regulator (LQR)
LQR is optimal state feedback for the quadratic cost:
with (symmetric positive semi-definite, penalises state excursion) and (symmetric positive definite, penalises actuator effort). For stabilizable and detectable, the unique stabilising optimal feedback is:
where solves the Continuous-time Algebraic Riccati Equation (CARE):
(Kalman 1960; Anderson & Moore 1971). The equation has multiple solutions; the stabilising solution is unique and is what every solver returns. MATLAB lqr(A, B, Q, R); Python control.lqr(A, B, Q, R); Julia lqr(A, B, Q, R) in ControlSystems.jl. All wrap SLICOT routines (SB02OD for CARE).
Discrete-time LQR
For and cost , the optimal with and from the Discrete-time Algebraic Riccati Equation (DARE):
MATLAB dlqr(), Python control.dlqr(), SLICOT SB02MD.
Q and R tuning intuition
- Bigger → faster, more aggressive regulation, larger .
- Bigger → smaller actuator effort, more passive response.
- Off-diagonal entries couple state penalties (rare; usually diagonal).
- Only the ratio matters scale-wise — scaling both by 10 leaves unchanged.
Bryson’s rule (Bryson & Ho 1969)
Initial weight choice when you have no prior intuition:
where is the maximum acceptable excursion of state and is the actuator’s saturation limit. Equalises the contribution of each state and actuator to . Always a starting point — refine after simulation.
Guaranteed robustness
LQR with full-state feedback has unconditional guarantees (Safonov & Athans 1977):
- Gain margin at each input: — equivalent to to .
- Phase margin at each input: .
These margins are at the plant input only. When LQR is paired with an observer (LQG), the guarantees disappear (Doyle 1978 “Guaranteed Margins for LQG Regulators” — the famous one-page paper). Loop Transfer Recovery (LTR) (Doyle & Stein 1979) is the technique that recovers LQR-like margins in LQG by detuning the Kalman filter; covered in §10p.
Worked observation
For the inverted pendulum in §11p Example A, LQR with , produces a controller whose closed-loop eigenvalues are spread between fast (rejecting pendulum disturbance) and slow (cart positioning) — automatically, without the designer choosing pole locations.
9p. State estimation — observers
When the full state is not measured (the typical case), build an estimator in parallel with the plant.
Luenberger observer (Luenberger 1964)
The innovation drives correction; is the observer gain. The estimation error satisfies:
so is chosen to place the eigenvalues of in the stable left half-plane — exactly dual to pole placement for state feedback. By the duality principle, computing for is the same as computing for . MATLAB: place(A', C', poles)'.
Observer poles are conventionally placed 2–5× faster than closed-loop control poles, so the estimate converges before the controller acts on stale data. Too fast and noise dominates; too slow and the controller fights the estimator.
Kalman filter (Kalman 1960, Kalman-Bucy 1961)
When process noise and measurement noise are Gaussian, the Luenberger structure is optimal (minimises steady-state estimation-error covariance) when:
with solving the filter Riccati equation:
This is the continuous-time Kalman-Bucy filter. MATLAB kalman(), Python control.lqe(), SLICOT SB02OD (same Riccati routine, dual problem).
The discrete-time Kalman filter has the structure most engineers learn:
Predict (time update):
Update (measurement update):
The steady-state form (CARE solution) is what runs in firmware; the time-varying form is for transient operation and reduced-rank covariance tracking.
Nonlinear extensions
- Extended Kalman filter (EKF) — linearise and at each step around the current estimate; the workhorse of robotics localisation and aerospace navigation despite its known divergence pathologies.
- Unscented Kalman filter (UKF) (Julier & Uhlmann 1997) — propagates sigma points through the nonlinear functions; better than EKF for highly nonlinear systems, no Jacobians required.
- Particle filter — Monte-Carlo state estimation for non-Gaussian / multimodal posteriors.
Detailed treatment in bayesian-estimation (planned).
Separation principle
For LTI systems with quadratic cost and Gaussian noise (the LQG problem), the optimal controller is:
- Design LQR feedback assuming full state.
- Design Kalman filter assuming open loop.
- Combine: with from the filter.
The closed-loop eigenvalues of the combined system are the union of the eigenvalues of and — they don’t interact (Joseph & Tou 1961, Wonham 1968). This is what makes LQG tractable: design the two halves independently.
10p. LQG / H₂ / H∞ — robust modern control
| Method | Cost | Optimises against | Margin guarantees |
|---|---|---|---|
| LQR | Quadratic state-input cost | GM ∈ [0.5, ∞), PM ≥ 60° at plant input | |
| LQG | Same, with Gaussian noise | Quadratic, noisy | None — Doyle 1978 |
| LTR | LQG + frequency-shaped | Recovers LQR loop shape | Approaches LQR as recovery proceeds |
| H₂ | Average disturbance attenuation | Generalised LQG | |
| H∞ | Worst-case disturbance | Guaranteed by design | |
| μ-synthesis | Structured singular value | Worst-case with structured uncertainty | Robust to specific uncertainty block |
LQG details
LQG = LQR + Kalman filter via the separation principle. The resulting closed-loop transfer function has the LQR-designed plant-input behaviour modulated by the Kalman-filter dynamics — and the Kalman filter typically destroys the LQR robustness margins because it acts as a low-pass on innovations.
Loop Transfer Recovery (Doyle & Stein 1979)
Set (asymptotically large ); the Kalman filter then approaches the LQR loop transfer function at the plant input as . In practice, increase until margins recover — at the cost of treating measurement noise as if it were process noise, which can increase steady-state estimation error. The trade-off is fundamental.
H₂ and H∞
H₂ generalises LQG to weighted closed-loop transfer functions from generalised disturbance to generalised performance variable , with weighting filters built into the augmented plant. Solved by two coupled Riccati equations.
H∞ minimises the worst-case gain — the largest amplification across all frequencies and disturbance directions. Solution: two Riccatis and a spectral-radius condition (Doyle/Glover/Khargonekar/Francis 1989, “State-Space Solutions to Standard H₂ and H∞ Control Problems”). The DGKF paper is the unified state-space framework that made H∞ practical.
H∞ trades performance for robustness; well-designed H∞ controllers tolerate plant uncertainty that breaks LQG. The cost is conservatism — H∞ is pessimistic about the worst case.
μ-synthesis
For structured uncertainty (parametric variations, neglected dynamics in specific frequency bands), unstructured H∞ is too conservative. μ-synthesis (Doyle 1982, Packard & Doyle 1993) computes the structured singular value and iteratively designs controllers via the D-K iteration. Implemented in MATLAB Robust Control Toolbox (musyn, dksyn).
Full H∞ treatment deserves its own deep note — flagged as planned h-infinity-robust.
11p. Worked examples
Example A — Inverted pendulum on a cart (4-state SISO)
Plant. Cart mass , pendulum mass , pendulum half-length , . State (cart position, cart velocity, pendulum angle from vertical, pendulum rate). Input = horizontal force on cart (N). Linearising about (upright equilibrium):
Open-loop eigenvalues of : rad/s. One unstable real eigenvalue at +4.646 rad/s — the pendulum falls in time constant. Two integrators (cart-position drift and pendulum-angle drift).
Controllability. , compute → rank 4 ✓ (controllable). In MATLAB:
M = 1.0; m = 0.1; l = 0.5; g = 9.81;
A = [0 1 0 0; 0 0 -m*g/M 0; 0 0 0 1; 0 0 (M+m)*g/(M*l) 0];
B = [0; 1/M; 0; -1/(M*l)];
rank(ctrb(A, B)) % returns 4LQR design. Penalise cart position lightly, pendulum angle heavily (the unstable mode): , .
K = lqr(A, B, diag([10 1 100 1]), 1);
% K ≈ [-3.162, -4.327, -52.40, -10.74]
eig(A - B*K)
% ≈ {-3.5 + 0.0i, -1.42 + 1.06i, -1.42 - 1.06i, -0.95}All closed-loop eigenvalues in the left half-plane — stabilised. The dominant pole at gives a cart-positioning time constant of ; the conjugate pair at gives the pendulum-stabilisation natural frequency with damping . Aggressive on the pendulum, gentle on the cart — exactly what the weights demanded.
Simulation. Initial condition — pendulum starts from vertical. Pendulum recovers to in with peak force . Cart drifts before returning to zero.
Example B — Quadrotor lateral mode (decoupled, 4-state MIMO)
Linearising the full quadrotor about hover decouples into four channels (vertical, yaw, lateral-roll, longitudinal-pitch). The lateral channel ( translation coupled with roll ):
State (roll angle, roll rate, lateral velocity, lateral position). Input = differential rotor thrust producing roll moment (N·m). , , .
Bryson’s-rule weights. Max bank ; max rate ; max lateral speed ; max position error ; max roll torque .
K = lqr(A, B, diag([3.64 0.111 0.25 1.0]), 100)
% K ≈ [0.297, 0.0354, -0.247, -0.100]has shape (single input, four states). Closed-loop eigenvalues spread between a fast attitude loop () and slow position loop () — natural separation that LQR found from the cost weights, without the designer specifying it.
Integral action. For non-zero setpoint with steady disturbance (wind), augment with integrator state :
with extracting . Design LQR on with ; the resulting controller has the integral term inside the augmented state-feedback law. This is how zero steady-state error is achieved in state-space without resorting to the classical add-an-integrator hack.
Example C — Wood-Berry distillation column (2-input, 2-output MIMO)
The Wood-Berry binary column (Wood & Berry 1973) is the canonical MIMO textbook plant — a methanol-water column with reflux flow and steam flow as inputs, distillate composition and bottoms composition as outputs. Transfer-function form:
Ignoring delays and approximating with first-order Pade for state-space conversion, this realises as a 4-state plant with strong cross-coupling: reflux flow affects both compositions, steam flow affects both. SISO PID on the diagonal of destabilises because the off-diagonal coupling fights the diagonal loops.
LQR design. With Bryson’s rule (max composition deviation , max flow deviation ):
on composition states, .
The resulting is fully populated — every actuator responds to every state, automatically accounting for the cross-coupling. Compare against decentralised SISO PI with relative gain array (RGA) pairing: LQR achieves tighter regulation with comparable input effort.
This is the standard MIMO-vs-SISO comparison case in chemical-process-fundamentals (planned) and Skogestad & Postlethwaite ch. 10.
12p. Edge cases / gotchas
- Non-minimum-phase (NMP) zeros. Right-half-plane zeros impose the same Bode-integral bandwidth limit as in classical control — state-space cannot escape them. A plant with NMP zero at limits achievable bandwidth to approximately. LQR will obey this automatically; aggressive produces that fights the zero and overshoots. Diagnostic: look at the transmission zeros (MATLAB
tzero(sys)). - Model uncertainty. LQR is computed on the nominal model. Real plants differ — parameter variation, neglected dynamics, sensor lag. LQR’s gain margin tolerates moderate uncertainty; large parameter swings (>50%) need H∞ or μ-synthesis.
- State availability. Most plants don’t expose all states. Observer required; separation principle gives the design path, LTR recovers margins.
- No integrator → DC offset under disturbance. Pure LQR has zero DC loop gain; a constant disturbance produces a constant offset. Always add integrator state () for setpoint tracking with disturbance rejection, or use a feedforward path.
- Actuator saturation. Linear design assumes is unbounded. Real actuators saturate; integral windup ensues. Anti-windup: reference governors (Gilbert & Kolmanovsky 1999), conditional integration, or full anti-windup MPC formulation.
- Sampling rate. For discrete implementation, as a minimum; – is standard for safety-critical loops. Below the discrete-time plant differs sharply from the continuous design.
- Unstable pole–unstable zero cancellation. If the controller cancels an unstable pole with an unstable zero, the closed loop has a hidden mode that grows even though the input-output transfer looks stable. Never internally stable. Pole placement that attempts this fails silently — always check rather than transfer function poles.
- Ill-conditioned controllability. near means controllability is technically present but practically lost — small model error destroys authority. Reformulate the problem (different actuator placement, different state coordinates).
- Bryson’s-rule weights too aggressive. When is set unrealistically tight, commands actuator saturation continuously, and the linear analysis no longer predicts behaviour. Effectively bang-bang control. Fix: relax until simulated in worst case.
- State scaling. A state vector with mixed units ( in metres, in ) produces ill-conditioned , , matrices. Always non-dimensionalise or unit-scale before numerical design. MATLAB
prescale()automates this.
13p. Tools
MATLAB / Octave
| Function | Purpose |
|---|---|
ss(A, B, C, D) | Construct state-space LTI object |
ctrb(A, B), obsv(A, C) | Controllability / observability matrices |
eig(A), eig(A - B*K) | Open / closed-loop eigenvalues |
place(A, B, poles) | Robust pole placement (Kautsky-Nichols) |
acker(A, B, poles) | Ackermann pole placement (SISO only, fragile) |
lqr(A, B, Q, R), dlqr(...) | LQR / DLQR gain |
kalman(sys, Qw, Rv), lqe(...) | Kalman filter gain |
care(...), dare(...) | Solve CARE / DARE directly |
c2d(sys, Ts, 'zoh') | Continuous-to-discrete conversion |
ss2tf, tf2ss, ss2ss(T) | Realisation conversions |
prescale(sys) | Unit-scale states for numerical conditioning |
tzero(sys) | Transmission zeros (NMP detection) |
obsvf, ctrbf | Kalman decomposition into observable/controllable parts |
Toolboxes: Control System Toolbox (core), Robust Control Toolbox (musyn, hinfsyn, loopsyn), Model Predictive Control Toolbox, System Identification Toolbox, Simulink Control Design.
Python — python-control
control (https://python-control.readthedocs.io) is the de-facto Python equivalent. Most functions mirror MATLAB names: control.lqr(), control.place(), control.kalman(), control.ctrb(). Wraps SLICOT via slycot for production-grade numerical routines (Riccati solvers, balanced realisations). Without slycot, falls back to NumPy/SciPy — fine for textbook problems, less robust on large or ill-conditioned plants.
Companion libraries: scipy.signal.StateSpace, scipy.linalg.solve_continuous_are, scipy.linalg.solve_discrete_are — direct CARE / DARE solvers.
Julia — ControlSystems.jl
ControlSystems.jl (https://juliacontrol.github.io/ControlSystems.jl/) is high-performance and idiomatic Julia. Includes lqr, kalman, place, c2d, automatic differentiation through controllers, and tight integration with ModelingToolkit.jl. MatrixEquations.jl provides Riccati solvers. Particularly strong for system identification (ControlSystemIdentification.jl).
SLICOT
SLICOT (Subroutine Library In Control Theory) is the Fortran 77 numerical library underneath MATLAB Control System Toolbox, python-control (via slycot), Julia’s MatrixEquations.jl, and Scilab. Key routines: SB02OD (CARE), SB02MD (DARE), SB03MD (Lyapunov), MB05ND (matrix exponential). Reference: Benner et al. SLICOT — A Subroutine Library in Systems and Control Theory (1999).
SCILAB / Xcos
Open-source MATLAB analogue with similar control toolboxes — lqr, place, obsv, ctrb, kalm. Good for educational and budget-constrained projects.
Embedded codegen
| Path | Target |
|---|---|
| MATLAB Embedded Coder | STM32, NXP, Renesas, ARM Cortex-M |
| MathWorks TI C2000 Support Package | TI C2000 (motor control, power) |
| Simulink Real-Time | dSPACE, Speedgoat (hardware-in-loop, rapid-prototype) |
ROS 2 + control_toolbox | Robotics targets — see ros2-robotics-config |
C generated by python-control + autoware-style codegen | Custom embedded |
For low-level firmware, the runtime cost is a single matrix-vector product per sample, plus the observer update ( flops with steady-state gain) — trivial for any modern microcontroller (see microcontrollers).
14. Cross-references
- classical-control — root locus, Bode, Nyquist, lead-lag — the SISO companion this note builds on.
- vibration-dynamics — modal decomposition shares the eigenproblem mathematics; the second-order form converts to state-space by .
- electromagnetics-engineering — Maxwell’s equations linearise to LTI state-space for cavity resonators, antennas, transmission lines.
- microcontrollers — where the computed runs in firmware; ADC, DAC, timing budget for the control loop.
- digital-control (planned) — discretisation, sampled-data effects, anti-aliasing, deadbeat control.
- mpc-control (planned) — model predictive control as receding-horizon LQR with constraints.
- h-infinity-robust (planned) — H∞ synthesis, μ-synthesis, structured uncertainty in depth.
- system-identification (planned) — fitting from input/output data; subspace methods (N4SID, MOESP).
- bayesian-estimation (planned) — Kalman filter, EKF, UKF, particle filter applications in robotics.
- state-space-lqr (planned) — joint-space state-feedback, computed-torque control.
- multirotor-design (planned) — full 12-state quadrotor model behind Example B.
- scientific — toolbox functions and Simulink blocks for state-space synthesis.
15. Citations
- Kalman, R.E. (1960). “A New Approach to Linear Filtering and Prediction Problems.” Trans. ASME — Journal of Basic Engineering, 82(D), 35–45. The Kalman filter paper.
- Kalman, R.E. (1960). “Contributions to the theory of optimal control.” Boletín de la Sociedad Matemática Mexicana, 5(2), 102–119. LQR formulation.
- Kalman, R.E. (1961). “Mathematical description of linear dynamical systems.” J. Soc. Ind. Appl. Math. Series A — Control, 1(2), 152–192. The foundational state-space, controllability, observability paper.
- Kalman, R.E. & Bucy, R.S. (1961). “New results in linear filtering and prediction theory.” Trans. ASME — Journal of Basic Engineering, 83(D), 95–108. Continuous-time Kalman filter.
- Luenberger, D.G. (1964). “Observing the state of a linear system.” IEEE Trans. Military Electronics, 8(2), 74–80. The observer.
- Wonham, W.M. (1967). “On pole assignment in multi-input controllable linear systems.” IEEE Trans. Automatic Control, AC-12, 660–665. Proof of arbitrary-pole-assignability under controllability.
- Ackermann, J. (1972). “Der Entwurf linearer Regelungssysteme im Zustandsraum.” Regelungstechnik und Prozessdatenverarbeitung, 7, 297–300. Ackermann’s formula.
- Bryson, A.E. & Ho, Y.-C. (1969, revised 1975). Applied Optimal Control: Optimization, Estimation, and Control. Hemisphere/Wiley. The Bryson-rule reference and the standard optimal-control text.
- Anderson, B.D.O. & Moore, J.B. (1971, reprinted 2007 Dover). Linear Optimal Control / Optimal Control: Linear Quadratic Methods. Prentice-Hall. The LQR robustness-margins reference.
- Anderson, B.D.O. & Moore, J.B. (1979, reprinted 2005 Dover). Optimal Filtering. Prentice-Hall. The Kalman-filter graduate reference.
- Kailath, T. (1980). Linear Systems. Prentice-Hall. The canonical state-space textbook — realisation theory, controllability, observability, polynomial methods.
- Chen, C.-T. (2013). Linear System Theory and Design, 4th ed. Oxford University Press. The most-used graduate course text.
- Antsaklis, P.J. & Michel, A.N. (2006). Linear Systems, 2nd ed. Birkhäuser. Mathematical rigor on existence/uniqueness, structural properties.
- Friedland, B. (1986, reprinted 2005 Dover). Control System Design: An Introduction to State-Space Methods. McGraw-Hill. Concise practitioner introduction.
- Maciejowski, J.M. (1989). Multivariable Feedback Design. Addison-Wesley. The pre-Skogestad MIMO standard.
- Skogestad, S. & Postlethwaite, I. (2005). Multivariable Feedback Control: Analysis and Design, 2nd ed. Wiley. The modern MIMO and H∞ standard reference.
- Doyle, J.C. (1978). “Guaranteed margins for LQG regulators.” IEEE Trans. Automatic Control, AC-23, 756–757. The one-page paper showing LQG has no robustness guarantees.
- Doyle, J.C. & Stein, G. (1979). “Robustness with observers.” IEEE Trans. Automatic Control, AC-24, 607–611. Loop Transfer Recovery.
- Safonov, M.G. & Athans, M. (1977). “Gain and phase margin for multiloop LQG regulators.” IEEE Trans. Automatic Control, AC-22, 173–179. The LQR margin proof.
- Doyle, J.C., Glover, K., Khargonekar, P.P. & Francis, B.A. (1989). “State-space solutions to standard H₂ and H∞ control problems.” IEEE Trans. Automatic Control, 34(8), 831–847. The DGKF paper — H₂/H∞ unification.
- Zhou, K., Doyle, J.C. & Glover, K. (1996). Robust and Optimal Control. Prentice-Hall. The H∞ / μ-synthesis encyclopedia.
- Julier, S.J. & Uhlmann, J.K. (1997). “A new extension of the Kalman filter to nonlinear systems.” Proc. AeroSense — SPIE, vol. 3068, 182–193. Unscented Kalman filter.
- Kautsky, J., Nichols, N.K. & Van Dooren, P. (1985). “Robust pole assignment in linear state feedback.” Int. J. Control, 41(5), 1129–1155. The
place()algorithm. - Moore, B.C. (1981). “Principal component analysis in linear systems: Controllability, observability, and model reduction.” IEEE Trans. Automatic Control, AC-26, 17–32. Balanced realisations.
- Wood, R.K. & Berry, M.W. (1973). “Terminal composition control of a binary distillation column.” Chemical Engineering Science, 28, 1707–1717. The Wood-Berry column from Example C.
- Benner, P., Mehrmann, V., Sima, V., Van Huffel, S. & Varga, A. (1999). “SLICOT — A subroutine library in systems and control theory.” Applied and Computational Control, Signals, and Circuits, vol. 1, 499–539.
- Higham, N.J. (2008). Functions of Matrices: Theory and Computation. SIAM. Definitive on numerical computation of via scaling-and-squaring Padé.
- IEEE Control Systems Society. Control Systems Magazine historical surveys (1990s–2020s) — see especially Murray, Åström & Albertos (2003) “Future Directions in Control” for the field’s intellectual history.