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 Comments

Can you provide the transfer function?
yes. We need the transfer function.
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,

Sign in to comment.

Answers (1)

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 Comments

NO, lets back to the question: calculate input of a system having output and transfer function
Yes. I understand. please read the latter half of comment after the link.
yea I have read that, but I do not see what is the solution?
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.
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
I am sorry. I'm not able to understand. are you using Simulink or editor for this purpose?
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.
could you share the .m file. i can take a look at it

Sign in to comment.

Asked:

on 3 Oct 2018

Commented:

on 5 Oct 2018

Community Treasure Hunt

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

Start Hunting!