Damping Factor and natural frequency out of time response data

90 ビュー (過去 30 日間)
Dominik Breuherr
Dominik Breuherr 2018 年 9 月 13 日
編集済み: Aquatris 2018 年 9 月 13 日
I got sampled data with a sampling rate of 0.0025s that is plotted in the figure, it is a moment over time signal.
1) How can I get the damping factor and the natural frequency of this vibration out of the plot without the use of a transfer function?
2) How can i get the transfer function? (and then over the transfor function the damping factor with damp)
  1 件のコメント
Stephan 2018 年 9 月 13 日
One idea (regarding Part 1 of your question) would be to make a nonlinear curvefit to your measured data with the equation of the Damped free oscillation and get the best guess for the values of omega_d, the damping value delta, the phase shift phi and x0 this way.
With delta and omega_d you can calculate the natural frequency omega_0.


回答 (1 件)

Aquatris 2018 年 9 月 13 日
編集済み: Aquatris 2018 年 9 月 13 日
If this is impulse response, you can get the natural frequency by simply finding the time difference between each peak. Inverting the time difference will give you the natural frequency in Hz. Damping can be found by finding an exp(-zeta*w*t) that envelops the response.
s = tf('s');
w = 100*2*pi; % natural frequency 100 Hz
zeta = 0.05; % damping ratio 0.05
sys = w^2 / (s^2 + 2*zeta*w*s + w^2); % system
[y,t]=impulse(sys); % impulse response
plot(t,y,t,w*exp(-zeta*w*t)) % See the exponential envelope
% In here I knew exactly what zeta was
% You need to play with the number until
% the term envelops as shown in figure
% Also due to how I created the impulse response,
% the gain of the exponential term was equal to
% w, you need to pick your gain depending on
% the initial value of your response
% for you 0.6185 might work if you shift your
% signal to start at 0 seconds
w_estimate = 1/(0.0175-0.0075); % From graph, find time value
% for 2 consecutive peaks
% inverse the time difference
% to obtain natural frequency
% in Hz
Once you obtain the natrural frequency and damping the transfer function is;
sysEstimate = w_estimate^2 / (s^2 + 2*zeta_estimate*w_estimate*s + w_estimate^2)

Community Treasure Hunt

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

Start Hunting!

Translated by