⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main_b20.asv

📁 钢、混凝土结构时频反应谱程序
💻 ASV
字号:
%该程序为主程序
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);
	%=加载地震波=-------------------------------------------------------------------
%1next one 107
fida(1)=fopen('e:/berkleywave/jiji/chy080_n_a.txt','r+');
fidv(1)=fopen('e:/berkleywave/jiji/chy080_n_v.txt','r+');
%2next one 108
fida(2)=fopen('e:/berkleywave/jiji/chy080_w_a.txt','r+');
fidv(2)=fopen('e:/berkleywave/jiji/chy080_w_v.txt','r+');
%3next one 147
fida(3)=fopen('e:/berkleywave/jiji/ena_e_a.txt','r+');
fidv(3)=fopen('e:/berkleywave/jiji/ena_e_v.txt','r+');
%4next one 148
fida(4)=fopen('e:/berkleywave/jiji/ena_n_a.txt','r+');
fidv(4)=fopen('e:/berkleywave/jiji/ena_n_v.txt','r+');
%5next one 149
fida(5)=fopen('e:/berkleywave/jiji/esl_e_a.txt','r+');
fidv(5)=fopen('e:/berkleywave/jiji/esl_e_v.txt','r+');
%6next one 150
fida(6)=fopen('e:/berkleywave/jiji/esl_n_a.txt','r+');
fidv(6)=fopen('e:/berkleywave/jiji/esl_n_v.txt','r+');
%7next one 155
fida(7)=fopen('e:/berkleywave/jiji/hwa002_e_a.txt','r+');
fidv(7)=fopen('e:/berkleywave/jiji/hwa002_e_v.txt','r+');
%8next one 161
fida(8)=fopen('e:/berkleywave/jiji/hwa005_e_a.txt','r+');
fidv(8)=fopen('e:/berkleywave/jiji/hwa005_e_v.txt','r+');
%9next one 163
fida(9)=fopen('e:/berkleywave/jiji/hwa006_e_a.txt','r+');
fidv(9)=fopen('e:/berkleywave/jiji/hwa006_e_v.txt','r+');
%10next one 164
fida(10)=fopen('e:/berkleywave/jiji/hwa006_n_a.txt','r+');
fidv(10)=fopen('e:/berkleywave/jiji/hwa006_n_v.txt','r+');
%1next one 181
fida(11)=fopen('e:/berkleywave/jiji/hwa017_n_a.txt','r+');
fidv(11)=fopen('e:/berkleywave/jiji/hwa017_n_v.txt','r+');
%2next one 185
fida(12)=fopen('e:/berkleywave/jiji/hwa020_n_a.txt','r+');
fidv(12)=fopen('e:/berkleywave/jiji/hwa020_n_v.txt','r+');
%3next one 188
fida(13)=fopen('e:/berkleywave/jiji/hwa022_w_a.txt','r+');
fidv(13)=fopen('e:/berkleywave/jiji/hwa022_w_v.txt','r+');
%4next one 194
fida(14)=fopen('e:/berkleywave/jiji/hwa025_w_a.txt','r+');
fidv(14)=fopen('e:/berkleywave/jiji/hwa025_w_v.txt','r+');
%5next one 209
fida(15)=fopen('e:/berkleywave/jiji/hwa033_n_a.txt','r+');
fidv(15)=fopen('e:/berkleywave/jiji/hwa033_n_v.txt','r+');
%6next one 210
fida(16)=fopen('e:/berkleywave/jiji/hwa033_w_a.txt','r+');
fidv(16)=fopen('e:/berkleywave/jiji/hwa033_w_v.txt','r+');
%7next one 212
fida(17)=fopen('e:/berkleywave/jiji/hwa034_w_a.txt','r+');
fidv(17)=fopen('e:/berkleywave/jiji/hwa034_w_v.txt','r+');
%8next one 213
fida(18)=fopen('e:/berkleywave/jiji/hwa035_n_a.txt','r+');
fidv(18)=fopen('e:/berkleywave/jiji/hwa035_n_v.txt','r+');
%9next one 227
fida(19)=fopen('e:/berkleywave/jiji/hwa044_n_a.txt','r+');
fidv(19)=fopen('e:/berkleywave/jiji/hwa044_n_v.txt','r+');
%20next one 232
fida(20)=fopen('e:/berkleywave/jiji/hwa046_n_a.txt','r+');
fidv(20)=fopen('e:/berkleywave/jiji/hwa046_n_v.txt','r+');
%1next one 239
fida(21)=fopen('e:/berkleywave/jiji/hwa051_e_a.txt','r+');
fidv(21)=fopen('e:/berkleywave/jiji/hwa051_e_v.txt','r+');
%2next one 240
fida(22)=fopen('e:/berkleywave/jiji/hwa051_n_a.txt','r+');
fidv(22)=fopen('e:/berkleywave/jiji/hwa051_n_v.txt','r+');
%3next one 246
fida(23)=fopen('e:/berkleywave/jiji/hwa056_n_a.txt','r+');
fidv(23)=fopen('e:/berkleywave/jiji/hwa056_n_v.txt','r+');
%4next one 247
fida(24)=fopen('e:/berkleywave/jiji/hwa056_w_a.txt','r+');
fidv(24)=fopen('e:/berkleywave/jiji/hwa056_w_v.txt','r+');
%5next one 249
fida(25)=fopen('e:/berkleywave/jiji/hwa057_w_a.txt','r+');
fidv(25)=fopen('e:/berkleywave/jiji/hwa057_w_v.txt','r+');
%6next one 250
fida(26)=fopen('e:/berkleywave/jiji/hwa058_n_a.txt','r+');
fidv(26)=fopen('e:/berkleywave/jiji/hwa058_n_v.txt','r+');
%7next one 251
fida(27)=fopen('e:/berkleywave/jiji/hwa058_w_a.txt','r+');
fidv(27)=fopen('e:/berkleywave/jiji/hwa058_w_v.txt','r+');
%8next one 252
fida(28)=fopen('e:/berkleywave/jiji/hwa059_n_a.txt','r+');
fidv(28)=fopen('e:/berkleywave/jiji/hwa059_n_v.txt','r+');
%9next one 253
fida(29)=fopen('e:/berkleywave/jiji/hwa059_w_a.txt','r+');
fidv(29)=fopen('e:/berkleywave/jiji/hwa059_w_v.txt','r+');
%30next one 270
fida(30)=fopen('e:/berkleywave/jiji/ila007_n_a.txt','r+');
fidv(30)=fopen('e:/berkleywave/jiji/ila007_n_v.txt','r+');
%1next one 294
fida(31)=fopen('e:/berkleywave/jiji/ila031_n_a.txt','r+');
fidv(31)=fopen('e:/berkleywave/jiji/ila031_n_v.txt','r+');
%2next one 306
fida(32)=fopen('e:/berkleywave/jiji/ila063_n_a.txt','r+');
fidv(32)=fopen('e:/berkleywave/jiji/ila063_n_v.txt','r+');
%3next one 308
fida(33)=fopen('e:/berkleywave/jiji/ila064_n_a.txt','r+');
fidv(33)=fopen('e:/berkleywave/jiji/ila064_n_v.txt','r+');
%34next one 312
fida(34)=fopen('e:/berkleywave/jiji/ila067_n_a.txt','r+');
fidv(34)=fopen('e:/berkleywave/jiji/ila067_n_v.txt','r+');

	%=加载地震波=-------------------------------------------------------------------
	um=zeros(1,sp);
	rm=zeros(1,sp);
	nw=34;
    ztd=0;zacv=0;
	for i=1:nw
		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:\jiji_brick\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:\jiji_brick\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:\jiji_brick\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:\jiji_brick\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:\jiji_brick\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:\jiji_brick\b20\em_b20_5.txt','rm','-ASCII')
		plot(per,rm,'ks-.') %绘制出累积滞回耗能谱;
        hold on;
    end       
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -