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 onbode(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?
Best Answer