pyflange.fatigue

Fatigue calculation tools.

This module defines functions and classes to support structural fatigue calculations.

In particular, the module contains the following functions ...

  • markov_matrix_from_SGRE_format(pathFile , unitFactor [optional]) which reads a .mkv file from SGRE as markov matrix and converts in into a pandas dataframe

... and the following FatigueCurve classes:

  • SingleSlopeFatigueCurve
  • DoubleSlopeFatigueCurve
  • SNCurve

Each fatigue curve class exxposes the following methods:

  • fatigue_curve.N(DS) returns the number of cycles corresponding to the given stress range DS
  • fatigue_curve.DS(N) returns the stress range corresponding to the given number of cycles N
  • fatigue_curve.damage(n, DS) returns the fatigue damage cumulated by a stress range DS repeated n times

BoltFatigueCurve

Bases: DoubleSlopeFatigueCurve

Bolt Fatigue Curve according to IEC 61400-6 AMD1.

Given a bolt diameter, creates a DoubleSlopeFatigueCurve having logaritmic slopes m1=3 and m2=5 and change-of-slope at 2 milion cycles and stress range depending on the bolt diameter as specified by IEC 61400-6 AMD1.

Parameters:
  • diameter (float) –

    The bolt diameter in meters.

  • gamma_M (float, default: 1.1 ) –

    The material factor.

Thuis class inherits all the properties and methods of the DoubleSlopeFatigueCurve class.

DoubleSlopeFatigueCurve

Bases: MultiSlopeFatigueCurve

Wöhler curve with double logarithmic slope.

This class implements the FatigueCurve interface for a curve with two slopes m1 and m2.

Parameters:
  • m1 (float) –

    The logarithmic slope of the lower cycle values.

  • m2 (float) –

    The logarithmic slope of the higher cycle values.

  • DS12 (float) –

    The stress range where the two branches of the curve meet.

  • N12 (float) –

    The number of cycles to failure corresponding to DS12.

All the constructor parameters are also available as instance attributes (i.e. scn.m1, snc.m2, snc.DS12, snc.N12).

This class implements all the methods of FatigueCurve.

FatigueCurve

A Wöhler curve.

This is a base class for creating Wohler curves. It is not supposed to be instantiated directly.

DS(N)

Stress range.

Given a number of cycles, this function return the corresponding stress range that produce a fatigue failure.

N(DS)

Number of cycles.

Given a stress range DS, this function return the corresponding number of cycles that produce a fatigue failure.

cumulated_damage(markov_matrix)

Cumulated damage according to the Miner's rule

Args:

  • markov_matrix : MarkvMatrix This is the load history expressed as a MarkovMatrix object.

Returns:

  • damage : float The cumulated fatigue damage produced in the detail represented by t his fatigue curve, under the load history represented by the passed Markov matrix.

damage(n, DS)

Fatigue damage.

Given a number of cycles n and a stress range DS, this function returns the dorresponding fatigue damage (D = n / N(DS)).

MarkovMatrix dataclass

A Markov Matrix

This class represents a load history in the form of a Markov Matrix. The 'load' can be expressed in terms of moments, forces, stresses, etc.

This is a dataclass, therefore the following constructor parameters are also reflected as attributes:

  • range : np.ndarray
    Array of stress ranges (or load ranges in general)

  • mean : np.ndarray
    Array of mean stress values (or load values in general)

  • cycles : np.ndarray
    Array of cycles corresponding to each load value

  • duration: float
    Duration of the load history. If omitted, it defaults to 1.

MultiSlopeFatigueCurve

Bases: FatigueCurve

Multi-Slope Fatigue Curve.

This class is a FatigueCurve with multiple slopes. It takes any number of SingleSlopeFatigueCurve objects as arguments.

SingleSlopeFatigueCurve dataclass

Bases: FatigueCurve

Wöhler curve with single logarithmic slope.

This class implements the FatigueCurve interface for a curve with single slope m.

Parameters:
  • m (float) –

    The logarithmic slope of the fatigue curve.

  • DS_ref (float) –

    Arbitrary reference stress range.

  • N_ref (float) –

    The number of cycles that produce failure under the stress range D_ref.

All the constructor parameters are also available as instance attributes (i.e. scn.m, snc.DS_ref, snc.N_ref).

This class implements all the methods of FatigueCurve.

markov_matrix_from_SGRE_format(pathFile, unitFactor=1000.0, duration=1)

Reads a .mkv file into a pandas.DataFrame object.

Reads a Markov matrix from a SGRE .mkv file and converts in into a MarkvoMatrix object.

Arguments:

  • pathFile : str The path of the .mkv file to be read

  • unitFactor : float A scalind factor to be applied to the moment values. Useful for unit conversion.

  • duration : float The duration of the loads contained in the .mkv file. If omitted, it defaults to 1.

Returns:

  • markov_matrix : MarkovMatrix The MarkvoMatrix instance representing the loads contained in the .mkv file.