邹文俊,林洪贵,孙美娜
(集美大学轮机工程学院,福建厦门 361021)
一种虚实结合的船舶压缩空气操作训练系统设计
邹文俊,林洪贵,孙美娜
(集美大学轮机工程学院,福建厦门 361021)
针对航运院校采用真实船舶动力设备系统操作训练存在占地面积大、成本高且缺少实船环境的缺点,本文以船舶压缩空气系统为例设计出一种虚实结实的动力设备操作训练系统,建立了压缩空气系统的三维实体模型和设备的数学模型,通过Unity3D实现了船舶压缩空气系统的场景漫游和虚拟操作功能,采用PLC控制技术实现了空压机组的控制功能,解决了PLC控制器与Unity3D之间数据交互问题,最终实现了通过实物控制箱控制虚拟的空压机组的目的。
压缩空气系统虚实结合PLCUnity3D
船舶动力设备的操作和管理是船舶二/三管轮主要实操内容之一,实际的船舶动力系统由于受场地、建造、运行管理成本的限制,加之缺少实船环境[1,2],已无法满足航运院校对船舶动力设备训练评估要求,随着虚拟仿真技术的发展,实际系统势必被模拟仿真系统所取代。船舶压缩空气系统作为重要的船舶动力设备,可为主副机提供启动空气、气动控制系统提供控制空气及其它船舶辅助设备提供所需的气源[3],船舶压缩空气系统势必也朝着虚拟仿真的方向发展。
模拟仿真系统具有真实系统无法比拟的优势,主要体现在:1)可以反复操作而对设备无损害;2)可以实现真实系统无法实现的故障模拟;3)基本不需要对设备进行维护管理;4)误操作不会危及到设备和人员安全。传统的船舶压缩空气模拟仿真系统基本以二维平面原理图的形式展示,这种方式无法客观地描述真实系统场地布置情况,操作训练人员无法得知操作部件在实际系统中具体的位置,缺乏真实感。本文在此基础上本文提出了一种操作更真实、沉浸感更强的虚实结合的船舶压缩空气操作训练系统。
虚实结合的船舶压缩空气操作训练系统的主要思想是控制系统真实化,控制对象虚拟化。整个系统结构如图 1,控制系统采用现代船舶上普遍采用的PLC控制技术实现,主要完成空压机组的控制和保护功能,空压机组、主空气瓶等作为控制对象采用3ds Max建模软件进行三维实体建模,在Unity3D游戏引擎中实现场景漫游和虚拟操作功能。
在 3dsMax中建立的船舶压缩空气系统的三维虚拟场景和在Visual Studio中建立的数学模型动态链接库作为资源导入到Unity3D中进行再加工制作,最后通过一键发布的方式生成Windows平台下的.EXE应用程序,运行在装有 Windows操作系统的壁挂式一体机上,一体机带有一触摸显示屏,学员通过触摸显示屏的触屏功能可实现:1)漫游船舶压缩空气系统,熟悉设备和管系;2)操作系统中相关阀门的开启和关闭;3)观测系统中设备的运行状态及仪表参数值。学员操作的空压机机旁控制箱由PLC控制,PLC一方面通过I O模块接受来自机旁控制箱的控制指令,经逻辑运算后给出控制命令给三维虚拟场景中的控制设备;一方面采集来自系统数学模型运算出的监控参数,参考控制或输出到控制箱上显示,系统运行效果如图2。
2.1船舶压缩空气系统三维实体建模
本船舶压缩空气系统三维实体是以某轮真实压缩空气系统作为母型系统建立的,以活塞式空压机作为母型机,采用 3ds Max 2012三维建模软件创建,建模流程如图 3,主要建模对象包括空压机组、主空气瓶、气液分离器、空气冷却器、压力开关、控制阀门、减压阀组、管系等,图 4 是3ds Max中建立的未经材质、贴图和烘焙处理的船舶压缩空气系统三维模型。
图2 船舶压缩空气操作训练系统效果图
图3 系统三维实体建模流程
图4 船舶压缩空气系统三维模型
2.2船舶压缩空气系统数学建模
三维实体模型是船舶压缩空气系统是人机交互的窗口,对系统中各设备的内部物理过程的描述必须通过数学建模实现。本文建立了船舶压缩空气系统中主要设备简化的数学模型,这些模型主要包括:1)空压机组排气温度、排气流量数学模型;2)主空气瓶内空气压力、凝结水量、空气质量和温度数学模型;3)空气冷却器热交换数学模型。
以空压机组排气温度为例说明设备数学模型的建立过程,该活塞式空压机是双缸二级式空压机,假设当空气进入空压机第一级气缸的温度为T0(K),进机时的压力为P0(MPa),第一级气缸内的压缩空气的多变指数为 m1,第二级为 m2,那么在第一级气缸中,空气压力的压缩比为:
式(1)中,P1—经第一级气缸压缩后的排气压力
压缩空气在第一级气缸出口处的温度为:
第二级气缸的压缩比为:
式(3)中,P2—空压机经过二级气缸后的排气压力(MPa)。
压缩空气在第二级气缸出口处的温度为:
3.1控制系统硬件设计
由于控制对象是虚拟的三维实体,不需要采集来自真实的传感器信号,故PLC控制系统只须接收和控制来自船舶压缩空气系统机旁控制箱上开关、按钮、指示灯和仪表等元器件的信号。经统计,船舶压缩空气系统机旁控制箱IO点数为:2路模拟量输出,22路开关量输入和14路开关量输出,共计38点,属于小型PLC控制系统。在PLC选型上选用国产Haiwell S系列PLC,具体硬件配置为:S32S2T型CPU模块1块、H08XD T型开关量模块1块和S04AO型模拟量输出模块1块。S32S2T型CPU模块带有16路开关量输入和16路晶体管输出,通讯口配备1个RS232口和1个RS485口,H08XDT型开关量模块带有4路开关量输入和4路晶体管输出;S04AO型模拟量输出模块带有4路模拟量输出,支持标准电流电压信号。配备的PLC控制系统总共可带52点,留有约27%的裕量点作为备用,硬件配置完后就可对控制箱上的元器件IO地址进行分配。
3.2控制功能设计与实现
空压机组的控制功能通过Haiwell PLC编程软件HaiwellHappy梯形图编程实现,具体实现的控制功能包括:
1)空压机组本地/遥控切换:在空压机组机旁控制箱上能实现本地/遥控切换,实现空压机组本地控制和集控室遥控控制功能。
2)空压机组自动起/停:为避免主副两台空压机组自动起停频繁,两台空压机组起停控制的压力开关自起动压力整定值有一定的差值,先起动的主空压机组压力开关自起动压力整定值为2. 2 MPa,后起动的副空压机组压力开关自起动压力整定值为2.0 MPa,自停止压力整定值都为3. 0 MPa。
3)空压机组手动起/停:在紧急情况下可进行人工手动起停控制。
4)自动卸荷:空压机组在起动和停止前都要打开卸荷阀卸荷,以减小空压机组的起动负荷和保护空压机组。
5)自动放残:空压机组运行时周期性控制气水分离器和主空气瓶泄放阀打开放残,空压机机组停止时控制气水分离器泄放阀打开,控制主空气瓶泄放阀关闭。
6)安全保护和故障报警:当空压机组出现排气温度过高、冷却水温度过高过高、滑油压力过低和曲轴箱油位低时应能自动停止空压机组工作并发出声音报警。
图5是主空压机组手/自动起停流程图,当有停机故障时必须待故障复位后才能再次起动空压机组。图6是实现起停控制过程的主要PLC梯形图程序代码,在程序设计时要事先对要与Unity3 D进行读写的数据进行规划,要读或写的内部继电器和寄存器应连续分配,以便后期Unity3D在读写这些数据时可采用读写多线圈或多寄存器号指令,减少读写次数,提高通讯速率。
4.1Unity3D工程资源整合
Unity3D是由Unity Techologies开发的一个让开发者轻松创建各种类型游戏和虚拟现实等互动内容的多平台综合型开发工具[4,5]。在 3dsMax中建好船舶压缩空气系统的三维虚拟场景以.FB X格式文件导出,将封装有三维虚拟场景的.FBX格式文件、封装有压缩空气系统数学模型的.DLL格式文件、音频文件等作为开发资源存放在Unit y3D工程的Assets文件夹中。在Unity3工程中,. FBX格式文件可导入到场景(Scenes),.DLL格式文件可被Unity3D自带的MonoDevelop脚本编辑器编写的脚本代码引用。Unity3D目前支持Ja vaScript、C#和Boo三种语言的脚本程序[5],本系统开发所用的脚本采用JavaScript和C#语言编写而成。
图5 空压机组手/自动控制流程图
4.2场景漫游功能的实现
Uniy3D中自带有角色控制资源包,将其导入到工程中,通过在场景中添加第一角色控制器组件就能实现船舶压缩空气系统三维场景自由漫游功能:操作键盘的WASD键控制角色前后左右行走,操作鼠标控制角色的行走方向。在添加第一角色控制器组件时系统自动生成的名为MouseLo ok.cs、CharacterMotor.js和 FPSInputController.js的三个脚本文件,自由漫游功能就是通过这三个脚本文件实现的,修改相关参数可改变漫游的方式和灵敏性。
4.3虚拟操作的实现
压缩空气系统有较多的阀需要手动操作其打开或关闭,如空压机组压缩空气出口阀、主空气瓶进口阀、主空气瓶间旁通阀等,其中大部分是截止止回阀,对这类阀的开关过程主要包括手轮的回转运行和轴向运动。在Unity3D中手轮回转运行是通过 transform.Rotate()方法实现的,手轮的轴向运行是通过 transform.Translate()方法实现的。阀的开关切换是通过单击鼠标实现的,开关切换代码放置在OnMouseDown()函数内部,表征阀开关状态的变量最终要传送到数学模型中参与逻辑运算的,需要跨文件引用,在Unity3D中对于这类需要跨文件引用的变量须声明为静态变量,否则编译通不过。
图6 空压机组起停控制梯形图程序
阀开操作功能实现的主要代码如下:
4.4音效仿真的实现
船舶压缩空气系统的场景漫游和虚拟操作功能都是视觉上的体验,为了增强沉浸感,操作者在操作时除需要视觉上体验外还需要听觉上的体验,如空压机组在启动、运行、停止和主空气瓶放残时都会发出不同的声音,实际工作中设备运行声音也是操作管理都判断设备是否正常运行的重要依据。在Unity3D实现音效仿真是通过Audi oClip组件和AudioSource组件来实现的,Audio Clip组件用于保存空压机组启动、运行、停止及主空气瓶放残的音频文件,AudioSource组件用于控制音频文件的播放,其中空压机组在启动和停止音频播放方式为播放一次,空压机组运行和主空气放残音频播放方式为循环播放。
4.5PLC与Unity3D数据通讯的实现
实物的控制系统要实现对虚拟的控制对象的控制需要解决控制系统与控制对象之间数据交互问题,即要解决PLC控制器与Unity3D之间数据通讯问题。之前笔者一直想通过OPC数据通讯实现:PLC作为OPC服务器,Unity3D作为OPC客户端。经几番测试发现Unity3D开发环境是基于.NET 2.0架构的,而实现OPC通讯的所需的O pcDaNet.dll是基于.NET 2.0以上架构的,故Uni ty3D中不完全支持OpcDaNet.dll库方法的调用,最终放弃OPC数据通讯而采用Modbus数据通讯实现。
在硬件接口方面,Hailwell PLC具有1个R S232口和1个RS485口,运行Unity3D应用程序的一体机只有USB口,本设计采用PLC的RS 232口通讯,经一根RS232转USB转接线与一体机相接。数据传送方式采用Modbus RTU方式,Unity3D作为Modbus主站,Haiwell PLC作为从站,这样Unity3D一方面要发送系统数学模型得到的虚拟传感器数据(包括数字量和模拟量)给PLC控制系统,另一方面要PLC控制系统的控制信号(全部为数字量),因此要用到的Modbus功能码有01(读线圈)、15(写多个线圈)和16(写多个寄存器)。Modbus数据通讯的主体脚本代码主要包括设置串口通讯参数、启用串口通讯线程、打开串口、发送生成的Modbus RTU格式的数据、接收回传信息、提取回传信息中的数据(读时需要)等。串口通讯参数包括串口名、波特率、奇偶校验、数据位和停止位等;生成Modbus RTU格式的数据包括设备地址、功能码、要写或读的数据信息、CRC校验码等。
本文采用 PLC控制技术和虚拟实现技术实现了船舶压缩空气系统的操作训练,引入了Unit y3D游戏引擎开发船舶压缩空气系统的三维场景的漫游和操作功能,让操作者能够像玩游戏一样通过控制箱、鼠标、键盘和触摸屏来操控虚拟的船舶压缩空气系统,同时听到环境音效,达到训练的目的。这种操作训练方式更接近于真实船舶压缩空气系统的操作,且具有真实系统无法比拟的优势。这种架构的操作训练系统易于扩展,且支持二次开发,主要体现在:1)增设故障模型,进行故障模拟;2)增加评估模块,对操作结果进行评定;3)利用Unity3D开发纯虚拟操作训练系统,可发布到IOS、Android、Web和Flash平台,通过手机或互联网进行训练。
[1] 徐野. 船舶辅锅炉仿真系统的数学建模与软件设计[D]. 大连: 大连海事大学,2013.
[2] 丁立勋. 船舶辅锅炉装置模拟操作系统[D]. 大连:大连海事大学,2009.
[3] 王旭. 船舶压缩空气系统动态建模与仿真[D]. 大连:大连海事大学,2013.
[4] 张可超. 船舶压缩空气系统虚拟现实的设计与研究[D]. 大连: 大连海事大学,2014.
[5] 张帆. Unity3D游戏开发基础[M]. 杭州: 浙江工商大学出版社,2013.
Design of Marine Compressed Air Operation Training System with Virtual and Physical Combination
Zou Wenjun,Lin Honggui,Sun Meina
(Marine Engineering Institute,Jimei University,Xiamen 361021,Fujian,China)
Marine power plant operation training system in shipping colleges has the disadvantages of large area,the high cost and the lack of real ship environment. Aimed at this problem,and taking marine compressed air system as an example,a combination of virtual and physical marine power plant operation training system is designed. The scene roaming and virtual operation function of the marine compressed air system is realized by Unity3D,the control task of the air compressor is completed by PLC control technology,and the problem of data communication between PLC Controllers and Unity3D is solved. Finally,the paper achieves the purpose of controlling the virtual air compressor through the physical control box.
auxiliary boiler; combination of virtual and physical; PLC; unity3D
U664.5
A
1003-4862(2015)12-0006-05
2015-09-11
福建省自然科学基金项目(2014J01203)
邹文俊(1985-),男,硕士学位,助理实验师。研究方向:虚拟仿真、船舶自动化、机电一体化。