海南师范大学本科生毕业论文题目:小球在弹簧顶端木块上的弹性跳动姓名:梁燕斌学号: 200706101123专业:物理学年级: 2007级学院:物理与电子工程学院完成日期: 2011 年 5 月2日指导教师:潘孟美(副教授)本科生毕业论文(设计)独创性声明本人声明所呈交的毕业论文(设计)是本人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注和致谢的地方外,本论文中没有抄袭他人研究成果和伪造数据等行为。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。
论文(设计)作者签名:日期:本科生毕业论文(设计)使用授权声明海南师范大学有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。
本人授权海南师范大学可以将本毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复印手段保存、汇编毕业论文(设计)。
论文(设计)作者签名:日期:指导教师签名:日期:目录摘要 (1)1.引言 (2)2.MATLAB.简介2.1 MATLAB的特点 (2)2.2 MATLAB研究小球在弹簧顶端木块上的弹性跳动的意义 (3)3.用MATLAB研究小球在弹簧顶端木块上弹性跳动3.1小球和木块跳动的微分方程 (3)3.2 MATLAB语言程序 (4)3.3结果分析3.3.1 没有空气阻力的情况下 (7)3.3.2 有空气阻力的情况下 (7)3.3.3 小球弹性跳动的效果图 (9)4小结展望 (10)5.结束语 (11)参考文献 (11)小球在弹簧顶端木块上的弹性跳动作者:梁燕斌指导教师:潘孟美副教授(海南师范大学物理与电子工程学院,海口,571158)摘要: 概括了MATLAB仿真软件的强大的科学计算和绘图功能,介绍了如何利用MATLAB 仿真软件对小球在弹簧顶端木块上的弹性跳动实验进行模拟仿真。
应用计算机仿真实验教学能有效加深学生对课程内容的理解,弥补了模拟实验装置的不足和实验环境条件难以控制的难题。
本文利用Matlab图形用户界面的设计与开发功能,结合真实的现象仿真模拟图形用户界面,实验所得出的图形细致逼真,使整个物理过程变得直观形象,对于帮助学生理解碰撞规律具有积极的作用。
关键词:拉格朗日方程;弹性跳动;Matlab模拟仿真The Top Of The Ball In The Spring Elasticity Of WoodOn The BeatAuthor:Liang Yan Bin Tutor:Professor Pan Meng mei(Institute of Physics and Electronic Engineering, Hainan normaluniversity,Haikou, 571158)Abstract: The general features of the MATLAB simulation software, describes how to use MATLAB simulation software on top of a small wood on the ball in the spring experiment to simulate the elastic beat. Application of computer simulation teaching helps the students understanding of course content, to make up for the lack of simulation equipment. In this paper, Matlab graphical user interface design and development capabilities, combined with the phenomenon of the real simulation graphical user interface, detailed graphics drawn from experiments realistic, so that the entire physical process becomes visual image, for the law to help students understand the positive role of the collision.Key words:, Lagrange equation;elastic beat; Matlab simulation1.引言计算机技术日新月异的今天,教育信息化发达的今天,多媒体技术在各门学科上都有其特有的作用,而物理实验模拟仿真受到越来越多教育工作者的广泛关注。
其应用主要有两个方面:第一是在科学计算方面,利用仿真实验的结果指导实际实验,减少和避免贵重仪器的损伤;第二是物理实验模拟仿真,本文要研究的小球在弹簧顶端木块上的弹性跳动,主要研究机械能守恒和动力守恒,而动量守恒和机械能守恒是有条件的,那就是碰撞时间极短,而且不受外力,而现实中难于找到这样实验环境,用牛顿定律也难以计算出碰撞的能损失。
但通过MATLAB模拟仿真出这样的碰撞过程,学生们可以直观的观察到整个碰撞过程,将难懂的机械能守恒概念和动量守恒规律,由仿真实验过程直观地描述,极大增加了学生探究兴趣,让学生饶有兴趣的掌握知识,使学生更易于接受,具有明显的教学效果。
由于碰撞的复杂性,本文利用Matlab的强大科学计算和绘图功能,建立了小球在弹簧顶端木块上的弹性跳动的仿真平台。
2.MATLAB简介2.1MATLAB的特点MATLAB是一种数学运算软体,是非常强而有力的电脑软体,自MATLA4.0问世以来,就成为了最具吸引力,应用最为广泛的科学计算语言【1】。
如今MATLAB已经成为集数值计算功能,符号运算功能和图形处理功能为一身的超级科学计算语言。
在我国也成为大学生必不可少的计算工具,尤其MATLAB 的科学计算及其可视化,以及它在计算方法,复变函数,概率统计,优化处理和偏微分方程求解等领域中的运用深受理科学生的喜爱。
在 MATLAB 上面执行一些数列或矩阵的运算非常方便,而它的程式结构有点类似 BASIC或 C 程式,写起来十分平易近人,而其函式的呼叫又很简单,再加以目前各种视窗上的版本都已推出,编辑程式,执行、观看结果和列印,都可以很轻松的透过视窗的切换及下拉式功能来完成,更重要的是MATLAB 的工具箱(TOOLBOX) 有 SIGNAL 及 IMAGE 两大特长,对于我们学习、物理实验仿真,能够提供完备的的辅助。
较遗憾的是目前 MATLAB 上面建立的程式仍然较难直接与一些界面卡相互钩通,另一点美中不足的地方是,虽然 MATLAB 在从事一些本身的内建函式运算时速度很快,但是如果是执行我们所建立的一些外部函式运算时速度却相当慢。
2.2 MATLAB 研究小球在弹簧顶端木块上弹性跳动的意义通常在学习小球在弹簧顶端木块上的弹性跳动过程中,碰撞过程动力守恒和机械能守恒定律知识的学习与实践靠课堂老师的讲授和题量不多的作业以及有非常有限的实验完成二者的结合,所有的抽象理论,复杂的计算,实验环境条件,由于实验环境条件难以达成,实践的机会非常不容易,而且间隔周期长,学生难以有效掌握碰撞过程的动量守恒和是机械能守恒。
当结果用Matlab 仿真实验学习时,复杂计算的题目,其计算由计算机完成,可以迅速得出结果,而且可以很快作出相应的小球和木块运动的图表曲线,其物理本质与规律显得一目了然,提高学习碰撞,机械能守恒知识的效率,参与者的创造性,想象力也可以在仿真的平台上尽情的发挥与展现。
小球在弹簧顶端木块上弹性跳动仿真模型建立的过程,从构思,建立到调试通过,直至最后得出结果,就是一次对碰撞机械能守恒知识,二次微积分求导和计算机知识的复习,巩固,完善和提高。
因此采用Matlab 计算机仿真实验的方法,不但加深对数理基础,专业知识的理解,而且还提高了学生探究问题的兴趣和学习效率。
3. 用MATLAB 研究小球在弹簧顶端木块上弹性跳动3.1小球和木块跳动的微分方程设小球质量为1m ,木块质量为2m ,弹簧劲度系数为k 以弹簧自然伸长位置的上端作为原点O ,y 轴竖直向上,设置坐标系。
以1y ,2y 分别表示小球与木块的位置,根据牛顿定律,可列出除碰撞瞬时之外小球与木块的运动微分方程[2](0.1)(1.2) 又有: (1.3) (1.4)令,则运动微分方程表示为[2] 周衍柏.理论力学教程(第三版).北京:高等教育出版社,2009.7222222d y m m g ky dt =--21112d y m m g d t =-13dy y dt =24dy y dt =(0.2) (0.3) (0.4) (0.5) 小球与木块相碰条件为12y y =,在弹性碰撞过程中动量守恒,机械能守恒。
又由于碰撞过程十分短暂,所以可以忽略碰撞过程中二物体高度的变化,则在碰撞过程中有(0.6)(0.7)(0.8)(0.9)(0.10)3.2 MATLAB 语言程序小球和木块的弹性跳动不计空气阻力情况下在MATLAB 中的编程语言如下:主程序的文件名命名为XQTHDD.mh0=50;k=60;m1=20;m2=50;tstart=0; tfinal=1000;y0=[h0;0;0;0]; tout=tstart; yout=y0.';options=odeset('Events','on'); %\fs{开启事件判断功能}for i=1:25[t,y,event]=ode45('xqythkfun',[tstart:0.03:tfinal],y0,options );%\fs{将每次得到的数据依次存在同一矩阵} tout=[tout;t(2:end)];13dy y dt =24dy y dt =39.8dy dt =-4229.8dy k y dt m =--11221122y y y ym v m v m v m v ''+=+22221122112211112222y y y y m v m v m v m v ''+=+131y dy y v dt ==242y dy y v dt ==13241324m y m y m y m y ''+=+yout=[yout;y(2:end,:)];y0(1)=y(end,1); y0(2)=y(end,2);%\fs{下一次弹跳的初位移}%\fs{由动量守恒与机械能守恒解出下一次弹跳的初速度}v10=y(end,3); v20=y(end,4);y0(3)= (-m2*v10+2*m2*v20+m1*v10)/(m2+m1);y0(4)=(2*m1*v10+m2*v20-v20*m1)/(m2+m1);tstart=t(end);end%\fs{画弹跳的位移图形}figureylabel('高度');xlabel('时间');hold onplot(tout,yout(:,1),tout,yout(:,2));legend('小球','弹簧块');%\fs{实物模拟图}figureaxis([-1 1 -50 h0+10])axis offhold on%\fs{下面的三句是用正弦函数画弹簧}yt1=-45:0.3:0;xt1=0.06*sin(yt1);tanhuang=line(xt1,yt1,'color','k','erasemode','xor','linewidth',2 );qiu=line(0,yout(1,1)+4,'color','k','erasemode','xor',...'marker','.','markersize',50);tank=line([-0.1,0.1],[yout(1,2),yout(1,2)],'color',[0.3 0.10.5],'erasemode','xor','linewidth',8);ground=line([-0.5,.5],[-50,-50],'color',[0.6 0.10.2],'linewidth',20);%\fs{动画}for i=1:length(tout)yt=-45:0.3:yout(i,2); %\fs{画实时弹簧所需要的数据}xt=0.06*sin((yt-yout(i,2))*(-45)./(-45-yout(i,2)));set(tanhuang,'xdata',xt,'ydata',yt);set(qiu,'ydata',yout(i,1)+4);set(tank,'ydata',[yout(i,2),yout(i,2)]);drawnow;end函数文件是一个独立的文件,文件名为xqythkfun.m 文件的格式采用了odefile模板的格式,用指令switch来执行何时运用事件判断的功能function varargout=XQTHDDfun(t,y,flag)switch flagcase ''varargout{1}=f(t,y);case 'events'[varargout{1:3}]=events(t,y);otherwiseerror(['Unknown flag ''' flag '''.']);end%\fs{计算微分方程的子函数}function ydot=f(t,y)k=100;m1=30;m2=50;%\fs{y(1)是小球的高度;y(2)是弹簧块的高度;y(3)是小球的速度;y(4)是弹簧块的速度;}ydot=[y(3);y(4);-9.8;-9.8-(k/m2)*y(2);];%\fs{事件判断子函数}function [value,isterminal,direction]=events(t,y)Q=y(1)-y(2); %\fs{当Q为0时,解微分方程终止}value=Q;direction=-1; %\fs{由Q减小的方向终止}3.3结果分析3.3.1 没有空气阻力的情况下小球落在竖直放置的弹簧顶端的木块上,由于碰撞顺境时间极端,动量守恒,能量会损失一部分,若小球距静止的木块高度为H,则下落碰撞前,与和速度一起运动,机械能和弹性势能相互转化,而碰撞后的总的能力还有:(1.14)以这么大能了在机械能和弹性势能之间相互转化做有规律的简谐运动。