MATLAB: Tf2ss not returning the correct State Space form

state-spacetf2sstransfer function

I want to obtain the state space form of the following transfer function using tf2ss:
I went ahead and obtained the state space represention by hand:
So the code I developed to get the state space matrices for the transfer function was:
NUM = [1];
DEN = [1 -1 10];
[A,B,C,D] = tf2ss(NUM,DEN);
The state space matrices returned were:
A = [1 -10 ; 1 0]
B = [1 ; 0]
C = [0 1]
D = 0
It seems to have computed the correct numbers, but they are in the incorrect locations. How do I ensure that tf2ss returns the correct state space matrix representation?

Best Answer

The result is correct. The exact configuration doesn’t matter, so long as all the matrices and vectors work together (and produce the correct result).
It may be possible to create a transformation matrix of some sort, however it’s likely not worth the effort. (For what it’s worth, the Control System Toolbox produces a result analogous to the Signal Processing Toolbox that you are using here, except for normalising it.)