声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2205|回复: 5

[其他相关] 【分享】短时激励的反应谱程序

[复制链接]
发表于 2006-8-4 18:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
短时激励的时间为td,可以三角形加载,矩形加载,正弦加载等。。应用杜哈梅积分求解td内和td外的最大响应,如下matlab程序。望学友指正
clear
f=1;Wn=2*pi*f;tn=1/f;
syms p0 td t wn tao m;
u1=1/m/wn*int(p0*sin(wn*(t-tao)),tao,0,t);%此为杜哈梅积分的语句,p0为矩形加载(td内),可以改动
R1=u1/p0*wn^2*m;
u2=1/m/wn*int(p0*sin(wn*(t-tao)),tao,0,td);%此为杜哈梅积分的语句,p0为矩形加载(td外),可以改动
R2=u2/p0*wn^2*m;
Td=0.001*tn:(0.05*tn):(3*tn);
M1=cell(length(Td),1);M2=cell(length(Td),1);
h=waitbar(0,'please wait');
for p=1:(length(Td));
    waitbar(p/length(Td));
Q1=subs(R1,{td,wn},{Td(p),Wn});
Q2=subs(R2,{td,wn},{Td(p),Wn});
T=(0.01*Td(p)):(0.01*Td(p)):Td(p);
M1{p}=zeros(length(T),1);
for i=1:length(T);
    MM1=subs(Q1,t,T(i));
    M1{p}(i)=double(vpa(MM1));
end
T=Td(p):(0.01*Td(p)):(5*Td(p));
M2{p}=zeros(length(T),1);
for i=1:length(T);
    MM2=subs(Q2,t,T(i));
    M2{p}(i)=double(vpa(MM2));
end
end
close(h);
M=zeros(length(M1{1})+length(M2{1}),length(Td));
for i=1:length(Td)
    M(:,i)=[M1{i};M2{i}];
end
plotM=max(M,[],1);
plot(1/20:1/20:3,plotM),xlabel('td/Tn'),ylabel('Rmax'),grid on;

[ 本帖最后由 dushudushu 于 2006-8-5 08:42 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-8-4 19:22 | 显示全部楼层
真是好资料啊,谢谢楼主的分享啊
发表于 2006-8-7 23:22 | 显示全部楼层
谢谢楼主
发表于 2006-8-13 19:18 | 显示全部楼层
多谢
我正在编写相关的程序呢,希望能借来验证一下
发表于 2006-8-14 15:10 | 显示全部楼层
真是不错啊!!谢谢楼主分享!
发表于 2010-4-16 16:17 | 显示全部楼层
多谢
我正在编写相关的程序呢,希望能借来验证一下
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-3 04:58 , Processed in 0.134765 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表