%以上结论是基于El-Centro地震记录的分析,不同地震记录具体结果会有一定差异,但是规律是相同的。
%%MATLAB%%
% 计算并绘制5%和30%阻尼比下的El Centro (1940, NS)地震记录的伪反应谱和绝对加速度反应谱,并比较二者的差异。
%%%%%%%%%%Begin matlab%%%%%%%%%%
clc
clear
close all
l=1;
for i=0.5:0.5:2
for jj=0:0.5:2
temp1=['EL_Arti_C_',num2str(i),'_',num2str(jj),'.txt'];
a=exist(temp1);
if a==2
EL=load(temp1);
xg=EL(:,1);
xl=size(xg);
t=0:0.02:0.02*(xl-1);
xg=xg/100; %单位 m/s^2
TA=0.001:0.05:6; %结构自振周期
j=1; %在kesi循环中控制不同的阻尼比
% for kesi=[0.05,0.3]; % 结构阻尼比
kesi=0.05;
k=1; %在T循环中控制不同的结构自振周期
for T=0.001:0.05:6
omiga=2*pi/T; % 结构圆频率
A=[0 1;-omiga^2 -2*kesi*omiga];
B=[0;-1];
C=eye(2);
D=zeros(2,1);
y=lsim(A,B,C,D,xg,t);
%拟加速度
% acce_ps=y(:,1)*omiga^2; %结构周期一定时,一次地震动,结构的加速度
% acce_psmax(j,k)=max(abs(acce_ps)); %不同周期,各个周期所对应的拟加速度最大值
%绝对加速度
vel=y(:,2);
acce_abs=-2*kesi*omiga*vel-y(:,1)*omiga^2;
acce_absmax(j,k)=max(abs(acce_abs));
k=k+1;
end
% j=j+1;
% end
% figure %绘制拟加速度反应谱
% plot(TA,acce_psmax(1,:),'-.b',TA,acce_psmax(2,:),'-r')
% title('Preso Acceleration Spectrum')
% xlabel('Tn(s)')
% ylabel('Preso acceleration m/s^2')
% legend('ζ=0.05','ζ=0.3')
% grid
figure(l) %绘制绝对加速度反应谱
plot(TA,acce_absmax(1,:),'lineWidth',2)
hold on
title('Absolute Acceleration Spectrum')
xlabel('Tn(s)','fontsize',20)
ylabel('absolute acceleration m/s^2','fontsize',20)
text(5,0.08,'ζ=0.05');
grid on
end
end
legend('EL','Vp=0.5','Vp=1','Vp=2','location','Best');
l=l+1;
end
% figure %对比 ζ=0.05
% plot(TA,acce_psmax(1,:),':b',TA,acce_absmax(1,:),'-r')
% title('Contrast Acceleration Spectrums With ζ=0.05')
% xlabel('Tn(s)')
% ylabel('acceleration m/s^2')
% legend('Preso','Abs')
% grid
% figure %对比 ζ=0.3
% plot(TA,acce_psmax(2,:),':b',TA,acce_absmax(2,:),'-r')
% title('Contrast Acceleration Spectrums With ζ=0.3')
% xlabel('Tn(s)')
% ylabel('acceleration m/s^2')
% legend('Preso','Abs')
% grid
%%%%%%%%%%End matlab %%%%%%%%%%
% 该程序计算反应谱直接调用matlab函数求解微分方程,效率比较高,对比