基于VPython 3D运动仿真的汽车启动方式探究
作者: 宋庆彬 赵勇
摘 要:汽车在恒定功率下的启动问题一直是高中物理教学中的一个挑战。在传统的教学模式中,此类问题往往仅通过公式推导来处理,忽视了实际物理情境的建构,这不仅限制了学生的理解深度,也不利于综合运用不同章节的物理知识。采用Python的3D图形库VPython开展情境模拟,能够生动展现汽车启动过程中物理量的动态变化,有效促进学生计算物理概念的掌握,增强问题解决技巧,并培育更为全面和深刻的科学观念。
关键词:汽车启动方式;VPython;计算物理
中图分类号:G633.7 文献标识码:A 文章编号:1003-6148(2024)7-0081-5
物理学作为工程技术类领域的基础学科之一,与前沿科技和日常生活有着紧密的联系。最新的高中物理课程标准提出,要提高学生基于真实情境的问题解决能力,以促进学生核心素养的发展。近年来,计算机建模与模拟已成为发展学生核心素养的重要途径。同时,建模过程往往涉及多个章节物理知识的融合、物理与数学知识的融合以及信息化技术的融合。因此,尽早让高中生接触计算机建模有助于拓宽学生的思维,形成学科融合的科学观。
目前,有许多现成的软件可以对动态运动过程进行虚拟3D建模,如GeoGebra,Matlab,ADAMS,CAD等。本文选用VPython工具,首先,Python作为最热门的编程语言之一,在办公、交互、单片机传感器编程、实验数据分析等方面有着广泛的应用,可选择的现成素材众多。其次,VPython是Python语言的3D可视化开发模块,提供了大量现成的物理模型函数,能够满足零基础的师生进行物理建模的需求。最后,作为一个较为成熟的编程工具,VPython在处理复杂结构的建模时不易出现卡顿。因此,简单易学的VPython是高中师生进行编程仿真的有效工具。基于此,对曲轴连杆活塞运动进行了建模,仿真分析了汽车在恒定功率下瞬时启动过程中牵引力的变化情况,为物理情境化教学提供了教学参考。
1 汽车运行功率问题的引入
在2022年广东省高考物理试题中,有一道题目如下:如图1所示,一辆装载防疫物资的无人驾驶小车,在水平路段MN上以恒定功率200 W和速度5 m/s保持匀速行驶,而在斜坡PQ上则以恒定功率570 W和速度2 m/s匀速行进。该小车总质量为50 kg,MN与PQ的长度均为20 m,PQ段的倾斜角为30°,重力加速度g设定为10 m/s2,且不考虑空气阻力的影响。以下选项中正确的是( )
A.在从M至N的行驶过程中,小车的牵引力为40 N
B.在从M至N的行驶过程中,小车克服摩擦力所做的功为800 J
C.在从P至Q的行驶过程中,小车的重力势能增加了1×104 J
D.在从P至Q的行驶过程中,小车克服摩擦力所做的功为700 J
2022年广东省高考物理题提出了一个关于汽车运行功率的问题。根据功率公式P=Fv,汽车在水平路面匀速行驶时,牵引力等于阻力,大小为40 N;而在斜坡上匀速行驶时,牵引力为285 N。学生往往对汽车启动和运行的功率问题缺乏直观的情境化理解。在教学过程中,教师应鼓励学生利用信息技术自主开展探究活动,从汽车发动机的工作原理出发,深入理解汽车功率问题。
2 曲轴连杆发动机数学建模
传统汽车的动力架构主要由内燃机、离合器、差速器等关键部件构成。内燃机输出的动力经过一系列传动装置,最终传递至车轮,实现汽车的驱动与运动。为了让学生更直观地理解汽车启动及运行过程中发动机的工作原理,可以借助如图2所示的简化连杆结构进行模拟教学[1]。这种方法不仅揭示了复杂问题的简化路径,还指导学生如何运用物理模型,将现实世界的问题转化为易于分析和理解的形式。
在图3所示的发动机结构简化图中,当车轮AO在活塞推力的作用下绕O点做匀速圆周运动时,A点的坐标可表示为
B点发动机活塞的运动方程可表示为
或
在图3所示的发动机结构简化图中,通过分析活塞B的运动,学生可以推导出其位移、速度和加速度关于角度的函数表达式。在此过程中,为了凸显函数关系,假设无关物理量恒定为1。通过这些函数表达式,学生可以观察到活塞B的速度和加速度在一个完整周期内随角度呈现出周期性的变化,如图4所示。此外,教师可以运用Python的绘图功能,通过调用plot(x,y)函数,根据这些函数关系绘制出活塞速度和加速度随角度变化的图像。Python的强大之处还在于它能绘制多种类型的图表,如折线图、散点图等,这些都有助于直观地进行数据可视化分析。
在教学过程中,学生可能会意识到,汽车启动过程的描述,如功率恒定而牵引力变化,实际上涉及到的物理过程相当复杂。影响结果的变量往往不是单一的,而是多因素交织。例如,活塞的运动与角速度和角度等因素密切相关。因此,教师可以引导学生识别主要矛盾和关键影响因素,对模型进行适当简化和合理的近似处理。通过建模思想,可以将OA的运动视为发动机作用下汽车车轮运动的简化:OA的匀速运动象征着汽车的匀速行驶,而OA的加速运动则代表了汽车的加速过程。基于这一理解,学生可以进一步选择进行更为复杂的建模分析。
3 利用VPython 3D模拟发动机活塞的运动
在计算物理的研究方法中,三维(3D)模拟是验证理论正确性的关键手段之一。接下来,将介绍如何使用VPython进行代码编辑。首先,VPython提供了丰富的模型和运算库,用户可以通过导入语句“from vpython import *”轻松访问这些资源。
步骤1:使用VPython的系统函数,可以绘制出所需的球体、杆件、环形等基本模型,从而构建出完整的汽车发动机模型。示例代码如图5所示。
步骤2:通过添加时间函数,可以使汽车发动机模型动起来,展示其工作过程。代码如图6所示。
VPython可以清晰地模拟活塞的运动情况,如图7所示。图7(a)展示了活塞的初始位置,在气体膨胀产生的推力作用下,活塞被推动到图7(b)所示的位置。连杆的运动不仅带动了活塞的移动,还促使了轮子旋转,从而模拟了整个发动机驱动汽车启动的过程。这样的模拟不仅展示了活塞的运动,还生动地再现了发动机的工作原理,使得整个演示过程既形象又生动。
4 分析气缸内气体燃烧产生的作用力对汽车运行功率的影响
气缸内气体膨胀产生的压力是推动活塞向外运动的关键因素,其作用效果的大小由力与作用时间的乘积决定。气缸内气体膨胀产生的气体压力可以通过以下近似公式表示[3-4]
Fg=k(Pg-P0)S(8)
其中,k是比例系数,Pg表示气体膨胀产生的压力,P0表示大气压力。
同时,活塞在连杆作用下会产生旋转惯性力和往复惯性力。在此,忽略引起发动机振动的旋转惯性力,仅考虑往复惯性力Fi。因此,发动机气体膨胀产生的驱动力可以近似为
通过公式分析发现,往复惯性力Fi是前一部分推导的ω的函数,教师可以引导学生进行深入逻辑思考。在汽车启动过程中,假设气缸内单位时间内消耗的燃油量保持不变,即发动机功率恒定。那么,气缸内气体膨胀产生的气体压力就不变。当ω变大时,往复惯性力Fi就会增大,导致驱动力F减小。此外,随着汽车速度的提升,推力作用时间缩短,汽车的加速度也会相应减小。通过这一建模过程,学生可以深刻理解实际物理过程的复杂性,并认识到在处理复杂物理问题时,合理的近似和取舍是必要的,这对于形成正确的物理观念和提升科学素养至关重要。
在VPython中,为汽车发动机加速的时间函数代码如图8所示。
其中,if语句后的条件表示在循环200次(角度为2π的整数倍)时,活塞处于压缩最大位置,转杆AO的角速度会因牵引力和dt时间而增加。
如图9所示,连杆结构在压缩到最低点时会突然加速。为解决这一问题,实际汽车发动机通常采用多个气缸相互配合的方式 [5-7]。
5 理论验证
Python在数据处理方面的优势在此得以体现。由(11)式和(12)式,可以推导出汽车在恒定功率启动时的速度函数式[8]。
利用Python内置的解偏微分方程函数odeint,可以轻松求解一阶偏微分方程,并代入简单的参数[9],从而绘制出速度随时间的变化图像。
图10展示了Python数据模拟发动机连杆加速过程中各物理量随时间的变化。
汽车启动时,发动机内气体燃烧的功率保持恒定,如图10(a)所示。根据(13)式,利用Python可以绘制速度随时间变化的图像,如图10(b)所示。将(13)式代入到(9)式和(10)式中,就可以得到惯性力和驱动力随时间的变化曲线,如图10(c)(d)所示。观察这些图像,可以得出结论:随着活塞运动速度的增加,惯性力增大,发动机的驱动力则会减小。
6 实验验证
理论验证的确至关重要,但实践经验同样不容忽视。在物理教学过程中,教师可以引导学生通过亲身体验来加深理解。例如,让学生体验骑自行车的过程,感受在恒定功率启动时驱动力的变化。当学生保持腿部转速恒定,自行车将开始加速;随着速度的提升,他们会感受到蹬踏力的自然减小,这一现象直观且易于感知。
此外,可以利用科斯特温差发动机模型,模拟汽车发动机的启动过程,如图11(a)所示。通过使用测速器,测量启动过程中的速度变化,并绘制出速度-时间变化图像,如图11(b)所示,然后与图10(b)中的速度图像进行比较。如果两者显示出相似的变化趋势,可以认为相关物理量(驱动力和惯性力)与理论推导相吻合。
7 结 语
为了解决实际中的复杂问题,从发动机原理出发,进行了大量的简化和近似处理。在这一过程中,学生可以认识到,教科书中的物理模型可能与实际情况存在较大差异。学生从具体实践问题出发,运用所学知识多角度分析和简化问题,实现了学以致用。教师的任务在于引导和帮助学生完成这些工作。因此,无论是从理论还是实践的角度出发,教师都可以采用多种方式创设物理情境,帮助学生深入理解物理公式的本质。学生只有学会从不同角度构建模型,才能真正理解看似简单的物理过程实际上是多种近似和建模的结果。这对于培养学生正确的物理观念和提升自主探究问题的能力至关重要,也有助于提升学生的核心素养。
参考文献:
[1]周群益,杨旭静,刘天贵. MATLAB可视化理论力学[M].长沙:湖南大学出版社,2018.
[2]赵春平,苗志锋.基于VPython的机构运动仿真研究及实现[J].广西轻工业,2007,23(3):62-63,10.
[3]Urbano L D, Houghton J L. An Interactive Computer Model for Coriolis Demonstrations [J]. Journal of Geoscience Education,2006,54(1):54-60.
[4](美)马特利.Python 技术手册(影印版·第2版)[M].南京:东南大学出版社,2006.
[5]任继文,吴志强,张会明.基于VRML的发动机机构运动仿真技术的研究[J].组合机床与自动化加工技术, 2006(6):34-37.
[6]杨化书.机械基础[M].郑州:黄河水利出版社, 2002.
[7]Schere D, Dubois P, Sherwood B. Vpython:3D Interactive Scientific Graphics for Students[J]. Computing in Science and Engineering,2000,2(5):56-62.
[8]郑磊,赵秋爽.基于科学计算软件下汽车启动问题的教学探究[J].中学物理,2023,41(17):37-39.
[9](伊朗)贝赫鲁兹·马沙迪,(英)戴维·克罗拉.汽车动力总成系统[M].白先旭,刘勇强,严正峰,译.北京:机械工业出版社,2018.