雨流法(循环计数)
理论与物理
雨流法是什么
老师,雨流法是什么?
雨流法(Rainflow Counting)是一种从变动载荷的时间历程中提取闭合迟滞回线(循环)的方法。Endo and Matsuishi(1968年,日本的远藤·松石)以雨水流动为例命名。
为什么需要循环计数
S-N曲线或Coffin-Manson公式给出的是恒定振幅的疲劳寿命。实际载荷是变动振幅的。通过雨流法将变动载荷分解为“多个恒定振幅循环的集合”,并使用Miner法则计算累积损伤。
算法
1. 提取应力时间历程的峰值/谷值
2. 像“雨水从屋顶(pagoda roof)流下”一样识别闭合循环
3. 记录每个循环的应力范围 $\Delta\sigma$ 和平均应力 $\sigma_m$
4. 构建直方图(雨流矩阵)
总结
“雨水从屋顶流下”算法
雨流法的名称来源于将应力时间历程图旋转90°后,看起来像雨水从屋顶流下。1968年由松本登·宗宫恒二等人提出,作为从不规则变动载荷中准确提取疲劳循环的方法,已成为世界标准。于1985年标准化为ASTM E1049。
各项的物理意义
- 惯性项(质量项):$\rho \ddot{u}$,即“质量×加速度”。您是否有过急刹车时身体被向前甩出的经历?那种“被带走的感觉”正是惯性力。物体越重越难启动,一旦启动也越难停止。建筑物在地震中摇晃,也是因为地面突然移动,而建筑物的质量“被落下”。静力分析中此项设为零,这是“缓慢施力因此加速度可忽略”的假设。对于冲击载荷或振动问题,此项绝对不能省略。
- 刚度项(弹性恢复力):$Ku$ 或 $\nabla \cdot \sigma$。拉伸弹簧时能感觉到“想要恢复原状的力”吧?那就是胡克定律 $F=kx$,也是刚度项的本质。那么提问——用相同的力拉伸铁棒和橡皮筋,哪个伸长更多?当然是橡皮筋。这种“难以伸长的程度”就是杨氏模量 $E$,它决定了刚度。常见的误解:“刚度高=强度高”是不对的。刚度是“抵抗变形的能力”,强度是“抵抗破坏的能力”,是不同的概念。
- 外力项(载荷项):体积力 $f_b$(如重力)和表面力 $f_s$(如压力、接触力)。可以这样理解——桥上卡车的重量是“作用在整个内部上的力”(体积力),轮胎压路面的力是“仅作用在表面上的力”(表面力)。风压、水压、螺栓预紧力…都是外力。这里容易犯的错误:弄错载荷方向。本想施加“拉伸”却变成了“压缩”——听起来像笑话,但在3D空间中坐标系发生旋转时确实会发生。
- 阻尼项:瑞利阻尼 $C\dot{u} = (\alpha M + \beta K)\dot{u}$。试着弹一下吉他的弦。声音会一直持续吗?不,会逐渐变小。这是因为振动能量通过空气阻力和弦的内部摩擦转化为热能。汽车的减震器也是同样原理——故意吸收振动能量以提高乘坐舒适性。如果阻尼为零会怎样?建筑物在地震后会一直摇晃不停。实际上不会这样,因此设置适当的阻尼很重要。
假设条件与适用范围
量纲分析与单位制
| 变量 | SI单位 | 注意事项·换算备忘 |
|---|---|---|
| 位移 $u$ | m(米) | 输入为mm时,载荷·弹性模量也需统一为MPa/N系 |
| 应力 $\sigma$ | Pa(帕斯卡)= N/m² | MPa = 10⁶ Pa。与屈服应力比较时注意单位制不一致 |
| 应变 $\varepsilon$ | 无量纲(m/m) | 注意工程应变与对数应变的区别(大变形时) |
| 弹性模量 $E$ | Pa | 钢:约210 GPa,铝:约70 GPa。注意温度依赖性 |
| 密度 $\rho$ | kg/m³ | mm系中为tonne/mm³(钢为 = 10⁻⁹ tonne/mm³) |
| 力 $F$ | N(牛顿) | mm系和m系均统一为N |
数值解法与实现
雨流法的计算
所有疲劳软件都内置了雨流法。输入FEM的应力时间历程→雨流法→S-N/ε-N→Miner法则的自动流程。
在MATLAB/Python中也可使用 rainflow 库轻松计算。
总结
雨流矩阵的读法
雨流法的结果以雨流矩阵(RFC矩阵)表示,纵轴为最小应力,横轴为最大应力的频率分布。对角线元素振幅小、循环数低,边缘元素振幅大、损伤高。疲劳损伤由远离对角线的元素主导,实际评估中这些边缘数据的精度左右着Miner法则计算的精度。
线性单元(一阶单元)
节点间线性插值。计算成本低,但应力精度低。注意剪切锁定(可通过减缩积分或B-bar法缓解)。
二阶单元(带中间节点)
可表现曲线变形。应力精度大幅提高,但自由度约增加2~3倍。推荐:应力评估重要时使用。
完全积分 vs 减缩积分
完全积分:有过约束(锁定)风险。减缩积分:有沙漏模式(零能模式)风险。根据情况选择。
自适应网格
基于误差指标(ZZ估计量等)的自动细化。高效提高应力集中部位的精度。有h法(单元细分)和p法(增加阶次)。
牛顿·拉弗森法
非线性分析的标准方法。每次迭代更新切线刚度矩阵。在收敛半径内具有二次收敛性,但计算成本高。
修正牛顿·拉弗森法
切线刚度矩阵使用初始值或每隔几次迭代更新。每次迭代成本低,但收敛速度为线性。
收敛判定标准
力残差范数: $||R|| / ||F_{ext}|| < \epsilon$(通常 $\epsilon = 10^{-3}$〜$10^{-6}$)。位移增量范数: $||\Delta u|| / ||u|| < \epsilon$。能量范数: $\Delta u \cdot R < \epsilon$
载荷增量法
不一次性施加全部载荷,而是分小步增加。弧长法(Riks法)可以超越载荷-位移关系的极值点进行追踪。
直接法 vs 迭代法的比喻
直接法是“用笔算精确解联立方程”的方法——可靠但大规模问题耗时过长。迭代法是“反复猜测逼近正确答案”的方法——最初是粗略答案,但每次迭代精度都会提高。就像查字典时,从第一页开始顺序查找(直接法)不如先估计位置翻开,再前后调整(迭代法)来得高效,原理相同。
网格阶次与精度的关系
一阶单元是“用直尺近似曲线”——用直线折线表现,因此精度有限。二阶单元是“柔性曲线”——可以表现曲线变化,即使网格密度相同,精度也显著提高。但是,每个单元的计算成本增加,需要根据总体的成本效益来判断。
实践指南
雨流法的实务
评估汽车道路数据(实际行驶的应力时间历程)的疲劳寿命。飞机的飞行谱。管道的压力循环。
实务检查清单
从实际路面数据评估疲劳
在汽车的耐久性试验中,通过应变片测量实际路面行驶数据,并用雨流法解析以评估疲劳损伤。福特公司从1980年代开始通过EDAP(工程耐久性分析包)将此方法标准化,并优化了算法,使得处理10公里比利时路面行驶数据在1990年代的PC上仅需数秒。
分析流程的比喻
分析流程其实和烹饪非常相似。首先是采购食材(准备CAD模型),进行预处理(网格生成),开火烹饪(求解器执行),最后装盘(后处理可视化)。这里有个重要的问题——烹饪中最容易失败的工序是哪里?其实是“预处理”。网格质量差的话,无论使用多么优秀的求解器,结果都会一团糟。
初学者容易陷入的陷阱
您确认过网格收敛性吗?是否认为“计算能运行=结果正确”?这其实是CAE初学者最容易掉入的陷阱。求解器一定会对给定的网格返回“一个像样的答案”。但如果网格太粗糙,这个答案就会与现实有很大偏差。至少用3个级别的网格密度确认结果是否稳定——如果忽视这一点,就会陷入“计算机给出的答案应该正确”的危险误区。
边界条件的思考方式
边界条件的设置,与编写考试的“题目”是一样的。如果题目错了会怎样?无论计算多么精确,答案都是错的。“这个面真的是完全固定的吗?”“这个载荷真的是均匀分布的吗?”——正确建模现实的约束条件,其实是整个分析中最重要的步骤。
软件比较
工具
内置于所有疲劳软件。MATLAB/Python也可实现。
雨流计数的标准差异与实现
对于同一载荷历程,ASTM E1049-85和DIN 45667的循环计数结果可能相差最大15%。MSC Fatigue默认采用四点法(遵循ASTM),nCode默认采用HCM法(遵循DIN),汽车行业ZF公司则标准采用HCM法。标准选择直接关系到疲劳寿命预测的精度。
选定时最重要的3个问题
- “要解决什么问题”:雨流法(循环计数)所需的物理模型·单元类型是否支持。例如,流体方面是否支持LES,结构方面接触·大变形的支持能力有差异。
- “谁来使用”:新手团队适合GUI丰富的工具,有经验者适合脚本驱动的灵活工具。类似于汽车的自动挡(GUI)和手动挡(脚本)的区别。
- “要扩展到什么程度”:考虑到未来的分析规模扩大(HPC支持)、向其他部门扩展、与其他工具的联动,这样的选择有助于长期的成本削减。
尖端技术
雨流法的前沿
向高斯过程的扩展与非稳态载荷
传统的雨流法以稳态随机载荷为前提,但实际载荷多为统计特性随时间变化的非稳态过程。2010年代确立的“加窗雨流法”在时间窗口内进行循环提取,实现了对非稳态载荷的应对。已应用于风力涡轮机运行条件变化引起的疲劳评估。
故障排除
雨流法的问题
中途截断数据的残留循环问题
当实测数据的开头和结尾不完整时,会产生雨流法的“残留”循环。忽略此问题会导致损伤量被低估10~20%。ASTM E1049推荐使用范围对法来补全残留循环,但在实务中,根本的解决方法是设计测量协议,确保整个测量区间完整。
当“分析结果不符”时
- 首先深呼吸——慌张地随机更改设置会使问题更加复杂
- 创建最小重现案例——以最简单的形式重现雨流法(循环计数)的问题。“减法式调试”最有效率
- 每次只改变一个变量再执行——同时进行多项更改,会不知道哪个起了作用。与科学实验相同的“对照实验”原则
- 回归物理本质——如果计算结果出现“物体逆重力漂浮”等非物理现象,应怀疑输入数据存在根本性错误
相关主题
なった
詳しく
報告