Dear sir, I use ss2tf function in matlab. Its output values input to tf2ss function. But the result is not equal to the original input. (A1,B1,C1,D1) IS NOT EQUAL TO (A,B,C,D.)
What wrong is it?
clear;
A=[0 1 0;0 0 1;-9 -8 -7];
B=[7;8;9];
C=[2 3 4];
D=[0];
[num, den]=ss2tf(A,B,C,D,1);
[a1,b1,c1,d1]=tf2ss(num,den);
a1 =
-7.0000 -8.0000 -9.0000
1.0000 0 0
0 1.0000 0
b1 =
1
0
0
c1 =
74.0000 -199.0000 -235.0000
d1 =
0

답변 (2개)

Fangjun Jiang
Fangjun Jiang 2011년 6월 14일

1 개 추천

The tf2ss() returns A,B,C,D matrices in controller (or controllable) canonical form. There is also observable canonical form. Bottom line, the A, B, C, D returned by tf2ss() may not match your original state space matrix. See state space controls
mohammad asasi
mohammad asasi 2012년 11월 23일

1 개 추천

Hi dear david
keep in mind that representation of a system in frequency domain is unique
but we can convert it to state space form in many many ways...
so representation in state space form is not uniqe...
best regards

카테고리

도움말 센터File Exchange에서 Dynamic System Models에 대해 자세히 알아보기

태그

질문:

2011년 6월 14일

댓글:

2023년 5월 25일

Community Treasure Hunt

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

Start Hunting!

Translated by