《用MATLAB模拟弹簧摆运动.docx》由会员分享,可在线阅读,更多相关《用MATLAB模拟弹簧摆运动.docx(3页珍藏版)》请在第壹文秘上搜索。
1、用MAT1.AB模拟弹簧摆运动引言:物体在一定位置附近所作的往复运动称为机械振动。这种振动现象在自然界是广泛存在的。例如,摆的运动,一切发声体的运动,机器开动时各局部的微小颤抖等都是机械振动。在不同的振动现象中,最根本最简单的振动是简谐振动。一切复杂的振动都可以分解为假设干个简谐振动,弹簧振子和小角度单摆就是简单的简谐振动。计算机模拟可以直观表现物理系统的运动状态,对于理解抽象的物理公式和研究系统的运动带来很多方便,所以在科研中有广泛的应用。这里我们借助于MAT1.AB,在研究物理系统的运动的同时,也用动画模拟他们的运动。由于这些运动模拟式采用真实的从求解运动方程得到的数据。所以利用mat1.
2、ab的数据拟合可以画出精确的图形。题目:设质量为ID的摆锤挂在劲度系数为k,原长为1。的轻弹簧上,弹簧的另一端悬挂于固定=0点0,系统静止自然下垂时弹簧长度为2,系统可在过0点的竖直平面内自由摆动,试研究摆锤的运动。原理:系统自由度为2。以0为极点,竖直向下的OX轴为极轴,建立极坐标系,如下图,r为质点In到0点距离,8为0、轴与弹簧间的夹角,那么系统的拉格朗日函数为=-w=联+r2g)2-mgrcos+c(r-针由拉格朗日方程可求出系统的运动微分方程为上式未作小摆角近似,因此可用以研究弹簧摆的大摆角运动,但是难以求出解析解。由数值计算结果所画出弹簧摆的大摆角运动轨迹,可发现它的运动情况很复杂
3、,不作数值计算是无法想象的。drd令P=J,dt,户=外dt,那么成为源程序:functionthbg1.oba1.1.mkgtheta0=pi10;%初始角度,可由读者设不同的值m=1.;k=80;g=9.8;1.0=1.;1.=1.O+m*gk;%1.0为弹簧原来长度,1.为弹簧静止时长度t,u1.=ode45(thbfun,0:0.005:15,1.00theta0);y1.,x1.=po1.2cart(u1.(:,3),u1.(:,1);y1.=-y1.;%将极坐标换为直角坐标figureymax=max(abs(y1.);axis(-1.21.2-1.2*ymaxO.2);%设置坐标
4、范围axisofftit1.e(,弹簧摆,fontsize,14)ho1.don;R=0.055;%设置弹簧半径yy=-1.O:0.01:0;xx=R*sin(yy./1.0*30*pi);%用正弦曲线表示弹簧a,r=cart2po1.(xx,yy);%用坐标变换来画初始位置的弹簧a=a+theta;xx,yy=po1.2cart(a,r);%弹簧的数据1.ine(-11,00,Co1.Or,r,1.inewidth,2)%画横杆,球与弹簧ba1.1.=1.ine(xx(1),yy(1),co1.or,r,marker,markersize,70,erasemode,xor,);ba1.1.2
5、=1.ine(xx(1),yy(1.),co1.or,0.50.510.6,1.inesty1.e,1.inewidth,1.3,erasemode,none,);spring=1.ine(xx,yy,co1.or,r,1.inewidth,2,erasemode,xor,);pause(0.5)fori=1:1.ength(t)%画出每一步的弹簧位置yy=-u1.(i,1):0.01:0;xx=R*sin(yy.u1.(i,1.)*30*pi);a,r=cart2po1.(xx,yy);a=a+u1.(i,3);xx,yy=po1.2cart(a,r);set(ba1.1.,XData,x1
6、.(i),YData,y1.(i);set(ba1.1.2,XData,x1.(i),YData,y1.(i);set(spring,XData,xx,YData,yy);drawnow;endfunctionF=thbfun(t,u)g1.oba1.1.mkgF=u(2);u(1.)*u(4)2+g*cos(u(3)-km*(u(1)-1.+m*gk);u(4);-2*u(2)*u(4)u(1.)-g*sin(u(3)u(1.);程序说明:程序中解微分方程的过程比拟简单,主要的技巧是在做模拟动画上。有两点值得注意,一是模拟弹簧的运动,另一点是在模拟弹簧运动的同时画出轨迹图。主程序的文件名是thb,子程序文件为thbfun,两个程序共用的变量1.,m,k,g用指令g1.oba1.来传递。程序运行截图:总结:这次小论文的编写,虽然程序还是相对简单的,但是表达了MAT1.AB真正用于科学计算的优势。通过这门课的学习,对MAT1.AB也有了更多的了解,以后可以更好的运用MAT1.AB,辅助各种研究工作,受益匪浅。参考文献:彭芳麟.计算物理根底.北京:高等教育出版社,2010.1