In real world the fatigue loading is very complex. A given half cycle may contain smaller half cycles. As a general rule, large stress cycles must not be fragmented into smaller ones as this will lead to underestimation of fatigue damage. Smaller stress cycles should be treated as temporary interruptions of larger stress reversals. The **rainflow counting algorithm** (also known as the “rainflow counting method”) is used in the analysis of fatigue data in order to reduce a spectrum of varying stress into a set of simple stress reversals. Its importance is that it allows the application of Miner’s rule in order to assess the fatigue life of a structure subject to complex loading. The algorithm was developed by Tatsuo Endo and M. Matsuishi in 1968. Downing and Socie created one of the more widely referenced and utilized rainflow cycle-counting algorithms in 1982, which was included as one of many cycle-counting algorithms in ASTM E 1049-85 (Standard Practices for Cycle Counting in Fatigue Analysis). Igor Rychlik gave a mathematical definition for the rainflow counting method, thus enabling closed-form computations from the statistical properties of the load signal.

For simple periodic loadings, such as Figure 1, rainflow counting is unnecessary. That sequence clearly has 10 cycles of amplitude 10 MPa and a structure’s life can be estimated from a simple application of the relevant S-N curve.

Figure 1: Uniform alternating loading

Compare this with Figure 2 which cannot be assessed in terms of simply-described stress reversals.

Figure 2: Spectrum loading

## Rainflow Counting Algorithm

- Reduce the time history to a sequence of (tensile) peaks and (compressive) valleys.
- Imagine that the time history is a template for a rigid sheet like a pagoda roof.
- Turn the sheet clockwise 90° (earliest time to the top), and now it looks like a pagoda roof (Figure 3).
- Each
*tensile peak*is imagined as a source of water that “drips” down the pagoda. - Count the number of half-cycles by looking for terminations in the flow occurring when either:
- It reaches the end of the time history;
- It merges with a flow that started at an earlier
*tensile peak*; or - It flows when an opposite
*tensile peak*has greater magnitude.

- Repeat step 5 for
*compressive valleys*. - Assign a magnitude to each half-cycle equal to the stress difference between its start and termination.
- Pair up half-cycles of identical magnitude (but opposite sense) to count the number of complete cycles. Typically, there are some residual half-cycles.

Figure 3: Pagoda roof

## Rainflow Counting Example

- The stress history in Figure 2 is reduced to peaks and valleys in Figure 4.
- Half-cycle (A) starts at tensile peak (1) and terminates opposite a greater tensile stress, peak (2); its magnitude is 16 MPa.
- Half-cycle (B) starts at tensile peak (4) and terminates where it is interrupted by a flow from an earlier peak, (3); its magnitude is 17 MPa.
- Half-cycle (C) starts at tensile peak (5) and terminates at the end of the time history.
- Similar half-cycles are calculated for compressive stresses (Figure 5) and the half-cycles are then matched.

Figure 4: Rainflow for tensile peaks

Figure 5: Rainflow for compressive valleys

The results are summarized in the following table:

Stress (MPa) | Whole cycles | Half cycles |

10 | 2 | 0 |

13 | 0 | 1 |

16 | 0 | 2 |

17 | 0 | 2 |

19 | 1 | 0 |

20 | 0 | 1 |

22 | 0 | 1 |

24 | 0 | 1 |

27 | 0 | 1 |

## ASTM E1049-85 (2017) Rainflow Counting Example

Figure 6: Rainflow Counting Example