Transfert function with System identification toolbox
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, First, I mesure a frequency response of a filter. The filter shown at this figure:
I attach a .mat file of the transfert function, the Amplitude, phase and frequency in rad/seconde. I tried a lot of time to identify parameters (Transfert Function) with the “System identification toolbox” with the GUI Ident. That never work. The model output is always very different. I also tried with the theoretical curve and that never work! However, I compute the theoretical transfert function with Matlab… What I did: Ident; Import data/frequence domaine data/Freq.Function(Amp/Phase)
Estimate/transfert function:
Thank
0 commentaires
Réponses (1)
Arkadiy Turevskiy
le 26 Août 2015
There are a few issues here.
1. Your data (Amp, Pha) does not agree with closed form transfer function at low frequencies, below 100 rad/s:
R=1682;
C=1.07*10^(-6)
L=46.5*10^(-3)
s=tf('s');
sys=(s^2*L*R*C+s*L+R)/(s^2*L*C+s*R*C);
[mag,ph]=bode(sys,Freq);
semilogx(Freq,20*log10(squeeze(mag)))
semilogx(Freq,20*log10(Amp),'r')
legend('closed form transfer function','data');
2. When import your data into System Identification App, you specify Ts of 0.001. This effectively cuts off your data at 1,000Hz*2*pi=3,142 rad/sec. But if you look at your Freq, it goes to 10 times higher frequency.
3. So to get good results you need to do this: import the data like you do, but specify Ts=1e-4. Then preprocess the data and select to keep the data from 100Hz and up. Now move the resulting dataset to MATLAB workspace. Assume it is called mydataf. Now do this:
mydataf.Ts = 0; % change sampling time to zero, you cannot do it in the app due to a bug
model = tfest(mydataf,2,2)
compare(mydataf, model)
Hope this helps.
0 commentaires
Voir également
Catégories
En savoir plus sur Transfer Function Models dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!