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

介绍
雨流计数法是20世纪50年代由英国的两位工程师M.Matsuishi和T.Endo提出来的。该计数法的主要功能是把实测载荷历程简化为若干个载荷循环,供疲劳寿命估算和编制疲劳试验载荷谱使用。它以双参数法为基础,考虑了动强度(幅值)和静强度(均值)两个变量,符合疲劳载荷本身固有的特性。雨流计数法主要用于工程界,特别在疲劳寿命计算中运用非常广泛

计数规则
(1)雨流依次从载荷时间历程的峰值位置的内侧沿着斜坡往下流;
(2)雨流从某一个峰值点开始流动,当遇到比其起始峰值更大的峰值时要停止流动;
(3)雨流遇到上面流下的雨流时,必须停止流动;
(4)取出所有的全循环,记下每个循环的幅度;
(5)将第一阶段计数后剩下的发散收敛载荷时间历程等效为一个收敛发散型的载荷时间历程,进行第二阶段的雨流计数。计数循环的总数等于两个计数阶段的计数循环之和。

计算举例

在图1中,雨流法从1点开始,该点认为是最小值。雨流流至2点,竖直下滴到3与4点幅值间的2ˊ点,然后流到4点,最后停于比1点更负的峰值5的对应处。得出一个从1到4的半循环。下一个雨流从峰值2点开始,流经3点,停于4点的对面,因为4点是比开始的2点具有更正的最大值,得出一个半循环2-3。第三个流动从3点开始,因为遇到由2点滴下的雨流,所以终止于2ˊ点,得出半循环3-2ˊ。这样,3-2和2-3就形成了一个闭合的应力-应变回路环,它们配成一个完全的循环2′-3-2。

下一个雨流从峰值4开始,流经5点,竖直下滴到6和7之间的5ˊ点,继续往下流,再从7点竖直下滴到峰值10的对面,因为10点比4点具有更正的最大值。得出半循环4-5-7。
第五个流动从5点开始,流到6点,竖直下滴,终止于7点的对面,因为7点比5点具有更负的极小值。取出半循环5-6。第六个流动从6点开始,因为遇到由5点滴下的雨滴,所以流到5ˊ点终止。半循环6-5与5-6配成一个完全循环5ˊ-6-5,取出5ˊ-6-5。
第七个流动从7点开始,经过8点,下落到9-10线上的8ˊ点,然后到最后的峰值10,取出半循环7-8-10。第八个流动从8点开始,流至9点下降到10点的对面终止,因为10点比8点具有更正的最大值。取出半循环8-9。最后一个流动从9点开始,因为遇到由8点下滴的雨流,所以终止于8ˊ点。取出半循环9-8ˊ。把两个半循环8-9和9-8ˊ配对,组成一个完全的循环8-9-8ˊ。
这样,图1所示的应变一时间记录包括三个完全循环8-9-8ˊ,2-3-2ˊ,5-6-5ˊ和三个半循环1-2-4,4-5-7,7-8-10。图1表明,雨流法得到的应变是与材料应力-应变特性相一致的。从图1中看出,有三个完全的循环,与此对应,在图2中有三个阴影线所示的闭合回路。

matlab的三点法实现
clear;clc
C=xlsread(‘load_F’);%%%%%%%%%在此修改加载的文件名,数据格式一直才可正确运算%%%
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中波峰波谷的个数
%% 步骤四 %%
%雨流计数记因素 1幅值F 2均值J 开启无脑循环模式
F=[];J=[];D=B;
while length(B)>=1
n=length(B);
if n==1
break
elseif n>1
for j=1:n-2
s1=abs(B(j+1)-B(j));
s2=abs(B(j+1)-B(j+2));
e3=(B(j)+B(j+1))/2;
if s1<=s2
F=[F;s1];
J=[J;e3];
B(j)=[];
B(j)=[];
n=length(B);
break;
else
continue;
end
end
end
continue
end
%% 步骤五 %%
%画图像 三维hist三维图像
X=[J,F];
figure;hist3(X,[30 30]);
xlabel(‘均值’);
title(‘雨流计数法-三点循环计数运算逻辑’);
ylabel(‘幅值’);
zlabel(‘循环次数’);
%% 检验说明 %%
% load_Ftest运算与手算一致,与其他语言的计算结果幅值F,均值J一直,其他的数据也证明是可以正确运行的
%%%%存在的问题
%拼接后可能会损失拼接处数据,未知是否会对结果有偏差
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 版权所有 转载请注明原出处网址%
出来的结果图,参考

