flight_data_ns
There is a need to derive a PSD envelope for nonstationary acceleration time histories, including launch vehicle data, which may be similar to that shown in the above figure.
A PSD can be derived using rainflow fatigue cycle counting along with a Miners-type relative fatigue damage index. The enveloping is then justified using a comparison of fatigue damage spectra between the candidate PSD and the measured time history.
The derivation process can be performed in a trial-and-error manner in order to obtain the PSD with the least overall GRMS level which still envelops the flight data in terms of fatigue damage spectra. The Dirlik method can be used to calculate the fatigue damage spectrum of each candidate PSD in the frequency domain, instead of using the longer, time domain synthesis approach.
Furthermore, this can be done for a number of Q and fatigue exponent permutations for the case where these values are unknown. This adds conservatism to the final PSD envelope.
Again, the goal is to derive the minimum PSD which envelopes the measured data in terms of fatigue. The PSD’s duration is selected by the user. It may or may not be the same as that of the measured data. The method will scale the PSD to compensate for either a shorter or longer duration.
Statistical uncertainty factors or safety margins can then be added as a separate, post-processing step.
* * *
Here is a C++ program for applying this acceleration PSD derivation method for a user-supplied base input time history.
envelope_fds.cpp
envelope_fds.exe
* * *
Here is a similar C++ program for deriving a force PSD for an applied force time history.
envelope_fds_force.cpp
envelope_fds_force.exe
* * *
Here is a similar C++ program for deriving an acoustic SPL for an acoustic pressure time history. The applied and derived pressure fields are assumed to be uniform and fully correlated.
envelope_fds_acoustic.cpp
envelope_fds_acoustic.exe
* * *
Here is a Matlab MEX script set for an acceleration PSD: envelope_fds_matlab_mex.zip
Instructions: Go to the Matlab Command Window.
Type:
>>mex -setup
The C++ source code is compiled with Matlab as:
>>mex rainflow_mex.cpp
Then run the script:
>>envelope_fds
* * *
Here is a corresponding paper: optimize_psd_fds.pdf
* * *
See also:
Rainflow Fatigue Cycle Counting
Fatigue Damage Spectrum, Time Domain
Dirlik Rainflow Counting Method from Response PSD
Here is a previous method which performs fatigue comparison calculations strictly in the time domain for a single PSD candidate. It does not have automatic optimization capabilities, however.
Enveloping Nonstationary Random Vibration Data
* * *
– Tom Irvine