# Different MIMO zeros, poles when using tf and ss system representation

70 views (last 30 days)
Commented: Amine on 22 May 2015
Suppose that we initialize the A,B,C,D arrays of the steady state representation as follows:
A = [-1, 2, 0; 2, 1, 0; -2, -1, 0];
B = [1, 1; -1, 2; 1, -2];
C = [1,-1, 0; -1, 0, 0];
D = zeros(2,2);
If we try to find the zeros and poles of the MIMO system above we end up with different results when using the state space representation and the transfer function:
fprintf('ss representation:\n\n');
fprintf('zeros:\n');
tzero(ss_sys)
fprintf('poles:\n');
pole(ss_sys)
fprintf('tf representation:\n\n');
fprintf('zeros:\n')
tzero(tf_sys)
fprintf('poles:\n');
pole(tf_sys)
ss representation:
zeros:
ans =
0
poles:
ans =
-2.2361
2.2361
0
tf representation:
zeros:
ans =
-2.2361
2.2361
poles:
ans =
2.2361
-2.2361
2.2361
-2.2361
Why is this happening? Which representation should we choose each time we want to calculate the properties of the system?

Arkadiy Turevskiy on 7 May 2015
Your post does not include the code for creating ss_sys and tf_sys, but I assume you created tf_sys by doing:
tf_sys=tf(ss_sys);
The reason why you are seeing the difference in poles and zeros is due to numerical issues. Please take a look here . As the doc states, it is recommended to use state space models; transfer function representation is not recommended for working with MIMO systems.
HTH.

Amine on 7 May 2015
Hello sir! I am using 'ss' and 'tf' commands in order to get the transfer function form of an H infinity controller. Does it means that my controller in its system matrix form is NOT the same in its transfer function form? Thank you!
Arkadiy Turevskiy on 8 May 2015
did you have a chance to read the doc I linked to? Again, it is recommended to use state space representation for MIMO systems- it is better behaved numerically.
Amine on 22 May 2015
Yes sir I did, thank you so much it was realy helpful! thank you!