四点法的实现
clear;clc
C=xlsread(‘load_F1’);%%%%%%%%%在此修改加载的文件名,数据格式一直才可正确运算%%%
B=C;A=C;
q=length(A);
%四点循环计数法
%% 步骤一 %%
%对载荷时间历程进行处理使它只包含峰谷峰谷交替出现
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))=[];n=length(B);
%% 步骤二 %%
F=[];J=[];D=B;
while fun(B)==1||fun(B)==0
if fun(B)==1
for j=1:n-4
s1=abs(B(j+1)-B(j+2));
s0=abs(B(j+3)-B(j));
e3=(B(j+2)+B(j+1))/2;
if s1<=s0
F=[F;s1];
J=[J;e3];
B(j+1)=[];
B(j+1)=[];
n=length(B);
break
else
continue
end
end
elseif fun(B)==0
break
end
continue
end
%% 步骤三 %%
%画图像 三维hist三维图像
X=[J,F];
figure;hist3(X,[30 30]);
xlabel(‘均值’);
title(‘雨流计数法-四点循环计数运算逻辑’);
ylabel(‘幅值’);
zlabel(‘循环次数’);
出来的结果图

其中应用的fun函数代码

function re=fun(B)
n=length(B);re=0;
for j=1:n-4
s1=abs(B(j+1)-B(j+2));
s0=abs(B(j+3)-B(j));
if s1<=s0
re=1;
break
else
re=0;
continue
end
end
return
以上就是所有的代码,下面提供源文件的下载地址,包括三个函数,一些测试用的数据,一份word版的手算结果与两者计算结果的简单情况下的对比。下载网址为https://download.csdn.net/download/u011391128/10286545,或者可以在我本人的上传文件中去找。要2个c币,我也不知道这是什么东西,选不了0就选的2。

希望能和各位业内人士交流一下如何改进,如果有人能加个gui的界面,万分感谢,我对gui不太熟,但你要把我的出处注上啊。最后,如果你是龙凯老师的学生,代我向他问好,顺便此题从此以后将不再成为题目。

雨流计数法及matlab代码【转载】相关推荐

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

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

  2. 雨流计数法的matlab实现

    文章目录 一.雨流计数法原理及程序框图 1.雨流计数法程序的原理 2.程序框图 二.matlab程序 三.运行结果 本文内容: (1)雨流计数法的程序原理 (2)matlab程序 (3)实现效果:显示 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 李开复「预见2021」:自动化成企业升级转型刚需 | AI日报
  2. 机器学习--信息 信息熵 信息增益
  3. redis的lrange_Redis Lrange 命令
  4. MySQL8改root密码
  5. BizTalk动手实验(十六)EDI-AS2解决文案开发配置
  6. oracle 用户账户被锁处理
  7. (转)android WebView loadData不能解析(找不到网页)
  8. 第一季2:视频设备开发的技术流
  9. IP,IP地址,mac地址
  10. TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)
  11. php刷数据库数据库,php数据库操作种
  12. C++ std::set find 错误 operator中不能有<=
  13. 已知树的前序遍历和中序遍历,求后序遍历的方法(转)
  14. 惯性导航学习笔记————惯性导航概述
  15. 文件正在使用,操作无法完成,因为文件已在...中打开
  16. OpenCV学习Rosenfeld细化算法
  17. Arduino Uno 使用 人体红外传感器(HC_SR051)实现 人体感应灯
  18. python keyboard hook_[python] PyMouse、PyKeyboard用python操作鼠标和键盘
  19. 诚之和:“何同学同款”缺货!曾现身罗永浩薇娅直播间,乐歌的网红带货路
  20. 3D俯视角色割草游戏模板+视频教程,免费发布 | 一周精品推荐

热门文章

  1. c语言字母意义,C语言 字符串前加L的意义 如:L“A”
  2. android六轴传感器,6轴传感器、IP67防水:AMAZFIT米动智芯2 上架有品
  3. 互联网采集数据有哪几种常见的方法?
  4. 2022.02.20
  5. 墨卡托坐标以及 墨卡托坐标转经纬度
  6. 自己写的QQ美女找茬外挂
  7. 分享几个简单好用的导航
  8. Part1:使用 TensorFlow 和 Keras 的 NeRF计算机图形学和深度学习——计算机图形学世界中相机的工作原理
  9. python如何合并excel文件
  10. 【文学文娱】《菊与刀的日本》