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

12 views (last 30 days)
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?
Thanks in advance,

Answers (1)

Arkadiy Turevskiy
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.
  3 Comments
Arkadiy Turevskiy
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
Amine on 22 May 2015
Yes sir I did, thank you so much it was realy helpful! thank you!

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!