Why do state space and its equivalent transfer function models yield different step responses?
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Al-Motasem Aldaoudeyeh
le 24 Fév 2015
Commenté : Al-Motasem Aldaoudeyeh
le 25 Fév 2015
I have written a MATLAB code to build a transfer function by interconnecting dynamic blocks. When I run the m-file, I get different step responses from the state-space model and its transfer function equivalent. The system is SISO type. May you advise?
Here is the code:
G_1 = tf([160], [1]); G_2 = tf([1], [1 1 0]); H = tf([1 0], [1]);
G_1.InputName = 'e'; G_1.OutputName = 'gain_out';
G_2.InputName = 'p_in'; G_2.OutputName = 'output';
H.InputName = 'output'; H.OutputName = 'sense_out';
sum1 = sumblk('e = input - output'); sum2 = sumblk('p_in = gain_out - sense_out');
sys_ss = connect(G_1, G_2, H, sum1, sum2, 'input', 'output');
[num den] = ss2tf(sys_ss.A, sys_ss.B, sys_ss.C, sys_ss.D); sys_tf = tf(num, den);
step(sys_ss), grid on; figure; step(sys_tf), grid on;
0 commentaires
Réponse acceptée
Carla
le 25 Fév 2015
Hi there,
Examine the state-space model sys_ss:
>> sys_ss
Note that it has a non-unity E matrix. This happens because your H, a pure derivative, is improper. The connect command represents that block as a two-state ss with a non-unity E matrix - a descriptor ss. When connect builds the interconnected system, it preserves those states, so it yields a descriptor system.
And that means that your call to ss2tf, which only uses A,B,C, and D, is missing part of the dynamics of the system. sys_tf doesn't represent the same dynamics as sys_ss.
This is one of the reasons that ss2tf is not a great command to use when converting from ss to tf form. Try this instead:
>> sys_tf = tf(sys_ss)
This time when you plot the step responses, they match up. Also, tf removes those two extra states.
You can also reduce and simplify sys_ss into explicit form (E = 1) using the 'explicit' option of the ss command:
>> sys_ss_ex = ss(sys_ss,'explicit')
Now all of the system dynamics are described by A,B,C, and D.
For more information about explicit and descriptor state-space models, see the reference page for ss.
>> doc ss
Hope this helps!
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Time and Frequency Domain Analysis dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!