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:
SingleSlopeFatigueCurveDoubleSlopeFatigueCurveSNCurve
Each fatigue curve class exxposes the following methods:
fatigue_curve.N(DS)returns the number of cycles corresponding to the given stress range DSfatigue_curve.DS(N)returns the stress range corresponding to the given number of cycles Nfatigue_curve.damage(n, DS)returns the fatigue damage cumulated by a stress range DS repeated n times
Finally, this module contains a BoltFatigueAnalysis class that brings
it all together and calculates the fatigue damage and the fatigue life of
a bolt, given its FlangeSegment model, fatigue curve and allowable damage.
BoltFatigueAnalysis
dataclass
Fatigue analysis data for a flange bolt
Given a FlangeSegment instance and a MarkovMatrix, creates an
object containing the fatigue analysis results for the segment bolt,
under the given loading.
Args:
-
fseg:FlangeSegmentThe FlangeSegment object for which the fatigue analysis needs to be performed. -
flange_mkvm:MarkovMatrixThe Markov matrix representing the bending moments history on the flange. -
custom_fatigue_curve:FatigueCurve[Optonal] The fatigue curve applicable for the bolt. If omitted, a BoltFatigueCurve instance will be used, based on the flange segment bolt diameter. -
allowable_damage:float[Optional] The maximum allowable fatigue damage. If omitted, it defaults to 1.0.
Attributes:
All the passed arguments are also available as attributes. Plus the following attributes are available.
-
.fatigue_curve:FatigueCurveIt contains the BoltFatigueCurve instance based on the flange segment bolt diameter. Unlesscustom_fatigue_curveis provided, in which case it points to the latter. -
.bolt_mkvm:MarkovMatrixThe markov matrix of the axial+bending stress ranges acting in the bolt due to the.flange_mkvmpassed as parameter. -
.damage:floatThe cumulated damage in the bolt due to the load in.bolt_mkvm. -
.fatigue_life:floatThe fatigue life of the bolt, expressed in the same time units as the.flange_mkvm.durationattribute.
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: |
|
|---|
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: |
|
|---|
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 : MarkvMatrixThis is the load history expressed as a MarkovMatrix object.
Returns:
damage : floatThe 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: |
|
|---|
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 : strThe path of the .mkv file to be read -
unitFactor : floatA scalind factor to be applied to the moment values. Useful for unit conversion. -
duration : floatThe duration of the loads contained in the .mkv file. If omitted, it defaults to 1.
Returns:
markov_matrix : MarkovMatrixThe MarkvoMatrix instance representing the loads contained in the .mkv file.