文章目录

  • 一.雨流计数法原理及程序框图
    • 1.雨流计数法程序的原理
    • 2.程序框图
  • 二.matlab程序
  • 三.运行结果

本文内容:
(1)雨流计数法的程序原理
(2)matlab程序
(3)实现效果:显示出路径,以及均值和变程等信息。

一.雨流计数法原理及程序框图

1.雨流计数法程序的原理


2.程序框图

二.matlab程序

clear;clc
fprintf('三点法\n')
tic
%%有三种获取待处理数据的形式
%% (1)随机生成载荷。取样范围-30到30共50个点。
Load=randi([-30,30],50,1);Load=Load.';%%(2)可以处理表格数据,表格里面放一行数据即可
%Load=xlsread('文件.xlsx');%%(3)直接处理行矩阵内的数据
%Load=[5,-1,3,-4,4,-2,1,-3,0,-2];subplot(2,2,1);
x=1:1:length(Load);
plot(x,Load);
title('原始数据');Load1=Load;
Load2=Load;
L3=length(Load2);
%去除除了峰谷之外的数据
m1=L3;
for i=2:1:m1-1if Load2(i-1)<=Load2(i)&&Load2(i)<=Load2(i+1)%斜率大于零Load1(i)=NaN;else if Load2(i-1)>=Load2(i)&&Load2(i)>=Load2(i+1)%斜率小于零Load1(i)=NaN;endend
end
Load1(isnan(Load1))=[];%删除非峰谷的点
%对载荷时间历程再造,使从最大(小)值拆开,前后拼接,使从最值开始最值结束
[b,c]=max(Load1);
n1=length(Load1);
B1=Load1(c:n1);
B2=Load1(1:c);
Load1=[B1,B2];
%再只留波峰波谷,防止拼接处出现不合理的数据
Load2=Load1;
m1=length(Load1);
for i=2:1:m1-1if Load2(i-1)<Load2(i)&&Load2(i)<Load2(i+1)Load1(i)=NaN;elseif Load2(i-1)>Load2(i)&&Load2(i)>Load2(i+1)Load1(i)=NaN;end
end
Load1(isnan(Load1))=[];subplot(2,2,2);
x=1:1:length(Load1);
plot(x,Load1);
title('波峰波谷数据');%把数据以坐标的形式放到二维数组
a=zeros(2,length(Load1));
for i=1:length(Load1)
a(1,i)=i;%表示存储的第几个数据
a(2,i)=Load1(i);%存储的数据值
endAmplitude=[];%存幅度值
Mean=[];%存均值%雨流计数法
%b1={a(1,1);a(2,1)};
b1=[a(1,1),a(1,2);a(2,1),a(2,2)];
a(:,1)=[];%删除原数据第一个点
a(:,1)=[];%删除原数据第二个点i=3;
n=2;%提取到b1的点数目
k=length(a(1,:));
while length(a(1,:))>=1if(n<3&&length(a(1,:))>=1)b1=[b1 [a(1,1);a(2,1)]];%读入数据a(:,1)=[];%删除原数据点n=n+1;if(n>=3)m=length(b1(1,:))-2;Y=abs(b1(2,m)-b1(2,m+1));X=abs(b1(2,m+2)-b1(2,m+1));if(X>=Y)Amplitude=[Amplitude abs(b1(2,m)-b1(2,m+1))];%存幅度值Mean=[Mean (b1(2,m)+b1(2,m+1))/2];%存均值fprintf('循环路径:(%d,%d)->(%d,%d) 变程:%d  均值:%.2f\n',b1(1,m),b1(2,m),b1(1,m+1),b1(2,m+1),abs(b1(2,m)-b1(2,m+1)),(b1(2,m)+b1(2,m+1))/2);b1(:,m)=[];%删除处理过的数据三个点中第一个点b1(:,m)=[];%删除处理过的数据三个点中第二个点n=n-2;elsen=n-1;continue;endelsecontinue;endelsecontinue;end
end%处理提取到b1的剩余数据
while length(b1(1,:))>=3m=length(b1(1,:))-2;Y=abs(b1(2,m)-b1(2,m+1));X=abs(b1(2,m+2)-b1(2,m+1));if(X>=Y)Amplitude=[Amplitude abs(b1(2,m)-b1(2,m+1))];%存幅度值Mean=[Mean (b1(2,m)+b1(2,m+1))/2];%存均值fprintf('循环路径2:(%d,%d)->(%d,%d) 变程:%d  均值:%.2f\n',b1(1,m),b1(2,m),b1(1,m+1),b1(2,m+1),abs(b1(2,m)-b1(2,m+1)),(b1(2,m)+b1(2,m+1))/2);b1(:,m)=[];%删除处理过的数据三个点中第一个点b1(:,m)=[];%删除处理过的数据三个点中第二个点end
endsubplot(2,2,3);
x=1:1:length(Amplitude);
plot(x,Amplitude);
title('变程');subplot(2,2,4);
x=1:1:length(Mean);
plot(x,Mean);
title('均值');toc

