使用Matlab提取骨架曲线与耗能能力

编程入门 行业动态 更新时间:2024-10-26 06:30:34

使用Matlab提取<a href=https://www.elefans.com/category/jswz/34/1745874.html style=骨架曲线与耗能能力"/>

使用Matlab提取骨架曲线与耗能能力

骨架曲线的提取

代码网上很多,但是却没有教程,所以代码拿来一跑就出错,为了以后方便复习及后面的师弟师妹好使用,在此做个手把手教程。在此感谢133办公室曾师兄,没有他的指导代码仍是跑不动的。

先上代码,点击matlab中的新建脚本,将此代码复制进去修改即可。

 


clear all
clc;
hyster=importdata('D:\matlab\bin\xjx.mat');%导入数据
LineNum=size(hyster,1);
EndCircle=1;
%--------------------找各级循环分割点位置----------------------负->正or负->零
for i=3:LineNum
    if (hyster(i,1)*hyster(i-1,1)<=0)&&(hyster(i-1,1)<0);%--默认初始加载从正半周开始
        EndCirclePoints(EndCircle)=i;                       %分割点的行号EndCirclePoints
        EndCircle=EndCircle+1;                              %中间分割点个数为EndCircle-1
    end;
end;

%--------------------检查最后是否存在不完整滞回环----------------------
if  EndCirclePoints(EndCircle-1)<LineNum
    LoopNum=length(EndCirclePoints)+1;         %LoopNum仅为完整循环的个数,应还有最后一个不完整循环
else
    LoopNum=length(EndCirclePoints);
end;
hyster=hyster(1:EndCirclePoints(EndCircle-1),:);
deflection=hyster(:,1);%位移
Force=hyster(:,2);%力
% figure()
% plot(deflection,Force,'r')  %%绘图
% hold on
Vmp=max(Force(:,1));%%最大荷载(正向)
Vmn=min(Force(:,1));%%最大荷载(负向)
dmp=deflection(find(hyster(:,2)==Vmp),1);%%最大位移(正向)
dmn=max(deflection(find(hyster(:,2)==Vmn),1));%%最大位移(负向)
% plot(dmp,Vmp,'*',dmn,Vmn,'*')
% hold on
Vcrack_p=0.85*Vmp;%%峰值85%
Vcrack_n=0.85*Vmn;%%峰值85%
% plot([0,40],[Vmp,Vmp],'b',[0,40],[Vp,Vp],'k',[-40,0],[Vmn,Vmn],'b',[-40,0],[Vn,Vn],'k')
Vp=0.7*Vmp;%%峰值70%
Vn=0.7*Vmn;%%峰值70%
%% 正向


%% 找出相交临近点
count1=0
for i=2:length(deflection(:,1))
if Force(i-1)<=Vp &a

更多推荐

使用Matlab提取骨架曲线与耗能能力

本文发布于:2024-02-12 22:45:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1689703.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:骨架   曲线   能力   Matlab

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!