第三节 疲劳载荷与循环:载荷类型、循环计数法与载荷谱编制

各位工程师朋友,咱们今天聊聊疲劳分析里最基础、也最容易被忽视的一块——载荷。说实话,我见过太多人一上来就拿着有限元结果算寿命,结果载荷谱都没搞清楚,算出来的数字能信吗?

疲劳分析说白了就三件事:搞清楚结构受什么力、怎么数循环、怎么编谱。这三步走对了,后面的寿命预测才有意义。

3.1 载荷类型:恒幅、变幅与随机

先说说载荷的分类。我习惯把载荷分成三类,你想想看,你手头的产品属于哪一种?

3.1.1 恒幅载荷

恒幅载荷,就是每个循环的应力幅值都一样。比如一个旋转轴,转速恒定,载荷稳定,那它受到的弯曲应力就是恒幅的。

典型特征:应力比 R 恒定,最大应力 σ_max 和最小应力 σ_min 在每个循环中保持不变。

恒幅载荷在实验室里最容易模拟,但实际工程中很少见。我记得有一次做风电塔筒的疲劳分析,客户说"载荷是恒幅的",我一查数据,好家伙,风速变化那么大,哪来的恒幅?

3.1.2 变幅载荷

变幅载荷,就是幅值在变化,但变化有规律。比如起重机起吊不同重量的货物,每个工作循环的载荷大小不同,但模式是重复的。

变幅载荷的典型代表是载荷块——比如一个飞行起落循环,包含起飞、巡航、降落,每个阶段的载荷不同,但每次飞行都差不多。

3.1.3 随机载荷

随机载荷最麻烦,幅值和频率都在随机变化。比如汽车在颠簸路面行驶,海浪对船体的冲击,这些都属于随机载荷。

注意:随机载荷不能用简单的幅值统计来描述,必须用功率谱密度(PSD)或雨流计数法来处理。我曾经有个项目,直接用均方根值代替随机载荷,结果寿命预测偏差了3倍多。

3.2 循环计数法:雨流法

说到循环计数,雨流法(Rainflow Counting)是业界标准。为什么叫雨流?你想象一下雨水从屋顶流下来,遇到屋檐就滴落——这个算法就是模拟这个过程的。

3.2.1 雨流法的核心思想

雨流法要解决什么问题?说白了,就是把一个复杂的载荷-时间历程,拆解成一个个完整的应力循环。每个循环包含一个峰和一个谷,对应一个幅值和均值。

我刚开始学的时候,觉得这算法挺玄乎。后来自己手算了几次,发现其实逻辑很清晰:

  1. 旋转坐标系:把时间轴竖起来,想象雨水从每个峰顶往下流
  2. 寻找闭合循环:雨水流到下一个更低的峰顶就停止,形成一个循环
  3. 提取循环参数:记录每个循环的峰谷值、幅值和均值

3.2.2 雨流法的Python实现

这里我给出一个简单的实现,方便你理解。实际工程中可以用现成的库,但自己写一遍能加深理解。

import numpy as np

def rainflow_counting(peaks_valleys):
    """
    雨流计数法实现
    peaks_valleys: 峰谷值序列(已提取)
    返回: 循环列表 [(幅值, 均值), ...]
    """
    cycles = []
    stack = []
    
    for point in peaks_valleys:
        stack.append(point)
        # 检查是否可以形成循环
        while len(stack) >= 3:
            # 计算三个点的范围
            range1 = abs(stack[-1] - stack[-2])
            range2 = abs(stack[-2] - stack[-3])
            
            if range1 <= range2:
                # 提取循环
                amplitude = range1 / 2
                mean = (stack[-1] + stack[-2]) / 2
                cycles.append((amplitude, mean))
                # 移除中间点
                stack.pop(-2)
            else:
                break
    
    return cycles

# 示例:一个简单的载荷序列
load_sequence = [0, 5, 2, 8, 3, 6, 1, 7, 4, 9, 2]
cycles = rainflow_counting(load_sequence)
print("提取的循环:", cycles)

个人经验:雨流法对数据质量要求很高。我曾经处理过一段含噪声的实测数据,直接跑雨流法,结果出来一堆虚假循环。后来我加了滤波预处理,效果就好多了。建议你在实际应用前,先做数据清洗。

3.3 载荷谱编制

载荷谱,就是把雨流法提取的循环,按照幅值大小排列,形成一个幅值-频次的统计分布。这个谱图是后续疲劳寿命计算的基础。

3.3.1 编制步骤

  1. 数据采集:获取足够长的载荷-时间历程(建议至少10个典型工作循环)
  2. 峰谷值提取:去除冗余数据点,只保留转折点
  3. 雨流计数:提取所有完整循环
  4. 幅值分级:将幅值分成若干等级(比如8级或16级)
  5. 频次统计:统计每个幅值等级出现的次数
  6. 累积频次曲线:绘制幅值-累积频次图

3.3.2 载荷谱的典型形式

下面是一个8级载荷谱的例子,我习惯用表格来呈现:

幅值等级 幅值范围 (MPa) 代表幅值 (MPa) 循环次数 累积频次
1 0-10 5 1000 1000
2 10-20 15 500 1500
3 20-30 25 200 1700
4 30-40 35 100 1800
5 40-50 45 50 1850
6 50-60 55 20 1870
7 60-70 65 10 1880
8 70-80 75 5 1885

关键点:载荷谱的精度取决于分级数量。分级太少会丢失细节,分级太多又增加计算量。我一般建议8-16级,具体看你的数据量和精度要求。

3.4 知识体系框架图

下面我用一张SVG图来总结本章的核心逻辑,方便你整体把握:

疲劳载荷与循环:知识体系框架 载荷类型 恒幅载荷 变幅载荷 随机载荷 循环计数法 雨流法 峰谷值提取 循环参数计算 载荷谱编制 幅值分级 频次统计 累积曲线 输出:幅值-频次载荷谱 应用场景:疲劳寿命预测、安全评估、结构优化 注:实际工程中需结合材料S-N曲线和损伤累积理论

3.5 避坑指南与实用建议

最后,我分享几个实际项目中踩过的坑,希望能帮你少走弯路:

避坑1:数据长度不够

我曾经用一段只有3秒的载荷数据做雨流计数,结果谱图严重失真。后来发现,至少需要包含10个以上完整工作循环,统计结果才有代表性。

避坑2:忽略均值效应

雨流法提取的循环包含幅值和均值。很多人只关注幅值,忽略了均值对疲劳寿命的影响。记住:拉伸均值会显著降低疲劳寿命,压缩均值反而有利。

避坑3:载荷谱外推要谨慎

实测数据往往只覆盖了部分工况,需要外推到全寿命周期。我建议用概率统计方法(如极值分布)来做外推,不要简单线性放大。

好了,关于疲劳载荷与循环的内容就讲到这里。记住:载荷谱的质量决定了疲劳分析的成败。下一节我们会讨论如何用这个载荷谱,结合材料的S-N曲线,进行寿命预测。


公众号:蓝海资料掘金营,微信deep3321