Linear Time-Invariant System Model

April 23, 2026 · View on GitHub

Overview & Motivation

A Linear Time-Invariant (LTI) system model is the fundamental mathematical object shared across state-space control, estimation, and signal processing. It captures the dynamics of a physical plant — a motor, a pendulum, a vehicle — in a compact matrix representation that enables the systematic application of optimal control and filtering theory.

Representing an LTI model as a first-class value type makes it possible to pass a single plant description into algorithms such as the Kalman Filter, LQR, LQG, and MPC, eliminating the error-prone practice of supplying the same system matrices (A, B, C, D) separately to each component.

Mathematical Theory

Discrete-Time State-Space Representation

A discrete-time LTI system with state xkRnx_k \in \mathbb{R}^n, input ukRmu_k \in \mathbb{R}^m, and output ykRpy_k \in \mathbb{R}^p is described by two equations:

State equation: xk+1=Axk+Bukx_{k+1} = A x_k + B u_k

Output equation: yk=Cxk+Duky_k = C x_k + D u_k

where:

  • ARn×nA \in \mathbb{R}^{n \times n} is the state transition matrix
  • BRn×mB \in \mathbb{R}^{n \times m} is the input matrix (sometimes called the control matrix)
  • CRp×nC \in \mathbb{R}^{p \times n} is the output matrix (sometimes called the measurement matrix)
  • DRp×mD \in \mathbb{R}^{p \times m} is the feedthrough matrix (often zero for strictly proper systems)

Special Cases

Full-state output (C=IC = I, D=0D = 0): When all states are directly observable (e.g., a simulation or a state-feedback controller with perfect sensing), the output equation collapses to yk=xky_k = x_k. This is the typical case for LQR.

Autonomous system (B=0B = 0, uk=0u_k = 0): A system driven only by initial conditions and process noise. Used in Kalman smoothing and spectral analysis.

Discretisation

Continuous-time plants described by x˙=Acx+Bcu\dot{x} = A_c x + B_c u must be discretised before use in digital controllers:

A=eAcTs,B=Ac1(AI)BcA = e^{A_c T_s}, \quad B = A_c^{-1}(A - I) B_c

where TsT_s is the sampling period. For small TsT_s and stable AcA_c, the forward-Euler approximation AI+AcTsA \approx I + A_c T_s, BBcTsB \approx B_c T_s may be used.

Stability and Controllability

An LTI model is:

  • Stable if all eigenvalues of AA lie strictly inside the unit disc (λi<1|\lambda_i| < 1 for discrete-time systems).
  • Controllable if the controllability matrix C=[B  AB  A2B    An1B]\mathcal{C} = [B \; AB \; A^2B \; \cdots \; A^{n-1}B] has full row rank.
  • Observable if the observability matrix O=[CT  (CA)T    (CAn1)T]T\mathcal{O} = [C^T \; (CA)^T \; \cdots \; (CA^{n-1})^T]^T has full column rank.

Controllability and observability are prerequisites for LQR and Kalman Filter stability, respectively.

Complexity Analysis

OperationTimeSpaceNotes
Step (state)O(n2+nm)O(n^2 + nm)O(n)O(n)One matrix-vector multiply per term
OutputO(pn+pm)O(pn + pm)O(p)O(p)One matrix-vector multiply per term
ConstructionO(1)O(1)O(n2+nm+pn+pm)O(n^2 + nm + pn + pm)Value-type struct, no allocation

Numerical Considerations

  • Condition number of A: Poorly conditioned AA amplifies numerical errors during iterative integration. Monitor the spectral radius of AA to ensure stability is not lost due to finite-precision arithmetic.
  • Feedthrough matrix D: For most physical systems D=0D = 0 (strictly proper). A nonzero DD requires care in closed-loop analysis since direct input-to-output coupling may cause algebraic loops.
  • Fixed-point use: LTI matrices are suitable for Q15/Q31 when all matrix entries and intermediate products remain within [1,1][-1, 1]. For real physical systems with gains exceeding unity, scale the representation (e.g., normalise state and input ranges) before using fixed-point arithmetic.
  • Identity construction: When building the C=IC = I case (full-state output), use $0.9999 rather than \1.0 for Q15 compatibility, since \1.0$ is not representable in the Q15 format.

Pitfalls & Edge Cases

  • Time-varying systems: The LTI model is invalid for systems whose matrices AA, BB, CC, DD depend on time or operating point. Use scheduling or re-linearisation for such plants.
  • Nonlinear plants: State-space linearisation is valid only in a neighbourhood of the operating point. Large deviations from the linearisation point invalidate the model.
  • Sampling rate: Discrete-time LTI models are sampling-rate-specific. Changing TsT_s requires re-discretisation and possibly re-tuning of dependent controllers and filters.

Step-by-Step Walkthrough

