搜档网
当前位置:搜档网 › MATLAB在物理中的应用(单摆).doc

MATLAB在物理中的应用(单摆).doc

MATLAB在物理中的应用(单摆).doc
MATLAB在物理中的应用(单摆).doc

<>课程论文

MATLAB在单摆实验中的应用

姓名蔡小强

学号:2010110102

专业:物理学

班级:10物理学

学院:物电学院

完成日期:2011/12/11

MATLAB在单摆实验中的应用

【摘要】借助MATLAB 计算软件, 研究无阻尼状态下单摆的大摆角运动, 给出了任意摆角下单摆运动周期的精确解。同时利用MATLAB 函数库中的ode45 函数, 求解出大摆角下的单摆的运动方程。并利用其仿真动画形象的展现出单摆的运动规律, 为单摆实验中大摆角问题的讲解提供了较好的教学辅助手段。

【关键字】单摆模型;周期;MATLAB

一、问题的提出

在工科物理教学中,物理实验极其重要,它担负着训练学生基本实验技能、验证学生所学知识、提高学生综合实力的重要职责。通过一系列的物理实验,学生可在一定程度上了解并掌握前人对一些典型物理量的经典测量方法和实验技术,并为以后的实验工作提供有价值的借鉴,进而培养学生的动手实践能力和综合创新能力。然而,物理实验的优劣很大程度受限于物理实验条件的制约。当前,受限于以下条件(很多情况下物理实验环境都是难以有效构造的),物理实验的效果并不理想:1)一些实验设备比较复杂并且昂贵,难以普及应用;2)有效实验环要求非常苛刻,是现实环境中难以模拟,甚至根本无法模拟;3)除此以外,有些实验的实验环境即使可以有效构造,它的实验结果却仍然是难以直接、完整观察获取的,如力场、电场、磁场中的分布问题等。鉴于以上原因,物理仿真实验已引起了大家的关注,出现了一些软件。但很多是基于Flash、Photoshop 、3D Studio MAX之类的图形图像软件制作。这些软件可以制作逼真的实验环境和生动的实验过程动画,还可以制作出实际实验所无法达到的效果。但这类软件本身是制作卡通动画的,对物理实验规律和过程很少涉及,很难做到真正的交互使用,及精确的计算分析同时开发也很困难。因此,基于这些软件的仿真在工科物理实验教学中应用很少。本文利用MATLAB 计算软件及其仿真功能对单摆实验过程进行模拟、仿真及后期分析,对物理实验教学改革提供一种新思路。

具体地,本文将描述一种新颖的单摆实验方法, 其主要的意义在于给学生以综合性实验技能训练。一个综合性实验, 它必须涉及多方面的知识和实验技能。本文描述的单摆实验方法即具备这样的特征。它的实验原理虽然简单, 但所涉及到的知识点极为丰富: 力学振动, 计算机编程等。学生通过这样的实验不仅可以得到综合性的实验技能训练, 而且可以在如何将现代技术改造传统实验、理论联系实际等方面得到很多启示。另外,本文引入计算机技术分析法, 对单摆实验进行了改造, 既实现了基础物理实验的现代化, 又为MATLAB课程实验提供了很好的应用落足点, 可以使学生得到多方面的实验技能训练。

二、方法概述

2.1问题描述

单摆问题是高中物理及大学普通物理实验教学中的一个基础问题。单摆在摆角比较小时,其运动规律近似为准简谐振动。但是当摆角比较大时, 即单摆在大摆角情况下运动时,这种近似已不再成立,其运动方程满足非线性微分方程。因此,对摆角大小的限制成为该实验中必须满足的条件。不同的实验条件下,最大摆角的取值不同,其中包括, ,,,甚至等。这就为在实验过程中对摆角的统一取值造成困难,给实验带来较大的误差。同时,学生对单摆在大摆角情况下运动时其运动周期及运动规律的理解也存在困难。利用先进的计算机仿真

技术模拟单摆运动、分析单摆运动规律为学生理解、掌握单摆运动规律具有积极的意义。

矩阵实验室(Matrix Laboratory)简称MATLAB,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。现在MATLAB已经在线性代数,自动控制原理,数字信号处理,时间序列分析,动态系统仿真,图像处理等众多领域内得到应用,成为美国和其它发达国家大学教育和科学研究中必不可少的工具。在我们的学习实验中,Matlab也能够发挥其重要作用:在物理学的许多实验中,由于外界诸多因素的影响,实验结果往往具有很大的误差,Matlab利用其强大的计算能力和逼真的科学计算数据可视化能力为物理实验提供了新思路、新办法,通过Matlab进行数值计算能在很大程度上减小误差,提高实验准确度。因此,掌握Matlab基本技能,通过其强大的运算、仿真、分析能力解决实际物理环境难以解决的问题是大学生应该具备的基本素质之一。

就单摆问题而言,小球在来回摆动的过程中不仅受到外界阻力等环境影响,而且其摆动过程中的角度也是很难确定的(单摆在小于等于五度时才能验证其周期),这就为实际物理实验的展开制造了巨大的困难。本文将借助于MATLAB 这个强大的数学软件, 计算任意摆角下单摆运动周期的精确解,以消除摆角问题带来的误差;同时利用该软件, 仿真出大摆角时单摆的运动情况,为单摆测重力加速度实验中大摆角问题的讲解提供较好的手段。通过本问题的模拟、仿真、分析为大学物理实验其它问题的求解提供借鉴。

2.2算法基础

2.2.1单摆运动周期

单摆是一种物理模型。设质量为m、摆长为l的单摆在重力场中作无阻尼振动,由牛顿第二定律得,单摆的运动方程为:

(1)

当摆角较小时, sin与无限接近,方程( 1) 化简为:

= (2)

这是一个简单的谐振动方程,其解析解为:

A cos(t + ) (3)

其中固定角频率 = ;其周期为:

(4)

当摆角较大时, 这种近似不再成立。公式( 1) 是一个非线性微分方程, 其解析解很难求出。但是通过积分的方法,作变量代换,就可得到大摆角运动时单摆的周期的积分形式: (5) 其中为单

摆的最大摆角。此公式适用于任意摆角下单摆运动周期的计算。

2.2.2单摆做简谐运动的条件

在力学的实验中,我们讨论单摆只讨论它的小角度摆动,单摆在摆角很小(小于5o)的情况下,可以看作间谐振动。

①研究摆球沿圆弧的运动情况时,要以不考虑与摆球运动方向垂直的力,而只考虑沿摆球运动方向的力,如图1所示。

图1 单摆运动中力的分析

②因为F′垂直于v,所以,我们可将重力G分解到速度v的方向及垂直于v的方向.且G1=Gsinθ=mg sinθG2=G cosθ=mg cosθ。

③说明:正是沿运动方向的合力G1=mg sinθ提供了摆球摆动的回复力。

④推导:

x

在摆角很小时,sinθ=

l

x

回复力F=mg sinθ F=mg·

l

(x表示摆球偏离平衡位置的位移,l表示单摆的摆长)

⑤在摆角θ很小时,回复力的方向与摆球偏离平衡位置的位移方向相反,大小成正比,单摆做简谐运动。

⑥简谐运动的图象是正弦(或余弦曲线),那么在摆角很小的情况下,既然单摆做的是简谐运动,它振动的图象也是正弦或余弦曲线。

设摆线与垂直线的夹角为θ,在正下方处时θ=0,逆时针方向为正,反之为负。则摆的角速度为(角度对时间t的一次导数),角加速度为(角度θ对时间t的二次导数)。对摆进行力学分析,由牛顿第二运动定律,有:

ml = - mgsinθ

即: + sinθ = 0

令ω = (g/l)1/2 ,有:

+ ω2sinθ = 0

当θ很小时, sinθ ≈ θ(这就是考虑单摆运动时通常强调“微”摆的原因)这时,有:

+ ω^2θ ≈ 0

该方程的解为:

θ = Asin(ωt+φ)

这是个正弦函数,其周期为:

T = 2π/ω = 2π SinQ=Q M=-mglQ

