1. 计算方法
疲劳强度试验也称作疲劳极限试验、强度试验或响应试验,其目标是预估在给定高周疲劳寿命条件下疲劳强度的统计分布。在众多疲劳强度试验方法中,阶梯法(通常被称为上下法)是一种最常用的方法,已被许多标准所采纳,如英国标准协会({[4]})、日本机械工程师协会()、法国标准化委员会(L’association Francaise de Normalisation)({[22]})和美国金属粉末工业联合会(MPIF)(),用于预估疲劳极限的统计特性。
在疲劳强度试验中,首先必须预估平均疲劳极限。然后,在略高于预估平均应力的应力水平下进行疲劳寿命试验。如果试样在该应力水平的疲劳寿命之前发生失效,下一个试样必须在较低应力水平下进行试验。如果试样在这一应力水平的疲劳寿命之内没有发生失效,新的试验必须在较高应力水平下进行。因此,每个试验取决于上一个试验的结果,并且通过增加或降低应力水平继续进行试验。这个过程如图4.7所示。柯林斯(Collins)1993年建议,进行试验至少需要15个试样。应力增量通常低于平均疲劳极限初期预估值的5%左右(^{[3]})。
迪克森–姆德(Dixon – Mood)和张–凯塞西奥格鲁(Zhang – Kececioglu)分别在1948年和1998年推出了两种典型的数据简化方法({[6][54]}),用于确定试验结果的统计参数。关于这两种方法的讨论(),在其它参考文献中张–凯塞西奥格鲁提出,采用极大似然估计法或终止项分析法进行统计分析。迪克逊–姆德法是根据极大似然估计法推导出的,并假设疲劳极限非常符合正态分布。前一种方法具有将试验数据与非正态分布进行拟合的灵活性,并且可以用于可变的应力梯级。后一种方法易于使用,其结果通常较为保守。因而,这是本章研究的重点。
迪克逊–姆德提供了用于计算疲劳极限((S_{\mathrm{s}}))平均数((\mu_{\mathrm{s}}))和标准差((\sigma_{\mathrm{s}}))的近似公式。这种方法假设疲劳极限服从正态分布,需要利用小概率事件数据来确定这两个统计特性(例如,或是只有失效,或是只有存活率)。将以所选增量(d)等距隔开的应力水平(S_i)编号为(i),其中,在最低应力水平(S_0)时(i = 0)。应力增量应在疲劳极限两倍标准差的一半范围内。
在编号应力水平(i)上的小概率事件数用(n_{\mathrm{DM},i})来表示,可以计算出(A_{\mathrm{DM}})和(B_{\mathrm{DM}})两个量:
则预估的平均值为
式中,若小概率事件是存活率,则采用加号((+)),若小概率事件是失效,则采用减号((-))。
标准差采用下式预估:
如果(\frac{B_{\mathrm{DM}} \sum n_{\mathrm{DM},i} - A_{\mathrm{DM}}^2}{(\sum n_{\mathrm{DM},i})^2} \geqslant 0.3),
或者,如果(\frac{B_{\mathrm{DM}} \sum n_{\mathrm{DM},i} - A_{\mathrm{DM}}^2}{(\sum n_{\mathrm{DM},i})^2} < 0.3),
根据正态分布的平均值(\mu_{\mathrm{s}})和标准差(\sigma_{\mathrm{s}}),利用单侧下界公差极限(K)系数可以确定与可靠性和置信水平相关的下界值(^{[24]}):
式中,正态分布单侧公差极限的(K)系数在表4.6和表4.7中列出。下界限疲劳极限(S_{\mathrm{s,R,C}})意味着,置信水平(C%)和存活率(R%)的试验疲劳极限预计会超过(S_{\mathrm{s,R,C}})。
表4.6 正态分布单侧下界公差极限的(K)系数(^{[24]})
| (C) | 0.75 | 0.90 |
|---|---|---|
| (R) | 0.75 0.90 0.95 0.99 0.999 | 0.75 0.90 0.95 0.99 0.999 |
| (n) | ||
| 3 | 1.464 2.501 3.152 4.396 5.805 | 2.602 4.258 5.310 7.340 9.651 |
| 4 | 1.256 2.134 2.680 3.726 4.910 | 1.972 3.187 3.967 5.437 7.128 |
2.数据案例
2.1 例4.5
根据图4.7所示的阶梯试验结果,确定疲劳极限统计特性及其R95C90值。图4.7中的黑点和圆圈分别表示,在(107)次循环之前失效和在(107)次循环处终止的试验数据。
解:本例分析中采用了存活率,因为它们是这些结果的小概率事件。因此,
根据方程(4.2.25)和方程(4.2.26),可以获得
根据方程(4.2.27),
由于
可以根据方程(4.2.28),对标准差估算如下:
因此,估算的疲劳耐久性强度平均值和标准差分别是(401.7\mathrm{MPa})和(19.7\mathrm{MPa})。
假设疲劳极限服从正态分布,采用单侧下界公差极限方法,可以求出R95C90疲劳极限值:
式中:(K)为2.448,由表4.6中利用(n_{\mathrm{t}} = 12)查得。因此,
2.2 例4.6(应用)
图4.8所示的为一个汽车进气门系统,包括凸轮、从动件、长推杆、摇臂和气门弹簧。进气门摇臂由SAE 1008热轧钢制成,表面粗糙度为(1.1\mu\mathrm{m})。材料的洛氏硬度((RB))范围为50~70。检验摇臂的耐久性准则。这意味着,(10^7)次循环时的R90C90疲劳强度应超过最大工作载荷与一个安全系数的乘积。假设在本例中所采用安全系数为1.3。
采用(R = 0)的循环加载方式,对摇臂进行(10^7)次循环疲劳强度的阶梯(或上下)疲劳试验。将试验装置设计成三级转换形式,即从气门顶端持续承受循环载荷,然后迫使枢轴和推杆运动。气门顶端循环载荷从零到特定的最大载荷之间变化。图4.9示出了阶梯试验的结果,图4.10示出了气门顶端载荷计算值((N))相对于发动机转速((r/\mathrm{min}))的变化。
(1)采用迪克逊–姆德方法,分析(10^7)次循环时阶梯疲劳试验的统计疲劳强度。
(2)采用单侧下界公差极限方法,确定(10^7)次循环时的R90C90疲劳强度。
(3)计算安全系数,检验摇臂设计是否满足耐久性目标。
解:鉴于试件存活的数量小于失效的数量,故而对存活试件进行计数:
(1)求解疲劳极限的平均值,
式中:(A_{\mathrm{DM}} = \sum (i)(n_i)),(\mu_{\mathrm{s}} =)在一个给定寿命时的平均疲劳强度;(P_0 =)小概率事件发生时的最低载荷水平;(P_{\mathrm{d}} =)载荷增量;(n_{\mathrm{DM},i} =)编号为(i)应力水平时的小概率事件数。
需要注意的是,如果小概率事件是存活率则使用加号,如果小概率事件是失效则使用减号。
(2)求解疲劳极限的标准差,
由于(1.42 > 0.3),(\sigma_{\mathrm{s}} = 1.62P_{\mathrm{d}}\left(\frac{B_{\mathrm{DM}} \sum n_{\mathrm{DM},i} - A_{\mathrm{DM}}^2}{(\sum n_{\mathrm{DM},i})^2} + 0.029\right))
(3)利用单侧下界公差极限法和表4.6中的(n = 15),确定在(10^7)次循环时的R90C90疲劳强度:
(4)计算安全系数,检验摇臂设计是否满足目标:
带入(P_{\max} = 8000\mathrm{N})
3.编程计算
4.附录
4.3 完整程序
import mathdef calculate_fatigue_properties(lowest_level, increment, n_list, is_survival=True):"""基于迪克森-姆德法计算疲劳极限统计特性:param lowest_level: 最低应力/载荷水平(S0或P0):param increment: 应力/载荷增量(d或Pd):param n_list: 各水平小概率事件数列表(索引对应i值):param is_survival: 是否为存活率(True=存活率,False=失效数):return: 平均值、标准差"""sum_n = sum(n_list)# 计算A_DM和B_DMA_DM = 0B_DM = 0for i, n in enumerate(n_list):A_DM += i * nB_DM += (i ** 2) * n# 计算平均值sign = 0.5 if is_survival else -0.5mean = lowest_level + increment * (A_DM / sum_n + sign)# 计算标准差numerator = B_DM * sum_n - A_DM ** 2denominator = sum_n ** 2ratio = numerator / denominatorif ratio >= 0.3:std = 1.62 * increment * (ratio + 0.029)else:std = 0.53 * incrementreturn mean, std, A_DM, B_DMdef get_k_coefficient(sample_size, reliability, confidence):"""从表4.6获取K系数(仅包含案例所需数值,可扩展完整表格):param sample_size: 样本量(sum_n):param reliability: 存活率(如0.95、0.90):param confidence: 置信水平(如0.90):return: K系数"""# 表4.6关键数据映射(n: {置信度: {存活率: K值}})k_table = {12: {0.90: {0.95: 2.448}}, # 例4.5所需:n=12, C=0.90, R=0.9515: {0.90: {0.90: 1.866}} # 例4.6所需:n=15, C=0.90, R=0.90}return k_table[sample_size][confidence][reliability]def calculate_lower_bound(mean, std, k):"""计算单侧下界疲劳强度(S_s,R,C 或 P_R90C90)"""return mean - k * std# ---------------------- 例4.5 计算 ----------------------
print("="*50)
print("例4.5 计算结果")
print("="*50)
# 例4.5参数:S0=360MPa,d=20MPa,各i对应的n值(i=0到4)
n_list_45 = [1, 4, 6, 1, 0] # i=0到4的n_DM,i
S0_45 = 360
d_45 = 20
sum_n_45 = sum(n_list_45)# 计算平均值和标准差
mean_45, std_45, A_45, B_45 = calculate_fatigue_properties(S0_45, d_45, n_list_45, is_survival=True)
print(f"A_DM = {A_45}, B_DM = {B_45}")
print(f"疲劳极限平均值μ_s = {mean_45:.2f} MPa")
print(f"疲劳极限标准差σ_s = {std_45:.2f} MPa")# 计算R95C90值(存活率95%,置信水平90%)
k_45 = get_k_coefficient(sum_n_45, 0.95, 0.90)
lower_bound_45 = calculate_lower_bound(mean_45, std_45, k_45)
print(f"R95C90疲劳极限 = {lower_bound_45:.2f} MPa")# ---------------------- 例4.6 计算 ----------------------
print("\n" + "="*50)
print("例4.6 计算结果")
print("="*50)
# 例4.6参数:P0=14500N,Pd=400N,各i对应的n值(i=0到4)
n_list_46 = [3, 4, 4, 3, 1] # i=0到4的n_DM,i
P0_46 = 14500
Pd_46 = 400
sum_n_46 = sum(n_list_46)
P_max_46 = 8000 # 最大工作载荷
safety_factor_req = 1.3 # 要求的安全系数# 计算平均值和标准差
mean_46, std_46, A_46, B_46 = calculate_fatigue_properties(P0_46, Pd_46, n_list_46, is_survival=True)
print(f"A_DM = {A_46}, B_DM = {B_46}")
print(f"疲劳载荷平均值μ_s = {mean_46:.2f} N")
print(f"疲劳载荷标准差σ_s = {std_46:.2f} N")# 计算R90C90值(存活率90%,置信水平90%)
k_46 = get_k_coefficient(sum_n_46, 0.90, 0.90)
lower_bound_46 = calculate_lower_bound(mean_46, std_46, k_46)
print(f"R90C90疲劳载荷 = {lower_bound_46:.2f} N")# 计算安全系数
safety_factor = lower_bound_46 / P_max_46
print(f"实际安全系数 = {safety_factor:.2f}")
print(f"是否满足设计要求(≥{safety_factor_req}): {'是' if safety_factor >= safety_factor_req else '否'}")