基本信息
源码名称:Matlab雨流计数法
源码大小:0.49M
文件格式:.docx
开发语言:MATLAB
更新时间:2021-08-22
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

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



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('循环次数');