www.gusucode.com > matlab非线性混凝土模型计算分析源码程序 > main_b20.m
%该程序为主程序 clear;%清除工作空间变量; clc;format compact;format long g; %per=[0:0.2:1.0 1.5:0.5:2 3:1:6];%设定自振周期范围,分别采用不同的密度; per=0:0.2:6; sp=length(per); %采用不同的屈服强度系数; ebx(1)=0.167; ebx(2)=0.2; ebx(3)=0.25; ebx(4)=0.333; ebx(5)=0.5; for iy=1:5 eb=ebx(iy); %=加载地震波=------------------------------------------------------------------- %next one 2 fida(1)=fopen('e:/berkleywave/northridgenew/nor_116360_a.txt','r+'); fidv(1)=fopen('e:/berkleywave/northridgenew/nor_116360_v.txt','r+'); %next one 5 fida(2)=fopen('e:/berkleywave/northridgenew/nor_alh090_a.txt','r+'); fidv(2)=fopen('e:/berkleywave/northridgenew/nor_alh090_v.txt','r+'); %next one 8 fida(3)=fopen('e:/berkleywave/northridgenew/nor_ana180_a.txt','r+'); fidv(3)=fopen('e:/berkleywave/northridgenew/nor_ana180_v.txt','r+'); %next one 10 fida(4)=fopen('e:/berkleywave/northridgenew/nor_arc262_a.txt','r+'); fidv(4)=fopen('e:/berkleywave/northridgenew/nor_arc262_v.txt','r+'); %next one 24 northridgenew fida(5)=fopen('e:/berkleywave/northridgenew/nor_bld360_a.txt','r+'); fidv(5)=fopen('e:/berkleywave/northridgenew/nor_bld360_v.txt','r+'); %next one 28 fida(6)=fopen('e:/berkleywave/northridgenew/nor_bpk180_a.txt','r+'); fidv(6)=fopen('e:/berkleywave/northridgenew/nor_bpk180_v.txt','r+'); %next one 37 fida(7)=fopen('e:/berkleywave/northridgenew/nor_cat090_a.txt','r+'); fidv(7)=fopen('e:/berkleywave/northridgenew/nor_cat090_v.txt','r+'); %next one 41 fida(8)=fopen('e:/berkleywave/northridgenew/nor_cdf000_a.txt','r+'); fidv(8)=fopen('e:/berkleywave/northridgenew/nor_cdf000_v.txt','r+'); %next one 54 fida(9)=fopen('e:/berkleywave/northridgenew/nor_cuc180_a.txt','r+'); fidv(9)=fopen('e:/berkleywave/northridgenew/nor_cuc180_v.txt','r+'); %next one 55 fida(10)=fopen('e:/berkleywave/northridgenew/nor_cwc180_a.txt','r+'); fidv(10)=fopen('e:/berkleywave/northridgenew/nor_cwc180_v.txt','r+'); %next one 60 fida(11)=fopen('e:/berkleywave/northridgenew/nor_del090_a.txt','r+'); fidv(11)=fopen('e:/berkleywave/northridgenew/nor_del090_v.txt','r+'); %next one 61 fida(12)=fopen('e:/berkleywave/northridgenew/nor_dwn090_a.txt','r+'); fidv(12)=fopen('e:/berkleywave/northridgenew/nor_dwn090_v.txt','r+'); %next one 79 fida(13)=fopen('e:/berkleywave/northridgenew/nor_gar000_a.txt','r+'); fidv(13)=fopen('e:/berkleywave/northridgenew/nor_gar000_v.txt','r+'); %next one 80 fida(14)=fopen('e:/berkleywave/northridgenew/nor_gar270_a.txt','r+'); fidv(14)=fopen('e:/berkleywave/northridgenew/nor_gar270_v.txt','r+'); %next one 81 fida(15)=fopen('e:/berkleywave/northridgenew/nor_gle170_a.txt','r+'); fidv(15)=fopen('e:/berkleywave/northridgenew/nor_gle170_v.txt','r+'); %next one 87 fida(16)=fopen('e:/berkleywave/northridgenew/nor_gra074_a.txt','r+'); fidv(16)=fopen('e:/berkleywave/northridgenew/nor_gra074_v.txt','r+'); %next one 88 fida(17)=fopen('e:/berkleywave/northridgenew/nor_gra344_a.txt','r+'); fidv(17)=fopen('e:/berkleywave/northridgenew/nor_gra344_v.txt','r+'); %next one 94 fida(18)=fopen('e:/berkleywave/northridgenew/nor_hem090_a.txt','r+'); fidv(18)=fopen('e:/berkleywave/northridgenew/nor_hem090_v.txt','r+'); %next one 104 fida(19)=fopen('e:/berkleywave/northridgenew/nor_ing090_a.txt','r+'); fidv(19)=fopen('e:/berkleywave/northridgenew/nor_ing090_v.txt','r+'); %next one 106 fida(20)=fopen('e:/berkleywave/northridgenew/nor_jab310_a.txt','r+'); fidv(20)=fopen('e:/berkleywave/northridgenew/nor_jab310_v.txt','r+'); %next one 118 fida(21)=fopen('e:/berkleywave/northridgenew/nor_lan360_a.txt','r+'); fidv(21)=fopen('e:/berkleywave/northridgenew/nor_lan360_v.txt','r+'); %next one 126 fida(22)=fopen('e:/berkleywave/northridgenew/nor_lh1090_a.txt','r+'); fidv(22)=fopen('e:/berkleywave/northridgenew/nor_lh1090_v.txt','r+'); %next one 130 fida(23)=fopen('e:/berkleywave/northridgenew/nor_lit180_a.txt','r+'); fidv(23)=fopen('e:/berkleywave/northridgenew/nor_lit180_v.txt','r+'); %next one 131 fida(24)=fopen('e:/berkleywave/northridgenew/nor_loa092_a.txt','r+'); fidv(24)=fopen('e:/berkleywave/northridgenew/nor_loa092_v.txt','r+'); %next one 146 fida(25)=fopen('e:/berkleywave/northridgenew/nor_lv5090_a.txt','r+'); fidv(25)=fopen('e:/berkleywave/northridgenew/nor_lv5090_v.txt','r+'); %next one 150 fida(26)=fopen('e:/berkleywave/northridgenew/nor_mal360_a.txt','r+'); fidv(26)=fopen('e:/berkleywave/northridgenew/nor_mal360_v.txt','r+'); %next one 152 fida(27)=fopen('e:/berkleywave/northridgenew/nor_man090_a.txt','r+'); fidv(27)=fopen('e:/berkleywave/northridgenew/nor_man090_v.txt','r+'); %next one 159 fida(28)=fopen('e:/berkleywave/northridgenew/nor_mrp090_a.txt','r+'); fidv(28)=fopen('e:/berkleywave/northridgenew/nor_mrp090_v.txt','r+'); %next one 165 fida(29)=fopen('e:/berkleywave/northridgenew/nor_nbi000_a.txt','r+'); fidv(29)=fopen('e:/berkleywave/northridgenew/nor_nbi000_v.txt','r+'); %next one 166 fida(30)=fopen('e:/berkleywave/northridgenew/nor_nbi090_a.txt','r+'); fidv(30)=fopen('e:/berkleywave/northridgenew/nor_nbi090_v.txt','r+'); %next one 191 fida(31)=fopen('e:/berkleywave/northridgenew/nor_php000_a.txt','r+'); fidv(31)=fopen('e:/berkleywave/northridgenew/nor_php000_v.txt','r+'); %next one 193 fida(32)=fopen('e:/berkleywave/northridgenew/nor_pic090_a.txt','r+'); fidv(32)=fopen('e:/berkleywave/northridgenew/nor_pic090_v.txt','r+'); %next one 198 fida(33)=fopen('e:/berkleywave/northridgenew/nor_pth180_a.txt','r+'); fidv(33)=fopen('e:/berkleywave/northridgenew/nor_pth180_v.txt','r+'); %next one 212 fida(34)=fopen('e:/berkleywave/northridgenew/nor_rma090_a.txt','r+'); fidv(34)=fopen('e:/berkleywave/northridgenew/nor_rma090_v.txt','r+'); %next one 214 fida(35)=fopen('e:/berkleywave/northridgenew/nor_ro3090_a.txt','r+'); fidv(35)=fopen('e:/berkleywave/northridgenew/nor_ro3090_v.txt','r+'); %next one 300 fida(36)=fopen('e:/berkleywave/northridgenew/nor_san180_a.txt','r+'); fidv(36)=fopen('e:/berkleywave/northridgenew/nor_san180_v.txt','r+'); %next one 221 fida(37)=fopen('e:/berkleywave/northridgenew/nor_sbg000_a.txt','r+'); fidv(37)=fopen('e:/berkleywave/northridgenew/nor_sbg000_v.txt','r+'); %next one 227 fida(38)=fopen('e:/berkleywave/northridgenew/nor_scs052_a.txt','r+'); fidv(38)=fopen('e:/berkleywave/northridgenew/nor_scs052_v.txt','r+'); %next one 229 fida(39)=fopen('e:/berkleywave/northridgenew/nor_sea000_a.txt','r+'); fidv(39)=fopen('e:/berkleywave/northridgenew/nor_sea000_v.txt','r+'); %next one 231 fida(40)=fopen('e:/berkleywave/northridgenew/nor_ser000_a.txt','r+'); fidv(40)=fopen('e:/berkleywave/northridgenew/nor_ser000_v.txt','r+'); %next one 232 fida(41)=fopen('e:/berkleywave/northridgenew/nor_ser270_a.txt','r+'); fidv(41)=fopen('e:/berkleywave/northridgenew/nor_ser270_v.txt','r+'); %next one 237 fida(42)=fopen('e:/berkleywave/northridgenew/nor_sor225_a.txt','r+'); fidv(42)=fopen('e:/berkleywave/northridgenew/nor_sor225_v.txt','r+'); %next one 238 fida(43)=fopen('e:/berkleywave/northridgenew/nor_sor315_a.txt','r+'); fidv(43)=fopen('e:/berkleywave/northridgenew/nor_sor315_v.txt','r+'); %next one 276 fida(44)=fopen('e:/berkleywave/northridgenew/nor_vrm090_a.txt','r+'); fidv(44)=fopen('e:/berkleywave/northridgenew/nor_vrm090_v.txt','r+'); %next one 278 fida(45)=fopen('e:/berkleywave/northridgenew/nor_w15180_a.txt','r+'); fidv(45)=fopen('e:/berkleywave/northridgenew/nor_w15180_v.txt','r+'); %next one 280 fida(46)=fopen('e:/berkleywave/northridgenew/nor_wai290_a.txt','r+'); fidv(46)=fopen('e:/berkleywave/northridgenew/nor_wai290_v.txt','r+'); %next one 282 fida(47)=fopen('e:/berkleywave/northridgenew/nor_wat270_a.txt','r+'); fidv(47)=fopen('e:/berkleywave/northridgenew/nor_wat270_v.txt','r+'); %next one 285 fida(48)=fopen('e:/berkleywave/northridgenew/nor_wil090_a.txt','r+'); fidv(48)=fopen('e:/berkleywave/northridgenew/nor_wil090_v.txt','r+'); %next one 296 fida(49)=fopen('e:/berkleywave/northridgenew/nor_wwj180_a.txt','r+'); fidv(49)=fopen('e:/berkleywave/northridgenew/nor_wwj180_v.txt','r+'); %=加载地震波=------------------------------------------------------------------- um=zeros(1,sp); rm=zeros(1,sp); nw=49; ztd=0;zacv=0; for i=1:nw tag=0.;tvg=0.;ag=0.;vg=0.; for di=1:5 aline=fgetl(fida(i)); vline=fgetl(fidv(i)); if(di==4) dt=fscanf(fida(i),'%f',[1 inf]); end end ag=fscanf(fida(i),'%f',[1 inf])*9.81; vg=fscanf(fidv(i),'%f',[1 inf])/100; status=fclose(fida(i));status=fclose(fidv(i)); st=length(ag);% at=dt*(st-1); %总时间为at; t=0:dt:at; cmag=max(abs(ag)); %ag=ag*2.2/cmag;%%%为和肖结果比较,特添加; ag=ag*0.4*9.81/cmag;;%%%和CHAI比较,假定为0.4g,调整mvg; vg=vg*0.4*9.81/cmag; mag=max(abs(ag));mvg=max(abs(vg)); acv=mag/9.81/mvg; zacv=zacv+acv; tc=2*pi*2.0/2.5*mvg/mag;%计算场地特征周期Tc;cv=2.0;ca=2.5; %%%&***&***能量分析应采用相同震级地面运动加速度进行标准化; %%%计算强震时间td;td=t0.95-t0.05; ia=zeros(1,st); for m=2:st ia(m)=ia(m-1)+pi/2/9.81*(ag(m-1)^2+ag(m)^2)*dt/2; end iac1=0.1; iac2=0.1; for n=1:st ia1=abs(ia(n)/ia(st)-0.05); ia2=abs(ia(n)/ia(st)-0.95); if(ia1<iac1) iac1=ia1; t1=(n-1)*dt; end if(ia2<iac2) iac2=ia2; t2=(n-1)*dt; end end td=t2-t1; ztd=ztd+td; %%%做线弹性计算; para1=1; [rd1,ad1,rv1,av1,ra1,aa1]=response_l(para1,per,ag,dt,at); % figure(1) % mesh(per,t,ad1) %绘制出绝对位移时频反应谱图; % grid on % xlabel('周期 / 秒'); % ylabel('时间 / 秒'); [row,rank]=size(aa1); sa=zeros(1,rank); for ri=1:rank for rj=1:row if (abs(aa1(rj,ri))>sa(ri)) sa(ri)=aa1(rj,ri);%弹性加速度反应谱sa(最大绝对加速度反应); end end end %%%做弹塑性计算; para1=1; [u1,nrd1,nad1,nrv1,nav1,nra1,naa1,rep]=response_n(para1,sa,per,ag,dt,at,eb); % figure(2) % mesh(per,t,nad1) %绘制出弹塑性位移时频反应谱; % grid on % xlabel('周期 / 秒'); % ylabel('时间 / 秒'); um1=zeros(1,sp); for np=1:sp for nt=1:st if (abs(u1(nt,np))>um1(np)) um1(np)=abs(u1(nt,np)); end end end um=um+um1; rm=rm+rep; end um=um/nw; rm=rm/nw; ptd=ztd/nw;pacv=zacv/nw; %%%输出td和a/v数据到硬盘; save('e:\north_concrete\b20\pingjinzhi.txt','ptd','pacv','-ASCII') if(iy==1) figure(1) plot(per(2:sp),um(2:sp),'kd-.') %绘制出弹塑性位移延性反应谱; grid on xlabel('周期T(s)'); ylabel('位移延性系数u'); title('弹塑性位移延性反应谱'); hold on; figure(2) %%%输出数据到硬盘; save('e:\north_concrete\b20\em_b20_1.txt','rm','-ASCII') plot(per,rm,'kd-.') %绘制出累积滞回耗能谱; grid on xlabel('周期T(s)'); ylabel('滞回耗能Eh(J/kg)'); title('弹塑性滞回耗能谱'); hold on; elseif(iy==2) figure(1) plot(per(2:sp),um(2:sp),'kh-.') %绘制出弹塑性位移延性反应谱; hold on; figure(2) %%%输出数据到硬盘; save('e:\north_concrete\b20\em_b20_2.txt','rm','-ASCII') plot(per,rm,'kh-.') %绘制出累积滞回耗能谱; hold on; elseif(iy==3) figure(1) plot(per(2:sp),um(2:sp),'ko-.') %绘制出弹塑性位移延性反应谱; hold on; figure(2) %%%输出数据到硬盘; save('e:\north_concrete\b20\em_b20_3.txt','rm','-ASCII') plot(per,rm,'ko-.') %绘制出累积滞回耗能谱; hold on; elseif(iy==4) figure(1) plot(per(2:sp),um(2:sp),'kp-.') %绘制出弹塑性位移延性反应谱; hold on; figure(2) %%%输出数据到硬盘; save('e:\north_concrete\b20\em_b20_4.txt','rm','-ASCII') plot(per,rm,'kp-.') %绘制出累积滞回耗能谱; hold on; else figure(1) plot(per(2:sp),um(2:sp),'ks-.') %绘制出弹塑性位移延性反应谱; hold on; figure(2) %%%输出数据到硬盘; save('e:\north_concrete\b20\em_b20_5.txt','rm','-ASCII') plot(per,rm,'ks-.') %绘制出累积滞回耗能谱; hold on; end end