符合ASTM标准的雨流计数法及其不同的改进方法

2023-05-16

随着研究的深入,人们发现采用时间序列计算载荷谱太麻烦了,处理的工作量太大,我们不需要将每个时刻点的载荷都做运算,疲劳计算只需要提供幅值均值循环次数,鉴于此发展出了很多不同的计数方法,雨流法是最常见的处理方式,在ASTM E1049-85规范中记载了常见的4种计数方法。

传统的符合ASTM标准的载荷历程计数法主要有以下几种:

  • 水平交叉计数(Level cross counting)

  • 峰值计数(Peak counting)

  • 样本幅值计数(Simple-range counting)

  • 雨流计数(rainflow counting)

    参考文章 疲劳载荷计算 - 知乎 (zhihu.com)

其中雨流计数法是最为主流的计数方法,也是公认效率最好的,.目前提出的各种雨 流计数的模型都是以找出循环过程中的滞后环的应力循环为原则,针对雨流法的学习,我发现了以下几类常见的处理方式:

  • 第一个方法

    就是在ASTM E1049-85规范中记载的常规的雨流计数的步骤,该算法在没有数据重新安排的情况下起作用,因此**无需提前知道绝对最大值,可以进行实时的雨流计数。**从原始谱出发采用三点雨流计数的方法,用连续的三个点判断是否形成迟滞环即可以记为1个cycle的范围。连续的三点形成两条线段,根据线段的长度判断是否形成迟滞环,如果形成记为1cycle,否则记为0.5cycle。假设连续三个点记为A、B、C,形成的线段分别是AB和BC,首先假设AB不是起始段,若AB>BC,不能形成迟滞环,则提取A、B的均值和幅值,并进行记录0.5cycle,之后将B的值给A,C的值给B,读取下一个点为C就可以下一个判断,传统方法由于第一阶段中会遗留部分不能构成应力循环 的数据点,称之为发散收敛波,因此要进行第二阶段 的计数.

    参考文章Rainflow counts for fatigue analysis - MATLAB rainflow - MathWorks 中国

    >
    在这里插入图片描述
    在这里插入图片描述

    • 第二个方法

      就是简化的三点雨流计数法,它是对载荷历程进行编辑,将全局最大的峰值或者谷值放在起始位置,但是这就要注意在拼接的时候不要出错,或者增添或者删减数据。将峰值和估值放在起始点,就不会出现起始段满足迟滞环条件但是只能记作0.5cycle,所以只需要判断AB<=BC即可,为后面计算省了很多步骤。但是需要注意的是他的简化计算的优势也导致了他的操作的劣势,因简化的rainflow必须在计数之前重新安排时间序列,这使在线实时处理变得非常困难>。参考视频:疲劳与断裂

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HS24Dhb8-1653534646786)(C:\Users\winnerstar\Desktop\5-8实习用资料\storage\T8UIQ3NI\image.png)]
      在这里插入图片描述
      在这里插入图片描述

      • 第三个方法

        就是四点雨流计数法,依据时间序列读入时域数据的四个数据点,如果中间两个数据点构成的幅值被第一个和第四个点构成的幅值包含,则将中间这两个点构成的相对较小的载荷循环记作一次计数,并从原时域数据中删除中间这两个点,然后如法炮制的对剩余的数据点构成的新的载荷序列进行四点法雨流计数。如果中间两个点构成的幅值没有被第一和第四个点构成的幅值包含,则什么都不做,对下一个“四点”如法炮制的进行处理。当这套流程进行到最后的时候,会留下一个大的载荷循环“骨架”。按照“四点法计数”规则,在不做任何处理的情况下这个“骨架”无法再计数出任何新的结果。这个“骨架”我们习惯上称之为Residue。接着再将好多段Residue“首尾相接”进行雨流计数。这个时候,按照四点法雨流计数法则,本来数不出什么结果的,但拼接后的Residue又能贡献出新的载荷循环。而且,这些载荷循环都是幅值非常大的载荷循环,循环周次不多,但是实际形成的伪损伤数值可是不小的,因此不仅不能忽略,而且是要小心谨慎。对residue的循环计数处理,采用拼接的方法得到载荷谱,再继续雨流计数。最后对于无法再计完整循环的峰谷点,把相邻的两个数值记为半个循环。 参考文章【载荷数据处理-幅值域分析方法】雨流计数_操作稳定性测试__汽车测试网 (auto-testing.net)

        >

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z3fm033e-1653534646787)(C:\Users\winnerstar\Desktop\5-8实习用资料\storage\M4GVHV7D\image.png)]
        在这里插入图片描述

        • 第四个方法

          就是改进的雨流实时计数模型(田 和 李, 2009),其是在第一种方法的基础上进行的补充改进,由于第一种方法可以做实时的雨流计数,他是经过第一阶段计数后, S点以前的遗留点构成发散波,s点以后的遗留点 构成收敛波.第二阶段计数实际是利用S的位置变 化把发散波和收敛波位置进行调整和对接,形成收 敛发散波,然后再进行处理.,但是碍于其进行完第一阶段的计数后残余的载荷情况复杂,容易发生对接不当,这处理不当可能会产生漏点,甚至会得出错误计数结果.所以改进的方法就是在进行完第一阶段的计数后,须在第二阶段处 理前进行可靠的数据对接处理,才能保证结果正确.对接处理方法如下:

          [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PF0V5G8U-1653534646787)(C:\Users\winnerstar\Desktop\5-8实习用资料\storage\JAPAEDT5\image.png)]

          标志位s前没有遗留点的处理流程如下:>

          [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4XaN44ih-1653534646788)(C:\Users\winnerstar\Desktop\5-8实习用资料\storage\JZP5CE42\image.png)]

          标志位s前至少有一个遗留点的处理流程如下:>
          在这里插入图片描述

