地震工程学-反应谱和地震时程波的相互转化matlab编程 下载本文

end at=at+atj; end

%%%%%%% 计算反应谱验证是否满足rc在5%的要求 %%%%%%%%%%%% response spectra of callidar %%%%%%% parameter g=9.8; m=1; x0=0; v0=0;

ww=2*pi./Tyz; %%%%%%%% load ag=at; %%%%%%%修改

%%%%%%% solution for y=1:nTyz z=0.037; w=ww(y); c=2*z*w; k=w^2; for i=1:nt-1

p(i)=-ag(i+1)+ag(i); a0=m\\(-ag(i)-c*v0-k*x0); kk=k+(dt^2)\\(6*m)+dt\\(3*c);

pp=p(i)+m*(dt\\(6*v0)+3*a0)+c*(3*v0+2\\(dt*a0)); dx=kk\\pp;

dv=dt\\(3*dx)-3*v0-2\\(dt*a0); x1=x0+dx; x0=x1; v1=v0+dv; v0=v1; as(i)=a0;

as(i)=as(i)+ag(i); vs(i)=v0; xs(i)=x0; end

maxas(y)=max(as); maxvs(y)=max(vs); maxxs(y)=max(xs); end

for i=1:nTyz

rspa(i)=maxas(i); end

%%%%%%% 比较容差 for i=1:nTyz

rcrsp(i)=abs(rspa(i)-Syz(i))/max(Syz(:)); end

jsnum=jsnum+1 max(rcrsp(:)) end

%%%%%%% 最终的反应谱 与规范谱

%%%%%%%%%%%% response spectra of callidar %%%%%%% parameter %% Tjs=0.05:0.01:6; %% nTjs=length(Tjs); g=9.8; m=1; x0=0; v0=0;

ww=2*pi./Tyz; %%%%%%%% load ag=at; %%%%%%%修改 %%%%%%% solution for y=1:nTyz z=0.037; w=ww(y); c=2*z*w; k=w^2; for i=1:nt-1

p(i)=-ag(i+1)+ag(i); a0=m\\(-ag(i)-c*v0-k*x0); kk=k+(dt^2)\\(6*m)+dt\\(3*c);

pp=p(i)+m*(dt\\(6*v0)+3*a0)+c*(3*v0+2\\(dt*a0)); dx=kk\\pp;

dv=dt\\(3*dx)-3*v0-2\\(dt*a0); x1=x0+dx; x0=x1; v1=v0+dv; v0=v1; as(i)=a0;

as(i)=as(i)+ag(i); vs(i)=v0; xs(i)=x0; end

maxas(y)=max(as); maxvs(y)=max(vs);

maxxs(y)=max(xs); end

for i=1:nTyz

rspa(i)=maxas(i)/g;

rspa_S(i)=r_s_1(2*pi/Tyz(i),ceita,8,2,1)/g; end

subplot(2,1,1); plot(t,at); subplot(2,1,2); plot(Tyz,rspa); hold on;

plot(Tyz,rspa_S);

4 生成的人造地震波如图所示。

图6 人造地震波和初始反应谱