Rainflow Fatigue Cycle Counting

Endo & Matsuishi (1968) developed the Rainflow Counting method by relating stress reversal cycles to streams of rainwater flowing down a Pagoda.  This method is very useful for fatigue analysis.

The rainflow method allows the application of Miner’s rule in order to assess the fatigue life of a structure subject to complex loading.

The resulting tabular data is sometimes referred to as a spectra.

rainflow bins.m is a Matlab script that performs rainflow cycle counting on a time history per ASTM E 1049-85 (2005). Its supporting function is: progressbar.m

Rainflow counting is also included in the following GUI package.

Matlab script: Vibrationdata Signal Analysis Package

The specific method is ASTM E 1049-85, section 5.4.4, Rainflow Counting. The results of this method for an example are shown in Figure 6 of the ASTM document.

A Fortran version is:  RAINFLOW.F

A C/C++ version is:
rainflow.cpp
rainflow.exe

* * *

Here is a version which outputs the results in a NASGRO long block format:

rainflow_nasgro.cpp
rainflow_nasgro.exe

* * *

These scripts arbit_rainflow.zip calculate the response of a single-degree-of-freedom system to an arbitrary base input time history.

The scripts also have an option for rainflow cycle counting.

arbit_rainflow.m is the main script.

The remaining scripts are supporting functions.

* * *

Here is a script for calculating a damage index from the rainflow results. It is meant for relative comparisons only. fatigue_damage_sum.m

* * *

Maltab Rainflow Fatigue with Signal Processing Toolbox installed

Let x be a set of amplitude points from a response time history.

The Matlab command is:

c=rainflow(x);

The output array c has five columns:   Count, Range, Mean, Start, and End

Only the first two columns are needed for the damage calculation.  The relative damage d can then be calculated for a fatigue exponent b by the following code snippet.  Again, amplitude is one-half of range.

cycles=c(:,1);
amp=c(:,2)/2;
d=sum( cycles.*amp.^b )

* * *

See also:

Basic Rainflow Cycle Counting & Fatigue Damage Spectrum: basic_rainflow_FDS_revA.pptx 

Fatigue Analysis Webinars

A Comparison of the Consecutive Peak and Rainflow Cycle Counting Methods for Cumulative Damage Calculation: Rayleigh_rainflow_study.pdf

Fatigue Damage for a Stress Response PSD

Miner’s Cumulative Fatigue via Rainflow Cycle Counting

Rainflow Counting Tutorial & Alternate Link

Fatigue Damage Spectrum

Dirlik Method for PSDs

Python Rainflow Page

Matlab Mex Example

Enveloping Nonstationary Random Vibration Data

Sine Vibration Rainflow & Fatigue Damage

* * *

– Tom Irvine
Join me at:  LinkedIn

Contact Form: