Introduction to stress_life
Package stress_life contains methods for damage calculations via stress life fatigue concept. Everything needed is accessible from class SN_Curve of the module SN_curve.
SN curve definition
- It is possible to set two slopes of SN curve (low cycle fatique and high cycle fatigue).
- Two types for meanstress sensitivity handling are implemented (see chapter below).
- You can choose the behaviour of the SN curve after reaching the endurance limit.
There are various methods for modifiing the SN curve (shifting, shifting on endurance limit, changing the endurance limit number of cycles, transformation to different R-ratio ...)
1) FMK meanstress influence
- FKM-Guideline specifies various mean stress sensitivity factors depending on the R-ratio of the cycle.
- Four different regimes are distinguished.
2) Goodman meanstress influence
- distinguishes between only two sectios.
- For R > 1 (complete compressive cycle) there is no meanstress influence (same as FKM section I).
- Otherwise constant meanstress factor M is considered.
- Always start with SN curve definition. You can call some modification methods on that SN curve.
- Define a load as numpy array.
- Call some SN_Curve method "compute_D_*(load, ...)" to get the result as pandas DataFrame
import numpy as np import pandas as pd from stress_life import SN_curve # create SN curve sn = SN_curve.SN_Curve(SD=250, S1=500, k1=9, k=5, ND=2e6, M=0.22, R=0.4, meanCorrType="goodman", miner="haibach") # create load (e.g. min and max load, number of cycles, shift factor) load = np.array([[-800, 400, 1, 1.7], [-800, 200, 1, 1.0], [-800, 1000, 1, 0.7]]) # get the Damage in DataFrame object res = sn.compute_D_l1_l2(load) # returns # lower_load upper_load mean amp R amp_R=-1 amp_R=R_SN req_cycles shift_factor D #0 -800.0 400.0 -200.0 600.0 -2.0 556.0 367.400881 1.0 1.7 1.348129e-07 #1 -800.0 200.0 -300.0 500.0 -4.0 434.0 286.784141 1.0 1.0 9.932204e-07 #2 -800.0 1000.0 100.0 900.0 -0.8 922.0 609.251101 1.0 0.7 2.347872e-03