Diffrent results using tf(ss(A,B,C,D)) or C*inv(s*I-A)*B+D
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
rupprechtt
am 7 Sep. 2019
Kommentiert: rupprechtt
am 7 Sep. 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 Kommentare
Akzeptierte Antwort
Raj
am 7 Sep. 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 Kommentare
Raj
am 7 Sep. 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?

Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Get Started with Control System Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!