《(最新整理)结构动力学使用中心差分法计算单自由度体系动力反应的MATLAB程序》由会员分享,可在线阅读,更多相关《(最新整理)结构动力学使用中心差分法计算单自由度体系动力反应的MATLAB程序(14页珍藏版)》请在金锄头文库上搜索。
1、(完整)结构动力学使用中心差分法计算单自由度体系动力反应的MATLAB程序(完整)结构动力学使用中心差分法计算单自由度体系动力反应的MATLAB程序 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)结构动力学使用中心差分法计算单自由度体系动力反应的MATLAB程序)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为(完
2、整)结构动力学使用中心差分法计算单自由度体系动力反应的MATLAB程序的全部内容。1中心差分法计算单自由度体系动力反映的报告前言基于叠加原理的时域积分法与频域积分法一样,都假设结构在在全部反应过程中都是线性的。而时域逐步积分法只是假设结构本构关系在一个微小的时间步距内是线性的,相当于分段直线来逼近实际的曲线。时域逐步积分法是结构动力问题中研究并应用广泛的课题。中心差分法是一种目前发展的一系列结构动力反应分析的时域逐步积分法的一种,时域逐步积分法还包括分段解析法、平均常加速度法、线性加速度法、和法等。中心差分法(central difference method)原理 中心差分法的基本思路将运动
3、方程中的速度向量和加速度向量用位移的某种组合来表示,将微分方程组的求解问题转化为代数方程组的求解问题,并在时间区间内求得每个微小时间区间的递推公式,进而求得整个时程的反应。中心差分法是一种显示的积分法,它基于用有限差分代替位移对时间的求导(即速度和加速度).如果采用等时间步长,(为常数),则速度与加速度的中心差分近似为 (1) (2)用表示位移,离散时间点的运动为:, 体系的运动方程为 (3)将速度和加速度的差分近似公式(1)和(2)代入(3)中得出在时刻的运动方程,将方程整理得到由和表示的两步法的运动方程(4): (4)这样就可以根据及以前的时刻的运动求得时刻的运动。中心差分法属于两步法,用
4、两步法计算时存在起步问题,必须要给出相邻的两个时刻的位移值,才能逐步计算.对于地震作用下结构的反应问题和一般的零初始条件下的动力问题,可以用(4)直接计算,因为总可以假设初始的两个时间点(一般取)的位移等于零。但是对应于非零初始条件或零时刻外荷载很大时,需要进行一定的分析,建立两个起步时刻(即)的位移值。假设给定的初始条件为 (5)根据初始条件来确定。根据中心差分公式 (6)消去得到的公式: (7)其中零时刻加速度值可以由时的运动方程得到即 (8)这样就可以根据初始条件得到,然后再将初始条件应用于公式(4)中,逐步求出不同时刻的运动。中心差分法分析时的具体计算步骤:(1) 基本数据准备与初始条
5、件计算已知:初始位移、和初始荷载值来计算和(2) 计算等效刚度和中心差分法计算公式中的系数因此中心差分法计算公式可以表示为:(3) 根据及以前的时刻的运动求得时刻的运动(4)下一步计算中用代替,对于线弹性体系重复第3步计算步骤,对于非线性弹性体系,重复第2和第3计算步骤。以上的中心差分法逐步计算公式具有2阶精度,即误差;并且是有条件稳定的,稳定条件为:式中,为结构的自振周期,对于多自由度体系则为结构的最小自振周期。算例本算例根据结构动力学48页算例3。1数据编写,稳定条件为对于一个单层框架结构,假设楼板刚度无限大,且结构质量集中于楼层,其质量、刚度、阻尼系数,对结构施加动力荷载假设结构处于线弹
6、性状态,用中心差分法计算结构的自由振动反应。采用语言编程,并以单自由度体系为例进行计算,设初位移和初速度,取不同的步长分别计算,以验证中心差分法的稳定条件。先计算,由稳定条件,而,则,所以本次计算取0。2,0。1,0.05分别进行计算。计算结果与分析 1)当时,可以得到位移u,速度v,加速度ac的时程曲线如下:2)当时,可以得到位移u,速度v,加速度ac的时程曲线如下:3)当时,可以得到如下提示:不满足稳定条件:dt=Tn/pi,请重新输入符合稳定条件的时间步长dt。附录%m=质量;k=刚度;c=阻尼;u0=初始位移;v0=初始速度;all_time=所用时间;P0=荷载幅值;dt=时间步长;
7、%u=位移;v=速度;ac=加速度;ek=等效刚度;p=荷载;ep=等效荷载;t=时间;clear %A0=input(请按格式和顺序输入初始矩阵,如A0=m,k,c,u0,v0,all_time,P0,dt=9240 1460000 6410 0。05 0 30 7300*3 0.05=); A0=9240 1460000 6410 0.05 0 20 73000 0.05;m=A0(1,1);k=A0(1,2);c=A0(1,3);u0=A0(1,4);v0=A0(1,5);all_time=A0(1,6);P0=A0(1,7);dt=A0(1,8); if dt2sqrt(m/k) 判断
8、时间步长是否满足稳定条件 disp(不满足稳定条件:dt=Tn/pi,请重新输入符合稳定条件的时间步长dt) return elseif 0dt=2sqrt(m/k) disp(满足稳定条件为:dt=Tn/pi) endt=0:dt:all_time; 将时间分步,采用等时间步长;mm,nn=size(t); %计算t的向量长度,得出步数;u=zeros(size(t)); 设定存储u的矩阵;v=zeros(size(t); %设定存储v的矩阵;ac=zeros(size(t); 设定存储ac的矩阵;u(:,2)=u0; %赋值向量第2项为u0;v(:,2)=v0; %赋值向量第2项为v0;a
9、c(:,2)=(P0-cv(:,2)k*u(:,2))/m; 求出初始加速度ac0;u(:,1)=u(:,2)dtv(:,2)+(dt)2)*ac(:,2)/2; %计算初始条件u-1项;ek=m/(dt2)+c/(2dt); %计算等效刚度;a=k(2m)/(dt2);b=m/(dt2)-c/(2*dt); 计算方程系数;p(:,2)=P0sin(0); %给出初始荷载条件;ep(:,2)=p(:,2)-au(:,2)-bu(:,1); 计算初始等效荷载;u(:,3)=ep(:,2)/ek; 计算位移u1=u(:,3)for i=3:nn 从第二项开始进行中心差分法计算; p(:,i)=P0
10、sin(.5*pi(i-2)*dt); 给出荷载条件,按照简谐荷载计算; ep(:,i)=p(:,i)a*u(:,i)b*u(:,i1); 计算等效荷载; -得出所需要结果- u(:,i+1)=ep(:,i)/ek; 计算位移量; v(:,i)=(u(:,i+1)u(:,i1)/(2dt); %计算速度量; ac(:,i)=(u(:,i+1)2*u(:,i)+u(:,i-1)/(dt2);%计算加速度量;endt=t(:,1:end1);u=u(:,2:end-1);v=v(:,2:end);ac=ac(:,2:end);p=p(:,2:end);ep=ep(:,2:end);-绘制位移、速度
11、、加速度时程曲线-plot(t,u,b-o),hold on,plot(t,v,g-p),hold on,plot(t,ac,r:x),grid on,xlabel(时间(s),ylabel(位移(m)速度(m/s)加速度(m/s2)),title(顶层u,v,ac的时程曲线);subplot(3,1,1),plot(t,u,b),grid,xlabel(时间(s)),ylabel(位移(m),title(位移u的时程曲线);legend(位移u)subplot(3,1,2),plot(t,v,k),grid,xlabel(时间(s)),ylabel(速度(m/s)),title(速度v的时程曲线);legend(速度v)subplot(3,1,3),plot(t,ac,r),grid,xlabel(时间(s),ylabel(加速度(m/s2),title(加速度ac的时程曲线);legend(加速度ac)中心差分法求解单自由度体系的自由振动问题算例对于一个单层框架结构,假设楼板刚度无限大,且结构质量集中于楼层,其质量M=2000kg、刚度K50KN/m、阻尼系数C3KNs/m,假设结构处于线弹性状态,用中心差分法计算结构的自由振动反应。采用MATLAB语言编程,并以单自由度体系为例进行计算,设初位移u00和初速度v0=0,取不同的步长分别计算,以验证中心差分法的稳定