地震工程作业哈工大MATLAB程序.docx
- 文档编号:10940643
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:11
- 大小:97.91KB
地震工程作业哈工大MATLAB程序.docx
《地震工程作业哈工大MATLAB程序.docx》由会员分享,可在线阅读,更多相关《地震工程作业哈工大MATLAB程序.docx(11页珍藏版)》请在冰豆网上搜索。
地震工程作业哈工大MATLAB程序
地震工程大作业
哈工大李金平
弹性反应谱
原创性声明,主程序由本人独立编写完成,支持各种检验。
所选地震动RSN2345CHICHI.AT2peer索取号:
2345
:
位移反应谱
局部放大
求比值
绝对加速度反应谱
局部放大
求比值进行比较
速度反应谱
局部放大观察差异
求比值进行比较。
结论:
对比:
拟合效果非常好,短周期0s 理解: 本次计算的反应谱是在给定的地震动下,具有相同阻尼比(5%)不同周期的单自由度结构的线弹性反应幅值,得到的速度、加速度、移幅值随周期变化的三条曲线。 a1(i)=max(abs(a+xg')); v1(i)=max(abs(v)); x1(i)=max(abs(x)); 用法: 今后给定一个结构,我们可以计算其周期T1,然后在相应的反应谱图表里面找到对应的谱值如Sa、Sv、Sd,即为我们所要求得的该结构在指定地震动作用下最大动力反应,将动力分析简化成为静力计算,简单方面。 (弹性范围内) 主程序DZZY.m clear clc M=1;%[] fid=fopen('RSN2345CHICHI.txt');%%读取地震动加速度记录 xg=9.8*fscanf(fid,'%f'); fclose(fid); n=length(xg); F=-M*xg';%生成地震力 fori=1: 1000 tn(i)=0.01*i; K=2*pi*2*pi/tn(i)/tn(i); lamda=2*pi/tn(i); dt=0.005; t=(0: 0.005: (n-1)*0.005)'; x0=0; v0=0; a0=0; ksi=0.01*5; DAMPER=2*ksi*lamda*M; [x,v,a]=newmarkb(M,K,DAMPER,1,F,x0,v0,a0,dt,n); a1(i)=max(abs(a+xg')); v1(i)=max(abs(v)); x1(i)=max(abs(x)); end test=importdata('a2.txt');%%读取Seismosignal绝对加速度 a2=test(: 2)*9.8; testv=importdata('v2.txt');%%读取Seismosignal速度 v2=testv(: 2); testd=importdata('x2.txt');%%读取Seismosignal相对位移 x2=testd(: 2); tn=0.01: 0.01: 10; figure (1) plot(tn,x1*1000,'r--') xlabel('周期T(s)') ylabel('位移(mm)') holdon plot(tn,x2*1000,'linewidth',2) legend('matlab相对位移','Seismosignal相对位移') % % figure (2) plot(tn,a1,'r--','linewidth',1) xlabel('周期T(s)') ylabel('Sa(m/s^2)') holdon plot(tn,a2,'k','linewidth',2) legend('matlab-Sa','Seismosignal-Sa') figure(3) plot(tn,v1) xlabel('周期T(s)') ylabel('速度(m/s)') holdon plot(tn,v2,'linewidth',2) legend('matlab-Sv','Seismosignal-Sv') holdoff figure(4) holdon plot(t,xg) legend('地震动加速度') xlabel('时间(s)') ylabel('加速度(m/s^2)') forj=1: 1000%求比值 ca(j)=a2(j)/a1(j); cv(j)=v2(j)/v1(j); cx(j)=x2(j)/x1(j); end figure(6) plot(tn,ca) legend('Seismosignal加速度/MATLAB加速度比值') xlabel('周期T(s)') ylabel('比值') figure(7) plot(tn,cv) legend('Seismosignal速度/MATLAB速度比值') xlabel('周期T(s)') ylabel('比值') figure(8) plot(tn,cx) legend('Seismosignal位移/MATLAB位移比值') xlabel('周期T(s)') ylabel('比值') 子程序newmarkb.m function[x,v,a]=newmarkb(M,K,C,N,P,x0,v0,a0,dt,RecordLength) %newmark-betamethod %obtaintheresponseofthedynamicsystem %[x,v,a]=newmarkb(M,K,C,N,P,x0,v0,a0,dt,RecordLength) %M-massmatrix %K-stiffnessmatrix %C-dampingmatrix %N-DOF %P-loads %x0-initialdisplacement %v0-initialvelocity %a0-initialacceleration %dt-interval %RecordLength-numberofsamplingpoints x=zeros(N,RecordLength); v=zeros(N,RecordLength); a=zeros(N,RecordLength); x(: 1)=x0; v(: 1)=v0; a(: 1)=a0; deta=0.50; alpha=0.25; a0=1/alpha/dt^2; a1=deta/alpha/dt; a2=1/alpha/dt; a3=1/2/alpha-1; a4=deta/alpha-1; a5=dt*(deta/alpha-2)/2; a6=dt*(1-deta); a7=deta*dt; K_=K+a0*M+a1*C; iK=inv(K_); fori=1: RecordLength-1 P_(: i+1)=P(: i+1)+M*(a0*x(: i)+a2*v(: i)+a3*a(: i))+C*(a1*x(: i)+a4*v(: i)+a5*a(: i)); x(: i+1)=iK*P_(: i+1); a(: i+1)=a0*(x(: i+1)-x(: i))-a2*v(: i)-a3*a(: i); v(: i+1)=v(: i)+a6*a(: i)+a7*a(: i+1); end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 地震工程作业哈工大 MATLAB程序 地震 工程 作业 哈工大 MATLAB 程序