第6章--Matlab应用之动力学与振动

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

上一页目录下一页返回2教学目标介绍Matlab在动力学与振动中的应用,分别用于轨迹,单自由度和多自由度线性与非线性系统的自由振动和强迫振动的分析。学习要求能够运用Matlab基本原理,对物体的运动轨迹和单自由度系统进行简单的动力学分析。上一页目录下一页返回3目录6.1轨迹6.2单自由度系统6.3多自由度系统习题上一页目录下一页返回46.1轨迹举例说明:重力场中有两个物体,其中质量为m2的物体固定,而质量为m1的物体绕m2做平面圆周运动.做圆周运动的m1物体的轨道半径用变量r表示,角度用变量a表示.m2m1ar上一页目录下一页返回56.1轨迹例6.1:卫星绕地球转动时,m2等于地球的质量,m1等于卫星的质量,r为卫星球心与地球球心间的距离。其运动轨迹由下列方程组决定:0242222222ddaddrdadrrddardrd式中:,其中t是时间变量,p为物体在地球表面做圆周运动的周期。在地球表面,r=6.373x106m。pt/上一页目录下一页返回66.1轨迹用龙格—库塔法可以实现求解:引入新状态变量:ddaxaxddrxrx432114244321224122124xxxddxxddxxxxddxxddx0242222222ddaddrdadrrddardrd上一页目录下一页返回7建立函数文件Orbit.mfunctionxd=Orbit(t,x)xd=[x(2)x(1)*x(4)^2-4.0*pi^2/x(1)^2x(4)-2.0*x(2)*x(4)/x(1)];14244321224122124xxxddxxddxxxxddxxddx6.1轨迹组X1初始X2初始X3初始X4初始轨迹类型12001.5椭圆21002pi圆32004双曲线三组初始条件(t=0):上一页目录下一页返回8由初始条件建立执行文件execute_61.minitcond=[2001.5;1002*pi;2004];tspan=linspace(0,5,1000);options=odeset('RelTol',1e-6,'AbsTol',[1e-61e-61e-61e-6]);lintype=[‘k-'‘b-.'‘r--'];fori=1:3[t,x]=ode45(‘Orbit',tspan,[initcond(i,:)],options);polar(x(:,3),x(:,1),lintype(2*(i-1)+1:2*i));holdonendtext(0.5,-1.2,'椭圆轨迹');text(-1.2,1,'圆轨迹');text(1.75,2,'双曲线轨迹');6.1轨迹常微分方程的数值求解函数上一页目录下一页返回9程序运行结果6.1轨迹上一页目录下一页返回106.2单自由度系统6.2.1概述一.力学模型mcK,aX(t)F(t)=X(0)kf(t)弹簧—质量—阻尼系统其中:振体质量为m,弹簧的线性系数为k,非线性系数为a,阻尼系数为c,外力F(t)。上一页目录下一页返回116.2单自由度系统二.运动微分方程)(20322fXxxddxdxd用x表示系统的位移,则运动微分方程为:式中:tn固有频率:非线性系数:阻尼因子:mkn2nmanmc2上一页目录下一页返回126.2单自由度系统引入新变量转化状态空间方程形式:ddxxxx21)(20322fXxxddxdxd)(203112221fXxxxddxxddx上一页目录下一页返回136.2单自由度系统6.2.2线性系统的自由振动一.运动微分方程当时,得到线性振动系统的自由振动方程。0)(,0F0222xddxdxd上一页目录下一页返回146.2单自由度系统二.MATLAB求解编写方程对应的函数文件FreeOscillation.m)(203112221fXxxxddxxddx0三种阻尼系数()(1)阻尼系数为0.1时是欠阻尼情况(2)阻尼系数为1时是临界阻尼情况(3)阻尼系数为5时是过阻尼情况functionxdot=FreeOscillation(t,x,zeta,Alpha)xdot=[x(2);-2.0*zeta*x(2)-x(1)-Alpha*x(1)^3];end上一页目录下一页返回156.2单自由度系统由初始条件(位移和速度均为1时,)建立执行文件(execute_62.m)zeta=[0.11.05.0];Alpha=[0.0,0.0,0.0];tspan=linspace(0,40,400);%生成0-40的四百个线性点lintype=char('-k','--k','-.k');fori=1:3[t,x]=ode45(@FreeOscillation,tspan,[11],[],zeta(i),Alpha(i));figure(1);plot(t,x(:,1),lintype(i,:));%x(:,1)为位移holdonfigure(2);plot(x(:,1),x(:,2),lintype(i,:));%x(:,2)为速度holdonend040ddxxxx21上一页目录下一页返回166.2单自由度系统figure(1);xlabel('Time(\tau)');ylabel('Displacementx(\tau)');title('Displacementasafunctionof(\tau)');axis([040-1.51.5]);plot([0,40],[0,0],'k-')legend('\zeta=0.1','\zeta=1.0','\zeta=5.0')figure(2);xlabel('Displacementx(\tau)');ylabel('Velocity');title('Phaseportrait');axis([-2.02.0-2.02.0]);legend('\zeta=0.1','\zeta=1.0','\zeta=5.0');续上:上一页目录下一页返回176.2单自由度系统程序运行结果上一页目录下一页返回186.2单自由度系统6.2.3非线性系统的自由振动1、运动微分方程23220dxdxxxdd一.非线性弹簧系统上一页目录下一页返回196.2单自由度系统2、Matlab求解编写常微分方程对应的函数文件FreeOscillation.mfunctionxdot=FreeOscillation(t,x,zeta,Alpha)xdot=[x(2);-2.0*zeta*x(2)-x(1)-Alpha*x(1)^3];end23220dxdxxxdd与例6.2相同,只是改变了Alpha的值,可以直接借用例6.2的函数文件上一页目录下一页返回206.2单自由度系统由初始条件建立执行文件(execute_63.m)程序如下zeta=0.2;Alpha=[0.00,-0.25,-0.25];x0=[-2.00,-2.00,-2.00];v0=[2.00,2.00,2.31];tspan=linspace(0.0,30.0,401);lintyp=char('-k','--k','-.k');options=odeset('RelTol',1e-8,'AbsTol',[1e-81e-8]);d=char('Linear:x_0=-2v_0=2\alpha=0',...'Nonlinear:x_0=-2v_0=2\alpha=-0.25',...'Nonlinear:x_0=-2v_0=2.31\alpha=-0.25');上一页目录下一页返回216.2单自由度系统fori=1:3[t,x]=ode45(@FreeOscillation,tspan,[x0(i)v0(i)]',options,zeta,Alpha(i));figure(1)plot(t,x(:,1),lintyp(i,:));holdonfigure(2)plot(x(:,1),x(:,2),lintyp(i,:));holdonend续上:上一页目录下一页返回226.2单自由度系统figure(1)xlabel('\tau');ylabel('x(\tau)');axis([0.0,30.0,-3.0,3.0]);legend(d(1,:),d(2,:),d(3,:));figure(2)xlabel('x(\tau)');ylabel('dx/d\tau');axis([-2.0,3.0,-2.0,3.0]);legend(d(1,:),d(2,:),d(3,:));续上:上一页目录下一页返回236.2单自由度系统程序运行结果上一页目录下一页返回246.2单自由度系统二、非线性阻尼系统1、运动微分方程22()0dxdxxdsignumdd式中,常量为摩擦系数,为物体的重量,k为线性弹簧的系数。干摩擦力是速度的分段函数,用signum表示。速度为正时,signum取+1,速度为负时,signum取-1.如果弹簧的弹性力不能克服干摩擦力,系统将停止振动。即当/dmgk,mg0=dxxdd,且上一页目录下一页返回256.2单自由度系统引入新变量将方程转化一阶方程形式:ddxxxx2112212()dxxddxxdsignumxd22()dxdxxdsignumdd两边同时求导1dxdxdd两边同时求导222dxdxdd上一页目录下一页返回266.2单自由度系统functionxdot=FrictionOscillation(t,x,d)%非线性阻尼系统ode文件ifabs(x(1))=d&&x(2)==0.0;xdot=[0;0];elsexdot=[x(2);-d*sign(x(2))-x(1)];end2、Matlab求解编写常微分方程对应的函数文件FrictionOscillation.m12212()dxxddxxdsignumxd0=dxxdd,且上一页目录下一页返回276.2单自由度系统由初始条件(d=0.86,初始条件a(3.0,0.0),b(5.0,0.0))建立执行文件(execute_64.m),求数值解d=0.86;x0=[3.0,5.0];v0=[0.0,0.0];tspan=linspace(0,12,120);options=odeset('AbsTol',[1e-3,1e-3]);lintyp=char('--k','-k');fori=1:2;[t,x]=ode45(@FrictionOscillation,tspan,[x0(i),v0(i)]',options,d);figure(1);plot(t,x(:,1),lintyp(i,:));holdonfigure(2)plot(x(:,1),x(:,2),lintyp(i,:));holdonend上一页目录下一页返回286.2单自由度系统figure(1)xlabel('\tau');ylabel('x(\tau)');axis([0.0,12.0,-4.0,6.0]);plot([0,12],[0,0],'k-');legend('x_0=3.0,v_0=0.0','x_0=5.0,v_0=0.0');figure(2)xlabel('x(\tau)');ylabel('dx/d\tau');text(2.5,0.5,'(3.0,0.0)');text(4.5,0.5,'(5.0,0.0)');plot([-4,6],[0,0],'k-',[0,0],[-6,4],'k-');axis([-4.0,6.0,-6.0,4.0]);续上:上一页目录下一页返回296.2单自由度系统程序运行结果上一页目录

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功