📄 nonlinear.m
字号:
function [yu,d,v,a,ep]=nonlinear(para,sa,np,per,xg,t,dt,eb)
% 能量分析则分别有ei、ek、ed、ep、ee;
st=length(xg);
m=1;%先假定为单位质量;
ke=m*(2*pi/per)^2;%初始弹性刚度,计算时频反应谱是一个系列;
%此为恢复力模型输入参数;
eta=0.05;
afa=0.5;bta=0.5;p=0.05;%%钢混结构,假定uc/uy=afa;kc/ke=bta;
ebuxi=eb;
fy=ebuxi*sa*m;%一般工程结构,双线性屈服强度系数ebuxi为0.25~0.4左右,三线型适当降低;
kc=ke*bta;ky=kc*p;%初始刚度为ke,开裂刚度为kc,屈服后刚度为ky;
uc=fy/(ke+(1/afa-1)*kc);uy=uc/afa;
f1=0;
kk1=ke;%迭代前的刚度为ke,此处将初始弹性刚度赋予它;
txg=zeros(1,2);
x1=zeros(1,3);
x2=zeros(1,3);
x1(3)=-xg(1);
up=uy;fp=fy;%%%%初始化;
un=-uy;fn=-fy;
ucom=uc;
pd=0;
for nt=1:st
if (nt==1)%初始时刻位移和速度为零,加速度为负初始时刻地震加速度;
d(1)=0;
v(1)=0;
a(1)=-xg(1);
ff(1)=0;
ep=0;%能量分析值;
else
txg(1)=xg(nt-1);
txg(2)=xg(nt);
[x2]=newmark_single(dt,kk1,m,eta,txg,x1);
[kk2,x2,f2,pd,ucom,up,fp,un,fn]=concrete_trilinear(pd,per,nt,m,eta,kk1,ke,kc,ky,uc,uy,dt,txg,x1,x2,f1,ucom,up,fp,un,fn);
%能量分析值,采用近似梯形公式,最好是考虑拐点分割为精确;
if (f1*f2>=0)
ep=ep+(f2+f1)*(x2(1)-x1(1));
else
ep=ep-f1^2/kk1+f2^2/kk2;
end
kk(nt)=kk2;
kk1=kk2;
f1=f2;
x1=x2;
d(nt)=x2(1);
v(nt)=x2(2);
a(nt)=x2(3);
end
ff(nt)=f1;
end
yu=abs(d)/uy;
ee=f2^2/kk2/2;
ep=ep-ee;
% if (per==0.2)
% for ni=1:500
% figure(31)
% scatter(d(ni),ff(ni));
% hold on;
% end
% for ni=501:1000
% figure(32)
% scatter(d(ni),ff(ni));
% hold on;
% end
% for ni=1001:st
% figure(33)
% scatter(d(ni),ff(ni));
% hold on;
% end
% end
% if (per==0.2)
% for ni=1:300
% figure(41)
% scatter(d(ni),ff(ni));
% hold on;
% end
% for ni=301:400
% figure(42)
% scatter(d(ni),ff(ni));
% hold on;
% end
% for ni=401:500
% figure(43)
% scatter(d(ni),ff(ni));
% hold on;
% end
% end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -