基于MATLAB的单摆运动概要.docx
《基于MATLAB的单摆运动概要.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的单摆运动概要.docx(19页珍藏版)》请在冰豆网上搜索。
基于MATLAB的单摆运动概要
Matlab仿真技术作品报告
题目:
MATLA在单摆实验中的应用
Hl
系
(院):
专
业:
班
级:
学
号:
姓
名:
指导教师:
学年学期:
2012〜2013学年第1学期
2012年11月18日
设计任务书
单摆问题,小球在来回摆动的过程中不仅受到外界阻力等环境影响,而且其摆动过
程中的角度也是很难确定的,通过Matlab来模拟这个过程,这为实际物理实验的展
综合运用专业及基础知识,解决实际工程技术问题的能力;
3.
学习资料的收集与整理,学会撰写报告。
实验
环境
1.微型电子计算机(PC);
2.安装Windows2000以上操作系统,MATLAB等开发工具。
1.
借助MATLAB,研究无阻尼状态下单摆的大摆角运动
2.
设计一个可以动态输入数据的图形用户界面。
3.
编写GUI界面,实现人机交互的各项功能。
4.
输入数据后能显示小球水平位移和竖直位移随时间的变化图像,仿真小球
任务
要求
做单摆的过程。
5.
利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,
注意材料收集与整理;
6.
结束后,及时提交作品报告(含纸质稿、电子稿),要求格式规范、内容完整、结论
正确,正文字数不少于1500字(不含代码)。
摘要
借助MATLAB计算软件,研究无阻尼状态下单摆的大摆角运动,给出了任意摆
角下单摆运动周期的精确解。
同时利用MATLAB函数库中的ode45函数,求解出大
摆角下的单摆的运动方程。
并利用其仿真动画形象的展现出单摆的运动规律,为单
摆实验中大摆角问题的讲解提供了较好的教学辅助手段。
关键词单摆模型;周期;MATLAB
一、问题的提出
二、方法概述
2.1问题描述
2.2算法基础……
2.2.1单摆运动周期
2.2.2单摆做简谐运动的条件
三、基于MATLAB的问题求解•…
3.1单摆大摆角的周期精确解
3.2、单摆仿真(动画)
3.3单摆仿真整个界面如下:
四、结论
五、课程体会
参考文献
2
2
2
3
3
5
5
•2
•2
……-13
、问题的提出
在工科物理教学中,物理实验极其重要,它担负着训练学生基本实验技能、验证学生所学知识、提高学生综合实力的重要职责。
通过一系列的物理实验,学生可在一
定程度上了解并掌握前人对一些典型物理量的经典测量方法和实验技术,并为以后
的实验工作提供有价值的借鉴,进而培养学生的动手实践能力和综合创新能力。
然而,物理实验的优劣很大程度受限于物理实验条件的制约。
当前,受限于以下条件
(很多情况下物理实验环境都是难以有效构造的),物理实验的效果并不理想:
1)一些实验设备比较复杂并且昂贵,难以普及应用;
2)有效实验环要求非常苛刻,是现实环境中难以模拟,甚至根本无法模拟;
3)除此以外,有些实验的实验环境即使可以有效构造,它的实验结果却仍然是难以
直接、完整观察获取的,如力场、电场、磁场中的分布问题等。
鉴于以上原因,物理仿真实验已引起了大家的关注,出现了一些软件。
但很多是基于Flash、Photoshop、3DStudioMAX之类的图形图像软件制作。
这些软件可以
制作逼真的实验环境和生动的实验过程动画,还可以制作出实际实验所无法达到的效果。
但这类软件本身是制作卡通动画的,对物理实验规律和过程很少涉及,很难做到真正的交互使用,及精确的计算分析同时开发也很困难。
因此,基于这些软件的仿
真在工科物理实验教学中应用很少。
本文利用MATLAB计算软件及其仿真功能对单
摆实验过程进行模拟、仿真及后期分析,对物理实验教学改革提供一种新思路。
具体地,本文将描述一种新颖的单摆实验方法,其主要的意义在于给学生以综合性实验技能训练。
一个综合性实验,它必须涉及多方面的知识和实验技能。
本文
描述的单摆实验方法即具备这样的特征。
它的实验原理虽然简单,但所涉及到的知
识点极为丰富:
力学振动,计算机编程等。
学生通过这样的实验不仅可以得到综合性的实验技能训练,而且可以在如何将现代技术改造传统实验、理论联系实际等方面得到很多启示。
另外,本文引入计算机技术分析法,对单摆实验进行了改造,既实现了基础物理实验的现代化,又为MATLAB课程实验提供了很好的应用落足点可以使学生得到多方面的实验技能训练。
二、方法概述
2.1问题描述
单摆问题是高中物理及大学普通物理实验教学中的一个基础问题。
单摆在摆角
比较小时,其运动规律近似为准简谐振动。
但是当摆角比较大时,即单摆在大摆角情况下运动时,这种近似已不再成立,其运动方程满足非线性微分方程。
因此,对摆角大
小的限制成为该实验中必须满足的条件。
不同的实验条件下,最大摆角的取值不同,
其中包括3”,5”,,10・75:
15°甚至20“等。
这就为在实验过程中对摆角的统一取值
造成困难,给实验带来较大的误差。
同时,学生对单摆在大摆角情况下运动时其运动周期及运动规律的理解也存在困难。
利用先进的计算机仿真技术模拟单摆运动、分析单摆运动规律为学生理解、掌握单摆运动规律具有积极的意义。
就单摆问题而言,小球在来回摆动的过程中不仅受到外界阻力等环境影响,而
且其摆动过程中的角度也是很难确定的(单摆在小于等于五度时才能验证其周期)
这就为实际物理实验的展开制造了巨大的困难。
本文将借助于MATLAB这个强大的
数学软件,计算任意摆角下单摆运动周期的精确解,以消除摆角问题带来的误差;同时利用该软件,仿真出大摆角时单摆的运动情况,为单摆测重力加速度实验中大摆角问题的讲解提供较好的手段。
通过本问题的模拟、仿真、分析为大学物理实验其它问题的求解提供借鉴。
2.2算法基础
2.2.1单摆运动周期
由牛顿第二定律得,单摆的运动方程为:
¥+;sinfl-&dt]
化简为:
当摆角0较小时,sin0与0无限接近,方程
(1)
y+ye=0
dtI
这是一个简单的谐振动方程,其解析解为:
0—Acos(£0血Qt+色%)
其中固定角频率紗辭;其周期为:
当摆角较大时,这种近似sinfi^O不再成立。
公式
(1)是一个非线性微分方
程,其解析解很难求出。
但是通过积分的方法,作变量代换,就可得到大摆角运动时单摆的周期的积分形式:
52帥
其中%为单摆的最大摆角。
此公式适用于任意摆角下单摆运动周期的计算。
222单摆做简谐运动的条件
在力学的实验中,我们讨论单摆只讨论它的小角度摆动,单摆在摆角很小(小于
50)的情况下,可以看作间谐振动。
①研究摆球沿圆弧的运动情况时,要以不考虑与摆球运动方向垂直的力,而只
考虑沿摆球运动方向的力,如图1所示。
图1单摆运动中力的分析
的方向及垂直于V
②因为F'垂直于V,所以,我们可将重力G分解到速度V的方向.且Gi=Gsin0=mgsin0G2=GCos0=mgpos0。
③说明:
正是沿运动方向的合力G1=mgsin0提供了摆球摆动的回复力。
4推导:
在摆角很小时,sin0=Y
X
回复力F=mgsin0=F=mg--
(X表示摆球偏离平衡位置的位移,1表示单摆的摆长)
5在摆角0很小时,回复力的方向与摆球偏离平衡位置的位移方向相反,大小成正比,单摆做简谐运动。
6简谐运动的图象是正弦(或余弦曲线),那么在摆角很小的情况下,既然单摆
做的是简谐运动,它振动的图象也是正弦或余弦曲线。
设摆线与垂直线的夹角为0,在正下方处时0=0,逆时针方向为正,反之为负。
则摆的角速度为(1!
(角度B对时间t的一次导数),角加速度为a(角度0对时间t
的二次导数)。
对摆进行力学分析,由牛顿第二运动定律,有:
即:
d+32sin0=0
原因)这时,有:
该方程的解为:
0=Asin(
n£SinQ=QM=-mglQ
三、基于MATLAB勺问题求解
3.1单摆大摆角的周期精确解
■n_
利用MATLA计算软件,对[0,■]区间的%,每隔02827。
计算一个积分值,得
2
TT
到2000个不同摆角的-的精确解。
然后以摆角为横轴-为纵轴,利用绘图函数
丄尅10
程序如下:
%单摆周期与摆角的关系
a=0;
b=pi2;
n=1000;
s1=1:
n;
h=(b-a)/n;
h1=pi/(2*n);
c=0:
h1:
pi/2x=a;
s=0;
fori1=1:
(n+1)f0=2/sqrt(1-(sin(c(i1)/2))人2*(sin(x))人2)/pi;
fori2=1:
nx=x+h;
f1=2/sqrt(1-(sin(c(i1)/2))人2*(sin(x))^2)/pi;
s=s+(f0+f1)*h/2;
f0=f1;
enddisp(1/s);
s1(i1)=s;
s=0;
endplot(c,s1);
xlabel(‘theta0/rad');
ylabel(‘T/T0');
T
运行结果后,得图2。
如图2所示,随着摆角的增大,单摆的运动周期T与耳比值-
越来越大,即单摆运动周期随着摆角增大变大。
当摆角00>1.6rad单摆的运动周期
会急剧增加。
图2单摆周期的精确解
3.2、单摆仿真(动画)
我们在实验室做实验时一般情况下过程相对比较麻烦,而且很多实验所需要的
条件难以控制,为此有时我们可以利用动画来进行仿真模拟实验。
本文用MATLAB软件来进行动画仿真,设计以MATLAB程序来模拟单摆的仿真(制作一动画实现单
摆),并通过仿真来回摆动的时间来测出单摆的周期。
通过Matlab的仿真既能把实
验中需要设置的条件编写入程序中,又能减小实验带来的误差。
降低实验难度。
程序如下:
%制作动画%挂摆横梁
plot([-0.2;0.2],[0;0],'color','y','linestyle','-','linewidth',10);
%画初始位置的单摆
g=9.86;
%重力加速度,可以调节摆的速度
l=1;
theta0=pi/4;
xO=l*sin(thetaO);
yO=(-1)*l*cos(thetaO);
axis([-0.75,0.75,-1.25,0]);
axis('off');
不显示坐标轴
%创建摆锤
head=line(x0,y0.
'color','r','linestyle','.','erasemode','xor','markersi
ze',40);
创建摆杆
body=line([0;x0],[0;y0],'color','b','linestyle','-','erasemode','xor');
摆的运动
t=0;
dt=0.01;
while1
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所示,分别对应了单摆运动位于左右位置的状况。
FileEditViewInsertToolsDesktopWindowHelp
Q曰d占fe\c®fl'a□匡I□0
ONotenewtoolbarbuttons:
d日tvbru弓hinqfitlinkedplots昼Pbyvideo
图4大角度单摆运动模拟截图一(右侧位置)
图5大角度单摆运动模拟截图二(左侧位置)
3.3单摆仿真整个界面如下:
代码如下:
functionvarargout=SQ(varargin)gui_Singleton=1;
gui_State=struct(
'gui_Name'
mfilename.
'gui_Singleton'
gui_Singleton,
'gui_OpeningFcn'
@SQ_OpeningFcn,
'gui_OutputFcn'
@SQ_OutputFcn,
'gui_LayoutFcn'
[],
'gui_Callback'
[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
endifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
functionSQ_OpeningFcn(hObject,eventdata,handles,varargin)handles.output=hObject;
axis('off');
guidata(hObject,handles);
functionvarargout=SQ_OutputFcn(hObject,eventdata,handles)varargout{1}=handles.output;
functionedit1_Callback(hObject,eventdata,handles)
functionedit1_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,
'BackgroundColor'
),
))
get(0,'defaultUicontrolBackgroundColor'
function
end
function
edit2_Callback(hObject,eventdata,handles)
edit2_CreateFcn(hObject,eventdata,handles)
))
get(0,'defaultUicontrolBackgroundColor'
set(hObject,
'BackgroundColor','white');
end
四、结论
综合实验结果,结论如下:
第一,如图2所示,随着单摆摆角的增大,单摆的周期也会增加,这样很简单
地就明白了为什么用单摆测量加速度时要求单摆的摆角要小于5”。
因此,借助mat
LAB强大的绘图功能可以帮助学生更深入理解单摆大摆角运动下周期的变化规律。
同时,如图3中两根曲线表明:
大摆角振动时,单摆的运动轨迹并不是简单的正、余弦曲线(虽然很相似),而且,最大摆角越小,两根曲线越相似;摆角越大,分离越明显。
由于这种相似性,在粗略研究单摆运动时,方程
(1)可以采用一种近似求解方法一
—余弦函数法将周期表示成如下方式:
其中0尬为单摆最大摆角。
第二,利用MATLAB语言对单摆动画仿真模拟的分析我们不难得出:
在单摆
设计和试验过程中,需要对单摆进行运动分析进而求得周期,而要将单摆摆动的角度限定在5°以内并不是很好控制,而在该运动范围内观察、记录其运动规律及全过程也非常复杂,如果运用手工计算不仅非常困难,而且极易出错,但是如若对这种复杂的系统进行仿真便能更好地解答在设计、制造、试验阶段以及其运行过程中出现的问题。
因此可以利用MATLAB强大的数值计算能力和绘图能力以及强大的动
画仿真功能,非常简便地解决单摆运动过程中大摆角导致的问题。
这对于工科的物理实验教学提供了很多方便,同时也有利于学生深刻的理解单摆问题。
在大学物理实验的很多问题都可以借助MATLAB的优点方便地求解。
五、课程体会
通过这一学期的学习,我们认为MATLAB这一基于矩阵运算的软件,它具有
强大的功能,比如:
绘图,信号处理,自动控制原理,动态系统仿真,图像处理。
虽然MATLAB和C++都是一种实用软件,但是相比之下MATLAB编程比C++较简
单。
所以大多数的科目都应用MATLAB来解决较难的问题。
并且MATLAB作为一
门实用工具它可以解决并应用在我们实际学习过程所遇到的难以解决的问题之中。
因此,我们应该学习并熟练运用这门技术进而使得以后的学习更形象简单明理。
而
对于我来说通过对MATLAB课程的设计与实际运用,使我们不但熟悉了这门课程
设计的流程,而且还掌握了许多MATLAB语言的基本语句,锻炼并提高了我们独立思考和查阅资料解决问题的能力!
用MATLAB实时求解微分方程并形象化地展示其解,既增强了学生的临场感和参与感,而且能把抽象思维化为形象思维,有利学生建立清晰的物理图像,加深
对理论的理解;它能使物理现象、物理过程得到充分的探讨,便于在教学中对物理问题开展拓展性、探索性研究,开拓学生的视野,活跃思维、激发学习兴趣,使学
生在研究性的学习过程中自然地培养探索与创新的能力,提高教学效率与教学质量。
另外,利用MATLAB软件进行数值计算,方便准确,无需进行繁琐的理论推导,
对结果的描述也形象直观,因此不失为一种好方法。
现代计算工具的使用可使一些
复杂的物理问题变得相当容易,因此在这方面我们应做更多的探讨。
参考文献
1高西全,丁玉美.数字信号处理.第3版.北京:
西安电子科技大学出版社,2008
刘泉,阙大顺.数字信号处理原理与实现.北京:
电子工业出版社,
2005
张磊,毕靖,郭莲英.MATLAB实用教程.北京:
人民邮电出版社,
2008
张威.MATLAB基础与编程入门.西安:
西安电子科技大学出版社,
2006
指导教师评语