基于Mathematica的阻尼抛体数值仿真实验

2016-11-12 07:51胡宗元
实验科学与技术 2016年5期
关键词:实况仰角阻尼

胡宗元

(首都经济贸易大学 安全与环境工程学院,北京 100070)

·计算机科学与实验·

基于Mathematica的阻尼抛体数值仿真实验

胡宗元

(首都经济贸易大学 安全与环境工程学院,北京 100070)

该文基于Mathematica设计了一个能够进行阻尼抛物运动仿真试验的程序。在任意给定的输入条件下,该程序既可以输出运动实况动画和频闪图等仿真结果,又可以输出阻尼抛物运动的轨迹曲线。

数值仿真;阻尼抛体;Mathematica;实验

10.3969/j.issn.1672-4550.2016.05.016

运用计算机来进行探究和设计是大学生应具备的一项基本功。我国许多非计算机专业的大学生的计算机应用能力目前还处于较低水平。在教学中开展数值仿真实验,不仅可以帮助学生更好地掌握专业知识,同时可以培养学生的计算机应用能力。

常用的科学计算软件如Matlab、Maple和Mathematica都可以选作设计数值仿真实验的工具,它们各有特色[1]。Mathematica是美国Wolfram Research公司开发的数学软件,主要用途是科学研究与工程技术中的计算[1]。它简单易学、高效多能,一句简单的Mathematica命令就能完成一些编程软件需用几十句才能完成的工作。该软件除了能进行任意精度的数值计算,还可以进行微分、积分、幂级数展开等符号演算。此外,Mathematica还提供了多种方式作图、发声和动画的命令,使人容易直观地把握住对象的特性[3]。基于这些特点,本文选择Mathematica作为开发仿真实验的工具。

下面以阻尼抛体运动实验为例,具体展示用Mathematica设计数值仿真实验的方法和结果。

1 物理模型与求解

为方便起见,假设抛体的质量为m,可以看成质点,在重力和空气阻力作用下运动。抛体受到的重力为mg,空气阻尼力为mb,b为阻尼系数,取抛出点的位置为原点建立坐标系,x轴为水平方向,y轴为竖直向上。在初始时刻t=0,物体以速度v0,仰角θ抛出,则由牛顿第二定律[4]得到运动微分方程和初始条件:

由式(1)可解出速度方程:

和运动方程:

式中,v∞=-g/b为垂直方向的收尾速度。

由此可以进一步求出抛体所能达到的最大高度为:

落地时间tmax满足:

对应落地点的水平位置为:

当阻尼系数足够小,即b<<1时,有近似结果tmax≈2v0sinθ/g。

2 仿真程序设计

2.1 需求分析

按照仿真要求,阻尼抛体运动仿真实验需要得出的效果为阻尼抛体运动过程实况、具体记录运动过程的频闪图和由此绘出的运动轨迹图等。其中,运动过程实况可以通过Mathematica的动画功能来实现;频闪图和轨迹图可以直接调用Mathematica命令里的Graphics和parametricPlot。

从控制论的角度看,一个具有特定功能的系统,需要有适当的输入和输出。作为仿真实验程序,输入的是控制变量,输出的是实验结果。按照前面的分析,需要输入的控制变量应该有初速度v0、仰角θ和阻尼系数b;需要输出的实验结果为阻尼抛体运动过程的动画显示、过程的频闪图和运动的轨迹图等。由于存在多种输出,因此还需要增加一个用以选择输出模式的输入变量——模式变量。

2.2 程序的设计

仿真程序可以认为是将输入信息加工为输出的一种变换。利用输入的初速度、仰角和阻尼系数,完全确定了运动方程式(3)。这部分内容构成了程序的基本模块:

其中,引入两个内部变量g=9.8,vf=-g/b。

在此基础上,调用Mathematica命令里的Show、Graphics和parametricPlot可以分别实现运动实况动画、频闪图和轨迹图的输出。

物理分析计算提供了计算机模拟的基础,但是要获得良好的演示效果,还需要注意展示形式。

1)首先是抛体的形状和大小。由于不计形状的影响,可以将抛体设为小球。从演示的效果看,球的半径不宜过小,不然看不清楚;也不宜过大,不然占据过多的画面难以看清运动过程。因此,适当地选择是规定一个半径的相对大小,如占整个画面尺度的5。

2)其次是整个画面的大小。为了充分利用屏幕空间,应当使抛体的运动范围尽可能地充满屏幕。按照第1节中的结果,抛体中心的运动范围为x∈[0,xmax],y∈[0,ymax],因此展示范围应该包含上述区域。如果考虑到抛体的大小,运动范围还需要适当加大。

还要注意闪光间隔大小的选择,按照实物实验的情况,取闪光间隔dt=0.2比较适当。动画的时间间隔原则上可以选择任意小,为了节约计算机资源,选择闪光间隔的二分之一或者三分之一即可。

