calculate input of a system having output and transfer function

Dear Friends Hi, I want to identify a complex system. I have used several transfer functions in my system. in one part of my code I have to calculate the input of a system while I have the output and the transfer function consider y=TF*x, I have TF and y and want to estimate x. if I use the TF^-1 or inv(TF) the error of "Cannot simulate the time response of models with more zeros than poles." will occur. So dear friend what is your suggestions and/or solutions?

3 件のコメント

Stephan
Stephan 2018 年 10 月 3 日
Can you provide the transfer function?
Raghunandan V
Raghunandan V 2018 年 10 月 5 日
yes. We need the transfer function.
hossein
hossein 2018 年 10 月 5 日
why u need the transfer function? for example, u can consider: GW = ( 0.2245 s + 9.002)/(s^2 + 161.4 s + 6448)
consider any kind of stable transfer function (number of poles> number of zeros). when u inverse the transfer the function number of poles will be less than the number of zeros which means the inversed transfer function is unstable. so I can not use the x=TF^-1*y. therefore I am seeking an alternative,

サインインしてコメントする。

回答 (1 件)

Raghunandan V
Raghunandan V 2018 年 10 月 5 日

0 投票

https://dsp.stackexchange.com/questions/16671/output-of-a-system-given-its-transfer-function-and-input-beginner
Does this solve your question? And you cannot directly enter a transfer function with more zeros than poles and hence use the original transfer function and then use inverse or division block for your purpose I am sure this will work

8 件のコメント

hossein
hossein 2018 年 10 月 5 日
編集済み: hossein 2018 年 10 月 5 日
NO, lets back to the question: calculate input of a system having output and transfer function
Raghunandan V
Raghunandan V 2018 年 10 月 5 日
Yes. I understand. please read the latter half of comment after the link.
hossein
hossein 2018 年 10 月 5 日
yea I have read that, but I do not see what is the solution?
Raghunandan V
Raghunandan V 2018 年 10 月 5 日
GW = ( 0.2245 s + 9.002)/(s^2 + 161.4 s + 6448) considering this as TF. instead of multiplying (s^2 + 161.4 s + 6448)/( 0.2245 s + 9.002) * output.
you should try
output/(( 0.2245 s + 9.002)/(s^2 + 161.4 s + 6448))
then you will be keeping tf in its original form.
hossein
hossein 2018 年 10 月 5 日
you know my output is a 601x1 vector, when I tried your suggestion (output/TF) the result is a 601x1 vector (601 transfer functions), indeed each array of the output is divided to the TF results in a 601x1 vector which each array is a transfer function
Raghunandan V
Raghunandan V 2018 年 10 月 5 日
I am sorry. I'm not able to understand. are you using Simulink or editor for this purpose?
hossein
hossein 2018 年 10 月 5 日
maybe I do not understand what your mean is by saying output/(( 0.2245 s + 9.002)/(s^2 + 161.4 s + 6448)) I try it but the answer is not true: (601 transfer functions) I am not using Simulink.
Raghunandan V
Raghunandan V 2018 年 10 月 5 日
could you share the .m file. i can take a look at it

サインインしてコメントする。

カテゴリ

質問済み:

2018 年 10 月 3 日

コメント済み:

2018 年 10 月 5 日

Community Treasure Hunt

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

Start Hunting!

Translated by