参考文献:
[1] 佚名. 田_李_2009_改进的雨流法实时计数模型.pdf[Z]([日期不详]).
[2] 佚名. 董 et al_2004_雨流计数法及其在程序中的具体实现.pdf[Z]([日期不详])
[3] MCINNES C H, MEEHAN P A. Equivalence of four-point and three-point rainflow cycle counting algorithms[J]. International Journal of Fatigue, 2008, 30(3): 547–559. DOI:10.1016/j.ijfatigue.2007.03.006.
[4] 佚名. ASTM e1049-85(2017) standard practices for cycle counting in fatigue analysi.pdf[Z]([日期不详]).
[5] HUANG J, WANG S, XU W, 等. A novel autoregressive rainflow—integrated moving average modeling method for the accurate state of health prediction of lithium-ion batteries[C]. . DOI:10.3390/PR9050795.
[6] AMZALLAG C, GEREY J P, ROBERT J, 等. Standardization of the rainflow counting method for fatigue analysis[J]. 1994. . DOI:10.1016/0142-1123(94)90343-3.
[7] RYCHLIK I. A new definition of the rainflow cycle counting method[J]. 1987. . DOI:10.1016/0142-1123(87)90054-5.
[8] SCHOOL OF INFORMATION ENGINEERING, SOUTHWEST UNIVERSITY OF SCIENCE AND TECHNOLOGY, MIANYANG 621010, CHINA, HUANG J. An improved rainflow algorithm combined with linear criterion for the accurate li-ion battery residual life prediction[J]. International Journal of Electrochemical Science, 2021: ArticleID:21075. DOI:10.20964/2021.07.29.
.

            - ## 附录
                
                现给出简化的三点雨流计数法MATLAB程序代码
                
            
            %% rainflow计数法 %%
            
            clear;clc
            
            C=xlsread('load_F1');%%%%%%%%%在此修改加载的文件名,数据格式一直才可正确运算%%%  %%%也可以自行添加一个随机列向量C作为载荷谱输入%%
            
            B=C;A=C;
            
            q=length(A);
            
            %三点循环计数法;部分参考SAE ASTM标准
            
            %% 步骤一 %%
            
            %对载荷时间历程进行处理使它只包含峰谷峰谷交替出现
            
            m=q;
            
            for i=2:1:m-1
            
               if A(i-1)<A(i)&&A(i)<A(i+1)
            
                   B(i)=NaN;
            
               elseif A(i-1)>A(i)&&A(i)>A(i+1)
            
                   B(i)=NaN;
            
               end
            
            end
            
            B(isnan(B))=\[\];
            
            %% 步骤二 %%
            
            %对载荷时间历程再造,使从最大(小)值拆开,前后拼接,使从最值开始最值结束
            
            \[a,b\]=max(B);
            
            n=length(B);
            
            B1=B(b:n);
            
            B2=B(1:b);
            
            B=\[B1;B2\];
            
            %% 步骤三 %%
            
            %再只留波峰波谷,防止拼接处出现不合理的数据  ??
            
            A=B;m=length(B);
            
            for i=2:1:m-1
            
               if A(i-1)<A(i)&&A(i)<A(i+1)
            
                   B(i)=NaN;
            
               elseif A(i-1)>A(i)&&A(i)>A(i+1)
            
                   B(i)=NaN;
            
               end
            
            end
            
            B(isnan(B))=\[\];n=length(B);
            
            %%%%%%%%%%%%%%%%%%%%%%%%  B为改造后载荷时间历程  n为B中波峰波谷的个数
            
            %% 步骤四 %%
            
            %画出改造好的载荷时间历程折线图
            
            figure('Name','载荷谱');
            
            plot(1:n,B,'-k')
            
            legend('重组过的载荷时间历程');   %右上角标注
            
            xlabel('时间')  %x轴坐标描述
            
            ylabel('载荷') %y轴坐标描述
            
            xlim(\[0,10000\]);
            
            ylim(\[0,20000\]);
            
            xticks(0:1000:10000);
            
            yticks(-20000:1000:20000);
            
            grid on
            
            %% 步骤五 %%
            
            %雨流计数,输出结果矩阵c包括计数count、范围range、均值mean、单次循环载荷起点start、单词循环载荷终点end%
            
            \[c,hist,edges,rmm,idx\] = rainflow(B);
            
            TT = array2table(c,'VariableNames',{'Count','Range','Mean','Start','End'});%计数结果指标
            
            %% 步骤六 %%
            
            %绘制均值、幅值、循环次数的三维柱形图
            
            figure('Name','三维图');
            
            rainflow(B)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

