根據單質點阻尼系的地震反應計算加速度反應譜時,發現在某些地震時程下,同SeismoSignal軟件計算的加速度反應譜相差較大,尤其是高頻部分。SeismoSignal軟件可以查看每個不同固有頻率的單自由度系統在地震激勵下的時程響應,經查看發現SeismoSignal求解的時程響應樣本點非常多,遠遠高于原地震加速度時程。
將SeismoSignal計算的響應時程提取出來與自己的計算結果對比,發現在地震時程的采樣時刻處,SeismoSignal與自己的計算結果是一致的,與下圖類似:
圖.響應時程
圖中紅線是SeismoSignal計算的加速度時程,藍線是自己計算的加速度時程。計算的加速度、速度及位移響應時程都有這種現象,固SeismoSignal計算過程中應該是對地震時程進行了線性插值,而且插值后采樣頻率變得極高,使其依此計算的結果在原來的采樣時間之外也有值。在求加速度響應譜時,是單個頻率響應下的最大值,圖中紅線的峰值與藍線的峰值自然不一樣,而且當計算的單自由度系統的固有頻率越大時,這種誤差也會越來越大。
在很多情況下,不經過插值求得的精度已經滿足工程應用的需要,但自己計算響應譜的時候仍然對頻率范圍進行判斷,當最大計算頻率大于20倍的采樣頻率時,就對地震時程進行插值。
ddy=rand(1,1000)-0.5; %隨機地震加速度
f=20; %單自由度系統固有頻率20Hz
dt=0.01; %地震時程采樣間隔
h=0.02; %阻尼比
fSampling=1/dt; %當單自由度系統固有頻率過大時對地震時程進行插值
if fSampling<20*f
fSampling=20*f;
time=0:dt:length(ddy)*dt-dt;
dt2=1/fSampling;
time2=0:dt2:max(time);
ddy2=interp1(time,ddy,time2);
end
[acc1,vel1,dis1]=sdof_response(h,f,dt,ddy);
[acc2,vel2,dis2]=sdof_response(h,f,dt2,ddy2);
plot(time,dis1)
hold on
plot(time2,dis2,'r');
--------06/25---------
我這里用的是簡單的線性加速度法,SeismoSignal有可能是用了其他的積分算法,然后積分步長特別小。