反应谱:是在给定的地震加速度作用期间,单质点系统的最大反应随系统自振周期变化的曲线。
更直观的定义:一组具有相同阻尼、不同自振周期的单质点系统,在某一地震时程作用下的最大反应,为该地震的反应谱,分为加速度反应谱、速度反应谱与位移反应谱。
接触反应谱主要源于力学分析工作中的谱分析,主要是抗震分析。
有关于反应谱和地震相关的学习主要参考书籍《地震动的谱分析入门》,作者为日本的大崎顺彦,写的非常好。
这本书里面给出了地震动加速度激励下线性单质点弹簧阻尼系统的响应的求解方法和Fortran代码,用的是线性加速度法,是一种直接积分法。
设质点对地面的相对位移为,固有频率为,阻尼为,地震加速度时间历程为,则系统的运动方程可表示为:
设是按一定的时间间隔,在每个时刻,,......以离散值,,......给出的,则当把和之间以直线内插,设为区间~的原点,为该区间的局部时间,时,可把表示为:
在该区间内公式1成为:
解该非齐次方程,当给定区间在开始时刻的初始时刻初始条件为
在区间终点,即在时刻时的相对位移及相对速度为:
其中:
求得后,由(a)式可求得绝对加速度反应:
当给定t=0时,反应的初值为:
时,按(b)、(c)式就可逐次计算得到反应值(我在实际计算时全取0)。
另外,在计算(b)式各系数时,定义以下变量以便编制程序:
471function [acc,vel,dis]=sdof_response(h,f,dt,ddy)
2%sdof_response 求解单质点阻尼系统在地震加速度激励下的响应;
3% h:阻尼比
4% f:系统固有频率(Hz)
5% dt:地震加速度时程采样时间间隔
6% ddy:地震加速度时程
7
8n_sample=length(ddy);
9acc=zeros(1,n_sample);
10vel=zeros(1,n_sample);
11dis=zeros(1,n_sample);
12
13w=2*pi*f;
14w2=w*w;
15hw=h*w;
16wd=w*sqrt(1-h*h);
17wdt=wd*dt;
18E=exp(-hw*dt);
19cwdt=cos(wdt);
20swdt=sin(wdt);
21a11=E*(cwdt+hw*swdt/wd);
22a12=E*swdt/wd;
23a21=-E*w2*swdt/wd;
24a22=E*(cwdt-hw*swdt/wd);
25
26ss=-hw*swdt-wd*cwdt;
27cc=-hw*cwdt+wd*swdt;
28s1=(E*ss+wd)/w2;
29c1=(E*cc+hw)/w2;
30s2=(E*dt*ss+hw*s1+wd*c1)/w2;
31c2=(E*dt*cc+hw*c1-wd*s1)/w2;
32s3=dt*s1-s2;
33c3=dt*c1-c2;
34b11=-s2/wdt;
35b12=-s3/wdt;
36b21=(hw*s2-wd*c2)/wdt;
37b22=(hw*s3-wd*c3)/wdt;
38
39acc(1)=0;
40vel(1)=0;
41dis(1)=0;
42
43for i=2:n_sample
44 dis(i)=a11*dis(i-1)+a12*vel(i-1)+b11*ddy(i-1)+b12*ddy(i);
45 vel(i)=a21*dis(i-1)+a22*vel(i-1)+b21*ddy(i-1)+b22*ddy(i);
46 acc(i)=-2*hw*vel(i)-w2*dis(i);
47end
通过上述方法可以求得任意单个固有频率的系统在地震激励下的响应(含位移、速度、加速度),根据反应谱定义,输入一系列不同的待求解频率,分别取其反应的最大值,即可求得反应谱。
以加速度反应谱为例,可以通过以下代码求出:
121function rsacc = tts(h,freqs,acc,dt)
2%TTS 求解给定的地震加速度时程的加速度反应谱
3%h 系统阻尼比
4%freqs 待求解的频率点
5%acc 地震加速度时程
6%dt 地震时程的采样时间间隔
7n=length(freqs);
8rsacc=zeros(1,n);
9 for i=1:n
10 rsacc(i)=max(abs(sdof_response(h,freqs(i),dt,acc)));
11 end
12end
以下以一段随机数作为地震波,采样频率100Hz,然后求其响应谱。
171fs=100; %采样频率
2T=60; %时长
3ddy=rand(fs*T,1)-0.5; %时程
4h=0.02; %阻尼比
5dt=1/fs;
6freqs=logspace(log10(0.1),log10(100),100);
7accResponseSpectrum=tts(h,freqs,ddy,dt);
8subplot(2,1,2);
9plot(freqs,accResponseSpectrum);
10xlabel('频率(Hz)');
11ylabel('加速度反应谱值');
12grid on
13subplot(2,1,1);
14plot(0:dt:T-dt,ddy);
15xlabel('时间(s)');
16ylabel('加速度');
17grid on;