Controllability Matrix Helper

Enter A and B matrices of a linear state-space system (up to 4×4) to build the Kalman controllability matrix, compute its rank, and determine if the system is fully controllable.

Use the Controllability Matrix Helper

System Matrices

A matrix (state matrix)
B matrix (input vector)

Fill in A and B matrices, then click Check Controllability.

Summary

A linear time-invariant (LTI) system described by x' = Ax + Bu is fully controllable if and only if the Kalman controllability matrix C = [B, AB, A²B, …, A^(n-1)B] has rank n, where n is the number of states. This tool constructs that matrix step by step for systems up to 4 states and 1 input (single-input systems), computes its rank using Gaussian elimination, and reports whether every state can be driven to any target in finite time.

How it works

  1. Select the system order n (number of states): 2, 3, or 4.
  2. Enter the n×n state matrix A and the n×1 input matrix B.
  3. The tool builds the controllability matrix C = [B | AB | A²B | … | A^(n-1)B] column by column.
  4. Gaussian elimination with partial pivoting computes the numerical rank of C.
  5. If rank(C) = n, the system is fully controllable — every state is reachable from any initial condition using a suitable input. Otherwise the system is not fully controllable and the deficient rank indicates how many uncontrollable modes exist.

Use cases

  • Verify that all states of a designed controller can be independently steered before implementing pole placement.
  • Identify uncontrollable modes in a linearized plant model to redesign actuator placement.
  • Check controllability of reduced-order models obtained after model-order reduction.
  • Confirm that a state observer (Luenberger or Kalman filter) design is feasible by checking the dual observability condition.
  • Validate textbook or homework state-space problems against the rank condition quickly.

Frequently Asked Questions

Last updated: 2026-06-18 · Reviewed by Nham Vu