基于Quest3D的船舶电站虚拟维修软件开发
2015-10-19倪天涛胡以怀
倪天涛 胡以怀
摘要:首先简要介绍了船舶电站的基本结构和主要的开发工具,然后根据软件的功能要求,设计了一种软件总体的开发流程。软件开发的过程中主要存在两方面的问题,一方面如何使软件尽可能的小,保证能够流畅的运行,另一方面软件多种功能逻辑的实现,针对这些问题该文详细介绍了三维模型文件、Quest3D文件优化方法和故障设置逻辑、数据显示逻辑的实现方法。最后以并车屏为例,展示了发布后的效果。
关键词:Quest3D;船舶电站;维修;虚拟现实;优化
中图分类号:TP391.9 文献标识码:A 文章编号:1009-3044(2015)20-0075-03
Virtual Maintenance Software Development of Ship Power Station Based on Quest3D
NI Tian-tao, HU Yi-huai
(Merchant Marine College, Shanghai Maritime University, Shanghai 201306, China)
Abstract: This paper introduces the basic structure of the ship station and the main development tools.Depending on the software functional requirements, overall development process of the software is designed.There are two issues in the software development process,on the one hand how to make the software as small as possible to ensure the software can run smoothly, on the other hand how to program to achieve a variety of functions. The solutions are carefully analyzed. It shows the effect of post-release at last.
Key words: Quest3D; power plant; repair; virtual reality; optimization
船舶电站是现代船舶电力系统的重要组成部分,被誉为现代船舶的心脏。船舶电站供电的可靠性和供电品质将直接影响船舶的安全运营和经济效益。为了实现船舶电站的可靠控制和安全运行管理,必须加强对相关人员的培训。传统的模拟器造价高、不能设置硬件故障。而现有的船舶电站虚拟维修软件采用虚拟现实技术,可以突破空间和地域的限制,具有高度灵性,可重复利用,经济实惠等的优点。
船舶电站不仅是船舶最重要的子系统,同时也是船舶电力系统的核心。船舶电力系统主要由发电装置、输配电装置、负载装置等三部分组成[1],如图1所示
图1 船舶电站的结构
1 软件的开发工具
软件的开发主要分为两大部分:三维模型的建立和虚拟场景的构建。
1.1 三维模型的建立
三维模型的建立主要使用3Ds Max,它是由Autodesk公司推出的一款基于Windows95 /98、WinNT2000以上的操作系统的强大的三维制作软件,具有二维建模、几何体建模、挤压建模等多种建模技术,并且设置了材质、灯光和动画效果,还提供了完全开放的开发环境[2]。借助于panda Direct X Exporter x86中间插件将三维模型导出为.X文件,为虚拟场景的构件提供良好的三维素材。
1.2 虚拟场景的构建
虚拟场景的构建主要依靠Quest 3D。它是一款可在编辑环境中与对象实时互动的三维虚拟开发平台,提供了丰富的逻辑功能模块—信道(Channel)。通过Channel选取和连接,就可以快速编辑出所需的仿真应用程序。将Quest 3D用于船舶电站虚拟教学软件的开发,可简化开发过程,具有开发周期短、过程简单等优势.
Quest3D程序运行:在Quest3D整个程序中,必须有1个Channel 作为程序的起始点,称之为Start Channel。通常可以选取Start3D Scene 或 Channel Caller作为起始Channel。当起始Channel被设定为启动时,在Channel上方将会出现 1个大的箭头。在起始Channel下方连接有一个Render(用来渲染平台中的场景),在它下面连有物体、灯光、摄像机,即场景中包含的最基本的模块。在Quest3D程序从左到右执行整个物件过程中,当父物件下方有子物件时,先执行子物件再执行位于右边的父物件,当所有的子物件被执行完成后,再从头开始执行,成为一个完整的框架(Frame)[3]。(如图2所示)
图2 Channel 执行流程图
漫游实现:漫游应用的主要是Quest3D中的行走相机,行走相机模块的功能是借助鼠标与键盘操作人员跟随相机镜头在场景中漫游。行走相机模块在Quest3D中作为已编译好的模块,可以对相机的草书进行修改,比如相机盒子的大小、焦距、行走速度和初始位置等[4]。剪切平面是一个相机的虚拟边界,在这个边界之内出现的物体会被渲染,边界之外的物体不会被计算[5]。这样可以减少计算机的负担,通过添加一个Field of View Matrix 模块到Camera上,可以手动定义剪切面。该模板允许改变事业的角度,标准值从50度到90度。当剪切面确定了需要渲染的场景,内容数量就会减少,程序的效率因此也得到了很大的提高。
2 软件的总体设计
2.1软件的功能分析
基于 ST CW78/ 95公约及我国主管机关规定的船舶机电设备的模拟操作培训要求, 和新一代船舶电站的功能要求,该系统具备以下功能要求,
1)船舶电站漫游功能。可以使操作人员打开相关的配电屏,查看内部结构。配合其他虚拟现实设备3D眼镜等,从而使操作人员更加系统、直观地了解船舶电站的工作原理、电气元件的使用种类以及相关操作。
2)船舶电站操作和维修功能。依据海事局《海船船员适任考试与评估大纲》规定的实操要求和船舶电站的常见故障,进行并车、解列等基本操作和保险丝、继电器与电压表等多种电气元件的故障设置。与VB通讯,可以进行船舶电站的一些综合训练,并将操作人员的练习和评估成绩进行保存。
3)船舶电站测量功能。船舶电站涉及大量的电学仪表,反映电站的运行情况主要参数需要通过这些电压表、电流表、频率表等电学仪表实时地显示出来。操作人员还可以调用万用表,对内部零部件保险丝、继电器、变压器等电压、电流和电阻进行测量,根据测量到的数据,判断电站的故障情况。与传统的电站相比,训练的真实感大大增强。
2.2 软件的总体的设计流程
1)准备阶段:根据海事规范和相关培训要求,确定船舶电站的故障类型和基本操作,制定整体产品方案。同时,对实体船上的电站外部结构,内部零部件进行素材采集,确定各个类型故障的具体显示效果。
2)三维建模阶段:根据收集到的素材,在3ds Max中进行场景建模和结构建模。在满足真实感的基础上,对模型进行优化,减小模型的数据量,提高软件整体的运行效率。
3)Channel 开发阶段:借助于panda Direct X Exporter x86中间插件将三维模型导出为.X文件。然后将.X文件导入Quest 3D虚拟仿真平台。通过Quest 3D中的Channel编辑器安排和链接相关的Channel流程图,实现故障设置、动作检测、数据形式等多种形式的逻辑运算,从而实现系统的各种功能。
4)发布阶段:将程序发布成EXE文件,供后期的开发。
图3 软件的开发流程
3 系统的关键问题及其解决方案
软件开发的过程中主要存在两方面的问题,一方面如何使软件尽可能的小,保证能够流畅的运行,另一方面软件多种功能逻辑的实现。
3.1 三维模型文件和Quest3D文件的优化
船舶电站结构复杂,零部件众多。减小模型质量会影响场景的逼真度和效果,同时如果采用过多的细节会降低绘图效率和影响后期软件的运行速度,所以要在模型的复杂性和细节度间寻求平衡[6]。为了获得数据量小、效果逼真的模型需要从以下几个方面出发:
1)多采用标准几何体建模:标准几何体的节点比较规则,模型文件的运算量小,可显著降低数据量。
2)运用多种建模方法,包括放样、布尔运算和多边形建模等方法使模型尽量成为单面空壳状态,减少模型所占用的空间。
3)对于需要检修的重要零部件进行精细化建模,提高逼真度。外观零部件采用纹理技术,即在天花板,地板等模型“贴”上对应的纹理贴图。 用这些纹理贴图替代场景模型的可建模实现或不可建模实现的细节,不仅减小模型的数据量,而且还可以充分体现出素材本身的鲜明色彩和纹理特征。
图4 继电器建模效果图
完整的船舶电站包含许多细小的部件,把众多的部件放置在一个场景中,代码量相当多,会影响软件的运行速度。创建场景时,要考虑场景文件的优化。优化方法主要有两个方面:
1)对象的重复利用:针对场景中完全一样的模型,如电压表、电流表和频率表等,在首次导入时定义物体名称,在下次使用时直接复制该对象,可以减少重复的工作量。在提高效率的过程中有一点需要注意,当复制的文件过大时,由于内存的限制,容易出现系统崩溃等现象。
2)整体导入导出:船舶电站中的许多对象作为环境场景,不需要进行移动或转动操作,可以将这些部件作为整体导入。螺钉、小灯等需要进行交互式操作,但数量众多的零件整体导入后,再对其进行拆分,也可以大大提高导入的效率。
3.2 交互式控制
为了实现故障检修功能,软件的主要交互式控制包含以下几个基本部分:
1)部件故障设置。允许培训人员对各部件的工作状态进行灵活设置,从而对学员进行综合培训。具体的方法如下:模型通常以整体的形式导入,首先将故障部分找出,加入3D object和motion变为独立的文件作为备用。然后找出独立文件的属性(material)部分,调用 Channel Caller 和Trigger Channel,再赋予物体相应的逻辑( Value) 来改变物体的属性(如图5所示)。描述“变压器烧毁,空气开关短路”等逻辑控制流程。
图5 部件故障设置逻辑图
2)数据显示设置。电气培训过程中,要求学员能够自由的对表盘进行操作并熟练使用万用表等测量仪器,操作的结果实时地显示出来。而Quest3D只能对具体的三维对象进行编辑。 具体的方法如下:将Value、text和3D Text Object Data三个基本的 Channel顺次联接起来,使二维数字转换为三维对象,然后再调用motion赋予它具体的位置来实现数据显示(如图6所示。其中Value用来存储显示的数据,Text用来将数据转换为文本格式。
图6 数据显示的设置逻辑图
4 案例演示
以并车屏为例,发布后的效果如图7所示。
图7 并车屏示意图
5 结束语
新一代的船舶电站,不仅能够实现传统模拟器并车、解列等基本功能,还能展示内部结构和进行维修操作,让学员对船舶电站运行和维护过程有更加深入的认识。在能耗和培训效率方面也是传统模拟器无法比拟的。随着虚拟现实技术在船舶行业应用的增多,仿真对象的不断完善,现有的物理硬件将逐渐被软件所取代,将步入一个崭新的时代[7]。
参考文献:
[1] 薄洪光. 船舶电站仿真软件系统[D]. 大连: 大连海事大学, 2004.
[2] 何晓田. 基于3D MAX实现虚拟校园场景建模[J]. 电脑知识与技术, 2011, 7(22): 5365-5366.
[3] 杨艳红, 钟相强, 陈洋, 崔成. 基于Quest3D 的工业产品虚拟装配研究[J]. 机械设计, 2013, 3(9): 97-100.
[4] 李志球, 胡以怀. 以Quest3D为虚拟引擎的船舶机舱漫游系统的制作方法[J]. 电脑知识与技术, 2013, 9(34): 7884-7887.
[5] 路朝龙. Quest3D从入门到精通[M]. 北京: 中国铁道出版社, 2012: 30-33.
[6] 王岩, 陈邑. 3D MAX材质材质与贴图技术精湛[M]. 北京: 机械工业出版社, 2007.
[7] 曾青山. 轮机模拟器的现状和发展趋势[J]. 集美大学学报: 自然科学版, 2003, 8(1): 77-80.