符合ASTM标准的雨流计数法及其不同的改进方法 的相关文章

  • 143-牛客网C++刷题9

    1 不定义第三个变量 xff0c 交换两个变量的数据 x 43 61 y y 61 x y x 61 y 2 常量可以是任何的基本数据类型 xff0c 可分为整型数字 浮点数字 字符 字符串和布尔值 3 在C 43 43 中 xff0c 可
  • GitHub|搭建个人静态页并绑定私有域名

    Ps xff1a 仅自学自用留档 xff0c 如有需要请自行找寻内容 xff01 使用Git在GitHub上搭建个人静态页并绑定域名 一 在GitHub创建特殊的个人仓库二 将仓库保存到本地并使用Git链接1 使用Git将仓库保存到本地文件
  • java Collection常用方法

    主要方法如下所述 然后我们来具体写一下这些方法 首先是add方法 span class token keyword public span span class token keyword static span span class to
  • java Collections基本概念和常用方法

    Collections是一个类 他在java的util包下 所以使用它是需要导包的 Collections是一个静态方法的集合类 他里面的方法都是静态的 Collections中的方法有很多 这里我们主要看三个 Collections的方法
  • 使用域控批量安装软件

    域自带的批量部署软件有多种方式 xff1a 1 xff0c 发布 xff0c 域服务器发布软件 xff0c 客户端到添加删除程序 添加新程序中点击安装 2 xff0c 分配指派到用户 xff0c 在客户端用户登录时自动安装 3 xff0c
  • XXL-JOB:com.fasterxml.jackson.databind.JsonMappingException: Unexpected character (‘o‘ (code 111))解决

    背景 项目中的xxl job admin版本为2 1 1 xff0c 一直运行的很好 xff0c 但是有一天被扫出安全漏洞 xff0c 然后 xff0c 我就把xxl job admin的springboot版本由1 5升级为2 2 1版本
  • Ubuntu部分图标缺失,包括部分系统图标

    ubuntu部分图标缺失 这里说的缺失不是指图标不会显示 xff0c 而是说图标虽然会显示 xff0c 但是显示不正确 比如显示为一个空白方块或者红色的 34 禁止 34 图标 简要列出部分缺失的图标 xff1a 文件夹图标wifi图标 x
  • python 添加图例_Python | 在图上添加图例

    python 添加图例 Adding legend is the best way to label data series plotted on a graph Matplotlib has an inbuilt defined func
  • java有哪些集合类型?集合类的特点

    Java属于入门容易 xff0c 天花板却极高的编程语言 java有哪些集合类型 对于java工程师来说技术的不断发展 需要不断学习java进阶知识 为了帮助大家巩固基础 xff0c 本文解答了java有哪些集合类型 集合类的特点是什么 x
  • MATLAB(一)基本操作与矩阵输入

    文章目录 前言一 Matlab视窗二 基本操作与矩阵输入1 把MATLAB当做计算机2 初等数学函数Exercise练习 2 嵌入函数3 特殊变量和常量4 MATLAB调用优先5 数字显示格式长Exercise练习 6 命令行终端7 部分函
  • MATLAB(六)图形界面_GUI_程式设计

    文章目录 前言MATLAB GUI Programs启动GUI程序对齐组件给按钮标上标签GUI脚本结构function untitled OpeningFcn对象的回调Set the axes for PlottingExercise练习P
  • Excel 精选28个技巧

    文章目录 前言1 一键求和2 一键插入柱形图3 单元格内强制换行4 快速移动资料5 快速生成下拉式功能表6 计算带单位的数据7 小写金额转大写8 快速输入 9 批量添加下划线10 文字随单元格大小变化11 图片随单元格大小变化12 快速提取
  • 调度算法——时间片轮转、优先级、多级反馈队列(例题详细!!!)

    文章目录 前言知识总览时间片轮转 xff08 RR Round Robin xff09 优先级调度算法多级反馈队列调度算法知识回顾与重要考点 前言 此篇文章是我在B站学习时所做的笔记 xff0c 大部分图片都是课件老师的PPT xff0c
  • 生产者-消费者问题(有例题!!!)

    文章目录 前言问题描述如何实现思考 xff1a 能否改变相邻P V操作的顺序 知识回顾与重要考点 前言 此篇文章是我在B站学习时所做的笔记 xff0c 大部分图片都是课件老师的PPT xff0c 方便复习用 此篇文章仅供学习参考 提示 xf
  • 计算机网络习题——循环冗余校验

    3 07 要发送的数据为1101011011 采用CRC的生成多项式是 P X 61 X 4 43 X 43 1 试求应添加在数据后面的余数 xff08 1 xff09 若要发送的数据在传输过程中最后一个1变成了0 xff0c 即变成了11
  • 计算机网络课后答案(谢希仁第八版)

    计算机网络课后答案 谢希仁第八版
  • linux系统 删除文件命令

    Linux系统下删除文件是一个非常高频的需求 xff0c 几乎每天都会遇到 xff0c 所以rm命令是一个非常常用Linux命令 rm命令是英文单词 remove 的缩写 xff0c 它主要作用是 xff1a 1 删除文件 xff1b 2
  • 常见的HTTP状态码列表

    HTTP状态码列表 状态码 状态码英文名称 中文描述 1xx xff08 信息性状态码 xff09 xff1a 请求已被接受 xff0c 需要继续处理 100 Continue 继续 客户端应继续其请求 101 Switching Prot
  • 二进制的加减法_二进制加减法

    二进制的加减法 1 二进制加法 1 Binary Addition Since binary numbers consist of only two digits 0 and 1 so their addition is different

