2021年matlab程序准确法求解反应谱文档格式.docx
- 文档编号:3506791
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:6
- 大小:25.11KB
2021年matlab程序准确法求解反应谱文档格式.docx
《2021年matlab程序准确法求解反应谱文档格式.docx》由会员分享,可在线阅读,更多相关《2021年matlab程序准确法求解反应谱文档格式.docx(6页珍藏版)》请在冰点文库上搜索。
基于方程本身基础上进行,得到的结果全部采用精确的分析方法,没有任何的舍入误差,也不会产生任何的截断误差,所谓精确法就是指在这个意义上式精确的而然。
正因为这种方法不会引起数值计算的误差,所以它有较高的精度,只要进行较少的运算就可以达到采用其他方法需要较多次运算
才能达到的精度。
由于在博客上的文章发表后,陆续有问参考文献的邮件,因此将参考文献版放上来供pdfsohu“
大家学习、参考,请勿用于商业目的。
下载链接见强震观测与分析原理
(精确法求解)
地震动的谱分析入门
%%%%%%%%%%%%%%%%%%%%%
反应谱
精确法
程序
Begin
With%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
%***********读入地震记录***********
fid=fopen('
'
);
[Accelerate,count]=fscanf(fid,'
%g'
%count
读入的记录的量
Accelerate=*Accelerate'
;
%单位统一为
m和s
time=0:
:
(count-1)*;
%单位
s
%***********精确法计算各反应***********
初始化各储存向量%.
Displace=zeros(1,count);
%相对位移
Velocity=zeros(1,count);
%相对速度
AbsAcce=zeros(1,count);
%绝对加速度
%***********A,B矩阵***********
DampA=[0,,];
%三个阻尼比
TA=:
6;
%TA=:
%结构周期
Dt=;
%地震记录的步长
%记录计算得到的反应,MDis为某阻尼时最大相对位移,MVel为某阻尼
%时最大相对速度,MAcc某阻尼时最大绝对加速度,用于画图
MDis=zeros(3,length(TA));
MVel=zeros(3,length(TA));
MAcc=zeros(3,length(TA));
j=1;
%在下一个循环中控制不同的阻尼比
forDamp=[0,,]
t=1;
%在下一个循环中控制不同的结构自振周期
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);
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);
B=zeros(2,2);
B(1,1)=e_t*((d_f+Damp/Frcy)*s/DamFrcy+(2*d_3t+1/Frcy^2)*c)-2*d_3t;
B(1,2)=-e_t*(d_f*s/DamFrcy+2*d_3t*c)-1/Frcy^2+2*d_3t;
B(2,1)=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(2,2)=e_t*(1/(Frcy^2*Dt)*c+s*Damp/(Frcy*DamFrcy*Dt))-1/(Frcy^2*Dt);
fori=1:
(count-1)%根据地震记录,计算不同的反应
Displace(i+1)=A(1,1)*Displace(i)+A(1,2)*Velocity(i)+B(1,1)*Accelerate(i)+B(1,2)*Accelerate(i+1);
Velocity(i+1)=A(2,1)*Displace(i)+A(2,2)*Velocity(i)+B(2,1)*Accelerate(i)+B(2,2)
*Accelerate(i+1);
AbsAcce(i+1)=-2*Damp*Frcy*Velocity(i+1)-Frcy^2*Displace(i+1);
end
MDis(j,t)=max(abs(Displace));
MVel(j,t)=max(abs(Velocity));
ifT==
MAcc(j,t)=max(abs(Accelerate));
else
MAcc(j,t)=max(abs(AbsAcce));
%初始化各储存向量,避免下次不同周期计算时引用到前一个周期的结果
t=t+1;
j=j+1;
%***********PLOT***********
closeall
figure%绘制地震记录图
plot(time(:
),Accelerate(:
))
title('
PEERSTRONGMOTIONDATABASERECORD--CHI010'
)
xlabel('
time(s)'
ylabel('
acceleration(g)'
grid
figure%绘制位移反应谱
plot(TA,MDis(1,:
),'
TA,MDis(2,:
-r'
TA,MDis(3,:
k'
Displacement'
Tn(s)'
Displacement(m)'
legend('
ζ=0'
'
ζ='
figure%绘制速度反应谱
plot(TA,MVel(1,:
TA,MVel(2,:
TA,MVel(3,:
Velocity'
velocity(m/s)'
绘制绝对加速度反应谱figure%.
plot(TA,MAcc(1,:
TA,MAcc(2,:
TA,MAcc(3,:
AbsoluteAcceleration'
absoluteacceleration(m/s^2)'
figure%绘制标准加速度反应谱
M=max(abs(Accelerate));
%地震记录最大值
)/M,'
NormalizedAbsoluteAcceleration'
Normalizedabsoluteacceleration'
%%%%%%%%%%%%%%%%%%%%%
End
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 matlab 程序 准确 求解 反应