# controllability matrix of a state space system - determinant

For state space systems, there is a test for 'controllability' involving finding the determinant of a 'controllability' matrix. The instructions for the test is typically to see if the determinant is equal to zero. If that determinant is zero, then the system is said to be NOT controllable.

My question I'd like to ask is about the condition of the determinant being 'zero'. We know that 'zero' means zero obviously. But what about a relatively small value like 1E-10? And what about 0.001?

Would a determinant having a value of 1E-10 mean that the system is controllable ----- because the value is not zero?

Using the determinant to determine controllability only works if you only have only one input, i.e. the input matrix $$B$$ has only one column. Namely, for more inputs the controllability matrix $$\mathcal{C}$$ is not square. The matrix $$\mathcal{C}\,\mathcal{C}^\top$$ would always be square and if its determinant is non-zero when the controllability matrix has full rank. This is similar to checking whether the controllability matrix has $$n$$ non-zero singular values, with $$n$$ the size of the system state.
Mathematically speaking any non-zero determinant means the system is controllable. However, usually one calculates this numerically and in this case numerical precision would also come into play. The determinant would however be a bad measure of this, since the determinant is equivalent to the product of the eigenvalues of the matrix. So if the matrix is big and the majority of its eigenvalues have an absolute value smaller than one then the determinant could be very small even though the matrix might actually be full rank. Or if the matrix has many eigenvalues with a very large absolute value and one eigenvalue which should be zero, but due to rounding errors is only really close to zero, then the absolute value of determinant could still be much larger than zero. I believe the smallest singular value of the controllability matrix would be a better measure. However, one still has to choose a threshold for this smallest singular value. Matlab at least uses $$10^{-15}$$ as threshold. Though, this would probably only be a good rule of thumb if you are using double precision numbers.
• I never had time to pursue this in grad school (I asked and the response was "have you considered getting a PhD?"). But I present the suspicion, without proof or guarantee, that if the controllability matrix has a wide spread of eigenvalues (or the biggest n singular values in the case of a non-square controllability matrix for an $n^{th}$-order system) then it'll be less easily controllable than one where those values cover a wide range. Commented Jul 1, 2020 at 0:21