Side-by-side comparison
| Parameter | Controllable | Observable System |
|---|---|---|
| Definition | Ability to drive any state to any other state in finite time using control input u | Ability to determine any initial state x(0) from output y over finite time |
| Kalman rank condition | rank[B AB A²B … A^(n-1)B] = n (controllability matrix) | rank[C CA CA² … CA^(n-1)]^T = n (observability matrix) |
| Related to | Input matrix B and system matrix A | Output matrix C and system matrix A |
| PBH test (eigenvector) | No eigenvector of A is orthogonal to B | No eigenvector of A is in the null space of C |
| Uncontrollable mode implication | That mode cannot be moved by any control input | — |
| Unobservable mode implication | — | That mode cannot be detected in output — hidden dynamics |
| Pole-zero cancellation | Cancellation creates uncontrollable mode | Cancellation creates unobservable mode |
| Real example | State feedback u = −Kx requires full controllability | Luenberger observer requires full observability |
| Design tool needed | State feedback / pole placement (e.g., Ackermann's formula) | Observer / Kalman filter design |
Key differences
A system is controllable if the controllability matrix Wc = [B | AB | A²B | … | A^(n−1)B] has rank n — you can check this in MATLAB with rank(ctrb(A,B)). A system is observable if the observability matrix Wo = [C; CA; CA²; …; CA^(n−1)] has rank n — checked with rank(obsv(A,C)). A pole-zero cancellation in the transfer function is the classic sign that a mode is either uncontrollable or unobservable (or both); the cancelled pole still affects internal states but disappears from the input-output description. Duality connects the two: a system (A,B,C) is observable if and only if (A^T, C^T, B^T) is controllable.
When to use Controllable
Invoke controllability when designing state feedback — applying Ackermann's formula for pole placement to a DC motor speed controller with state vector [speed, current] requires checking that the system is fully controllable before computing the gain vector K.
When to use Observable System
Invoke observability when building a Luenberger observer or Kalman filter — estimating the rotor flux of an induction motor from terminal voltage and current measurements requires full observability of the motor state-space model.
Recommendation
For exams, always compute the rank of both Wc and Wo before declaring a system controllable or observable. Choose Ackermann's formula for small (n ≤ 3) pole-placement problems; for larger systems note that MATLAB's place() function is the practical tool.
Exam tip: GATE asks you to form the controllability matrix for a given (A, B) and compute its rank — practise 2×2 and 3×3 matrix rank calculations by row reduction, as a calculator is not allowed.
Interview tip: Interviewers at aerospace and robotics firms ask you to explain why a pole-zero cancellation is dangerous even though the transfer function looks simplified — the expected answer is that the cancelled mode is still present internally, possibly unstable, and invisible to the controller.