采用EL-CENTRO地震波计算单自由体系的振动位移反应谱前言:本课程论文采用软件是MATLABR2010a,所编程序应用的方法是线性加速度法。程序采用的是两层循环上实现位移谱的求取。内循环实现在地震波下由上一步所得到的位移、速度和加速度得到下一时间间隔后的位移速度和加速度;外循环实现在不同结构自振周期(频率)下遭遇地震波的响应。本文在求出相对位移反应谱的同时,也求出了相对速度反应谱、绝对加速度反应谱。一.线性加速度法的简述:线性加速度法是直接数值积分法求解地震反应的方法之一,本文所采用的线性加速度法参考大崎顺彦的《地震动的谱分析入门》第二版。具体计算公式详见大崎顺彦的《地震动的谱分析入门》第二版P116-P118。二.所编程序及编译:clear%***********读入地震记录***********fid=fopen('ei.txt');[Accelerate,count]=fscanf(fid,'%g');%count读入的记录的量time=0:0.02:(count-1)*0.02;%***********线性加速度法计算各反应***********%初始化各储存向量Displace=zeros(1,count);%相对位移Velocity=zeros(1,count);%相对速度AbsAcce=zeros(1,count);%绝对加速度Damp=0.05;%结构阻尼比取为0.05Tc=0.0:0.05:10;%结构自振周期Dt=0.02;%地震记录的步长%记录计算得到的反应,MDis为最大相对位移,MVel为最大相对速度%MAcc某阻尼时最大绝对加速度,用于画图MDis=zeros(1,length(Tc));MVel=zeros(1,length(Tc));MAcc=zeros(1,length(Tc));t=1;%在下一个循环中控制不同的结构自振周期forT=0.0:0.05:10Frcy=2*pi/T;%结构自振频率DamFrcy=Frcy*sqrt(1-Damp*Damp);%计算公式化简e_t=exp(-Damp*Frcy*Dt);s=sin(DamFrcy*Dt);c=cos(DamFrcy*Dt);A=zeros(2,2);A(1,1)=e_t*(s*Damp/sqrt(1-Damp*Damp)+c);A(1,2)=e_t*s/DamFrcy;A(2,1)=-Frcy*e_t*s/sqrt(1-Damp*Damp);A(2,2)=e_t*(-s*Damp/sqrt(1-Damp*Damp)+c);d_f=(2*Damp^2-1)/(Frcy^2*Dt);%计算公式化简d_3t=Damp/(Frcy^3*Dt);B=zeros(2,2);B(1,1)=e_t*((d_f+Damp/Frcy)*s/DamFrcy+(2*d_3t+1/Frcy^2)*c)-2*d_3t;B(1,2)=-e_t*(d_f*s/DamFrcy+2*d_3t*c)-1/Frcy^2+2*d_3t;B(2,1)=-e_t*(((Damp/(Frcy*Dt)+1)*s/DamFrcy)+(1/(Frcy^2*Dt))*c)+1/(Frcy^2*Dt);B(2,2)=e_t*((Damp/(Frcy*Dt)*s/DamFrcy)+(1/(Frcy^2*Dt))*c)-1/(Frcy^2*Dt);fori=1:(count-1)%根据地震记录,计算不同的反应Displace(i+1)=A(1,1)*Displace(i)+A(1,2)*Velocity(i)+B(1,1)*Accelerate(i)+B(1,2)*Accelerate(i+1);Velocity(i+1)=A(2,1)*Displace(i)+A(2,2)*Velocity(i)+B(2,1)*Accelerate(i)+B(2,2)*Accelerate(i+1);AbsAcce(i+1)=-2*Damp*Frcy*Velocity(i+1)-Frcy^2*Displace(i+1);endMDis(1,t)=max(abs(Displace));MVel(1,t)=max(abs(Velocity));ifT==0.0MAcc(1,t)=max(abs(Accelerate));%当结构的自振周期为0时,其绝对加速度应等于地面加速度elseMAcc(1,t)=max(abs(AbsAcce));endDisplace=zeros(1,count);%初始化各储存向量避免下次计算时引用到前面结果Velocity=zeros(1,count);AbsAcce=zeros(1,count);t=t+1;%t=length(Tc),即所求结构自振周期有多少个,对应就运行多少次。end%***********绘图***********figure%绘制位移反应谱plot(Tc,MDis)title('DisplacementResponseSpectrum')xlabel('Tn(s)')ylabel('Displacement(m)')legend('ζ=0.05')gridfigure%绘制速度反应谱plot(Tc,MVel)title('VelocityResponseSpectrum')xlabel('Tn(s)')ylabel('Velocity(m)')legend('ζ=0.05')gridfigure%绘制速度反应谱plot(Tc,MAcc)title('absAccelerateResponseSpectrum')xlabel('Tn(s)')ylabel('absAccelerate(m)')legend('ζ=0.05')grid三.地震反应谱:1.相对位移反应谱(DisplacementResponseSpectrum)2.相对速度反应谱(VelocityResponseSpectrum)3.绝对加速度反应谱(absAccelerateResponseSpectrum)四.Matlab操作截图:(在m文件编辑器中编写程序,在commadwindows检错并运行)M文件编辑器编写程序:Commandwindows窗口检错并运行五、参考文献[1]大崎顺彦地震动的谱分析入门第二版地震出版社,2008.[2]R.克拉夫J.彭津.结构动力学[M].第二版高等教育出版社,2006[3]张志涌精通MATLABR2011a.北京航空航天大学出版社,2012[4]陈怀琛Matlab及其在理工课程中的应用指南第三版,西安电子科技大学出版社2007[5]徐斌Matlab有限元结构动力学分析与工程应用清华大学出版社,2009