I am using the CANON function to compute the state-space canonical form of my system. I execute the following command:
G = [tf(1,[1 0]), tf(1,[1 0 0]), tf(1,[1 0 0 0])];sys2 = ss(G,'min');sys3 = canon(sys2,'companion')
I receive the following error when I execute the above code:
??? Error using ==> ss.canon at 108 System must be controllable from the first input.
However, I know for a fact that my system is controllable. My system is full rank as indicated by the following command:
rank(ctrb(sys2))
This returns a result '3', indicating that my system is full rank and hence controllable. However the CANON function errors out.
Best Answer