欢迎来到天天文库
浏览记录
ID:47540585
大小:168.00 KB
页数:12页
时间:2020-01-14
《基于MATLAB实现对结构动力响应的几种算法的验证》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.基于MATLAB实现对结构动力响应的几种算法的验证1.算例首先,本文给出一算例,结构在外力谐振荷载P(t)=P0sinθt作用下,分别利用理论解法,杜哈梅积分,Wilson-θ法求出该结构的位移时程反应。其中:m=3.5×103kg,P0=1.0×104N,k=1.3584515×107,ξ=0.05,θ=52.3s−1,ω=62.3s−1,⋅=ω1-ξ2=62.222,初始位移、速度v(0)=0,v(0)=0;2.算法验证2.1理论解法运动方程为:mv+cv+kv=sin由线性代数解出其理论解为:由于初始位移v(0)=0,v(0)=0;则:v(t)=1.05269898
2、×[6.230cos62.222t−18.106sin62.222t]+2.012808757⋅[1146sin52.3t−325.829cos52.3t]可以用MATLAB进行编程分析,画图位移时程图,详细程序见附录。2.2Wilson-法Wilson-法是Wilson于1966年基于线性加速度法的基础上提出一种无条件收敛的计算方法。该方法假定在word范文.时程步长内,体系的加速度反应按线性变化。对于地震持续时间内的每一个微小时段,从第一时段开始到最后一个时段,逐一的重复以下计算步骤,即得到结构地震反应的全过程。下面以第i+1时段()为例:2.3杜哈梅积分杜哈梅积分在考
3、虑阻尼的情况是:可以用MATLAB进行编程分析,画图位移时程图,详细程序见附录。word范文.3.位移时程反应对比分析利用MATLAB将理论解法,杜哈梅积分,Wilson-θ法求解出来的位移时程反应画在同一张图中,进行比较分析。从图中可以看出,以上三种方法得出来的位移时程曲线基本吻合,误差基本保持在5%以内,所以以上几种方法在求解相关问题上都具有一定的作用效力。4.结论本文通过一个简单的单自由度系统动力分析算例(仅作位移分析,其它分析雷同),基于MATLAB,将理论解法,杜哈梅积分法,逐步积分法(本文采用Wilson-θ法)进行相互验证,从最后的位移分析图对比上,可以很好的
4、看出三种方法均能很好的彼此验证,从而说明了三种方法在相关问题上的作用效力。附录:MATLAB源程序word范文.%理论解,杜哈梅积分,Wilson-θ法程序clc;clearh1=figure(8);set(h1,'color','w')%理论解法t=0:0.01:1;v=1.05269898*10^(-4)*exp(-3.115*t).*(6.230*cos(62.222*t)-18.106*sin(62.222*t))+2.012808757*10^(-6)*(1146*sin(52.3*t)-325.829*cos(52.3*t));plot(t,v,'k')hold
5、on%杜哈梅积分法aa=1;%输入时间长度bb=0.01;%输入精度t=bb:bb:aa;t1=t;theta=52.3;%输入荷载频率w=62.3;%输入自振频率m=3500;%输入质量p0=10000;%输入荷载幅值p0=p0*ones(1,aa/bb);p=p0.*sin(theta*t);%荷载函数fori=1:(aa/bb)forj=1:icanshu1(j)=p(j)/(m*w)*bb*sin(w*(t(i)-t1(j)));%杜哈梅积分中的被积函数endy(i)=sum(canshu1);%%位移值endfori=1:aa/bb-1v1(i)=(y(i+1)-
6、y(i))/bb;%计算速度endfori=1:(aa/bb-2)a(i)=(v1(i+1)-v1(i))/bb;%计算加速度endholdonplot(t,y,'r')%画位移图holdon%Wilson-θ法dt=0.01;ct=1.4;ndzh=100;k=13584515;word范文.c=21805;t=0:dt:ndzh*dt;ag=10000*sin(52.3*t);ag1=ag(1:ndzh);ag2=ag(2:ndzh+1);agtao=ct*(ag2-ag1);wyi1=0;sdu1=0;jsdu1=0;wyimt=0;sdumt=0;jsdumt=0;
7、fori=1:ndzhkxin=k+(3/(ct*dt))*c+(6/(ct*ct*dt*dt))*m;%kxin为新的刚度dpxin=-m*agtao(i)+m*(6/(ct*dt)*sdu1+3*jsdu1)+c*(3*sdu1+ct*dt/2*jsdu1);%新的力增量dxtao=kxindpxin;dtjsdu=6*dxtao/(ct*(ct^2*dt^2))-6*sdu1/(ct*ct*dt)-(3/ct)*jsdu1;jsdu=jsdu1+dtjsdu;dtsdu=(dt/2)*(jsdu+jsdu1
此文档下载收益归作者所有