Diffrent results using tf(ss(A,B,C,D)) or C*inv(s*I-A)*B+D
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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
0 comentarios
Respuesta aceptada
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
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](https://www.mathworks.com/matlabcentral/answers/uploaded_files/237297/Capture.jpeg)
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!