基于虚拟现实技术的LNG 工厂虚拟仿真系统设计与实现

2024-04-19 13:57丁佳杰李旭航王云飞
电子设计工程 2024年8期
关键词:手轮碰撞检测阀门

丁佳杰,李旭航,王云飞

(青岛科技大学机电工程学院,山东青岛 266061)

虚拟现实是一项集计算机图形学、电子信息处理技术、传感器技术、多媒体技术于一体的综合电子信息技术,典型特征为真实性、沉浸性、交互性[1-2]。虚拟现实与教育的结合有效提高了教学质量,主要表现为借助三维建模和渲染技术建立接近真实情境的虚拟环境,学生在与其相互作用过程中五官都能获得真实体验,亲身感受知识点[3-4]。该文基于虚拟现实技术开发一套功能完善且具有一定可行性的LNG工厂虚拟仿真系统,对于提高课堂效率、提高实训能力有积极良好作用。

1 系统开发流程

基于软件工程的设计思想,LNG 工厂虚拟仿真系统的开发流程主要分为两个阶段[5]:第一阶段是通过前期需求分析和材料收集确定系统模块;第二阶段是在Unity3D 平台开发系统主要功能。首先通过线上资料分析和线下实地考察确定场景布局和工艺路线,并根据院校课程标准制定模块功能;第二阶段采用Unity3D 引擎来实现场景构建和功能开发,Unity3D 是一个对编辑器、地形编辑、着色器、脚本等特性全面整合的专业游戏引擎,其内置程序编辑器支持C#、JavaScript、Python 等多种编程语言,其开发的产品可在Windows、iOS、Mac、Android 等多平台进行发布[6-7]。首先采用Solid Works 建立并装配LNG工厂,将其导入3D Max 进行渲染,并以FBX 格式导入Unity 工程;通过场景集成、光源设置、创建阴影、添加Sky Box、添加火焰粒子特效等操作对场景进行优化,达到高度的场景实体仿真和物理仿真[8];通过动画设计并结合碰撞检测技术实现站场巡检,通过C#编写脚本模拟阀门启动,采用UGUI 进行人机交互设计,利用场景相机实现多视角转换,最后,通过多次人机交互反馈修改设计,完成系统发布并交付用户使用,主要开发流程如图1 所示。

图1 开发流程

2 关键技术展示

2.1 动画设计

2.1.1 人物动画

LNG 虚拟仿真系统设置一工人模型,用以站场巡检,该人物有跑动和待机两种状态。该文通过外部方式导入动画,利用3Dmax 建立人物模型并添加骨骼节点、蒙皮绑定,以拖动关键帧方式将人物运动过程中肢体位置变化记录下来,实现动画制作,并导出FBX 格式[8]。动画准备完毕后,通过在Unity3D 进行设置实现动画效果,具体流程:将动画模型拖进Assets 中,勾选Model、Loop Time 和Materials 的默认值选项,设置完成后,新建Animator Controller 并将其拖进模型自动生成的Animator,通过Inspector 菜单进入Base Layer,将“普通工人待机”“普通工人跑”拖进去并改名为“站立”“跑”,通过Make Transition 添加连接线,最后通过C#脚本传入动画触发参数指令。这里主要采用如下代码来触发:

2.1.2 火焰粒子特效

LNG 工厂开车之前,需要对管线和设备进行氮气置换,即利用氮气推动管道残余天然气至火炬,通过燃烧方式实现放空,为增强场景真实感,利用Unity3D 内置粒子系统(Particle System)制作火焰特效,粒子系统是Unity 用来实现火焰、烟雾、流动等其他特效插件,主要由粒子发射器(Particle Emitter)、粒子动画(Particle Animator)、粒子渲染器(Particle Render)三部分构成[9]。该系统采用使用粒子发射器(Particle Emitter)产生粒子,采用粒子动画(Particle Animator)在时间轴上移动调整至合适的火焰外形和摆动频率,最后由粒子渲染器(Particle Render)完成渲染,具体效果如图2 所示。

图2 粒子系统火焰特效

2.2 碰撞检测技术

碰撞检测是虚拟现实技术在进行模拟过程中处理运动规划的关键所在,主要是指在指定时间域内某一时刻,检测场景中一对或多对物体之间是否有接触[10]。Unity3D 内置六种碰撞器,分别为盒状碰撞器、球状碰撞器、胶囊碰撞器、网格碰撞器、轮胎碰撞器和地形碰撞器,不同碰撞器适用算法不同[11]。该系统碰撞检测技术体现在工人巡检过程中的面板调用,采用盒状碰撞器,算法采用层次包围盒算法[12]。当包围盒发生相交、处于相交状态和相交状态取消时,会分别调用OnTriggerEnter()、OnTriggerStay()、OnTriggerExit()三个函数,执行逻辑关系从而实现碰撞检测功能[13]。当工人与吸收塔距离达到最小检测距离时,吸收塔参数面板调出,实训人员可查看压降、温度等重要参数,当面板压降达到报警值时指示吸收塔运行出现异常,如发生填料堵塞、淹塔或胺液发生起泡,此时需采取相应措施,以保证吸收塔正常运行从而达到巡检目的[14]。参数面板碰撞检测效果如图3 所示。

