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
orpandas.DataFrame
) – The five segment meanstress slope data.
Notes
five_segment_hagih_diagram
has to provide the following keys:M0
: the mean stress sensitivity betweenR==-inf
andR==0
M1
: the mean stress sensitivity betweenR==0
andR==R12
M2
: the mean stress sensitivity betwennR==R12
andR==R23
M3
: the mean stress sensitivity betweenR==R23
andR==1
M4
: the mean stress sensitivity beyondR==1
R12
: R-value betweenM1
andM2
R23
: R-value betweenM2
andM3
- 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.
- 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:
- 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