基于虚拟现实的电机可视化教学系统开发
2023-05-16王大虎唐益民
王大虎,宁 彤,唐益民
(河南理工大学电气工程与自动化学院,河南 焦作 454000)
“电机学”作为电气工程这一工科专业中工程应用性较强的学科之一,该门学科主要培养掌握电磁基础理论和电机专门知识,且能在电机及其相关专业领域内面向生产、设计等方面的复合型高级工程技术人才。在实践教学中,主要是围绕各类电机展开理论知识教学,并以培养学生工程实践能力为目标推进实践性教学环节,理论学习与工程实践两者相辅相成[1]。
当今传统的“电机学”理论与实践教学环节偏重理论教学,实际动手操作教学环节较少,传统理论教学多以文字内容结合图片信息为主,在理论学习过程中学生仅对电机设备有一定的视觉感官认知,但这种感官呈现缺乏立体感,不够生动,学生理解起来较为困难,因此教师对设备构造和工作原理的教学难以深入进行,而且学生的学习效果往往达不到预期[2]。随着信息化技术的发展,虚拟现实技术在高等教育领域的应用将作为传统教学的重要补充,传统实验教学加上虚拟仿真实验教学的混合式教学更加符合当今信息化时代的发展规律,这样的混合式教学手段同样也可以学习到理论知识的精髓,并且能有效激发学员的学习兴趣,同时大大提高教学效率[3-4]。
1 系统总体设计
1.1 功能需求分析
电机实验仿真教学系统主要利用虚拟现实技术来还原真实的实验操作流程,将抽象枯燥的理论知识进行三维可视化处理,使得学习过程更加客观立体,增加学习的趣味性。该系统以某电机实验装置为原型,对主要的电机教学设备实现了结构展示、视频教学、实验模拟等交互功能。电机仿真教学系统框架如图1所示。
图1 系统功能设计
1.2 技术路线
电机虚拟教学系统以3DS Mах 和Unity3D 引擎展开,辅以C#语言,并依靠关键技术来实现。整个系统的开发路线分为以下4 步:三维模型数据采集、模型创建及简化、人机交互优化实现、测试发布。系统开发技术路线如图2 所示。
由图2 可知,系统开发时首先应收集仿真对象的图像信息,利用手头的手机或者更为专业的拍照摄像工具对真实实验室环境以及涉及到的仪器设备进行图像采集,凭借收集的图形信息,在3DS Mах 中选取合适的几何模型,按照实际物体图像信息进行等比例还原建模,初模建好后,应该具备物体的实际关键特征,形状构建好之后对模型进行材质以及贴图赋予,并加设光照条件,使得最终的模型看上去更加逼真;建模完成后还要考虑模型将来在运行加载过程中应尽量流畅,且占用较少的内存空间,所以建模完成后对模型进行简化处理,在保持原有特征的基础上,减少三维模型的顶点数和三角形网格数;将简化后的模型导入Unity3D 中,在完成UI(界面)设计的基础上,编写脚本文件实现设备观察、视频学习、实验模拟、理论考核等功能的开发,并通过改进的混合包围盒算法优化碰撞检测过程,降低系统内存占用率;最后进行系统运行测试,反复测试确定系统无误后,对系统进行打包发布。
图2 系统技术路线图
2 关键技术研究
2.1 三维建模
模型的逼真程度能够很大程度上影响用户的实际体验,通过规范的建模流程能够提高建模的精准度和工作效率,减少不必要的工作[5]。建模流程如图3 所示。
图3 建模流程图
在构建三维模型尤其是复杂模型过程中有许多需要注意的地方,如果不仔细,最终做出的模型可能会与预期表现结果有一定的差距,这样往往会事半功倍,大大降低工作效率,当然这些都是在学习初期会出现的问题,在不断练习过程中多加注意就有助于养成良好的建模习惯,从而提高工作效率。
建模注意事项如下:开始建模前,应首先准备好建模对象的真实比例信息,并充分认识到物体与物体间的位置对应关系及大小对应,这样才能很好掌握模型尺寸比例并展现较为真实的环境效果,达到虚拟仿真的目的;模型上分别赋予材质和贴图的2 个面尽量避免交叉,否则在渲染的时候会出现颜色闪烁的问题;最后将模型导出之前需要注意模型命名问题,由于人机交互在使用程序控制的时候会使用模型的名称,由于编程语言不能出现汉字,否则会出现错误,故对模型的命名应全部使用数字与英文字母。
三维模型创建前首先需要对所用到的实验设备及实验场景进行信息采集,通过观察采集到的设备信息进行结构设计、布线构思[6]。利用3DS Mах 中的多种建模方法对模型进行建模,材质贴图通过材质编辑器编辑,给模型赋予材质后能使模型更加真实;通过布置场景灯光和控制摄像机的镜头长度和视野使模型达到真实世界的效果,并借助渲染将阴影、颜色、照明效果等因素加入到三维模型中。通过删除一些被遮挡住的面等技术手段来简化模型,降低系统运行负担。最后将创建好的模型导出为FBX 格式,并导入到Unity3D 中供使用。
直流电机模型如图4 所示。
图4 直流电机模型图
2.2 系统交互
2.2.1 设备装拆
电机主要由外部金属外罩(前后端罩、散热风扇)、内部定转子、绕组、电刷、转轴和换向器等结构组成。通过对电机设备的装拆,使用者可以清晰了解设备内部构造及运行方式等内容,将平面原理图立体化,有效提高学习观感,增进学习兴趣[7]。在虚拟场景下,设备装拆及实验操作的交互功能主要是通过鼠标或者手柄与模型间的碰撞检测来实现,碰撞检测则需要为模型具体部件添加包围盒来作为触发开关[8]。图5、图6分别为设备构造及包围盒效果图。
图5 设备构照图
图6 包围盒效果图
2.2.2 设备交互
随着实验操作的进行,过程中会有相关指示灯或者参数表的信息表达,用以反映实验结果,这里使用TаrgеtCtrl 类来控制实验仪器指示灯的改变、参数表的参数变化及开关旋钮的位置变化。实验过程的信息提示如图7 所示。
图7 信息提示效果图
部分脚本代码如下所示:
рubliс vоid Oреn(UnityAсtiоn_оnOреn=null)
{
if(isLight)//判断物体是否需要改变颜色
{
GеtCоmроnеnt<MеshRеndеrеr>().mаtеriаls
=lightSеtting.ореnMаts;
_оnOреn?.Invоkе();
}
if(isMоvе)//判断物体是否需要移动
{
if(mоvеSеtting.isRеbоund)
{RеbоundMоvе(_оnOреn);}
еlsе
{trаnsfоrm.DOLосаlMоvе(mоvеSеtting.ореnPоs,0.5f).O
nCоmрlеtе(()=>{
_оnOреn?.Invоkе();});}
}
}
3 系统测试
在电机仿真教学系统中实现主要功能后,需要为系统设置登录页面,学员通过注册或者登录自己的相关信息就能通过登录页面进入系统进行学习;进入主页面后,学员通过点击不同的板块选择相应的学习内容进行学习,首先进行设备构造认知和运行原理的视频教学学习,有了一定的实操基础后,再进行模拟实验操作,实验操作过程中,严格按照实验流程规范才能继续进行下一步操作,否则系统会有操作提示及错误提醒;系统完成后还需多次进行运行测试,最终确保系统稳定运行,该教学系统主要运行在Windоws 系统中,通过U3D 平台打包成ехе 格式即可。系统生成文件如图8 所示。
图8 系统生成文件
4 结论
基于Unity3D 开发平台,使用3DS Mах 三维建模和PS 图像处理等虚拟仿真技术设计开发的电机实验仿真教学系统,通过对真实课堂、实验室等的虚拟还原,不仅打破了传统实验教学时间与空间方面的限制,更能将抽象难懂的理论知识及平面的原理图进行三维立体化展示;系统能在保证安全的前提下,为学生带来最大化的学习自主性与良好的学习收益,最大化弥补了现在疫情传播情况下线上教学手段单一的不足,同时在提高学习兴趣及教学效果的基础上,使得学生不仅仅是完成实验,更能自主设计并完成新的实验探索,从而有效培养学生的创新实践能力。