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?


2 Answers 2


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.

  • $\begingroup$ fibon - thanks very much for your help and time! That really helped a lot. I haven't accumulated enough points to upvote your post, but can at least make this comment here. Greatly appreciated! $\endgroup$
    – Kenny
    Commented Jun 30, 2020 at 11:25
  • $\begingroup$ 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. $\endgroup$
    – TimWescott
    Commented Jul 1, 2020 at 0:21
  • $\begingroup$ @TimWescott when considering how easy it is to control a mode of the system one can use the controllability Gramian. Though, it might be that there could be a relation between this and the singular values of the controllability matrix. $\endgroup$
    – fibonatic
    Commented Jul 1, 2020 at 8:05
  • $\begingroup$ @TimWescott, yes the the singular values of the reachabillity/controllability gramians are related to the control cost. This theorem is typically used for model reduction, where they remove the states that have expensive control to steer to and have low energy in transient (thus are difficult to observe). $\endgroup$ Commented Jul 1, 2020 at 16:17

A clear criterium for the property concerns rank decrease, which avoids the real computation of matrix determinant. It is clearer than the latter since the characteristic matrices A and B might have ill-conditioned matrices from emerging problem.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.