資源簡介
可以將地震波的反應(yīng)譜畫出來,用matlab打開
代碼片段和文件信息
fid?=?fopen(‘D:\世茂膠南\安評(píng)地震\畫圖用\S645-5.txt‘);
[Acceleratecount]?=?fscanf(fid‘%g‘);?%count?讀入的記錄的量
Accelerate=Accelerate*40/1616;?%單位統(tǒng)一為?m和s
time=0:0.02:(count-1)*0.02;?%單位?s
Displace=zeros(1count);?%相對(duì)位移
Velocity=zeros(1count);?%相對(duì)速度
AbsAcce=zeros(1count);?%絕對(duì)加速度
%?***********AB矩陣***********
DampA=[00.050.1];?%三個(gè)阻尼比
TA=0.0:0.05:6;?%TA=0.000001:0.02:6;?%結(jié)構(gòu)周期
Dt=0.02;?%地震記錄的步長
%記錄計(jì)算得到的反應(yīng),MDis為某阻尼時(shí)最大相對(duì)位移,MVel為某阻尼
%時(shí)最大相對(duì)速度,MAcc某阻尼時(shí)最大絕對(duì)加速度,用于畫圖
MDis=zeros(3length(TA));
MVel=zeros(3length(TA));
MAcc=zeros(3length(TA));
j=1;?%在下一個(gè)循環(huán)中控制不同的阻尼比
for?Damp=[00.050.1]
t=1;?%在下一個(gè)循環(huán)中控制不同的結(jié)構(gòu)自振周期
for?T=0.0:0.05:6
Frcy=2*pi/T?;?%結(jié)構(gòu)自振頻率
DamFrcy=Frcy*sqrt(1-Damp*Damp);?%計(jì)算公式化簡
e_t=exp(-Damp*Frcy*Dt);
s=sin(DamFrcy*Dt);
c=cos(DamFrcy*Dt);
A=zeros(22);
A(11)=e_t*(s*Damp/sqrt(1-Damp*Damp)+c);
A(12)=e_t*s/DamFrcy;
A(21)=-Frcy*e_t*s/sqrt(1-Damp*Damp);
A(22)=e_t*(-s*Damp/sqrt(1-Damp*Damp)+c);
d_f=(2*Damp^2-1)/(Frcy^2*Dt);?%計(jì)算公式化簡
d_3t=Damp/(Frcy^3*Dt);
B=zeros(22);
B(11)=e_t*((d_f+Damp/Frcy)*s/DamFrcy+(2*d_3t+1/Frcy^2)*c)-2*d_3t;
B(12)=-e_t*(d_f*s/DamFrcy+2*d_3t*c)-1/Frcy^2+2*d_3t;
B(21)=e_t*((d_f+Damp/Frcy)*(c-Damp/sqrt(1-Damp^2)*s)-(2*d_3t+1/Frcy^2)*(DamFrcy*s+Damp*Frcy*c))+1/(Frcy^2*Dt);
B(22)=e_t*(1/(Frcy^2*Dt)*c+s*Damp/(Frcy*DamFrcy*Dt))-1/(Frcy^2*Dt);
for?i=1:(count-1)?%根據(jù)地震記錄計(jì)算不同的反應(yīng)
Displace(i+1)=A(11)*Displace(i)+A(12)*Velocity(i)+B(11)*Accelerate(i)+B(12)*Accelerate(i+1);
Velocity(i+1)=A(21)*Displace(i)+A(22)*Velocity(i)+B(21)*Accelerate(i)+B(22)*Accelerate(i+1);
AbsAcce(
評(píng)論
共有 條評(píng)論