### 1.7 How to check that state space system $$x'=Ax+Bu$$ is controllable?

A system described by \begin {align*} x' &= Ax+Bu \\ y &= Cx+Du \end {align*}

Is controllable if for any initial state $$x_0$$ and any ﬁnal state $$x_f$$ there exist an input $$u$$ which moves the system from $$x_0$$ to $$x_f$$ in ﬁnite time. Only the matrix $$A$$ and $$B$$ are needed to decide on controllability. If the rank of $[B \> AB\> A^2B\> \ldots \> A^{n-1}B]$ is $$n$$ which is the number of states, then the system is controllable. Given the matrix $A=\left ( {\begin {array}{cccc} 0&1&0&0\\ 0&0&-1&0\\ 0&0&0&1\\ 0&0&5&0 \end {array}} \right )$ And $B=\left ( {\begin {array}{c} 0\\ 1\\ 0\\ -2 \end {array}} \right )$

 Mathematica A0 = {{0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, 1}, {0, 0, 5, 0}}; B0 = {{0}, {1}, {0}, {-2}}; sys = StateSpaceModel[{A0, B0}]; m = ControllabilityMatrix[sys]  $\left ( {\begin {array}{cccc} 0 & 1 & 0 & 2 \\ 1 & 0 & 2 & 0 \\ 0 & -2 & 0 & -10 \\ -2 & 0 & -10 & 0 \\ \end {array}} \right )$ ControllableModelQ[sys]  True MatrixRank[m]  4

 Matlab A0 = [0 1 0 0; 0 0 -1 0; 0 0 0 1; 0 0 5 0]; B0 = [0 1 0 -2]'; sys = ss(A0,B0,[],[]); m = ctrb(sys)  m = 0 1 0 2 1 0 2 0 0 -2 0 -10 -2 0 -10 0  rank(m)  4

 Maple restart: alias(DS=DynamicSystems): A:=Matrix( [ [0,1,0,0], [0,0,-1,0], [0,0,0,1], [0,0,5,0] ] ); B:=Matrix([[0],[1],[0],[-2]]); sys:=DS:-StateSpace(A,B); m:=DS:-ControllabilityMatrix(sys);  \left [ {\begin {array}{cccc} 0&1&0&2\\ \noalign {\medskip }1&0&2&0 \\ \noalign {\medskip }0&-2&0&-10\\ \noalign {\medskip }-2&0&-10&0 \end {array}} \right ] DS:-Controllable(sys,method=rank);  true DS:-Controllable(sys,method=staircase);  true LinearAlgebra:-Rank(m);  4