加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

地震反应谱matlab程序

(2014-08-13 23:49:13)
分类: matlab
function funrs(wave,kesi,dt)
%%%本程序用于求解地震动加速度反应谱(red为拟加速度谱,blue为绝对加速度谱)
%%%本程序可扩展求解位移谱与速度谱
%%%参数wave--地震动记录(单位gal);kesi--阻尼比;dt-地震动采样周期
%%%IEM zzq 2010-11-13
xg=wave/100; %%单位转换
xg_peak=max(xg);
T=1e-6:0.01:10;
acc1_peak=zeros(1,length(T));
acc2_peak=zeros(1,length(T));
for k=1:length(T)
     omiga=2*pi/T(k); %%结构圆频率
     A=[0,1;-omiga^2,-2*kesi*omiga];
     B=[0;-1];
     C=eye(2);
     D=zeros(2,1);
     n=length(xg);
     t=0:dt:(n-1)*dt;
     y=lsim(A,B,C,D,xg,t);  %%线性系统反应求解
     dis_peak=max(y(:,1));  
     acc1_peak(k)=omiga^2*dis_peak;%%拟加速度
     acc2_peak(k)=max(-2*kesi*omiga*y(:,2)-omiga^2*y(:,1));%%绝对加速度
end
PAS=acc1_peak/xg_peak; %%规格化
AAS=acc2_peak/xg_peak;
figure
plot(T,PAS,'-r',T,AAS,'-blue') 
title('Preso & Absolute Acceleration Spectrum')
xlabel('T(s)')
ylabel('alph')
legend('Preso','Abs')
end

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有