【开发BS标准对钢焊接结构疲劳寿命评估的Python代码】

基于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标准评估钢结构焊缝疲劳的代码(在等幅应力循环下),以供大家参考。由于笔者水平有限,如有错误指出,欢迎各位大神批评指正。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值