基于Unity3D的电能计量实验仿真教学系统

2022-04-12 05:13王大虎唐益民
计算机时代 2022年4期
关键词:仿真系统电能计量虚拟现实

王大虎 唐益民

摘  要: 针对当前高校电气工程专业电能计量课程实验教学环节存在的不足,设计并实现了电能计量实验仿真系统。该系统根据电能计量课程实验环节需求,采用3dsMax软件进行轻量化建模及三维动画制作,结合Premiere Pro软件完成动画后期处理,模型导入Unity3D引擎搭建虚拟场景,编写C#脚本程序开发系统交互功能及UI界面。实现了动画教学、仿真操作等功能,弥补了电能计量实验教学环节的不足。测试表明,系统运行稳定、交互性强,较好的满足了电能计量实验环节的要求。

关键词: 电能计量; Unity3D; 虚拟现实; 仿真系统

中图分类号:TM933          文献标识码:A     文章编号:1006-8228(2022)04-66-04

Electric energy measurement experiment simulation teaching system based on Unity3D

Wang Dahu Tang Yimin

(School of Electrical Engineer and Automation, Henan Polytechnic University, Jiaozuo 454000, China)

Abstract: In view of the shortcomings of the current teaching link in the course of electrical energy measurement in electrical engineering specialty, an experimental simulation system for electric energy measurement is designed and implemented. In the system, according to the requirements of experiment, 3dsMax software is used for lightweight modeling and 3D animation production. Combined with Premiere Pro software, the animation post-processing is completed. The model is imported into the Unity3D engine to build a virtual scene. The system interaction function and UI interface are developed by C# script programs. The functions of animation teaching and simulation operation are realized, which makes up for the shortage of the experimental teaching of electric energy measurement. The test shows that the system is stable and interactive, which can well meet the requirements of the electric energy measurement experiment.

Key words: Electric energy measurement; Unity3D; Virtual reality; Simulation system

0 引言

电能计量是电网输、配电中的一个重要环节,对电网的安全、稳定运行具有重大意义[1]。电能计量技术课程是很多高校电气工程专业的必修课程,该课程专业实践性强,教学过程中要注重理论与实践相结合。调查发现,在传统的实验教学模式下,由老师演示并带领学生完成实验,由于实验条件的限制,很多学生实际并未参与实验,也有很多高校未能开展电能计量实验环节。

随着虚拟现实技术的兴起与发展,如今已被广泛应用于教育、医疗、工业等领域,并提供了可视化的解决方案[2]。针对上述存在的问题,文章将虚拟现实技术与电能计量实验相结合,设计并实现了电能计量实验仿真教学系统,打破了传统实验教学模式对客观条件的依赖性。系统具备设备认知、动画教学、仿真操作等功能,学生以随时使用系统进行多方位的学习,不受时间、地点、实验条件的限制,提高学习效率。

1 系统设计

1.1 需求分析

电能计量实验仿真系统主要用于高校电气工程专业电能计量实验教学环节,根据实验教学需求,学生使用该系统学习要掌握实验原理,能动手操作实验,做到交互式学习。根据使用需求,系统需要操作简单,界面美观,具有可扩展性。因此将系统模块化处理,系统分为实验设备、视频教学、实验仿真、考核测试四个模块。在实验设备模块,可以查看主要的实验设备,了解计量设备的规格。视频教学模块以视频动画的形式学习实验原理及实验操作。实验仿真模块模拟实验室及户外真實场景,通过虚拟交互自主完成相关实验。考核测试模块以考题的方式检查自身的学习情况。

1.2 开发流程

电能计量实验仿真系统的实现可以分为前期准备与后期开发两个部分。在前期准备阶段,首先要收集整理实验相关资料,如设备外观照片、实验原理等,其次使用3dsMax软件创建模型及制作动画,并将模型及动画导入Unity3D中,搭建虚拟实验场景。在后期开发阶段,根据系统功能需求,编写C#脚本程序进行虚拟交互开发,同时结合UGUI系统开发系统UI界面。系统开发完成后测试并发布系统,并调查学生对系统的使用情况。