图3 参数面板查验

2.3 阀门启停

LNG 虚拟仿真系统中的阀门是控制生产负荷的关键设备,原料气进口流量以及储罐装存流量均通过阀门控制,该系统主要采用自力式调节阀和截止阀,自力式调节阀将管道介质流动产生的压力传输至弹簧压力装置进而推动阀杆改变阀门开度,截止阀则需手动转动手轮推动阀杆改变阀室开度[15]。该系统采用材质球调用和浮点数插件实现阀门开度的变化,场景中的调节阀和截止阀阀盖手轮位置添加了碰撞器组件,通过Input.GetMouseButtonDown()[16]系统API 检测实训人员否单击鼠标左键,鼠标左键单击阀盖时,通过ColorChange() 方法调用Green Material 至阀盖以及所连管道,表示阀门开启,具体对比效果如图4 所示。

图4 阀门启停

通过浮点数插件模拟手轮扭矩力累加,达到最大扭矩手轮转动,最大扭矩计算公式为:

式中,MF为截止阀手轮最大扭矩,DN为阀门口径,PN为设计压力,Kε为螺纹摩擦系数。当API检测鼠标点击手轮时,程序自动将该事件定义为一次浮点数并存储至后台计算程序,达到预设最大扭矩值时执行手轮旋转效果,该插件采用C#编写,核心程序如下:

3 系统功能与实现

3.1 登录模块

LNG 虚拟仿真系统登录和场景转换通过UGUI插件实现,User Interface 是用户与系统进行交互控制和信息交换的重要媒介,Unity3D 集成了功能完善的UGUI,设计人员通过在Canvas 画布上部署系统所需元素,可以灵活、快速地实现人机交互操作[17]。学员在登录界面正确输入学号密码后点击登录,将弹出“学习模块”、“实训模块”场景入口按钮,点击相应场景入口即可进入。登录界面如图5 所示。

图5 登录界面

场景入口Button 挂载场景转换脚本,以学习模块为例,主要代码为functionOnGUI(){GUI.Label(React(300,50,600,300),str);If(GUI.Button(Tect(250,450,200,50“)进入学习模块”))}

3.2 效果展示

LNG 虚拟仿真系统主要由学习模块和实训模块两部分构成,学习模块主要为教师提供知识讲解平台,包括工艺流程、操作演示、设备简介等内容,其中通过对关键设备的拆解和透明化处理,学员可学习主要生产设备的结构和运行原理;此外,学习模块还提供LNG 工厂工艺流程分部展示和理论知识讲解,使学员快速掌握工厂操作规程;实训模块则要求学生亲自动手进行模拟投产、正常运行、正常停车、紧急停车等操作。学习模块用户主要操作方式为场景漫游,通过改变相视角从而进行全局漫游,该功能依靠场景中挂载FreeCamera 脚本的Main Camera 实现,用户通过键盘按键和鼠标右键控制相机空间方位,具体效果为W、S、A、D 控制视角前后左右移动,Q、E键控制视角升沉,长按鼠标右键可进行环绕四周,从而全面了解整个场景的布局,实训模块则在次基础上增加了第一人称功能,用户可选择工人视角作为第一人称视角,通过该“化身”进行站场巡检、工艺控制等操作。设备介绍和视角效果如图6 所示。

图6 效果展示

4 结束语

该文以LNG 工厂为工业背景,重点讨论虚拟现实系统的设计和开发,系统设置学习模块和实训模块,将理论和操作相结合,既满足传统课堂教师授课要求,又能实现学生由单方面接收知识到动手操作的转变。LNG 工艺流程复杂,并具有易燃易爆低温特性,传统实训方式存在一定风险,而目前LNG 操作仿真系统多采用scada 组态软件开发[18],相较传统实训式具有高效安全低成本等优势,但受限于只能进行二维展示,无法真实展示站场总体布局和关键设备外形结构,实现LNG 工厂真实场景的沉浸式教学,基于虚拟现实技术的LNG 工厂虚拟仿真系统的开发利用计算机三维建模和渲染技术,高度还原真实站场,采用编程语言实现虚拟生产过程,有效解决传统仿真教学缺乏沉浸性、交互性、趣味性等难题,同时也将为其他领域的虚拟仿真项目开展提供一定参考价值。

猜你喜欢
手轮碰撞检测阀门
美嘉诺阀门(大连)有限公司
全新预测碰撞检测系统
装配式玻璃钢阀门井的研发及应用
数控机床电子手轮工作原理及故障分析
基于BIM的铁路信号室外设备布置与碰撞检测方法
Unity3D中碰撞检测问题的研究
基于生产改造的数控铣床手轮加装策略研究
数控机床电子手轮类故障及快速诊断方法
BIM技术下的某办公楼项目管线碰撞检测
省力阀门瓶盖