随机推荐

  • SQL注入攻击方法

    SQL注入攻击是一种利用Web应用程序中存在的安全漏洞 xff0c 通过在输入框中插入恶意的SQL代码 xff0c 从而实现对数据库的非法操作 以下是一些常见的SQL注入攻击方法 xff1a 使用单引号 xff08 39 xff09 进行字
  • 利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

    首先 xff0c 需要安装selenium库和对应的浏览器驱动程序 以Chrome浏览器为例 xff0c 可以使用以下命令安装selenium和chromedriver xff1a pip install selenium 然后 xff0c
  • &和&&的区别(简单易懂)

    amp xff08 按位与 xff09 和 amp amp xff08 逻辑与 xff09 的区别如下 xff1a 1 amp amp 具有短路功能 xff0c 而 amp 不具有短路功能 2 当 amp 运算符两侧的表达式的结果均为真时
  • Spring框架学习笔记

    一 什么是Spring框架 Spring框架是由于软件开发的复杂性而创建的 Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情 然而 xff0c Spring的用途不仅仅限于服务器端的开发 从简单性 可测试性和松耦
  • 人工智能——DBSCAN密度聚类(Python)

    目录 1 概述 1 1 概念 1 2 DBSCAN数据点分类 2 DBSCAN算法流程 2 1 DBSCAN算法流程 xff1a 2 2 举例 3 案例1 xff08 Python实现 xff09 3 1 案例 3 2 Python实现 3
  • @RequestMapping的参数和用法

    在Spring MVC 中使用 64 RequestMapping 来映射请求 xff0c 也就是通过它来指定控制器可以处理哪些URL请求 xff0c 相当于Servlet中在web xml中配置 源码 xff1a 该注解说明可以在类和方法
  • Linux 实验:记录型信号量 生产者-消费者问题详解

    进程同步问题是一个非常重要且相当有趣的问题 xff0c 因而吸引了很多学者对他进行研究 本文就选取其中较为代表性的生产者 消费者问题来进行学习 xff0c 以帮助我们更好的理解进程同步的概念及实现方法 一 问题描述 有一群生产者进程在生产产
  • Linux C语言线程解决生产者与消费者

    前言 生产者 消费者模式 xff0c 生产者这边负责生产产品 而消费者负责消费产品 xff0c 对于消费者来说 xff0c 没有产品的时候只能等待产品出来 xff0c 有产品就使用它 这里我们使用一个变量来表示这个这个产品 xff0c 生产
  • Mariadb

    文章目录 1 数据库的介绍2 mariadb的安装与开启3 软件基本信息4 数据库的安全初始化4 1 执行安全初始化脚本4 2 关闭数据库开放端口 5 数据库的基本管理5 1查看5 2新建5 3更改5 4备份与删除 6 数据库密码管理6 1
  • 【FPGA】按键消抖

    文章目录 一 按键消抖概述1 为何要进行按键消抖2 消抖的方式 二 系统设计1 系统模块划分2 系统时序图 三 代码实现1 按键消抖模块 xff08 key debounce xff09 2 呼吸灯模块 xff08 led breath x
  • java字符串添加字符_如何在Java中向字符串添加字符?

    java字符串添加字符 Case 1 In a simple way we will learn how to add characters by using predefined methods 情况1 xff1a 以简单的方式 xff0
  • 【Ubuntu18.04更换国内源及404错误解决办法】

    Ubuntu18 04 arm换源方法 及 404错误解决办法 换源将下面的任选一组源放入到上面的sources list中 xff0c 96 保存退出并更新即可 96 清华源阿里源中科大源 错误apt get update 后出现 404
  • 【Linux中QT加载.so库与调用Python】

    Linux中QT添加 so库与Python库 一 如何导入 so库1 1 不同系统中 库名称各有不同1 2 Linux中的QT导入库方法 xff1a 二 调用Python2 1 添加Python库2 2 创建Python文件 引入头文件2
  • QT连接SQLServer并添加ODBC数据源

    QT连接SQLServer并添加ODBC数据源 一 创建数据源1 打开ODBC数据源2 创建数据源3 测试数据源 二 QT连接SQLServer1 连接代码2 测试成功样图 一 创建数据源 1 打开ODBC数据源 在搜索框中进行搜索ODBC
  • QT生成exe独立运行文件

    目录 一 封装QT独立运行的 exe文件好处1 1 xff1a 封装软件 xff1a Enigma Virtual Box 9 901 2 xff1a 下载链接 xff1a 阿里云盘 https www aliyundrive com s
  • 【1期 QT之控件的创建与使用】

    前言 QT一开始在1991年被奇趣公司研发 xff0c 创建的目的就是实现GUI图形界面开发与非GUI的开发 后来被诺基亚收购了 xff0c 维护至今 当然在诺基亚手里也是越发展越好 好了QT就介绍这么多了 我们直接上干货 xff1a 我将
  • 【2期 QT信号与槽函数&回调函数与函数指针】

    前言 信号与槽函 xff1a 一对多 多对一 多对多 类似于C 43 43 设计模式中的观察者模式 信号与槽函数不是C 43 43 标准代码 xff0c 是QT特有的 xff0c 最终通过moc meta Object Complier 进
  • 关于约瑟夫环问题的思考(数组做法)

    这几天做题时碰见了一个很有意思的问题 xff0c 也是一个十分经典问题 约瑟夫环问题 问题很简单 xff0c 就是有n个人围成一个圈 xff0c 每隔m个人就自杀一个 xff0c 直到剩下最后一个人为止 xff0c 问最后剩下的最后一个人是
  • Windows Powershell相关(历史命令、命令)

    Powershell取证 历史命令 xff1a win10 powershell的命令历史记录存储在 span class token operator span USERPROFILE span class token operator
  • 符合ASTM标准的雨流计数法及其不同的改进方法

    随着研究的深入 xff0c 人们发现采用时间序列计算载荷谱太麻烦了 xff0c 处理的工作量太大 xff0c 我们不需要将每个时刻点的载荷都做运算 xff0c 疲劳计算只需要提供幅值 均值和循环次数 xff0c 鉴于此发展出了很多不同的计数