标题 | 基于Unity3D的断路器教学系统设计与实现 |
范文 | 杜猛 王大虎 摘 要:电气设备培训中,因电气设备结构复杂、工作过程抽象,导致学生不易理解,一直是教学难点。为此,以断路器为例,基于Unity3D开发引擎,运用C#脚本语言和UI框架设计,对断路器培训系统进行设计与开发,对断路器分类、结构、拆装和工作原理进行了展示。该系统交互性好,培训人员理解方便,且可随时随地进行培训,重复利用成本低廉。 关键词:Unity3D;断路器;交互性;UI框架设计 DOI:10. 11907/rjdk. 182163 中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2019)005-0102-04 Abstract: In the current training of electrical equipment, it has been the teaching hard point that students can hardly understand the complex structure of electrical equipment and abstract work process. In view of this difficulty, this paper takes the circuit breaker as an example, and uses the C# scripting language and UI framework design to design and develop the circuit breaker training system based on the Unity3D development engine. The classification, structure, disassembly and assembly and working principles of the circuit breaker and demonstrated. The system is of good interactivity, convenient for trainers to understand, and can be trained anytime and anywhere, and it has low recycling cost. Key Words: Unity3D; circuit breaker; interactivity; UI framework design 0 引言 断路器作为电力系统不可或缺的设备之一,其作用是对电力系统中的各种设备进行保护,当某一部分突发故障时,启动其它装置(如保护装置等),将故障部分快速从系统中切除,使事故损失降到最低[1-3]。但是当前对断路器的培训还是传统教学,以书本知识、教师讲解为主。这样的教学缺乏生动、形象性,不能很好地对断路器内部结构、动作原理进行展示,而且有些断路器频繁拆开会导致其密封性下降,影响开断性能。 针对传统断路器教学存在的问题,由伊永飞、朱远达[4]提出的断路器多媒体教学软件,以文字、图片、声音、视频、二维、三维动画形成教学流程,实现了理论讲解整体和内部结构讲解、实际操作录像相结合的培训功能,但是该方法交互性较差,培训人员难以产生身临其境的感觉。王永生[5]将SF6断路器应用在实训教学中,结合实物、挂图和三维动画对断路器进行讲解,但费用较高。 本文设计的断路器培训系统,基于Unity3D开发引擎,通过3Ds Max软件和Photoshop软件建立三维场景,采用C#脚本语言作为开发交互语言,对断路器的结构和工作原理实现了动态展示,不仅动态展示效果好,而且交互性強,培训效果良好[6-7]。 1 系统概述 1.1 系统框架设计 开发断路器培训系统,首先要在变电站和电气设备制造工厂对断路器进行取景。通过3Ds Max软件建立模型,采用Photoshop软件对模型通过贴图进行优化处理,导出为Unity3D兼容FBX格式,然后将模型导入Unity3D中,通过灯光、摄像机等完成培训系统场景设计[8]。系统设计断路器分类、设备信息、设备结构、设备工作原理4个模块,通过UI界面设计和C#脚本语言进行开发,生成易于理解、操作简单、结构清晰的高压断路器虚拟培训系统[9]。总体设计流程如图1所示。 2 虚拟培训系统实现 2.1 三维建模 三维模型是高压断路器培训系统的基础模块,选用3Ds Max软件设计。该软件有良好的兼容性,可通过安装插件实现增设功能,除此之外该软件上手容易、门槛比较低[10]。 在对断路器模型进行建模时,必须严格按照所拍摄的模型图片进行,本文以110kVLW型六氟化硫为例阐述建模过程。六氟化硫断路器一般由基座、导电部分、灭弧单元、绝缘部件、操作机构、电气控制和传动元件等部分构成。在创建断路器模型时,要认真观察断路器整体结构,注意各部分之间的比例,从基座开始制作,由基座大小确定其余各部分大小比例[11-12]。基座为轴对称图形,建造时可先建造一半,另一半通过镜像操作得到,然后通过附加操作让两者变为一个图形,最后通过点焊连接在一起。选用长方体对其中一半进行制作,将长方体通过点击右键选择转换为可编辑多边形。在制作模型时要注意在不影响整体形状的情况下尽可能减少模型面的个数,以方便后期处理避免卡顿。通过选择点、线、边界、面等,进行一定的挤出、缩放、光滑等操作得到大致模型,然后通过连接、切角等操作进行细化,最后经过NURMS转换得到和模型照片相像的模型。基座模型如图2所示。 支持绝缘件由瓷柱、瓷套管、绝缘管等构成。制作支持绝缘件时,以圆柱体为主体(注意高度分段,一般选为1),选择圆柱体的侧边所有边进行卡线,卡好的线每隔一条选择一条,经过循环后进行选择并均匀缩放就可得到绝缘子的大致模型。各支持绝缘件都是一模一样的,按住Shift+移动可进行复制,得到其它支持绝缘件。支持绝缘件如图3所示。 除上述系列操作外,在面不夠光滑时给选中的面一个光滑组就可解决此问题。对建好的模型进行贴图,通过PS软件,把模型图片拖进PS中,通过钢笔工具进行抠图,把抠出来的图建立新的图层,隐藏其它图层,调出标尺,按Ctrl+T调出图片变形对话框,按住鼠标右键选择斜切,通过拖拽点形成想要的图片,最后保存为PNG格式,以便在3Ds Max中贴图使用。在3Ds Max中选定进行贴图的面,通过材质编辑器在漫反射中选择贴图图片应用到选择面上,勾选视口中显示明暗处理材质即可[13-14]。有时图形是不规则的,需要在修改器列表中选择UVW贴图命令,在贴图列表中选择不同的选项进行操作,包括对齐方式等。操作机构如图4所示。 2.2 模型导入平台 Unity3D作为一款兼容性非常强大的引擎,支持多种格式文件,包括从3Ds Max中导出的FBX格式文件[15]。首先选择导出为FBX格式,在下拉菜单的嵌入媒体进行勾选,否则把FBX导入到Unity中时模型是没有贴图的。如果一一在Unity中进行贴图是一件很麻烦的事。然后把FBX格式的文件拖入到Unity中的Project中,注意文件夹名字的取用,方便后期查找。把Project中的模型文件拖入到Hierarchy就可在Scene中显示模型[16-17]。模型导入Unity的图片如图5所示。 2.3 UI界面设计 系统界面采用Unity3D自带的UI界面实现,创建界面步骤如下:首先在Hierarchy窗口中点击鼠标右键,选择UI选项,选择Canvas(画布)选项,在Canvas上点击右键,在列表中选择Image选项(注意UI图片只在Canvas下才能看到)。然后在Asserts中导入一张作为背景的图片,此时要在该图片的Inspector中把TextureType类型改为Sprite(2D and UI),因为只有这种类型的图片才能放到Image组件中[18]。直接将图片拖入到Image的SourceImage中,就可将图片渲染出来,得到想要的结果。 2.4 虚拟交互脚本设计 Unity3D支持多种编译脚本,本文以C#语言对断路器培训系统进行交互设计。 通过编写C#脚本,用鼠标对断路器进行各种操作,不仅对断路器进行移动、旋转、从多方位观察,还可对断路器的拆装过程及断路器工作原理进行展示 [7,19]。 用鼠标右键对模型进行旋转、鼠标滑轮滚动拉近模型、鼠标中键按住拖动模型部分脚本如下: void Update () { //平移旋转 if(Input.GetMouseButton(1)) { x += Input.GetAxis("Mouse X") * xSpeed * 0.02f; y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f; y = ClampAngle(y, yMinLimit, yMaxLimit); var rotation = Quaternion.Euler(y, x, 0); var position = rotation * new Vector3(0.0f, 0.0f, -normalDistance) + CameraTarget; transform.rotation = rotation; transform.position = position; //缩放 }else if (Input.GetAxis("Mouse ScrollWheel") != 0) { normalized = (transform.position - CameraTarget).normalized; if (normalDistance >= MouseZoomMin && normalDistance <= MouseZoomMax) { normalDistance -= Input.GetAxis("Mouse ScrollWheel") * MouseWheelSensitivity; } if (normalDistance < MouseZoomMin) { normalDistance = MouseZoomMin; } if (normalDistance > MouseZoomMax) { normalDistance = MouseZoomMax; } transform.position = normalized * normalDistance; //拖拽 }else if(Input.GetMouseButtonDown(2)) { screenPoint = Camera.main.WorldToScreenPoint(target.transform.position); offset = target.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z)); } if(Input.GetMouseButton(2)) { Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z); Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset; target.transform.position = curPosition; } transform.LookAt(CameraTarget); } 3 效果展示 系统包含设备分类、设备信息、设备结构、设备工作原理4个部分, 设备分类介绍了断路器的分类标准和日常生活中常见的断路器[20]。设备信息展示当前选用设备的一些基本信息,比如设备名称、额定电压、额定电流、额定短路开断电流等。设备结构展示当前的断路器立体结构,包括各部件名称。设备工作原理展示断路器进行开断电流时的动作过程,包括灭弧装置进行灭弧的过程。效果界面如图6所示。 4 结语 针对传统教学方法的不足,借助unity3D这款支持多种脚本语言开发、兼容多种操作系统、易学易用、拥有超高效能的强大物理引擎,设计开发了基于unity3D的断路器培训系统,突破了传统教学方法单一、只注重理论知识学习等缺陷,很好地将虚拟现实技术运用到电气设备的培训中。该培训系统对断路器的动态展示效果好、逼真度高,对了解和学习断路器非常实用。 参考文献: [1] 胡頔,卓杰彬,王青云,等. 隔离断路器在新一代智能变电站中的作用[J]. 电气开关,2016,1(1): 83-85. [2] 杨凌霄,朱亚丽. 基于概率神经网络的高压断路器故障诊断[J].电力系统保护与控制,2015,43(10): 62-67. [3] 史宗谦,贾申利. 高压直流断路器研究综述[J]. 高压电器,2015,51(11):1-9. [4] 伊永飞,朱远达. 高压断路器多媒体教学软件的开发与应用[J]. 黑龙江电力,2010,32(5): 343-345. [5] 王永生. SF6断路器在实训教学中的应用[J]. 中国电力教育, 2008,4(3): 245-247. [6] 陈侠,王大虎,王敬冲,等. 基于Unity3D的PLC教学实训平台研究[J]. 软件导刊, 2016, 15(10): 111-114. [7] 王佳和,李龙华. 基于Unity3D的水轮机检修培训系统研究[J].自动化技术与应用,2015,34(9):98-102. [8] 黄静,张红忠. 3dsMAX在虚拟现实中的应用[J].测绘与空间地理信息,2013,36(2):12-126. [9] 相茂英,马纯永,韩勇. 基于Unity3D的化工设备虚拟培训系统研究[J]. 计算机技术与发展,2014,24(7):196-200. [10] 王大虎,卢正帅,贾倩. 基于Unity3D的恒压供水虚拟实训教学装置开发[J]. 软件导刊,2017,16(8):100-102. [11] 王大虎, 史艳楠, 陈文博. 基于3DMAX和Premiere的煤矿安全培训系统[J]. 煤矿安全, 2014, 45(12): 230-232. [12] 李鸿. 3dsMAX建模技术分析[J]. 邢台学院学报,2009,24(4):106-107. [13] 黄跃成. PS软件在效果图后期制作中的作用[J]. 信息与电脑,2016(13): 113-114. [14] 温晓红. 试析PS软件在效果图后期制作中的应用[J]. 数字技术与应用,2017(3):125-126. [15] 周鹏,支雄飞,杨敏,等. 基于3dsMax与Unity3D三维海底场景建模[J]. 安徽电子信息职业技术学院学报,2014,1(13):14-17. [16] 王星捷,李春花. 基于Unity3D平臺的三维虚拟城市研究与应用[J]. 计算机技术与发展,2013,23(4):241-244. [17] 刘金明,马铁民,王娜. 基于Unity3D的电动机虚拟仿真展示平台设计[J]. 黑龙江八一农垦大学学报,2014,26(3):66-69. [18] 许琛. UI界面设计在视觉传达设计专业教学中的应用研究[J]. 科教导刊, 2016, 3(12): 98-99. [19] 陈育滨,曾玉珠. 基于Unity3D平台的Web3D展示[J]. 电脑编程技巧和维护, 2012,1(12): 11-12. [20] 谢天宇,吴馨,岳明奕. 基于Unity3D的变压器仿真虚拟培训平台设计[J]. 企业技术开发,2015,34(14):166-167. (责任编辑:杜能钢) |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。