宋小鹏,何秀锦,古小敏,吴国珊,王斌武
(桂林航天工业学院 能源与建筑环境学院,广西 桂林 541004)
传统实验课内,实验内容受限于实验设备. 而信息时代,虚拟现实的发展弥补了传统实验课的不足,在线虚拟实验可以不受实验场地、学时、人数、设备等条件的影响,甚至成本更低廉. 近十几年,越来越多教育工作者探讨虚拟仿真技术在一些实验教学中的应用[1-7]. 由于早期Flash覆盖面广,很多高校探讨使用Flash作为工具开发在线虚拟实验[5-7]. 随着Adobe公司对Flash技术支持接近尾声,且Flash对三维支持不够全面,越来越多的在线虚拟实验使用了WebVR技术[8-14]. 熊燕帆等探讨了VR技术在实训教学中的应用[8],罗凯辉[9]基于WebGL与增强现实技术开发了虚拟化学实验室,何丽[10]等探讨了WebGL技术在机械制图网络授课中的应用,郭神福[11]等基于WebGL技术实现了在线高速列车运行虚拟仿真,边金龙[12]等利用WebGL三维可视化技术实现了交通监控管理系统,冯姣[13]等使用WebGL框架Three.js实现了飞行仿真系统,何博[14]等使用WebGL技术开展了三维物理模型设计. 由于2020年的疫情导致线下实验教学中断,一些高校开展了线上虚拟实验[15-17],以贯彻“停课不停学”的指导思想.
但目前基于VR头盔/眼睛式设备的线上实验平台成本较高,尚不便于大面积推广,而且开发相关应用及三维建模需使用专业软件,开发周期长,学习成本较高,不利于疫情期间快速搭建线上虚拟实验平台. 在线的基于裸眼虚拟现实的实验平台相对而言更加适合开展线上实验教学. 本文以流体力学实验为例,探究利用WebGL开发线上裸眼虚拟实验平台.
WebGL(Web Graphics Library)是一个JavaScript的API,可用于在支持WebGL的浏览器中呈现高性能交互式3D与2D图形,提供了与OpenGL ES 2.0接近的程序接口并易于支持硬件加速.)
由于HTML5具备良好的跨平台性能,选择WebGL进行三维可视化程序开发,从而规避了不同操作系统,不同设备的适配问题. 基于WebGL开发的程序,对于学生用户只需要支持HTML5标准的浏览器即可开展线上虚拟实验,而对于开发者而言只需要开发一套程序就能够支持在各主流操作系统,同时支持各类主流电脑平板手机.
为了培养学生的动手能力,购置了某公司生产的流体力学综合实验台,如图1所示. 实验台通过恒压水箱,可更换试件管道、回水管、储水箱等器件构成了开路循环水系统,其中储水箱中使用潜水泵实现水路循环. 恒压水箱由潜水泵不断提供水源,同时结合溢流回水管路共同保持水位恒定,以保障实验过程的基本条件恒定. 实验台提供若干测压管,以测量管路中的压力. 多年使用经验表明,该实验台能够较好地满足学生实验需求,以培养学生动手能力.
1.储水箱 2.上水流量调节阀 3.溢流回水管4.恒压水箱 5.溢流板 6.颜料供给系统 7.标尺组8.测压管固定背板 9.流量调节、切断阀 10.计量水箱 11.回水管 12.实验桌(a)
(b)图1 流体力学综合实验台结构示意图
例如测量局部阻力系数时,可以更换突扩突缩管道,根据测压管数据,流量和管道几何尺寸等数据计算局部阻力系数. 同样的方法可以测量沿程阻力系数,验证能量守恒方程等.
虚拟实验平台按逻辑可抽象为4层,如图2所示. 底层为Web服务器,提供网页请求服务. 第2层为WebGL引擎,本文选用开源项目three.js作为三维引擎. 第3层基于WebGL引擎,创建各类实验器材及三维动画. 第4层为用户交互层,用于操作虚拟设备进而完成实验操作步骤.
图2 平台架构示意图
为了让线上虚拟实验比较接近真实实验过程,或者实验过程需要特别提醒学生注意事项,实验过程设置了若干个步骤. 选择安装或更换实验所需部件,开启总电源开关,开启水泵电源开关,开启阀门,等待各容器水位正常,迭代测压管稳定,记录实验数据,依次关闭系列电源和阀门.
设计了一系列动画,以使线上虚拟实验有较好的用户体验. 例如开启阀门,阀门旋转;管道内流体流动通过,管道内纹理移动模拟流体流动;开启电源和上水阀门后,潜水泵将水抽到恒压水箱,水位达到可更换管道原件高度时,管道流动动画才开启,同时测压管内液体高度开始上升,直到稳定;设计动画使回水箱液位逐渐上升并保持恒定. 同时,可以模拟阀门开度以实现管道内流体的速度调节,实现流体快速、中速、慢速的切换.
以沿程阻力和局部阻力系数测定说明实验演示. 流体在边壁沿程无变化的管道内流动(均匀流)会伴随有能量损失,由流体和管道壁面摩擦力或流体与流体间摩擦力造成的能量损失称作沿程阻力损失;由管道突扩、突缩、阀门等因素引起的能量损失称作局部阻力损失. 1)沿程阻力系数测定使用图1(b)中“雷诺”管道:实验过程中该管道左右两侧布置静压管,根据压差结合达西公式计算局部阻力系数;2)局部阻力系数测定使用图1(b)中“突扩突缩”管道:如仅测突扩管局部阻力系数,在突扩管布置附近布置3个静压管,如图3示意,根据测压管读数、管道物理尺寸、流速等参数计算突扩局部阻力系数.
实验完成后在主界面生成虚拟实验数据,根据实验数据即可进行数据处理,如图3所示.
图3 线上仿真实验示意
为了根据图3中虚拟实验数据,计算突扩局部阻力系数,将图中的主要元件简化为图4. 其中管道内体积流量Q可测,p表示压强,g和ρ分别表示重力加速度和流体密度.d1和d2是突扩前后的管道直径;点2位于点1和点3的中间,v1,v2和v3分别是对应点的流速;h1,h2和h3分别是测压管高度. 假设突扩管局部损失水头为hj,hf表示沿程损失的水头,如点1到点2间的沿程损失水头表示为hf12.
图4 突扩局部阻力计算
根据伯努利方程,得到
整理可得突扩局部阻力系数为
其中各截面速度可以根据流量和相应管道截面积计算,压力可以根据测压管道测得,hf13=2hf23,而hf23可根据测压管高度相减得到,最终可以计算得到局部阻力系数.
线上实验平台使得学生能够通过一系列操作步骤和动画演示加深对实验原理的理解. 而基于WebGL的线上实验平台易于开发和部署,在疫情期间有效快速配合理论课. 对线上虚拟实验数据的处理,同样也能对学生掌握理论知识有较强的促进作用. 线上虚拟实验可用于预习实验,通过虚拟实验平台的手动操作步骤,动画演示,学生能够更好预习和理解实验内容.