Fitting transfer function to amplitude phase data
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
I have amplitude-phase (Bode) data from my experiment, which I have obtained by sweeping a range of frequencies. My system has the delay term exp(-Tau*s). I am looking to fit transfer function models of the form exp(-Tau*s)*(N(s)/(D(s)) to my data with the lowest possible order. Any help would be greatly appreciated!
Thanks and Regards, Hari
0 Kommentare
Antworten (2)
Star Strider
am 17 Mär. 2015
You are fitting a matrix (amplitude and phase) with your model, so the most appropriate function to use is the Optimization Toolbox function lsqcurvefit. Your objective function will have to produce two outputs (amplitude and phase) to match your data.
2 Kommentare
Arkadiy Turevskiy
am 17 Mär. 2015
Bearbeitet: Arkadiy Turevskiy
am 17 Mär. 2015
Actually the function specifically created for this task is tfest from System Identification Toolbox. Take a look at the doc page and look at the section "Examples". For the lowest possible order, specify the number of poles =1, and number of zeros =0. If you do not get a good fit, try to increase the number of poles and zeros.
tfest takes your data as an input argument. Data has to be in the idfrd format. You will need to convert your mag-phase data to complex-valued response with something like this:
>>response=mag.*exp(i*phase);
2 Kommentare
Siehe auch
Kategorien
Mehr zu Transfer Function Models 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!