2 三维建模及动画

3dsMax是Autodesk公司开发的一款基于PC系统的三维动画渲染和制作软件,集建模、渲染、动画于一体。3dsMax对PC设备配置要求低,操作简便、功能强大,具有丰富的插件库,广泛应用于工业设计、三维动画以及工程可视化等领域[3]。

2.1 建模及优化

三维模型是搭建虚拟场景的基础,也是虚拟交互的主要对象。3dsMax中的建模手法有多边形建模、NURBS建模、复合建模等,其中多边形建模是最常用的建模手法,适用于大多数模型的创建[4]。文章系统模型主要采用先整体后细节的建模思路,建模之前观察实体整体与细节,掌握实体的层次结构。先利用样条线勾勒出实体的外形轮廓,或者根据实体轮廓创建标准基本体,再将样条线或标准基本体转换为可编辑多边形。在可编辑多边形模式下,对模型的点、边、开放边、面进行编辑,同时配合使用修改器及,使模型与实体基本一致。为了提高系统运行的流畅性,要达到轻量化建模,在不破坏模型的前提下,降低模型的面数。建模过程中,一是尽量避免使用复杂的修改器及命令,比如圆滑效果可以使用2~3次倒角命令来实现;二是要及时清除冗余模型,比如使用布尔运算后的冗余模型。在建模完成后需要做优化处理,一是要清除孤立点及视觉不可见的面;二是对模型的布线进行适当的删减。

2.2 材质及贴图

模型创建完成以后,需要给模型添加材质及贴图,才能使模型更加逼真与实体无异。材质反映实体的光照信息,贴图反映实体表面的纹理信息。在3dsMax中创建标准材质球,按照实体的材质信息,修改材质球的漫反射属性及高光属性,再将材质球赋予模型。对于贴图先利用Photoshop软件处理纹理贴图,在材质球中以位图的形式赋予模型。图1为完整的感应式电能表模型。

2.3 三维动画制作

文章系统的动画主要分为两类,一类是场景过场动画,用于在运行时给学生提供指导或者场景过度,主要由Unity3D的TimeLine时间线性编辑器制作完成。另一类是实验教学动画,包含设备接线、实验过程等动画,模型创建完成后,在3dsMax中设置好时间轴,选择自动关键点模式并添加关键帧,在不同关键帧处根据需要改变模型的参数信息,动画制作完成后导出动画,并导入Premiere Pro软件,通过在不同的视频及音频轨道添加字幕及音效完成动画的后期处理。图2为经过后期处理的电能表的接线动画。

3 场景交互开发

Unity3D平台是用于开发交互式三维场景和集成游戏的图形化开发工具,是当下比较流行的虚拟现实技术开发平台。Unity3D虚拟引擎对PC设备的配置要求不高,开发性强,平台兼容性高,开发的产品可以发布到Windows、Android、Linux等系统平台,支持C#、JavaScript等脚本语言[5]。

3.1 场景搭建

模型制作完成后以FBX格式文件导出,再将FBX格式文件导入Unity3D中,根据实际场景参数信息,通过调整各模型的位置参数、旋转角度、缩放比例完成三维场景的基础搭建。其次再调节场景光照,光照可以提升场景视觉效果,通过调节Directional Light(平行光)的位置及参数,当光源不足或需要辅助光源时,可以适当添加Point Light(点光源)、Area Light(区域光)等达到系统需要的光照条件[6]。户外计量接线场景如图3所示。

3.2 C#交互脚本编写

实验场景搭建完场后,根据系统功能需求,需要进行开发交互功能。系统中的各种人机交互、逻辑控制,主要是通过给GameObject添加脚本组件完成事件响应,就需要使用C#语言编写交互脚本程序。在编程过程中,视频的播放控制是很重要的一部分,其部分控制脚本程序如下:

