System Identification - Frequency Domain
古いコメントを表示
I am trying to model the transfer function for the plant of a magnetic actuator. The input is in current (A) and output is distance moved x (mm). A sine sweep is run as disturbance and the input output plot looks like this:

Since it is a sine sweep, i convert the data into frequency domain as follows:

I am trying to identify the transfer function for this frequency domain plot. I use this as an idfrd data. I do manage to find a 6th order transfer function that fits the data. The corresponding code is as follows:
f_data=idfrd(H3c,fc,t_loop,'FrequencyUnit','Hz','Name', 'Openloop Plant', ...
'InputName', 'currrent', 'OutputName', 'xdist',...
'InputUnit', 'A', 'OutputUnit', 'mm');
bode(f_data)
f_data.InterSample = 'zoh';
model_1=tfest(f_data,6)
bode(model_1)
hold on
bode(f_data)
figure()
compare(f_data,model_1)
From this, I get the following match:

The problem is, I can't get this back in the time domain. Or atleast, it is becoming unstable in the time domain like follows:
y=sim(model_1,Signal);
plot(t,y)

Can anybody give any suggestions as to why this is happening and what to do to make it right?
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Transfer Function Models についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
