基于BS标准对焊接结构疲劳寿命预测:使用Python软件编写钢结构在等幅应力循环下疲劳寿命预测代码。
前言
本文通过使用Python软件,编写了钢结构在BS标准下的疲劳寿命评估代码(等幅应力循环作用下)。可通过选取疲劳等级和输入焊缝评估点位置的第一主应力值,直接得出该评估点在置信区间分别在0σ,-2σ,-3σ时的疲劳寿命。
一、英国BS标准的名义应力法
BS 7608标准是英国《钢结构抗疲劳设计与评估》,该标准起初是英国焊接研究所在Gurney博士的带领下,为了评估焊接接头的质量进行的一系列实验,从而通过疲劳试验判断焊接质量属于哪一等级而开展的。后来这些疲劳实验数据应用到土木工程。汽车工业等领域钢结构的疲劳评估。由于它对焊接结构的疲劳评估规定得比较详细,1993年上升为英国标准。
二、BS标准评估步骤
使用BS评估疲劳寿命时,可以按以下步骤执行。
首先,根据需要被评估的焊接接头的几何形状,以及外部可能施加的疲劳载荷的作用方向这这两个因素,选取最佳的焊接接头。
然后通过查看BS标准中给出的基本S-N曲线的数据进行选择计算。
使用Python进行编程,也遵循上述流程。该代码可评估焊缝等级从B级到T级。
代码如下:
def main():
while True:
menum()
answer = input('您确定要退出吗?y/n')
if answer == 'y' or answer=='Y':
print('感谢使用')
break
else:
continue
print('=================等幅应力循环下的名义应力法疲劳寿命评估=================')
print('----------------------------接头等级------------------------------')
def menum():
import math
def calc(a, b, c, d, e):
rt = math.log(a, 10) - b * c - d * math.log(e, 10)
result = 10 ** rt
return result
A = input('请输入接头类型(B,C,D,E,F,F2,G,W,S,T)')
C = float(input('请输入第一主应力p1:'))
if A == 'F':
C0 = 1.726 * 10 ** 12
logC0 = 12.2370
m1 = 3.0
m2 = 5.0
logxgm = 0.2183
C2 = 0.63 * 10 ** 12
N = 40
d1 = 0
d2 = 2
d3 = 3
X1 = calc(C0, d1, logxgm, m1, C)
X2 = calc(C0, d2, logxgm, m1, C)
X3 = calc(C0, d3, logxgm, m1, C)
print('置信区间为0时循环次数为:',X1)
print('置信区间为-2时循环次数为:', X2)
print('置信区间为-3时循环次数为:', X3)
elif A == 'F2':
C0 = 1.231 * 10 ** 12
logC0 = 12.09
m = 3.0
logxgm = 0.2279
C2 = 0.43 * 10 ** 12
N = 35
d1 = 0
d2 = 2
d3 = 3
X1 = calc(C0, d1, logxgm, m, C)
X2 = calc(C0, d2, logxgm, m, C)
X3 = calc(C0, d3, logxgm, m, C)
print('置信区间为0时循环次数为:', X1)
print('置信区间为-2时循环次数为:', X2)
print('置信区间为-3时循环次数为:', X3)
elif A == 'E':
C0 = 3.289 * 10 ** 12
logC0 = 12.5169
m = 3.0
logxgm = 0.2509
C2 = 1.04 * 10 ** 12
N = 47
d1 = 0
d2 = 2
d3 = 3
X1 = calc(C0, d1, logxgm, m, C)
X2 = calc(C0, d2, logxgm, m, C)
X3 = calc(C0, d3, logxgm, m, C)
print('置信区间为0时循环次数为:', X1)
print('置信区间为-2时循环次数为:', X2)
print('置信区间为-3时循环次数为:', X3)
elif A == 'D':
C0 = 3.988 * 10 ** 12
logC0 = 12.6007
m = 3.0
logxgm = 0.2095
C2 = 1.52 * 10 ** 12
N = 53
d1 = 0
d2 = 2
d3 = 3
X1 = calc(C0, d1, logxgm, m, C)
X2 = calc(C0, d2, logxgm, m, C)
X3 = calc(C0, d3, logxgm, m, C)
print('置信区间为0时循环次数为:', X1)
print('置信区间为-2时循环次数为:', X2)
print('置信区间为-3时循环次数为:', X3)
elif A == 'C':
C0 = 1.082 * 10 ** 14
logC0 = 14.0342
m = 3.5
logxgm = 0.2041
C2 = 4.23 * 10 ** 13
N = 78
d1 = 0
d2 = 2
d3 = 3
X1 = calc(C0, d1, logxgm, m, C)
X2 = calc(C0, d2, logxgm, m, C)
X3 = calc(C0, d3, logxgm, m, C)
print('置信区间为0时循环次数为:', X1)
print('置信区间为-2时循环次数为:', X2)
print('置信区间为-3时循环次数为:', X3)
elif A == 'B':
C0 = 2.343 * 10 ** 15
logC0 = 15.3697
m = 4.0
logxgm = 0.1821
C2 = 1.01 * 10 ** 15
N = 100
d1 = 0
d2 = 2
d3 = 3
X1 = calc(C0, d1, logxgm, m, C)
X2 = calc(C0, d2, logxgm, m, C)
X3 = calc(C0, d3, logxgm, m, C)
print('置信区间为0时循环次数为:', X1)
print('置信区间为-2时循环次数为:', X2)
print('置信区间为-3时循环次数为:', X3)
elif A == 'G':
C0 = 0.566 * 10 ** 12
logC0 = 11.7525
m = 3.0
logxgm = 0.1793
C2 = 0.25 * 10 ** 12
N = 29
d1 = 0
d2 = 2
d3 = 3
X1 = calc(C0, d1, logxgm, m, C)
X2 = calc(C0, d2, logxgm, m, C)
X3 = calc(C0, d3, logxgm, m, C)
print('置信区间为0时循环次数为:', X1)
print('置信区间为-2时循环次数为:', X2)
print('置信区间为-3时循环次数为:', X3)
elif A=='W':
C0 = 0.368 * 10 ** 12
logC0 = 11.5662
m = 3.0
logxgm = 0.1846
C2 = 0.16 * 10 ** 12
N = 25
d1 = 0
d2 = 2
d3 = 3
X1 = calc(C0, d1, logxgm, m, C)
X2 = calc(C0, d2, logxgm, m, C)
X3 = calc(C0, d3, logxgm, m, C)
print('置信区间为0时循环次数为:', X1)
print('置信区间为-2时循环次数为:', X2)
print('置信区间为-3时循环次数为:', X3)
elif A=='S':
C0 = 2.13 * 10 ** 23
logC0 = 23.3284
m = 8.0
logxgm = 0.5045
C2 = 2.08 * 10 ** 22
N = 82
d1 = 0
d2 = 2
d3 = 3
X1 = calc(C0, d1, logxgm, m, C)
X2 = calc(C0, d2, logxgm, m, C)
X3 = calc(C0, d3, logxgm, m, C)
print('置信区间为0时循环次数为:', X1)
print('置信区间为-2时循环次数为:', X2)
print('置信区间为-3时循环次数为:', X3)
elif A=='T':
C0 = 4.577 * 10 ** 12
logC0 = 12.6606
m = 3.0
logxgm = 0.2484
C2 = 1.46 * 10 ** 12
N = 53
d1 = 0
d2 = 2
d3 = 3
X1 = calc(C0, d1, logxgm, m, C)
X2 = calc(C0, d2, logxgm, m, C)
X3 = calc(C0, d3, logxgm, m, C)
print('置信区间为0时循环次数为:', X1)
print('置信区间为-2时循环次数为:', X2)
print('置信区间为-3时循环次数为:', X3)
else:
print('请重新输入接头类型')
if __name__ == '__main__':
main()
总结
以上是笔者使用Python对BS标准评估钢结构焊缝疲劳的代码(在等幅应力循环下),以供大家参考。由于笔者水平有限,如有错误指出,欢迎各位大神批评指正。