三、基于MAT LAB的问题求解

3.1单摆大摆角的周期精确解

利用MATLAB计算软件, 对[0,]区间的 , 每隔计算一个积分值, 得到2 000 个不同摆角的的精确解。然后以摆角为横轴,为纵轴, 利用绘图函数polt ( x , y ) 绘制出任意摆角下单摆周期的精确解的曲线。

程序如下:

%单摆周期与摆角的关系

a= 0; b= pi/ 2; n= 1000; s1= 1: n; h= ( b-a) / n; h1= pi/ ( 2* n) ; c= 0: h1: pi/ 2 x= a; s= 0;

for i1= 1: ( n+ 1)

f0= 2/ sqrt ( 1-( sin( c( i1) / 2) ) ^2* ( sin( x ) ) ^2) / pi; for i2= 1: n x= x+ h;

f1= 2/ sqrt ( 1-( sin( c( i1) / 2) ) ^2* ( sin( x ) ) ^2) / pi; s= s+ ( f0+ f1) * h/ 2; f0= f1; end

disp( 1/ s) ; s1( i1) = s; s= 0; end

plot( c, s1) ;

xlabel( ‘theta0/rad ’ ) ; ylabel( ‘T/T0’ ) ;

运行结果后,得图2。如图2所示,随着摆角的增大,单摆的运动周期 与比值越来越大,即单摆运动周期随着摆角增大变大。当摆角单摆的运动周期会急剧增加。

00.20.40.60.81 1.2 1.4 1.6

11.02

1.041.061.08

1.1

1.121.14

1.161.181.2

摆角 /rad

图2 单摆周期的精确解

3. 2 大摆角单摆的运动规律

程序如下:

%建立方程( 1)

Function xdot= per( t,x)

xdot= [ -9. 8* sin( x ( 2) ) ; x( 1) ] ;

% 建立方程( 2)

Function xdot= per1( t,x)

xdot= [ -9. 8* x( 2) ; x( 1) ] ;

%利用ode45 求解微分方程

t0= 0; tf= 10;

[ t, x] = ode45( ‘per’ , [ t0, t f] , [ pi/ 2, 0] ) ;

[ t1, x1 ] = ode45 ( ‘ per1’ , [ t0, tf ] ,[ pi/ 2, 0] ) ;

plot( t, x( : , 2) , ‘ -‘) ;

holdon

plot( t1, x1( : , 2) , ‘ ‘) ;

图3 单摆的大摆角运动规律

运行后,得图3。实线代表方程( 2)的解,是一条正余弦曲线,为典型的简谐振动。虚线

代表大摆角情况下方程( 1)的解。

3.3、单摆仿真(动画)

我们在实验室做实验时一般情况下过程相对比较麻烦,而且很多实验所需要的条件难以控制,为此有时我们可以利用动画来进行仿真模拟实验。本文用MATLAB软件来进行动画仿真,设计以MATLAB程序来模拟单摆的仿真(制作一动画实现单摆),并通过仿真来回摆动的时间来测出单摆的周期。通过Matlab的仿真既能把实验中需要设置的条件编写入程序中,又能减小实验带来的误差。降低实验难度。

程序如下:

%制作动画

%挂摆横梁

plot([-0.2;0.2],[0;0],'color','y','linestyle','-','linewidth',10);

%画初始位置的单摆

g=9.86; %重力加速度,可以调节摆的速度

l=1;

theta0=pi/4;

x0=l*sin(theta0);

y0=(-1)*l*cos(theta0);

axis([-0.75,0.75,-1.25,0]);

axis('off'); %不显示坐标轴

%创建摆锤

head=line(x0,y0,'color','r','linestyle','.','erasemode','xor','markersize',40) ; %创建摆杆

body=line([0;x0],[0;y0],'color','b','linestyle','-','erasemode','xor');

%摆的运动

t=0;

dt=0.01;

while 1

t=t+dt;

theta=theta0*cos(sqrt(g/l)*t);

x=l*sin(theta);

y=(-1)*l*cos(theta);

set(head,'xdata',x,'ydata',y);

