Contents

Control Systems
Introduction
Time Domain Analysis
Stability Analysis
Frequency Response
Compensators
State Space
Digital Control
Other Topics
Other Subjects
Section Progress60%

6 of 10 articles

Controllability

Controllability matrix rank test, Mc = [B AB A²B...].

Darshan N
Updated: 19 March 2026
12 min read

Controllability is a structural property of a dynamical system that tells you whether it is theoretically possible to drive the system from any initial state to any desired final state in finite time using an appropriate input. This concept is central to control system design because a system that is not controllable cannot be fully regulated by any controller, regardless of how the controller is designed.

Controllability: Can Input Reach Every State?State Spacex(0)x(T)trajectory via u(t)Controllability MatrixMc = [B AB A²B ... Aⁿ⁻¹B]Rank Testrank(Mc) = n ?rank = nControllablerank < nNOT Ctrl.Physical MeaningInput reaches all modesvia matrix columns B,AB..Uncontrollable mode:eigenvalue not connectedto input channelrank(Mc)=n → full statespace is reachableImportance: Pole placement by state feedback is possible ONLY if the system is completely controllableKalman's Controllability Rank Condition: rank[B AB A²B ... Aⁿ⁻¹B] = n
Figure 1: Controllability determines whether input can drive the system to any state via the controllability matrix rank test.

Core Concept Explanation

Consider a system modeled in state-space form: dx/dt = Ax + Bu, y = Cx + Du. The input u(t) enters the system through the matrix B. The question of controllability is: can the input u(t) reach and influence all n state variables? If some state variable evolves independently of the input, the system is not fully controllable, and no matter what control signal you apply, that mode cannot be steered.

The input directly affects the state through B in the first time step. However, through the system dynamics, the input also indirectly reaches states in subsequent steps via AB, A²B, and so on. The matrix product ABrepresents how the input, after being transformed by one step of system dynamics, reaches different state directions. The controllability matrix Mc collects all these reachable directions:

Mc = [B AB A²B ... Aⁿ⁻¹B]

By the Cayley-Hamilton theorem, powers of A beyond Aⁿ⁻¹ can be expressed in terms of lower powers, so only n terms are needed. The system is completely controllable if and only if Mc has full row rank, meaning rank(Mc) = n. This is known as Kalman's rank condition.

Mathematical Expression

For a system (A, B) of order n with m inputs, the controllability matrix Mc is of dimension n × (n·m). The system is completely state controllable if and only if:

rank(Mc) = rank[B AB A²B ... Aⁿ⁻¹B] = n

Equivalently, in frequency domain, using the Popov-Belevitch-Hautus (PBH) test: the system is controllable if and only if the matrix [λI - A B] has full row rank for every eigenvalue λ of A. The PBH test directly checks whether any eigenvalue is decoupled from the input, and it is especially useful when A has repeated eigenvalues.

For a single-input system (m = 1), Mc is an n × n square matrix. Controllability then reduces to: det(Mc) ≠ 0, which is a quick scalar test.

Practical Understanding

An uncontrollable mode corresponds to an eigenvalue of A that is invisible to the input. In physical terms, this could be a subsystem that is perfectly isolated from the actuator. For example, in a multi-tank liquid level system, if one tank has no valve connected to the pump, its level cannot be controlled regardless of how the pump is operated.

In control design, controllability is a prerequisite for pole placement. Arbitrary pole placement using state feedback u = -Kx is achievable only when the system is completely controllable. If the system is not controllable, uncontrollable poles remain fixed and cannot be moved, potentially causing instability or degraded performance.

Numerical Example

Consider the system A = [[1, 0], [0, 2]], B = [[1], [0]]. Form the controllability matrix Mc = [B AB] and check its rank. AB = A·B = [[1·1 + 0·0], [0·1 + 2·0]] = [[1], [0]]. So Mc = [[1, 1], [0, 0]], which has rank 1, not 2. The system is not controllable because the second state x₂ evolves independently under eigenvalue 2 and the input cannot reach it.

Example
Given:
A = [[1, 0], [0, 2]],  B = [[1], [0]],  n = 2

Why this formula applies:
For single-input system of order 2, Mc is 2×2. rank(Mc) must equal 2 for controllability.

Formula:
Mc = [B  AB],  rank(Mc) = n → controllable

Substitution:
AB = [[1,0],[0,2]] · [[1],[0]] = [[1],[0]]
Mc = [[1, 1], [0, 0]]

Calculation:
det(Mc) = 1×0 - 1×0 = 0
rank(Mc) = 1 ≠ n = 2

Final Answer:
System is NOT completely controllable.
State x₂ is governed by eigenvalue λ=2 and is decoupled from input B.
Exam Tip: For a diagonal A matrix, controllability fails if any row of B corresponding to a diagonal element is entirely zero. That eigenvalue is uncontrollable. This is a very fast visual check for GATE problems.
Controllability Matrix Construction and Rank CheckInput matrixB (n×m)1-step reachAB2-step reachA²B(n-1)-step reachAⁿ⁻¹BMc = [B AB A²B ... Aⁿ⁻¹B] → n × (n·m) matrixCollect all columns to form the controllability matrixrank(Mc) = nColumns span full n-dim spaceEvery state is reachablePole placement possible→ Completely Controllablerank(Mc) < nColumns do NOT span full spaceSome states unreachablePole placement impossible→ NOT ControllablePBH Test (alternate): rank[λᵢI - A B] = n for ALL eigenvalues λᵢ of AFails for any λᵢ → that mode is uncontrollable
Figure 2: Mechanism of controllability matrix construction: successive columns reveal how far the input can reach across state space.

Mechanism Points

  • Column B gives direct reach of input to states. Column AB gives reach after one step of system dynamics. Each additional column extends reach deeper into the state space.
  • Rank deficiency of Mc means at least one state direction is not spanned by the columns, meaning that state is unreachable from the input.
  • For single-input single-output (SISO) systems, Mc is square and controllability is simply det(Mc) ≠ 0.
  • The PBH test rank[λᵢI - A B] = n for all eigenvalues λᵢ is an algebraically equivalent test that directly links uncontrollable modes to specific eigenvalues.
  • Structural controllability considers graph topology of the system and can be checked without numerical rank computation, useful in large-scale networks.

Quick Revision

  • Controllability: system can be driven from any x(0) to any x(T) in finite time using u(t).
  • Controllability matrix: Mc = [B AB A²B ... Aⁿ⁻¹B], dimension n × (n·m).
  • Rank condition: rank(Mc) = n → completely controllable; rank(Mc) < n → not controllable.
  • For diagonal A, check if any row of B is all zeros. Zero row → corresponding eigenvalue is uncontrollable.
  • PBH test: rank[λᵢI - A B] = n for every eigenvalue λᵢ of A.
  • Exam trap: Controllability depends on BOTH A and B. Changing B (input matrix) can make an uncontrollable system controllable.
  • Practical significance: state feedback pole placement requires complete controllability. This is one of the most GATE-tested conditions.

Controllability Matrix Test

Test your ability to apply the controllability rank test and interpret its results for LTI systems.

Question 1 of 3

Q1.For A = [[1, 0], [0, 2]], B = [[1], [0]], what is the rank of the controllability matrix Mc = [B, AB]?