I understand that a necessary and sufficient condition for controllability is that no single pole of the system is cancelled by a zero in all of the elements of the transfer-function matrix. And the same goes for observability. However, if I express my system in a controller form, despite a pole-zero cancellation, the system is controllable, though not observable and a corresponding conclusion for an observer form. This violates the 'iff' condition. What explains this?
1 Answers
It seems like you have slightly misunderstood the frequency domain controllability/observability condition. If we have a linear time invariant single-input, single-output system written in state space form, and we form the transfer function $$ G(s) = c^T (sI - A)^{-1} b + d$$ then we can state that the system is both controllable and observable iff there is no pole-zero cancellation in the transfer function. On the other hand, if there is pole-zero cancellation, then the system is either uncontrollable or unobservable or both (but we cannot tell which).
This is natural, because the transfer function is an expression of the relationship from input to output, but controllability considers the input-to-state relationship, and observability the state-to-output relationship. Hence we can never tell the difference between an unobservable and uncontrollable system by considering the transfer function alone.
If you would like to check controllability and observability independently, then you need to use another condition, e.g. the system is controllable iff $$ \left[ \begin{array}{ccccc} b & Ab & A^2 b & \ldots & A^{n-1} b \end{array} \right]$$ is a full-rank matrix. Likewise, the system is observable iff $$ \left[ \begin{array}{c} c^T \\ c^T A \\ c^T A^2 \\ \cdots \\ c^T A^{n-1} \end{array} \right] $$ is a full-rank matrix. You can check this by reducing the matrix to row-echelon form using Gaussian elimination if working it out by hand, or with the rank() function in MATLAB or matrix_rank() in NumPy if you're using a computer.
- 303
- 1
- 6
-
That really helped! I was missing out the part on 'if there is pole-zero cancellation, then the system is either uncontrollable or unobservable or both'. Thanks again. – db18 Apr 21 '18 at 17:59