set(body,'xdata',[0;x],'ydata',[0;y]);

drawnow;

end

模拟实验结果如图4、图5所示,分别对应了单摆运动位于左右位置的状况。

图4 大角度单摆运动模拟截图一(右侧位置)

图5 大角度单摆运动模拟截图二(左侧位置)

四、结论

综合实验结果,结论如下:

第一,如图2 所示,随着单摆摆角的增大,单摆的周期也会增加,这样很简单地就明白了为什么用单摆测量加速度时要求单摆的摆角要小于。因此,借助MAT LAB 强大的绘图功能可以帮助学生更深入理解单摆大摆角运动下周期的变化规律。同时,如图3 中两根曲线表明:大摆角振动时, 单摆的运动轨迹并不是简单的正、余弦曲线( 虽然很相似),而且,最大摆角越小,两根曲线越相似;摆角越大,分离越明显。由于这种相似性,在粗略研究单摆运动时,方程(1)可以采用一种近似求解方法——余弦函数法将周期表示成如下方式:

其中为单摆最大摆角。

第二,利用MATLAB语言对单摆动画仿真模拟的分析我们不难得出:在单摆设计和试验过程中,需要对单摆进行运动分析进而求得周期,而要将单摆摆动的角度限定在以内并不是很好控制,而在该运动范围内观察、记录其运动规律及全过程也非常复杂,如果运用手工计算不仅非常困难,而且极易出错,但是如若对这种复杂的系统进行仿真便能更好地解答在设计、制造、试验阶段以及其运行过程中出现的问题。因此可以利用MATLAB 强大的数值计算能力和绘图能力以及强大的动画仿真功能,非常简便地解决单摆运动过程中大摆角导致的问题。这对于工科的物理实验教学提供了很多方便,同时也有利于学生深刻的理解单摆问题。在大学物理实验的很多问题都可以借助MATLAB 的优点方便地求解。

五、课程体会

通过这一学期的学习,我认为MATLAB这一基于矩阵运算的软件,它具有强大的功能,比如:绘图,信号处理,自动控制原理,动态系统仿真,图像处理。虽然MATLAB和c++都是一种实用软件,但是相比之下MATLAB编程比c++较简单。所以大多数的科目都应用MATLAB来解决较难的问题。并且MATLAB作为一门实用工具它可以解决并应用在我们实际学习过程所遇到的难以解决的问题之中。因此,我们应该学习并熟练运用这门技术进而使得以后的学习更形象简单明理。而对于我来说通过对MATLAB课程的设计与实际运用,使我不但熟悉了这门课程设计的流程,而且还掌握了许多MATLAB语言的基本语句,锻炼并提高了我独立思考和查阅资料解决问题的能力!

用MATLAB实时求解微分方程并形象化地展示其解,既增强了学生的临场感和参与感,而且能把抽象思维化为形象思维,有利学生建立清晰的物理图像,加深对理论的理解;它能使物理现象、物理过程得到充分的探讨,便于在教学中对物理问题开展拓展性、探索性研究,开拓学生的视野,活跃思维、激发学习兴趣,使学生在研究性的学习过程中自然地培养探索与创新的能力,提高教学效率与教学质量。另外,利用MATLAB 软件进行数值计算,方便准确,无需进行繁琐的理论推导,对结果的描述也形象直观,因此不失为一种好方法。现代计算工具的使用可使一些复杂的物理问题变得相当容易,因此在这方面我们应做更多的探讨。

【参考文献】

1.刘卫国. MATLAB程序设计与应用(第二版)[M].北京:高等教育出版社,2006.

2.马文蔚.物理学(下册)(第四版)[M].b北京:高等教育出版社,1999.

3.王利霞. 大学物理实验教学改革与探索[J]. 实验科学与技术,2009(4):69 - 71.

4.杨万明,唐纯青,钞曦旭.MATLAB极其在大学物理课程中的应用[M]。陕西师范大学出版社,2006.

5.籍延坤, 焦志伟. 单摆作简谐振动的最大摆角的分析[J].大学物理实验, 2001,14(4): 8-9.

相关主题