Getting started#
To install FatigueDS, use pip:
$ pip install FatigueDS
Importing the package#
import FatigueDS
Creating a Spectrum object#
To calculate the Extreme Response Spectrum (ERS) and Fatigue Damage Spectrum (FDS), a Spectrum object must be created. The object is created by providing the frequency range and damping ratio.
Frequency range freq_data is defined by a tuple (f0_start, f0_stop, f0_step) in Hz and sets the frequency points where the ERS and FDS will be calculated. Alternatively, a frequency vector (array) can be passed as input.
Damping ratio damp is a float value between 0 and 1.
load_spectrum = FatigueDS.Spectrum(freq_data=(f0_start, f0_stop, f0_step), damp)
# or
load_spectrum = FatigueDS.Spectrum(freq_vector, damp)
Setting the load signal#
Load signal is defined with different methods, depending on the type of signal.
Random signal (PSD)#
For the random signal defined by the Power Spectral Density, the following parameters must be provided:
signal_data: A tuple (PSD array, frequency array),unit: unit of the PSD (ms2org)T: time duration in seconds
load_spectrum.set_random_load((PSD, freq), unit, T)
Random signal (time history)#
For the random signal defined by the time history, the following parameters must be provided:
signal_data: A tuple (time history array, time step)unit: unit of the time history (ms2org)method: method of calculation.
Available methods are:
convolution: Directly from time historypsd_averaging: Conversion to PSD, then to ERS and FDS from PSD
load_spectrum.set_random_load((time_history, dt), unit, method)
Sine signal#
For the sine signal; frequency, amplitude, total time of the signal and an excitation type must be provided.
load_spectrum.set_sine_load(sine_freq, amp, t_total, exc_type)
Sine-sweep signal#
For the sine-sweep signal; amplitude, frequency range, excitation type, time step, sweep type and sweep rate must be provided.
load_spectrum.set_sine_sweep_load(const_amp, const_f_range, exc_type, dt, sweep_type, sweep_rate)
Calculating the ERS and FDS#
After the load signal is set, the ERS and FDS can be calculated.
ERS is calculated by:
load_spectrum.get_ers()
FDS calculation requires additional material fatigue parameters: k, C and p. It is calculated by:
load_spectrum.get_fds(k, C, p)
The results are stored in the ers and fds attributes of the Spectrum object.
Accessing the results:
load_spectrum.ers
load_spectrum.fds
load_spectrum.f0_range # frequency array
Plotting the results#
The results can be plotted by:
load_spectrum.plot_ers()
load_spectrum.plot_fds()