三.运行结果

程序运行效果:

这是路径,也就是雨流计数法结果。

下图是一些其他可能有用的数据包括:波峰波谷数据以及均值、变程数据。

程序源码下载-github
参考资料:
(1)《疲劳与断裂》 陈传尧 华中科技大学出版社
(2)https://blog.csdn.net/weixin_47693142/article/details/116660707

如果您觉得本文写的不错,欢迎点赞评论收藏!

雨流计数法的matlab实现相关推荐

  1. 2021-05-11雨流计数法的matlab代码实现,三点法四点法修正版

    "我是置顶":本文仅供参考,禁止大作业抄袭!!! 这个代码还可以完善,还可以实现比如记录半循环之类的功能,加油! 2020年10月份左右因为课程原因接触了一下雨流计数法,该方法用于 ...

  2. 雨流计数法及matlab代码【转载】

    作者:杰出的杰出 来源:CSDN 原文:https://blog.csdn.net/u011391128/article/details/79551601 版权声明:本文为博主原创文章,转载请附上博文 ...

  3. MATLAB代码:基于雨流计数法的源-荷-储双层协同优化配置

    MATLAB代码:基于雨流计数法的源-荷-储双层协同优化配置 关键词:双层规划 雨流计算法 储能优化配置 参考文档:<储能系统容量优化配置及全寿命周期经济性评估方法研究>第三章 仿真平台: ...

  4. matlab雨流计数,matlab雨流计数法

    算法的实现主要基于 Matlab 编程实现. 关键词:图像分割,种子区域生长算法,Matlab 一.引言区域生长是一种古老的图像分割方法,最早的区域生长图像分割方法是由 Levine...... Ma ...

  5. matlab雨流计数,雨流计数法matlab程度源代码

    <雨流计数法matlab程度源代码>由会员分享,可在线阅读,更多相关<雨流计数法matlab程度源代码(3页珍藏版)>请在人人文库网上搜索. 1. RAINFLOW cycle ...

  6. 【有限元分析】风力发电机塔筒筒体校核——matlab雨流计数法

    全部程序下载链接 https://download.csdn.net/download/yjw0911/20865581 1.定义sn曲线 %定义SN曲线并求出对应应力幅值的N,包含厚度修正系数及安全 ...

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

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

  8. 对三点雨流计数法的思考

    1 雨流计数法 将载荷旋转90°,模仿雨流沿屋檐下落,进行循环计数,遵循以下规则: 将载荷历程看作多层屋顶,假想有雨滴沿着最大峰或者最大谷处,开始下流. 起始于波谷的雨流,遇到比他更低的谷值要停止:起 ...

  9. 基于雨流计数法的源-荷-储双层协同优化配置 代码主要做的是一个源荷储优化配置的问题

    基于雨流计数法的源-荷-储双层协同优化配置 主要内容:代码主要做的是一个源荷储优化配置的问题,采用双层优化,外层优化目标的求解依赖于内层优化的储能系统充放电曲线,基于储能系统充放电曲线,采用雨流计数法 ...

最新文章

  1. Python学习笔记——全局变量声明
  2. 剑指offer:旋转数组的最小数字
  3. 如何提取edit control中输入的数据_如何在Power Query中提取数据——列表篇(1)
  4. [原创]基于Extjs的开源控件库 - http://extaspnet.codeplex.com/
  5. ajax jq 图片上传请求头_如何使用js或jQuery向Ajax请求添加自定义HTTP头?
  6. LINUX设备模型BUS,DEVICE,DRIVER
  7. php控制字数方法,php处理字数过多的方法
  8. Java中不一致的操作会扩大规则
  9. 信息学奥赛一本通(1057:简单计算器)
  10. python 函数嵌套 报错_《Python》 函数嵌套、闭包和迭代器
  11. Oracle 无备份情况下的恢复--控制文件/数据文件
  12. HTML、CSS、JS对unicode字符的不同处理
  13. php修改语法错误,php语法检查的方法总结
  14. 管理感悟:怎样给程序找好的思路
  15. B2B、B2C、C2C、O2O分别是什么意思?
  16. FreeSWITCH之日志级别
  17. MSDP RPF检测
  18. python输出一棵树_如何用Python画一棵树
  19. STM32粗略延时,大致精确
  20. Flutter 字体设置加粗

热门文章

  1. js模板引擎之art-template
  2. Windows操作系统进阶:AD域
  3. 芒芒分期换“套路”以VIP会员费收割用户,海尔金控旗下快捷通提供支付通道
  4. 几种室内定位技术比较UWB、蓝牙、RFID和WIFI
  5. 【548. 卡片游戏】
  6. 常见的文本特征(句向量)提取方法有哪些?什么是One-Hot、TF-IDF?word2vec如何训练?【Python】
  7. yii Yii Framework PHP 框架
  8. java 包的定义与使用
  9. 【UML】工具Astah学习记录(一)类图
  10. 固态硬盘好处有哪些?