Get transfer function from data and known input
14 ビュー (過去 30 日間)
古いコメントを表示
Hey there :)
So this is what I know about the system:
- The system is a second order system
- The input is u(t) = 2·1(t)
- A structure has been given to me with y(t) against t(sec)
When I plot it I get this graph:

What I need:
I need to find the trasnfer function for the conditions above.
I know that I can find it analytically by finding Mp, Zeta, Wn and etc...
Is there a shortcut to find the transfer function?
I tried working with systemIdentification and tfest but both ways ask me to give the number of poles and zeros which I don't know + I can't tell the program that the data is for the input u(t) = 2·1(t).
This is what I get from systemIdentification tool, but I might be using it wrong:

The code:
data = iddata(Struc.y, Struc.time, 1*10^(-4));
plot(Struc.time, Struc.y, '--r');
hold 'all'
step(tf1)
%tf1 is generated from the systemIdentification tool and data
tnx!
2 件のコメント
Walter Roberson
2022 年 5 月 31 日
編集済み: Walter Roberson
2022 年 5 月 31 日
number of poles is 0 unless there are some for negative or complex values.
number of zeros is possibly 1, unless there are more at negative or complex
That said, if you were to subtract approximately 15 you might get an infinite number of 0s.
Walter Roberson
2022 年 5 月 31 日
編集済み: Walter Roberson
2022 年 5 月 31 日
What would you get for something like 12*sin(t)*exp(-t)+15 ?
採用された回答
Star Strider
2022 年 5 月 31 日
4 件のコメント
Star Strider
2022 年 5 月 31 日
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Transfer Function Models についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!