public Text text;

publicGameObjectgameObject;

privateVideoPlayervideoPlayer;

privatebool flag=false;

void Start()

{  videoPlayer=gameObject.GetComponent

<VideoPlayer>(); //获取VideoPlayer组件

}

public voidPlayOrPause()

{  if (flag)

{  videoPlayer.Play(); //播放视频

text.text="暂停";

flag=false;

}

else

{  videoPlayer.Pause(); //暂停播放视频

text.text="播放";

flag=true;

}

}

实现整个系统功能,程序控制是必不可少的部分。在编写程序时,遵循一定的设计模式能使程序更加简洁、高效。

3.3 交互UI开发

UI是系統交互功能的重要组成部分,承担大量的点击、拖动等输入事件并响应,同时也提供展示、提示等功能[7]。文章系统采用Unity 3D自带的UGUI来进行UI界面开发,根据需求创建相应的UI控件,同时给控件添加C#脚本程序组件响应交互功能。三维动画的播放可用UI来完成,先在Canvas(画布)上创建一个RawImage并添加Video Player组件,将动画赋给Video Player组件下的Video Clip,再编写C#脚本程序,使动画渲染到RawImage上,图4为动画播放,其渲染部分的脚本程序如下:

privateVideoPlayervideoPlayer;

privateRawImagerawImage;

void Start()

{  videoPlayer=this.GetComponent<VideoPlayer>();

//获取VideoPlayer组件

rawImage=this.GetComponent<RawImage>();

//获取RawImage组件

}

void Update()

{  if (videoPlayer.texture == null) return;

rawImage.texture=videoPlayer.texture;

//将动画渲染到RawImage

}

4 系统测试与发布

系统功能开发完成以后,还需要对系统进行测试。在Unity3D中选择Windows平台,将系统生成为exe格式的可执行文件发布。发布完成后进行系统测试,首先通过登录页面进入系统主页,系统主页包含系统所有的功能模块,根据自己所需进入模块学习。经测试,系统功能正常,运行稳定。图5为系统登录页面。

5 结论

虚拟现实技术应用于教育领域是发展趋势。传统的电能计量实验教学环节难以满足教育要求,本文探讨了将虚拟现实技术应用于电能计量实验教学环节,利用Unity3D平台与三维建模技术开发了电能计量实验仿真教学系统,编写C#语言脚本程序实现了系统交互功能,满足了电能计量实验环节的需求。该系统交互性强、操作简便,学生可以反复学习,激发学习兴趣,提升学习效率,达到实验效果。

参考文献(References):

[1] 李鹏程,乐文静,张玉平,等.电能计量仿真培训系统的设计与实现[J].自动化与仪器仪表,2015(10):63-65

[2] 刘安平,邵文冕,苑鹏涛,等.Unity3D技术在电气工程实训教学中的应用[J].教育现代化,2019,6(A3): 148-150

[3] 嚴雨灵,陈闵叶,刘同强.基于Unity3D的虚拟维修教学系统设计与实现[J].软件,2019,40(11):128-130

[4] 刘艳荣.基于3Ds Max 2016建模技术的研究[J]. 电脑编程技巧与维护,2021(3):151-153

[5] 王磊,钱英军,黄浩.基于Unity3D的机器人物料搬运VR仿真系统开发[J].长江信息通信,2021,34(1): 18-20

[6] 马程,闫俊均,徐践.基于VR的虚拟校园漫游系统研究与建设[J].软件,2019,40(3):104-112

[7] 郝孜奇,张文胜.基于Unity3D的铁路实训虚拟仿真系统开发[J].计算机仿真,2020,37(6):99-103

猜你喜欢
仿真系统电能计量虚拟现实
REALITY BITES
风口上的虚拟现实
220kV智能变电站数字物理仿真实训系统设计方案研讨
虚拟现实技术向科幻小说借灵感
数控仿真系统三维建模技术研究
网络损伤仿真系统设计与实现
浅谈虚拟现实