卢光松,甘辉兵,郑恒持,史兴晨
(大连海事大学,轮机工程学院,辽宁 大连 116026)
基于Unity 3D的船舶压缩空气系统的虚拟设计
卢光松,甘辉兵,郑恒持,史兴晨
(大连海事大学,轮机工程学院,辽宁 大连 116026)
针对目前船舶空气压缩仿真训练系统大多采用半物理仿真与二维软件界面仿真相结合方式训练效果不佳的问题,将虚拟现实技术引入到船舶压缩空气系统的仿真设计;设计一套基于Unity 3D的船舶压缩空气系统,实现虚拟仿真程序和三维虚拟场景的实时交互,生成一个逼真的三维视觉、听觉、触觉的感官世界,加强培训人员的沉浸感,从而获得一种置身于真实环境中的感受;系统可供学员无限制反复训练,节省系统的维护费用,规避实物操作设备中可能出现的各种风险,提高训练效果。
压缩空气系统;仿真;虚拟;交互
目前船舶的空气压缩系统大多是采用半物理仿真与二维软件界面仿真相结合的方式[1]。这种方式虽然对系统的主要操作物理平台进行真实还原,提高了学员培训的真实感,但由于传统的空气压缩系统的绝大部分设备与管系是采用二维仿真界面来模拟的,存在的一些缺点。如无法进行动态展示、人机交互性不够友好,无法看到真实的系统设备等。为了规避二维仿真的不足,将虚拟现实技术应用于船舶压缩空气系统中。模型开发环境通过三维软件建模,然后将完成的三维模型导入软件虚拟引擎Unity 3D进行系统合成和交互开发,最终形成虚拟现实环境。根据压缩空气系统的实际操作程序利用C#语言在Unity3D虚拟引擎平台下实现仿真程序与三维虚拟场景的交互,生成一个逼真的三维视觉、听觉、触觉的感官世界,加强培训人员的沉浸感,从而获得一种置身于真实环境中的感受。
压缩空气系统数据仿真软件的主要功能是用于根据实船系统原理图实现对压缩空气系统中各个设备的操作、测试、数据实时交互显示[2]。主要包括数据采集模块、数据分析模块、界面显示模块、数据管理模块四部分,其中数据管理模块建立压缩空气系统的监控信号和处理流程特性曲线,并进行集中的存储和管理,通过从数据采集模块接收到压缩空气系统的状态和控制信号数据,经过数据分析模块处理后,在界面上显示给用户测试结果。
系统通过类设计器完成整个压缩空气系统模型类和逻辑类的结构设计与程序实现。利用模块化设计思想将整个仿真系统的功能通过以下三层实现:
人机交互层:该层为用户提供简单,方便,灵活,信息丰富,指导提示及时智能的操作界面。用户可以通过点击不同的控件实现与底层模型的交互操作。
业务逻辑层:该层根据系统操作和显示交互的需要,利用GDI+图形技术、计算机编程技术开发自定义控件库及各个模型类库,为软件开发提供灵活、实用的接口。根据具体编程实现各种系统操作、显示等逻辑。
数学模型层:该层根据前面建立的各个设备的数学模型,运用编程语言封装成一个类,留下必要的接口和参数,供系统中的设备调用和实例化,主要包括:空压机模型,管路模型,空气瓶模型,减压阀组模型等。
系统的软件界面是人机交互界面,用户通过在界面上操纵,实现与底层的业务逻辑层和数学模型层的交互,并最终在界面显示。
压缩空气系统仿真界面中不仅可以对整个空气压缩系统的各个参数进行实时显示,而且可以对一些交互点的操作,还可以比较详细的看到整个系统的动态运行状态。单击左侧各个空压机的控制面板中的按钮就可以实现空压机的启停、切换等操作。通过对空气压力和流量的实时动态显示,可以让值班人员了解各个设备使用空气状况,确保机舱设备安全运行。
空气分配系统仿真界面中主要包括了提供起动空气、控制空气及机舱、甲板日用空气的船舶设备。通过界面操作,实现对各个设备用气量的控制,以及空气流量、压力等参数的实时显示。
三维模型是实现虚拟环境的基础,虚拟场景能否产生良好的视觉效果和沉浸感与模型的精度直接相关。高精度模型用于虚拟场景必然会取得良好的效果,但这种做法势必会大大增加建模时的工作量,并增加计算机负荷,影响场景加载速率和漫游实时性[3]。因此建模时应当平衡场景效果和建模精度,保证画面真实感的同时又能保证计算机运行流畅和实时渲染的效果。除了模型精度,可以运用材质、贴图和一些立体渲染技巧来表现模型的表面,纹理和明暗效果,让模型看起来更加真实。图1船舶压缩空气系统场景建模流程简图。
图1 虚拟场景建模流程图
3.1 场景制作
本系统舱室中主要包含设备、管路,设备又含有很多零部件,例如阀门、仪表、指示灯,按钮等。在这里,采用图2这种树形结构来描述场景中的模型层次结构。在构建模型时,这种有条理有步骤性的建模可以节约不少的精力和时间。
图2 虚拟机舱场景层次结构
3.2 Unity 3D引擎着色器的实现
虚拟机舱环境的逼真度以及是否能使用户产生比较强烈的沉浸感,主要取决于虚拟环境的真实度[4]。影响真实度的因素除了三维模型的精细程度外,更重要还取决于模型的材质以及着色器的设计是否合理。利用Unity3D引擎图像处理的最新特性,使用Unity内置着色器增加场景逼真度。如3图为虚拟舱室中着色器的应用。
图3 使用不同shader的效果图
3.3 碰撞检测
碰撞检测技术是虚拟现实研究领域的核心技术之一,碰撞检测效果的优劣将会直接三维场景的逼真程度,进而影响用户在三维场景的沉浸感[5]。为了体现三维虚拟场景中的真实感,三维虚拟场景同现实世界的场景一样,不可穿透的物体是不能相互穿透的,这就需要对两物体进行碰撞检测。
常用于碰撞检测的主要是包围盒技术。包围盒技术就是用尽可能简单的几何形状最紧密的包围住虚拟空间中的复杂物体[6]。然后通过检测包围盒的交叉程度,来判断是否进行下一步物体之间的碰撞检测。如果两物体的包围盒经检测后没有交集产生,则说明两物体不会发生碰撞,否则需要进行物体之间的碰撞检测。常用的包围体有:AABB包围盒、OBB包围盒、k-Dops包围盒、包围球等。如图4所示。
图4 包围盒类型
包围球(Sphere)是一种常用的包围体技术。从本质上说,包围球就是一个可以把物体包裹在内部的最小的球体空间。它占据的三维空间R表达式:
(1)
其中,R为包围球空间,r为包围球空间的半径。
实际计算中,如果要求计算结果不是非常精确而要求计算消耗资源比较少,计算速度比较快,也可以通过计算模型顶点坐标的最大值和最小值来得到一个近似的包围球,这就可以通过一种简单的方法来计算,利用计算物体模型的顶点坐标的最大值和最小值的和的一半来确定球心坐标。设物体模型的顶点坐标的最大值和最小值分别是(xmax,ymax,zmax)和(xmin,ymin,ymin),则包围球球心坐标(Cx,Cy,Cz)为:
(2)
同理可得Cy、Cz,包围球半径r为:
(3)
包围球之间的碰撞检测相对比较容易,对比球心距与半径和的大小,如果球心距大,则不会发生碰撞,反之则发生碰撞。包围球的优点除了碰撞检测方法简单之外,还有就是包围球的构造比较简单,且当物体发生旋转时候,只要不发生平移,包围球不会受到影响,不需要进行重对齐的计算,占用资源比较少。
因为模型比较多,场景比较大,考虑到计算机的运行速度,所以本系统中用到的比较多的是原型碰撞器,例如,在机舱漫游中,摄像头一直做平移或者旋转运动,给它加的是胶囊型碰撞器,因为胶囊型碰撞器在做旋转动作时不需要重构,消耗资源少,可以保证良好的运行速度。给设备、管路、墙体等添加盒子碰撞器,如图5所示。
图5 压缩机添加碰撞器场景
3.4 三维拾取
机舱虚拟场景中,有许多阀、按钮、车钟等可以动作的虚拟对象,称之为交互点,为了实现这种仿真,让用户有更好的体验,同时能和二维仿真软件进行交互,需要对这些虚拟元器件进行拾取操作。
射线拾取算法也是虚拟场景中现行的最基本算法[7]。射线拾取算法基本原理:当点击鼠标触发屏幕某点时,计算机会记录鼠标在屏幕中的坐标值,并将此坐标转化为视口坐标,为视口坐标添加深度值,再通过逆运算得到该点在世界坐标系中的坐标值,最后建立一条以视点为起始点,以所得坐标为第二点的射线,然后用该射线与世界坐标系下的空间物体按深度逐个求交,若相交物体有且只有一个,则此物体就是所要拾取的物体,若有多个,则为深度最小的物体。
由原理可知,拾取算法主要有两个关键步骤。关键步骤一:将屏幕上二维拾取点坐标转化为三维空间上的坐标;关键步骤二:然后利用射拾取算法计算拾取物体,下面说明实现的具体算法。
(1)获取屏幕上拾取点坐标,并将其转化为屏幕空间坐标。设视口宽度为W,高度为H,鼠标捕获屏幕点的坐标为O(x,y),投影窗口坐标为Pn=(Pnx,Pny,Pnz),设视口左上角坐标为0点即X=Y=0,视口矩阵为:
(4)
由投影窗口上点Pn利用视口变换得到屏幕上的点O坐标为:
(5)
(6)
求逆变换:
(7)
(8)
Z轴上的值为深度值,仅影响Pn在射线上的位置,取值范围[0,1],当z=0时,表示Pn点位于近裁剪面上;当z=1时,表示Pn点位于远裁剪面上。
(2)计算投影矩阵和视点矩阵相乘之后的转置逆矩阵,转换Pn坐标至世界坐标系中。
此时,可以由下式计算Pn点在世界空间中的坐标Pw:
式中,Mp为投影变换矩阵,Mv为视点变换矩阵,Mw为世界变换矩阵。
(3)以视点Pc和点Pw确定射线方程:
(9)
(4)判断射线与物体是否相交。
为简化说明,此处物体选用包围球处理。设包围球球心坐标为c,半径为r,则可由式(11)判定相交情况:
(10)
(11)
若此方程有正解,则表明射线与包围球相交,即拾取了该物体。
3.5 虚拟漫游的实现
在unity3D中实现虚拟现实场景漫游可以通过添加第一人称组件来实现,用户可以根据实际需要添加灯光、辅摄像机等到第一人称组件[8]。鼠标的移动可以控制主摄像机的旋转,由类实现,若旋转轴为轴,则鼠标的左右移动可带动摄像机的左右旋转,若旋转轴为轴,则鼠标的上下移动可带动摄像机的上下旋转。类还提供了摄像机旋转的灵敏度及最大旋转角度的参数设置,用户可根据实际要求进行设置。
3.6 粒子系统模拟火灾
船舶火灾是火灾中的一种,它属于船舶海难中较为常见且危害性较大的一种事故,船舶火灾会对船舶、人员、货物、环境造成不可估计的危害。这是因为船舶内部结构复杂、分舱多、货物密集不利于进行火灾的扑救;船舶在航行时远离陆地外援难以及时赶到,以船舶上的人员与设备其救灾能力是有限的。因此对船舶人员进行有关火灾的培训是很必要的,在空压机间引入了对机舱火灾的模拟,以使船舶人员对船舶火灾有一个直观的认识。实现了一种基于GPU的粒子系统用来模拟船舶机舱火灾、烟雾效果。
虚拟场景可以为用户提供视觉、听觉、触觉和嗅觉上接近真实环境的感受[9]。为了加强学员的沉浸感和真实感,在使用仿真软件进行模拟训练时有一种身临其境的感觉,将三维虚拟场景与可视化仿真软件进行数据交互。这样学员在可视化仿真软件进行操作时,三维虚拟场景中的实景情况可以达到同步的效果。同样,在三维虚拟场景中进行的操作也可以在可视化仿真软件中同步得到实现。
采用客户机/服务器模式,可视化仿真软件中的系统数据类通过序列化转化为数组形式,每经过0.2 s的时间向三维虚拟场景端进行一次数据发送;而三维虚拟场景端向可视化仿真软件端发送数据则采用有数据改变才发送,否则不发送的交互机制。
本文开发的基于Unity 3D的船舶压缩空气系统解决了常规二维压缩空气系统仿真的训练效果不佳等问题,系统具有良好实际应用价值。将虚拟现实技术引入到船舶压缩空气系统中,实现虚拟仿真程序和三维虚拟场景的实时交互,满足当今船员培训与考核的要求。学员在逼真的虚拟机舱环境中进行漫游,熟悉系统结构。节省培训中的场地、设备、经费等其它资源。另外,可以虚拟现实技术应用到整个船舶相关的系统中,实现无限制反复训练,节省船舶相关系统的维护费用,规避实物操作设备中可能出现的各种风险,提高船员培训的训练效果。
[1] 张可超.船舶压缩空气系统虚拟现实的设计与研究[D].大连:大连海事大学,2014.
[2] 甘辉兵,张均东,蒋丁宇,等. 超大型油轮货油泵透平系统仿真研究[J]. 中国造船,2014(1):164-174.
[3] 韩 杰,谢元华,李拜依,等. 活塞式压缩机的研究进展[J]. 节能,2014,12:17-23.
[4] 许金元. 活塞式压缩机主传动系统动力学优化问题研究[D].芜湖:安徽工程大学,2014.
[5] 胡锦晖,胡大斌,何其伟. 某型船舶动力装置建模及仿真[J]. 大连海事大学学报,2015(2):17-22.
[6] 石宪章,黄 明,赵振峰,等. 气辅成型过程中可压缩空气流动数值模拟[J]. 化工学报,2013(3):906-911.
[7] 范晓勇,余历军,王战辉. 往复活塞式压缩机的变工况压气性能研究[J]. 化工机械,2015(2):180-183.
[8] 李 坤,徐小照. 基于飞轮矩计算的活塞式压缩机计算机辅助设计研究[J]. 化工设备与管道,2015(2):58-60.
[9] 沈浩生,张均东,曾 鸿. 船舶集控室虚拟仿真系统的设计与实现[J]. 图学学报,2013(4):126-131.
Virtual Reality Design Of Compressed Air System Based On 3D Unity
Lu Guangsong, Gan Huibing, Zheng Hengchi, Shi Xingchen
(College of Marine Engineering, Dalian Maritime University, Dalian 116026, China)
Aiming at the poor training effect problem of ship's air compression training systems are mostly semi-physics simulation software interface with two-dimensional simulation combination be used. Virtual reality technology be used into the compressed air system of ship. Designing compressed air system based on 3D unity, to achieve real-time interactive virtual simulation programs and three-dimensional virtual scene. It can generate a realistic three-dimensional visual, auditory, tactile sensory world, to strengthen the sense of immersion training of personnel, so as to obtain an exposure to the real-world experience. Can be achieved without restrictions on repeated training, saving the entire system maintenance costs, to avoid possible risks in the operation of real equipment, can greatly improve the effectiveness of training.
compressed air system; simulation;virtual;interaction
2016-07-14;
2016-08-08。
中央高校基本科研业务费专项资金(3132016015);中央高校基本科研业务费专项资金资助(3132016316)。
卢光松(1990-),男,贵州人,硕士研究生,主要从事轮机自动化与智能化、轮机控制与仿真方向的研究。
甘辉兵(1981-),男,湖北人,副教授,硕士生导师,主要从事轮机自动化与智能化、轮机控制与仿真方向的研究。
1671-4598(2016)09-0267-03
10.16526/j.cnki.11-4762/tp.2016.09.075
U664.8
A