3 仿真程序及其运行

3.1 Mathematica源程序

由上面的设计,不难编写出相应的Mathematica模块程序如下:

dampingthrowing[v0_,q_,b_,m_Integer]:=

Module[{g,ymax,t0,tmax,xmax,dt,vf},

g=9.8;dt=0.2;vf=-g/b;

x[t_]:=v0*cos[q]*(1-exp[-b* t])/b;

y[t_]:=vf*t+(v0*sin[q]-vf)(1-exp[-b*t])/b;

ymax=v0*sin[q]/b+vf*log[1-v0* sin[q]/vf]/b;

t0=2*v0*sin[q]/g;

tmax=t/.FindRoot[y[t]==0,{t,t0}];

xmax=x[tmax];

Switch[m,0, Table[Show[Graphics[{PointSize[0.03],Point[{x[t],y[t]}]},PlotRange©{{-0.05xmax, 1.05xmax},{-0.05ymax,1.05ymax}}]],{t,0,tmax,dt/3}],

1,Show[Table[Graphics[{PointSize[0.03],Point[{x[t],y[t]}]},Axes© True,PlotRange© {-0.05ymax,1.05ymax}],{t,0,tmax,dt}]],

2,ParametricPlot[{x[t],y[t]},{t,0,tmax},PlotRange© {{0,xmax},{0,ymax}}]

3.2 程序中的参数说明

程序中各个参数说明如下。

输入参数:初速度v0,仰角θ,阻尼系数b,模式参数m。

输出模式:m=0,动画;m=1,闪光照;m=2,运动轨迹图。

内部变量:重力加速度g=9.8;收尾速度vf;闪光间隔dt=0.2;最大高度ymax;最大时间tmax;最远距离xmax。

3.3 仿真程序的使用

在应用时调用模块dampingthrowing,输入抛体的初速度v0;仰角θ;阻尼系数b;模式参数m等参数后,便可运行。

例设抛体的初速度v0=20、仰角θ=π/4、阻尼参数b=2。

如果要得到动画过程,输入命令为dampingthrowing[20,π/4,2,0],输出结果为阻尼抛体运动实况的仿真动画;由于动画效果在文章中无法展示,请读者自行测试。

如果要得到频闪图,输入命令为dampingthrowing[20,π/4,2,1],输出结果如图1所示。

图1 阻尼抛体运动的频闪图

如果要得到轨迹图,输入命令为dampingthrowing[20,π/4,2,2],输出结果如图2所示。

图2 阻尼抛体运动的轨迹图

4 结束语

本文介绍了一个阻尼抛物运动仿真模块的设计方案和运行效果,为大学生在专业学习中使用计算机提供了一个可以模仿的案例。该程序主要有以下4个方面的优点:

1)输入参数任意可调,可以按需要进行各种模拟实验;

2)可以定量地演示阻尼抛物运动现象,仿真程度高;

3)既能够输出运动实况,又能够输出频闪照片,演示效果好;

4)源程序简单,具有开放性,在该模块的基础上略加修改,就可以演示高处斜抛或者变阻尼的抛物运动等现象,还可以绘制相空间中的运动轨迹。

[1]彭芳麟,梁颖,忻蓓.计算软件在计算物理课程中的地位和作用[J].大学物理,2013(8):7.

[2]洪维恩.数学运算大师Mathematica4[M].北京:人民邮电出版社,2002:1-16.

[3]倪致祥.科研的有力工具——Mathematica简介[J].阜阳师范学院学报,2005(2):7.

[4]周衍柏.理论力学教程[M].2版.北京:高等教育出版社,1986:24-41.

Numerical Simulation Experiment of Damped Projectile Based on Mathematica

HU Zongyuan
(College of Safety and Environment Engineering,Capital University of Economics and Business,Beijing 100070,China)

We design a program to simulate the damping projectile experiment based on Mathematica.The program can output many simulation results such as animation,stroboscopic map and the track curve in coordinate space for given inputs.

numerical simulation;damped projectile;Mathematica;experiment

TP 391.6

A

2015-07-12;修改日期:2015-08-12

北京市自然科学基金(3144027)。

胡宗元(1984-),男,博士生,实验师,主要从事微波、天线与电磁环境方面的教学与研究。

猜你喜欢
实况仰角阻尼
N维不可压无阻尼Oldroyd-B模型的最优衰减
关于具有阻尼项的扩散方程
具有非线性阻尼的Navier-Stokes-Voigt方程的拉回吸引子
用锐角三角函数解决仰角、俯角问题
乡村小学的愿望与现实——宜君乡村教育实况
阻尼连接塔结构的动力响应分析
天舟一号货运飞船发射实况掠影
可爱潮咖们的独门彩妆实况直播
分段三次Hermite插值计算GNSS系统卫星仰角
脸的基本画法(三)