You are here
How to simulate frequency response
Hi all,
I'm trying to perform frequency
response of a simple model (say a rectangular shell) in abaqus.
The idea is to apply step-function load
and do dynamic analysis, then apply fft to the velocity response to define the
frequency response. Mathematically, if one applies impulse load to a
system, the response of the system will contain all frequencies.
Since the derivative of the step-function is the impulse function,
practically people apply a step-function load and then perform fft on
velocity (the derivation of the displacement).
Now, here what I do:
I define dynamic implicit step, with
dt=1e-4 s
t=1.5
No of steps: 15000
and step-function loading is defined
magnitude of instantaneous load (representing step-function).
Based on the time parameters, here are
the frequency domain parameters:
fs=1/dt=10000
No of steps=15000
frequency resolution (df=fs/steps)=0.66
Hz
frequency range= (-fs/2 to fs/2)=-5000
to 5000
I also do steady-state dynamic analysis
to compare my results of dynamic simulation.
-
I'm really confused to what I
shoudl normalize fft results (I saw that some people normalize fft
with fs, some other with No of steps. -
I tried both normalization
methods, fft of the velocity predicts the resonance frequencies, but
it is not accurate at predicting the magnitude. (Normalization with
sampling length results in higher magnitudes at high frequencies,
but good match at low frequencies, and normalization with fs,
results in good match at higher frequencies but very low magnitudes
at low frequencies. -
The fft results of the dynamic
simulation do not show anti resonances, while steady-state
simulation shows those frequencies too. -
If I do impulse loading (defining
load as a triangle by tabular amplitude ( e.g, 0,0 ; 1e-4:0 ;
2e-4=0) what time steps should I define to capture similar frequency
resolution and spectrum?
here is my matlab code to do fft:
--------------------------------------------------
ts=t(2)-t(1);
fs=1/ts;
df=fs/length(x);
f=-fs/2:df:fs/2-df;
V=fft(v)/length(t);
V= fftshift (V);
V=abs(V);
loglog(f,V);
------------------------------
I really appreciate any help!
![Subscribe to Comments for "How to simulate frequency response"](https://imechanica.org/misc/feed.png)
Recent comments