Consider a double integrator (position and velocity state, force input, position output) with sample period Ts=0.1sT_s = 0.1\,\text{s}:

Continuous-time plant: x˙=[0100]x+[01]u\dot{x} = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} x + \begin{bmatrix} 0 \\ 1 \end{bmatrix} u, y=[10]xy = \begin{bmatrix} 1 & 0 \end{bmatrix} x

Step 1 — Discretise using forward-Euler (AI+AcTsA \approx I + A_c T_s, BBcTsB \approx B_c T_s):

A=[10.101],B=[00.1],C=[10],D=[0]A = \begin{bmatrix} 1 & 0.1 \\ 0 & 1 \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\ 0.1 \end{bmatrix}, \quad C = \begin{bmatrix} 1 & 0 \end{bmatrix}, \quad D = \begin{bmatrix} 0 \end{bmatrix}

Step 2 — Simulate one step from x0=[1,0]Tx_0 = [1, 0]^T with u0=2u_0 = -2:

x1=Ax0+Bu0=[10.101][10]+[00.1](2)=[10.2]x_1 = A x_0 + B u_0 = \begin{bmatrix} 1 & 0.1 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} + \begin{bmatrix} 0 \\ 0.1 \end{bmatrix}(-2) = \begin{bmatrix} 1 \\ -0.2 \end{bmatrix}

Step 3 — Compute output at k=0k=0:

y0=Cx0=[10][10]=1y_0 = C x_0 = \begin{bmatrix} 1 & 0 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = 1

The position measurement is $1.0(exact,since(exact, sinceD = 0$ and noise is excluded here).

Variants & Generalizations

  • Full-state output (C=IC = I, D=0D = 0): All states are directly available as outputs. Used in LQR with perfect sensing. Constructed via the WithFullStateOutput factory, which sets CC to the identity.
  • Autonomous system (B=0B = 0): No input; the system evolves freely from initial conditions. Used in Kalman smoothing and spectral analysis (e.g., auto-regressive models).
  • Strictly proper systems (D=0D = 0): Most physical plants have zero feedthrough; the DD matrix is omitted from the signal path. The LTI representation preserves DD for generality.
  • Continuous-time counterpart: Described by x˙=Acx+Bcu\dot{x} = A_c x + B_c u, y=Ccx+Dcuy = C_c x + D_c u. Requires discretisation before use in digital controllers.
  • Multi-rate LTI: Different sensors and actuators may operate at different sample rates; a lifted LTI representation can handle periodic multi-rate systems.

Applications

  • Digital control design: The LTI model is the canonical starting point for controller synthesis (LQR, MPC, pole placement). A linearised plant description is the single shared artefact that all design tools consume.
  • Kalman Filter initialisation: The (A,B,C)(A, B, C) matrices are passed directly into the Kalman Filter to define the predict and update equations, ensuring consistency between plant and estimator.
  • Simulation and validation: Monte Carlo simulations propagate an LTI model forward to verify closed-loop stability margins, noise sensitivity, and disturbance rejection before deployment on hardware.
  • System identification: Identified discrete-time state-space models from input-output data (e.g., via subspace identification or prediction-error methods) are naturally expressed as LTI structs.
  • Transfer function analysis: The zz-domain transfer function H(z)=C(zIA)1B+DH(z) = C(zI - A)^{-1}B + D can be extracted from the LTI matrices for frequency-response computation and Bode plotting.

Connections to Other Algorithms

  • LQR: Uses the (A,B)(A, B) pair to solve the DARE and compute the optimal state-feedback gain.
  • Kalman Filter: Uses (A,B,C)(A, B, C) to predict the next state and relate states to measurements.
  • LQG: Composes both — (A,B)(A, B) for the regulator and (A,B,C)(A, B, C) for the estimator.
  • MPC: Uses (A,B)(A, B) to build the prediction model over a finite horizon.
  • Kalman Smoother: Uses (A,C)(A, C) for the forward-backward pass in batch smoothing.
  • DARE Solver: Receives (A,B)(A, B) as inputs to compute the Riccati solution.

References & Further Reading

  • C.-T. Chen, Linear System Theory and Design, 4th ed., Oxford University Press, 2013. Chapters 4–5.
  • R. E. Kalman, "Mathematical Description of Linear Dynamical Systems," SIAM Journal on Control, 1(2):152–192, 1963.
  • G. F. Franklin, J. D. Powell, and A. Emami-Naeini, Feedback Control of Dynamic Systems, 8th ed., Pearson, 2019. Chapter 7.
  • T. Kailath, Linear Systems, Prentice Hall, 1980. Comprehensive reference on state-space representations and transformations.
  • K. J. Åström and B. Wittenmark, Computer-Controlled Systems: Theory and Design, 3rd ed., Dover, 2011. Chapter 3 (discretisation methods).