王春,李磊,刘刚
(中国石油化工股份有限公司青岛安全工程研究院,山东 青岛 266071)
石化企业大多数生产设备必须连续作业,并具有高温、高压、易燃、易爆等特点,在很大程度上限制了人们对系统的研究和优化,以及对操作人员和管理人员的培训。而虚拟现实技术(virtual reality,VR)作为一种新型的人机接口技术,为使用者提供了与虚拟环境进行自然交互的手段,利用先进的硬件及软件工具,使参与者能交互式地观察和操纵虚拟环境。
虚拟培训是目前虚拟现实领域比较广泛的一项应用,易涛[1]、郑云栋[2]等分别研究了石化企业虚拟现实仿真系统,系统偏向于在三维场景中对工艺流程及生产数据进行统计分析从而对员工进行培训。韩冬等[3]研究了针对大型储罐的虚拟救援场景。但是目前已有的虚拟现实系统大部分以三维场景浏览和视觉交互为主,缺少利用数据手套等硬件设备的交互,特别是在事故模拟方面,主要采用基于模型的粒子系统来描述,对事故的发生发展过程及后果无法形象的模拟。
本文利用数据手套等虚拟现实硬件设备作为人机交互工具,利用流体力学数值模拟技术对事故进行仿真,采用图形处理器(graphic processing unit,GPU)对事故场景进行三维渲染,开发石化装置虚拟培训系统,为使用者与虚拟场景之间搭建一个实时交互的虚拟环境,在不破坏实际生产连续性的前提下,模拟各种工艺条件下的生产状态,使员工快速掌握装置的工艺流程,并积累丰富的生产操作经验。
基于交互环境的石化装置虚拟培训系统的总体设计目标是利用虚拟现实软硬件设备实现一套石化企业综合虚拟培训系统,在利用计算机生成的三维训练场景中实现对规定好的某种设备使用过程进行培训,通过培训系统的使用,实现石化企业“七化”管理,即抽象理论有形化、地下设施地面化、内部构成剖面化、工艺流程系统化、技能训练实战化、隐性部件可视化、培训系统数字化。针对上述需求目标,系统集成教学演示、实操培训及培训评估 3个主要模块。
(1)教学演示模块 以视频、音频、动画等多媒体形式实现操作过程演示、设备剖析、工艺流程等功能。
(2)实操培训模块 系统的核心模块,主要由人机交互功能组成,用户使用数据手套、力反馈器等交互设备,按照一定的操作顺序对计算机生成的三维场景下的装置、设备进行操作,完成各项任务,主要包括打开/关闭阀门、使用消防器材、应急救援行动、安装和拆卸部件以及操作面板等功能。
(3)培训评估模块 在操作后对关键操作行为进行评估,得到培训成绩,以加强培训效果。
图1 石化装置虚拟培训系统结构图
基于交互环境的石化装置虚拟培训系统运用虚拟现实技术、传感器技术、网络技术、流体力学数值模拟技术配合虚拟现实硬件设备在电脑终端和数据头盔上为石化企业作业人员提供真实的虚拟场景,系统主要由3D驱动引擎、数据手套模块、头盔显示器模块、场景数据库模块、考核评估模块及电脑终端等构成。系统结构如图1所示。
(1)3D驱动引擎是该培训系统的核心部分,基于VC.NET和OpenGL(Open Graphics Library)开发,负责显示、组织和管理三维装置虚拟场景的数据。用于表现渲染三维培训场景,实现石化装置标准化培训的各种应用,提供系统二次开发的接口与工具。
(2)数据手套模块包括对阀门、消防设备等设备的虚拟操作识别、数据手套及与之相连的传感器,通过虚拟手操作实现对虚拟场景中设备和物体的实时交互。
(3)头盔显示器模块包括头盔显示器及与之相连的传感器、耳机,为使用者提供一个沉浸的虚拟环境,并感知受训人员头部方位。
(4)装置模型库包括厂房、装置及设备立体层次的三维数字化模型,模型与现实场景按照等比例构建,另外还包括基础信息数据、工艺流程数据、实时运行参数等数据。
(5)灾害数据库利用计算流体力学模拟泄漏、火灾等事故的发生发展过程,利用GPU三维灾害渲染算法在虚拟场景中进行模拟,再现事故的发生过程及危害范围。
(6)考核评估包括电子试卷、自动评分及情景考核等内容。
虚拟手是虚拟现实技术的重要组成部分,为用户提供了一种全新的人机交互方式,能够使用户更好地融入系统所构建的虚拟场景中。虚拟手技术利用计算机技术使操作者通过虚拟外设将人手的操作信息传递给虚拟场景中的虚拟手模型,实现人手到虚拟手的动作映射,从而实现与虚拟环境的实时交互。
常用的数据手套采集得到的数据值是 0~255之间的整数值,数据之间的间隔太大,精度不高。如果直接使用该数据来计算手部各个关节的角度并驱动虚拟手的运动,会产生明显的跳跃而不连续,因此需要对该原始数据进行平滑处理。处理方法是采用线性插值,即当前帧的数据是前几帧数据的平均值,用式(1)表示。
工程计划部门根据现场实际情况的反馈及时调整相应的数值供财务部及物资部门改变原有的计划,也就是将工程质量管理的PDCA模式运用到项目的物资供应管理中。
式中,yt是t时刻采集的数据值;n为采集的帧数。
从虚拟手操作的实现过程来看,实现虚拟手操作需解决几个关键问题:碰撞检测[4]、待操作模型的运动方式、虚拟手的姿态调整以及操作条件[5]。在利用数据手套对虚拟物体进行操作时,手指的姿态是完成操作的关键,张鑫等[6]研究了利用循环坐标下降逆运动学(CCD IK)算法。本文将通过外设得到的手指姿态数据利用逆运动学算法进行计算,使虚拟环境中的手指模型始终保持在待操作模型的表面,根据虚拟手操作的特点,姿态调整的目标主要包括:①调整后手指首先与模型接触的位置始终保持在模型表面;②调整手指姿态的目标是展开,即调整后手指的弯曲程度减小;③调整时手指各关节必须满足特定的要求。虚拟手每根手指均包含DIP、PIP和MCP3个关节,共有4个旋转自由度,由 4 个关节角θDIP、θPIP、θMCP、θAbduction组成,如图2所示[7-8]。虚拟手的各个关节通过数据手套采集的数据计算关节角度,每个关节角度通过改进的CCD算法求解。手指的姿态调整受关节自由度的限制,对关节DIP与PIP,关节角度的调整受到θDIP和θPIP的限制,并且只能在其关节平面上进行,因此,利用改进的CCD算法,首先在调整DIP和PIP的角度时,将其目标位置映射到关节平面上,然后通过调整接触点、投影点和关节转动轴的夹角来实现关节角度的调整。在三维系统中的效果如图3所示。
图2 手关节划分
图3 虚拟手控制阀门
虚拟手的整体位置和姿态通过位置追踪器获取,即用获取手腕的值驱动手腕运动。理论上当位置追踪器静止时采集得到的数据是一个恒定值,但是在实际采集过程中由于受到信号噪声的干扰会使采集得到的数据产生跳变,而如果直接使用跳变的数据驱动人体的运动,从视觉上就会产生抖动,即动作不连续,同时也会增加操作的难度。因此,对采集得到的数据也需要进行平滑处理。本文主要借鉴维纳滤波的方法消除信号噪声,由式(2)计算。
式中,H'(u,v)为H(u,v)的共轭,k为一常数,所有H、F、G均为矩阵。
对于石化装置发生的典型事故如泄漏、火灾和爆炸事故,通过现场调研,了解装置内介质分布情况、操作工况、介质性质、周边环境等基本信息,根据危险性分析的结果,设定可能发生的介质泄漏扩散的场景,通过数值模拟分析来得出各种影响因素下不同泄漏工况的可燃气体空间分布情况;同时根据蒸汽云空间爆炸的理论预先估计出装置区内最可能发生爆炸事故的主要位置以及爆炸造成危害最大的区域(最拥挤或受限制部位),评估爆炸区域划分。危险性评估实施的主体原则为:定性分析(理论经验为主)→最危险状况爆炸分析→真实情况模拟→爆炸概率分析。根据以上原则,利用气体扩散爆炸专业模拟软件 FLACS计算出石化装置泄漏、火灾及爆炸等事故的模拟结果,如图4所示。本文利用虚拟现实技术对计算得到的模拟结果进行三维展示,从而更加准确地反映出各种事故的发生、发展过程及形态,为虚拟培训系统中事故场景的真实性与准确性提供支持。
本文采用的事故三维渲染方法基于面片叠加法[9],在GPU上实现事故的全部渲染工作,从面片的生成、排序和渲染全在GPU内部完成,实现了虚拟培训系统中所需要的实时大规模泄漏、火灾等事故三维模拟。
2.2.1 事故纹理的管理与组织
图4 不同时间燃料泄漏扩散数值模拟
2.2.2 事故三维渲染
系统需要表现气体泄漏等事故随时间变化浓度及扩散情况的变化,因此组成泄漏气体的面片需要带有一定透明度,所以必须按照面片距离摄像机的远近,采取由远及近的渲染顺序进行渲染,否则就会出现比较凌乱的渲染结果。由于GPU的工作方式是单指令多数据的方式,因此GPU上的排序是一种并行数据排序方法,本文采用了一种优化的BITONIC算法[11]。系统采用的排序都在GPU中进行,在排序结束时,帧缓存对象中存储着排序的结果数据。OpenGL图形引擎能够将对象读取到顶点缓存对象中,从而完成将纹理数据转换为顶点缓存数据的工作,这样,转换的过程只需要在GPU中完成,而不需要由CPU到GPU的数据传递。为了实现在GPU中实时绘制气体泄漏的三维效果,本文利用图形引擎中的几何着色器在 GPU内生成新的几何图元[12]。几何着色器定义了4种新的可调整图元类型GL_LINES_ADJACENCY_ EXT、GL_LINE_STRIP_ADJACENCY_EXT、GL_TRIANGLES_ADJACENCY_EXT和GL_ TRIANGLE_STRIP_ADJACENCY_EXT。在链接程序之前必须告诉OpenGL其几何着色器的输入图元类型并不一定对应 glBegin函数的参数,因此需要设置输入类型,实现过程如下。
图5 GPU与CPU事故渲染帧速对比
由图5可以看出,基于GPU的事故渲染效率远高于CPU的渲染效率,随着面片的增加,两者的效率差更加明显,这表明本文所述的基于GPU的石化企业事故渲染方法能够提高渲染效率,在虚拟现实系统中有较好的实用性。
本文选取中国石化某石化公司延迟焦化装置作为模拟背景,延迟焦化装置是石油化工企业主要的生产装置,原料、中间产品及产品均为易燃、易爆及可燃性物质,这些性质决定了在生产过程中存在较大的泄漏、火灾、爆炸等事故危险性;而且延迟焦化装置是一个连续生产过程,参数多并且相互关联,生产中要求长周期稳定运行,因此对操作人员有着很高的要求;另外,由于延迟焦化装置生产的持续性,很难在装置上对操作人员进行实际操作技能的培训,尤其像开工、停工及事故处理等操作技能,在装置稳定生产正常运行情况下无法得到有效的训练。
本文研发的虚拟培训系统在Core 2 Duo E8300处理器、2G内存、专业级显卡、操作系统选用Windows 7的电脑上,系统运行流畅。系统操作界面如图6所示,当模拟事故场景时,帧速在50帧/s左右。虚拟培训系统主要实现的功能包括以下几点。
(1)支持石化企业装置三维漫游及设备属性查询和可视化管理等功能,受训者在三维环境中能够更加真实的了解装置及设备信息,身临其境地体验装置的结构。
(2)能够利用数据手套、位置追踪器等硬件设备模拟用户操作,实现打开/关闭阀门、使用灭火器、消防炮等消防器材等操作,以交互、直观的方式实现员工的标准化操作培训。
图6 系统实现效果
(3)系统利用气体扩散爆炸专业模拟软件FLACS计算得到的泄漏、火灾等事故数据,采用GPU技术实现实时渲染,模拟事故的发生发展过程和扩散范围,为企业应急预案编制、事故预防、虚拟演练和事故调查提供技术支持。
(4)基于多角色的协同事故应急救援演练,能够为受训者提供一个逼真的事故场景,提升受训者的事故处理能力,降低事故造成的损失,提高企业的应急培训演练质量和效率。
本文开发的基于交互环境的石化装置虚拟培训系统以石化装置为切入点,借助于数据手套、位置追踪器等虚拟现实设备进行数字化培训技术研究,为石化企业员工标准化操作培训、应急演练等提供逼真的操作体验,在不破坏实际生产连续性的前提下,模拟不同工艺条件下的生产状态,在虚拟环境中熟悉装置的标准化操作和事故处理操作,使员工对操作环境、操作设备、操作顺序、设备维护等有直观的认识,避免出现由于操作不当而引起的损失和伤害。本系统能够为石化企业提供一种新的培训方式和方法,提高员工的培训效率和培训质量。
目前该系统已经在中国石化某石化公司得到应用,并取得了良好的使用效果。在使用过程中用户提出了一些新的需求,下一步完善和研究工作将重点关注基于状态驱动的智能体研究和人群逃散的数字化模拟。
[1]易涛,杨义.化工安全虚拟现实仿真系统的设计与实现[J].计算机与应用化学,2006,23(1):49-54.
[2]郑云栋,王欣捷,项曙光.高压加氢裂化装置仿真培训系统开发[J].计算机仿真,2010,12(4):320-323.
[3]韩东.基于虚拟现实技术的大型储罐区灭火救援场景的构建[J].防灾科技学院学报,2010,12(1):93-96.
[4]金钺,侯文君.基于虚拟手简化面法向距离的抓取碰撞检测算法[J].中国机械工程,2008,19(4):1068-1071.
[5]张鑫,王章野,王作省.人体运动建模的实时逆运动学算法[J].计算机辅助设计与图形学报,2009,21(6):853-860.
[6]韩流,刘振侠,吕亚国,等.基于虚拟现实技术的航空涡扇发动机仿真系统[J].计算机仿真,2009,26(12):57-61.
[7]陈学文,刘玉庆,朱秀庆,等.基于虚拟现实的太空操作仿真技术研究[J].系统仿真学报,2011,23(3):516-521.
[8]李澍,刘毅,王念东.虚拟环境中的多手指抓取操作技术[J].计算机辅助设计与图形学学报,2010,22(10):1728-1733.
[9]Wang Niniane.Realistic and fast cloud rendering[J].Journal of Graphics Tools,2004,9(3):21-40.
[10]李纲,李辉.GPU上的实时三维云仿真[J].系统仿真学报,2009,21(23):7511-7514.
[11]胡玥,高庆狮,刘宏岚.一种优化 BITONIC算法:“并行-优化-串行”合并和分类向量算法[J].计算机研究与发展,2002,10(3):1307-1316.
[12]顾伟.OpenGL几何着色器研究[J].中国科技信息,2008(20):113-115.