資源描述:
《MATLAB程序精確法求解反應譜.doc》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、MATLAB程序精確法求解反應譜-2008-04-06(本文程序僅供參考,請勿直接抄襲)2010/01/2109:52.1.反應譜的概念
??????反應譜是在1932年由引入的,它是用來描述地面運動及其對結構的效應的一種實用工具?,F在,反應譜作為地震工程的核心概念,提供了一種方便的手段概括所有可能的線性單自由度體系對地面運動的某個特定分量的峰值反應。它還提供了一種實用的方法,將結構動力學的知識應用于結構的設計以及建筑規(guī)范中側向力條文的制定。
??????某個反應量的峰值作為體系的固有振動周期Tn,(或者循環(huán)頻率fn)那樣的相關參數的函數圖形,稱為該
2、反應量的反應譜。每一個這樣的圖形針對的是有一個具有固定阻尼比的單自由度體系,多個具有不同阻尼比的這類圖形聯合起來就能覆蓋實際結構中遇到的阻尼值范圍。
2.反應譜的計算
反應譜數值計算方法
??????計算反應譜的方法有很多,又卷積計算法,傅立葉變換法,線性加速度法,中點加速度法,精確法等。
精確法
??????本文中采用精確法做計算,該方法是和于1969年提出的,此法的出發(fā)點是把地面運動的加速度記錄相鄰點間的值用分段線性差值表示,從而獲得地面運動的連續(xù)表達式?;诜匠瘫旧砘A上進行,得到的結果全部采用精確的分析方法,沒有任何的舍入誤差,也不會產生任
3、何的截斷誤差,所謂精確法就是指在這個意義上式精確的而然。正因為這種方法不會引起數值計算的誤差,所以它有較高的精度,只要進行較少的運算就可以達到采用其他方法需要較多次運算才能達到的精度。“由于在sohu博客上的文章發(fā)表后,陸續(xù)有問參考文獻的郵件,因此將參考文獻pdf版放上來供大家學習、參考,請勿用于商業(yè)目的。下載鏈接見地震動的譜分析入門強震觀測與分析原理(精確法求解)%%%%%%%%%%%%%%%%%%%%%反應譜精確法程序BeginWith%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear
%**********
4、*讀入地震記錄***********
fid=fopen('');
[Accelerate,count]=fscanf(fid,'%g');%count讀入的記錄的量
Accelerate=*Accelerate';????????????%單位統(tǒng)一為m和s
time=0::(count-1)*;??????????%單位s
%***********精確法計算各反應***********
%初始化各儲存向量
Displace=zeros(1,count);???%相對位移
Velocity=zeros(1,count);???%相對速度
AbsAcc
5、e=zeros(1,count);????%絕對加速度
%***********A,B矩陣***********
DampA=[0,,];????%三個阻尼比
TA=::6;?????%TA=::6;????%結構周期
Dt=;??????????????%地震記錄的步長
%記錄計算得到的反應,MDis為某阻尼時最大相對位移,MVel為某阻尼
%時最大相對速度,MAcc某阻尼時最大絕對加速度,用于畫圖
MDis=zeros(3,length(TA));
MVel=zeros(3,length(TA));
MAcc=zeros(3,length(TA)
6、);j=1;???%在下一個循環(huán)中控制不同的阻尼比
forDamp=[0,,]
??
???t=1;???%在下一個循環(huán)中控制不同的結構自振周期
???forT=::6
???????Frcy=2*pi/T;%結構自振頻率
???????
???????DamFrcy=Frcy*sqrt(1-Damp*Damp);??%計算公式化簡
???????e_t=exp(-Damp*Frcy*Dt);
???????s=sin(DamFrcy*Dt);
???????c=cos(DamFrcy*Dt);
???????
???????A=zeros(2,2)
7、;
??????????A(1,1)=e_t*(s*Damp/sqrt(1-Damp*Damp)+c);
??????????A(1,2)=e_t*s/DamFrcy;
??????????A(2,1)=-Frcy*e_t*s/sqrt(1-Damp*Damp);
??????????A(2,2)=e_t*(-s*Damp/sqrt(1-Damp*Damp)+c);
??????????
??????d_f=(2*Damp^2-1)/(Frcy^2*Dt);%計算公式化簡
??????d_3t=Damp/(Frcy^3*Dt);
??????????
8、??????
??????B=zeros(2,2);
???????????B(1,1)=e_t*((d_f