function [tag,tag_2,Pp,F_present,kk]=clough_model(tag1,X_present,X_velocity,original_stiff,X_yeild)
%% 1
tag=tag1 ;
if tag==0 %从0点加载
kk=original_stiff(:,1);
plastic=0 ;
F_present=kk*X_present+plastic;
if X_present>X_yeild %%正向位移大于屈服位移
tag=1;
tag_2=1;
Pp=(X_yeild-X_previous)/(X_present-X_previous); %对第一类拐点处理
kk=original_stiff(:,2);
plastic=(original_stiff(:,1)-original_stiff(:,2))*X_yeild;
F_present=kk*X_present+plastic;
elseif X_present<-X_yeild %%反向位移大于屈服位移
tag=-1;
tag_2=1;
Pp=(-X_yeild-X_previous)/(X_present-X_previous);
kk=original_stiff(:,2);
plastic=-(original_stiff(:,1)-original_stiff(:,2))*X_yeild;
F_present=kk*X_present+plastic;
end
end
%% 2这里是第二类拐点可不做处理
if tag==1 %正向进入强化阶段
kk=original_stiff(:,2);
plastic=(original_stiff(:,1)-original_stiff(:,2))*X_yeild;
F_present=kk*X_present+plastic;
if X_velocity<0 %进入屈服后的卸载阶段
X_ultimate_1=X_present;
F_ultimate_1=F_present;
tag=2;
kk=original_stiff(:,1);
plastic=F_ultimate_1-kk*X_ultimate_1;
F_present=kk*X_present+plastic ;
end
end
%% 3
if tag==-1 %方向进入强化阶段
kk=original_stiff(:,2);
plastic=-(original_stiff(:,1)-original_stiff(:,2))*X_yeild;
F_present=kk*X_present+plastic;
if X_velocity >0
NX_ultimate_1=X_present;
NF_ultimate_1=F_present;
tag=-2;
kk=original_stiff(:,1);
plastic=NF_ultimate_1-kk*NX_ultimate_1;
F_present=kk*X_present+plastic;
end
end
%% 4
if tag==2 %正向屈服后的卸载阶段
kk=original_stiff(:,1) ;
plastic=F_ultimate_1-kk*X_ultimate_1;
F_present=kk*X_present+plastic;
if F_present<0 %卸载至反向加载阶段
tag=-3;
tag_2=1;
Pp=F_previous/(F_previous-F_present); %第三类拐点处理
X_Fzero_1=X_previous+Pp*(X_present-X_previous);
F_zero_1=0;
kk=(NF_ultimate_1-F_zero_1)/(NX_ultimate_1-X_Fzero_1);
plastic=F_zero_1-kk*X_Fzero_1;
F_present=kk* X_present+plastic;
elseif X_present>X_ultimate_1 %加载至强化阶段
tag=1;
tag_2=1;
Pp=(X_ultimate_1-X_previous)/(X_present-X_previous);
kk=original_stiff(:,2);
plastic=(original_stiff(:,1)-original_stiff(:,2))*X_yeild;
F_present=kk*X_present+plastic;
end
end
%% 5
if tag==-2 %屈服后反方向卸载阶段
kk=original_stiff(:,1);
plastic=NF_ultimate_1-kk*NX_ultimate_1;
F_present=kk*X_present+plastic;
if F_present>0 %加载阶段
tag=3;
tag_2=1;
Pp=F_previous/(F_previous-F_present);
NX_Fzero_1=X_previous+Pp*(X_present-X_previous);
NF_zero_1=0;
kk=(F_ultimate_1-NF_zero_1)/(X_ultimate_1- NX_Fzero_1) ;
plastic=NF_zero_1-kk*NX_Fzero_1;
F_present=kk*X_present+plastic;
end
end
%% 6
if tag==-3
kk=(NF_ultimate_1-F_zero_1)/(NX_ultimate_1-X_Fzero_1);
plastic=F_zero_1-kk*X_Fzero_1;
F_present=kk*X_present+plastic;
if X_velocity>0
tag=-2;
kk=original_stiff(:,1);
plastic=NF_ultimate_1-kk* NX_ultimate_1;
F_present=kk*X_present+plastic;
end
end
%% 7
if tag==3 %反向-正向加载
kk=(F_ultimate_1-NF_zero_1)/(X_ultimate_1-NX_Fzero_1);
plastic=NF_zero_1-kk*NX_Fzero_1;
F_present=kk*X_present+plastic ;
if X_velocity<0
tag=2;
kk=original_stiff(:,1);
plastic=F_ultimate_1-kk*X_ultimate_1;
F_present=kk*X_present+plastic;
elseif X_present>X_ultimate_1
tag =1;
tag_2=1 ;
Pp=(X_ultimate_1-X_previous)/(X_present-X_previous);
kk=original_stiff(:,2);
plastic=(original_stiff(:,1)-original_stiff(:,2))*X_yeild;
F_present=kk*X_present+plastic;
end
end
MATLAB 编程 关于刚度退化模型 clough双线性
版权申诉
5星 · 超过95%的资源 152 浏览量
2022-04-28
14:58:39
上传
评论 2
收藏 1KB ZIP 举报
处处清欢
- 粉丝: 149
- 资源: 2470
最新资源
- user+name.csv
- 安卓学习教材经验Android进阶学习资料安卓面试资料等文档资料合集(22个).zip
- 王小晨申论高分课.zip
- 基于matlab实现说话人语音识别源码+项目说明+PPT+报告(高分项目).zip
- VSc++编程助手1.0 - 1
- 基于matlab的说话人语音识别源码+PPT+报告(优质项目).zip
- 语音识别基于matlab说话人识别系统源码+报告PPT(高分优质项目).zip
- 毕业设计: 校园失物招领小程序的设计与实现论文(源码 + 数据库 + 说明文档)
- 美易ME-DUI自绘模块3.3-易语言模块
- 毕业设计:小程序消防知识每天学(源码 + 数据库 + 说明文档)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