【分享】短时激励的反应谱程序
短时激励的时间为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)=;
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 编辑 ] 真是好资料啊,谢谢楼主的分享啊 谢谢楼主 多谢
我正在编写相关的程序呢,希望能借来验证一下 真是不错啊!!谢谢楼主分享! 多谢
我正在编写相关的程序呢,希望能借来验证一下
页:
[1]