The sn_curve
module¶
-
class
pylife.strength.sn_curve.
FiniteLifeBase
(k_1, SD_50, ND_50)[source]¶ Base class for SN curve calculations - either in logarithmic or regular scale
-
k_1
¶
-
-
class
pylife.strength.sn_curve.
FiniteLifeCurve
(k_1, SD_50, ND_50)[source]¶ Sample points on the finite life curve - either N or S (NOT logarithmic scale)
The formula for calculation is taken from “Betriebsfestigkeit”, Haibach, 3. Auflage 2006
Consider: load collective and life curve have to be consistent:
- range vs range
- amplitude vs amplitude
Parameters: - k (float) – slope of the SN-curve
- SD_50 (float) – lower stress limit in the finite life region
- ND_50 (float) – number of cycles at stress SD_50
-
calc_N
(S, ignore_limits=False)[source]¶ Calculate number of cycles N for a given stress S
Parameters: - S (array like) – Stress (point(s) on the SN-curve)
- ignore_limits (boolean) – ignores the upper limit of the number of cycles generally it should be smaller than ND_50 (=the limit of the finite life region) but some special evaluation methods (e.g. according to marquardt2004) require extrapolation to estimate an equivalent stress
Returns: N – number of cycles corresponding to the given stress value (point on the SN-curve)
Return type: array like
-
calc_S
(N, ignore_limits=True)[source]¶ Calculate stress S for a given number of cycles N
Parameters: - N (float) – number of cycles
- ignore_limits (boolean) – ignores the upper limit of the number of cycles generally it should be smaller than ND_50 (=the limit of the finite life region) but some special evaluation methods (e.g. according to marquardt2004) require extrapolation to estimate an equivalent stress
Returns: S – stress corresponding to the given number of cycles (point on the SN-curve)
Return type: float
-
calc_damage
(loads, method='elementar', index_name='range')[source]¶ - Calculate the damage based on the methods
- Miner elementar (k_2 = k)
- Miner Haibach (k_2 = 2k-1)
- Miner original (k_2 = -inf)
Consider: load collective and life curve have to be consistent:
- range vs range
- amplitude vs amplitude
Parameters: - loads (pandas series histogram) – loads (index is the load, column the cycles)
- method (str) –
- ‘elementar’: Miner elementar (k_2 = k)
- ’MinerHaibach’: Miner Haibach (k_2 = 2k-1)
- ’original’: Miner original (k_2 = -inf)
Returns: damage – damage for every load horizont based on the load collective and the method
Return type: pd.DataFrame
-
class
pylife.strength.sn_curve.
FiniteLifeLine
(k, SD_50, ND_50)[source]¶ Sample points on the finite life line - either N or S (LOGARITHMIC SCALE)
The formula for calculation is taken from “Betriebsfestigkeit”, Haibach, 3. Auflage 2006
Notes
In contrast to the case
Parameters: - k (float) – slope of the SN-curve
- SD_50 (float) – lower stress limit in the finite life region
- ND_50 (float) – number of cycles at stress SD_50
-
calc_N_log
(S_log, ignore_limits=False)[source]¶ Calculate number of cycles N_log for a given stress S_log
Parameters: - S_log (float) – logarithmic stress (point on the SN-curve)
- ignore_limits (boolean) – ignores the upper limit of the number of cycles generally it should be smaller than ND_50_log (=the limit of the finite life region) but some special evaluation methods (e.g. according to marquardt2004) require extrapolation to estimate an equivalent stress
Returns: N_log – logarithmic number of cycles corresponding to the given stress value (point on the SN-curve)
Return type: float
-
calc_S_log
(N_log, ignore_limits=False)[source]¶ Calculate stress logarithmic S_log for a given number of cycles N_log
Parameters: - N_log (float) – logarithmic number of cycles
- ignore_limits (boolean) – ignores the upper limit of the number of cycles generally it should be smaller than ND_50 (=the limit of the finite life region) but some special evaluation methods (e.g. according to marquardt2004) require extrapolation to estimate an equivalent stress
Returns: S_log – logarithmic stress corresponding to the given number of cycles (point on the SN-curve)
Return type: float