Borrar filtros
Borrar filtros

Diffrent results using tf(ss(A,B,C,D)) or C*inv(s*I-A)*B+D

2 visualizaciones (últimos 30 días)
rupprechtt
rupprechtt el 7 de Sept. de 2019
Comentada: rupprechtt el 7 de Sept. de 2019
Why do I obtain diffrent results?
A = rand(3,3);
B = rand(3,1);
C = rand(4,3);
D = rand(4,1);
% using matlab function
tf1 = tf(ss(A,B,C,D));
% calculated by hand
s = zpk('s');
tf2 = D + C*inv(s*eye(3)-A)*B;
Does anyone have an idea why tf1-tf2 is not zero?
Thank you

Respuesta aceptada

Raj
Raj el 7 de Sept. de 2019
The results are not different. They are same. Minor differences can be due to numerical/computational tolerances and accuracy. At any given natural frequency, magnitude of (tf1-tf2) is indeed very close to zero. You can check the similarity yourself by comparing their bode plots like this:
bode(tf1)
hold on
bode(tf2)
  3 comentarios
Raj
Raj el 7 de Sept. de 2019
Why are you 'unhappy' with the result of bode(tf1-tf2)? The magnitude of the difference as I mentioned earlier is in the order of 10^-13 which is very very small for almost any practical aspect.
You need even higher precision?
Capture.JPG
rupprechtt
rupprechtt el 7 de Sept. de 2019
Uhh.. my bad!
I have overlooked the factors .. (what an idiot)
Thanks a lot!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Get Started with Control System Toolbox en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by