2021年matlab程序准确法求解反应谱文档格式.docx

上传人:聆听****声音 文档编号:3506791 上传时间:2023-05-01 格式:DOCX 页数:6 大小:25.11KB
下载 相关 举报
2021年matlab程序准确法求解反应谱文档格式.docx_第1页
第1页 / 共6页
2021年matlab程序准确法求解反应谱文档格式.docx_第2页
第2页 / 共6页
2021年matlab程序准确法求解反应谱文档格式.docx_第3页
第3页 / 共6页
2021年matlab程序准确法求解反应谱文档格式.docx_第4页
第4页 / 共6页
2021年matlab程序准确法求解反应谱文档格式.docx_第5页
第5页 / 共6页
2021年matlab程序准确法求解反应谱文档格式.docx_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

2021年matlab程序准确法求解反应谱文档格式.docx

《2021年matlab程序准确法求解反应谱文档格式.docx》由会员分享,可在线阅读,更多相关《2021年matlab程序准确法求解反应谱文档格式.docx(6页珍藏版)》请在冰点文库上搜索。

2021年matlab程序准确法求解反应谱文档格式.docx

基于方程本身基础上进行,得到的结果全部采用精确的分析方法,没有任何的舍入误差,也不会产生任何的截断误差,所谓精确法就是指在这个意义上式精确的而然。

正因为这种方法不会引起数值计算的误差,所以它有较高的精度,只要进行较少的运算就可以达到采用其他方法需要较多次运算 

才能达到的精度。

由于在博客上的文章发表后,陆续有问参考文献的邮件,因此将参考文献版放上来供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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2