The meanstress module

Meanstress routines

Mean stress transformation methods

  • FKM Goodman

  • Five Segment Correction

class pylife.strength.meanstress.HaighDiagram(pandas_obj)[source]

Model for a Haigh diagram in order to perform meanstress transformations.

A Haigh diagram a set of meanstress sensitivity slopes $M$ that is changing with the R-values. The values of the `pd.Series represents that slopes $M$ and the pd.IntervalIndex represents the R-ranges.

classmethod five_segment(five_segment_haigh_diagram)[source]

Create a five segment slope Haigh diagram.

Parameters:

five_segment_haigh_diagram (pandas.Series or pandas.DataFrame) – The five segment meanstress slope data.

Notes

five_segment_hagih_diagram has to provide the following keys:
  • M0: the mean stress sensitivity between R==-inf and R==0

  • M1: the mean stress sensitivity between R==0 and R==R12

  • M2: the mean stress sensitivity betwenn R==R12 and R==R23

  • M3: the mean stress sensitivity between R==R23 and R==1

  • M4: the mean stress sensitivity beyond R==1

  • R12: R-value between M1 and M2

  • R23: R-value between M2 and M3

classmethod fkm_goodman(haigh_fkm_goodman)[source]

Create a Haigh diagram according to FKM Goodman.

Parameters:
  • haigh_fkm_goodman (pd.Series or pd.DataFrame) – a series containing one or a dataframe containing multiple values for M and optionally M2.

  • M (The Haigh diagram according to FKM Goodman comes with the slope) –

  • slope (which is valid between R==-inf and R==0. Beyond R==0 the) –

  • not. (is M2` if ``M2 is given or M/3 if) –

classmethod from_dict(segments_dict)[source]

Create a Haigh diagram from a dict.

Parameters:

segments_dict (dict) – dict resolving the R-value intervals to the meanstress slope

Example

>>> hd = MST.HaighDiagram.from_dict({
>>>    (1.0, np.inf): 0.0,
>>>    (-np.inf, 0.0): 0.5,
>>>    (0.0, 1.0): 0.167
>>> })

sets up a FKM Goodman like Haigh diagram.

transform(cycles, R_goal)[source]

Transform a load collective to defined R-value.

Parameters:

cycles (pd.Series accepted by class:LoadCollective` or class:`LoadHistogram) – The load collective

Returns:

transformed_cycles – The transformed cycles

Return type:

pd.Series

class pylife.strength.meanstress.MeanstressTransformCollective(pandas_obj)[source]
five_segment(haigh, R_goal)[source]
fkm_goodman(ms_sens, R_goal)[source]
class pylife.strength.meanstress.MeanstressTransformMatrix(pandas_obj)[source]
fkm_goodman(haigh, R_goal)[source]
pylife.strength.meanstress.experimental_mean_stress_sensitivity(sn_curve_R0, sn_curve_Rn1, N_c=inf)[source]

Estimate the mean stress sensitivity from two FiniteLifeCurve objects for the same amount of cycles N_c.

The formula for calculation is taken from: “Betriebsfestigkeit”, Haibach, 3. Auflage 2006

Formula (2.1-24):

\[M_{\sigma} = {S_a}^{R=-1}(N_c) / {S_a}^{R=0}(N_c) - 1\]

Alternatively the mean stress sensitivity is calculated based on both SD values (if N_c is not given).

Parameters:
  • sn_curve_R0 (pylife.strength.sn_curve.FiniteLifeCurve) – Instance of FiniteLifeCurve for R == 0

  • sn_curve_Rn1 (pylife.strength.sn_curve.FiniteLifeCurve) – Instance of FiniteLifeCurve for R == -1

  • N_c (float, (default=np.inf)) – Amount of cycles where the amplitudes should be compared. If N_c is higher than a fatigue transition point (ND) for the SN-Curves, SD is taken. If N_c is None, SD values are taken as stress amplitudes instead.

Returns:

Mean stress sensitivity M_sigma

Return type:

float

Raises:

ValueError – if the resulting M_sigma doesn’t lie in the range from 0 to 1 a ValueError is raised, as this value would suggest higher strength with additional loads.

pylife.strength.meanstress.five_segment_correction(amplitude, meanstress, M0, M1, M2, M3, M4, R12, R23, R_goal)[source]
Performs a mean stress transformation to R_goal according to the

Five Segment Mean Stress Correction

Parameters:
  • Sa – the stress amplitude

  • Sm – the mean stress

  • Rgoal – the R-value to transform to

  • M – the mean stress sensitivity between R=-inf and R=0

  • M1 – the mean stress sensitivity between R=0 and R=R12

  • M2 – the mean stress sensitivity betwenn R=R12 and R=R23

  • M3 – the mean stress sensitivity between R=R23 and R=1

  • M4 – the mean stress sensitivity beyond R=1

  • R12 – R-value between M1 and M2

  • R23 – R-value between M2 and M3

Returns:

the transformed stress range

pylife.strength.meanstress.fkm_goodman(amplitude, meanstress, M, M2, R_goal)[source]