基于Creator和Vega的分油机虚拟操作的实现

2015-11-29 02:59逄守文山东交通学院海运学院山东威海264200
中国航海 2015年3期
关键词:油机控制阀电流表

逄守文(山东交通学院 海运学院, 山东 威海 264200)

基于Creator和Vega的分油机虚拟操作的实现

逄守文
(山东交通学院 海运学院, 山东 威海 264200)

针对实际分油机操作过程中出现的燃油和电力过度消耗问题及其对分油机使用寿命的影响,利用三维仿真软件Creator建模和采用Vega驱动的方法,建立分油机虚拟操作系统。在建模设计中,为提高仿真系统的实时性和逼真性,采用细节层次模型(Level Of Detail,LOD)技术、自由度(Degree Of Freedom,DOF)技术、Switch节点技术及仪表和声音电模技术等高级建模技术。采用MATLAB数据拟合技术得到电流数学模型,真实地模拟分油机工作电流。通过MFC(Microsoft Foundation Classes)和Vega实现虚拟场景的驱动,给出驱动框架流程。虚拟操作试验结果表明:分油机虚拟操作系统模型逼真、系统运行快、交互操作反应灵敏,能模拟真实的分油机操作过程,起到辅助教学培训的作用。

船舶工程;分油机;虚拟;交互;驱动

船用分油机是用来净化燃油和滑油,除去其中的机械杂质和水分,保证船舶主机、副机等设备正常工作,从而保证船舶安全航行的设备。对于轮机员而言,正确操作和管理分油机是必备技能,在日常教学中应加强对轮机员实际操作分油机的训练。

分油机操作训练一般采用理论讲解与实机操作相结合的方式,但是实机操作不仅会过度浪费燃油和电能,而且频繁进行启、停操作会降低分油机的使用寿命。因此,开发分油机虚拟操作系统,实现分油机的软操作,显得尤为重要。

虚拟现实是利用计算机技术和仿真软件建立的逼真的虚拟环境,使用者可与之交互。当前国内外许多高校和厂家在对虚拟现实技术进行研究,并将其转化成了实用的技术。例如:英国TRANSAS开发了基于虚拟现实技术的轮机模拟器,但价格较昂贵;国内大连海事大学以C#作为开发工具建立了分油机的数学模型,通过PLC实现了分油机的自动控制,采用SolidWorks建立了分油机模型,应用DirectX3D技术实现了分油机的部件信息和零件拆装工作,但是作为仿真行业标准的工具软件,Creator和Vega并未在其中得到广泛应用。

对此,以山东交通学院动力实验室的手动控制全部排渣式分油机为原型,应用虚拟仿真软件Creator和Vega开发分油机虚拟操作系统。系统模型与实物保持一致,并实现整个分油机操作过程的模拟。将该系统应用于轮机专业学生教学培训中,训练学生掌握分油机的操作流程。

1 开发工具介绍

1.1MultigenCreator[1]

Multigen Creator是美国Multigen-Paradigm公司开发的一个软件包,拥有针对实时应用优化的OpenFlight数据格式,强大的多边形建模、矢量建模和大面积地形准确生成功能,具有多种选项和插件,能高效、最优化地生成实时三维数据库,并与实时仿真软件紧密结合,在视景仿真、城市仿真、模拟训练、交互式游戏及工程应用、科学可视化等实时仿真领域处于世界领先地位。

1.2MultigenVega[2]

Multigen Vega是美国Multigen-Paradigm公司的实时仿真软件编程环境,用于实时视觉模拟、虚拟现实和普通视觉应用。其将先进的模拟功能与易用的工具相结合,对于复杂的应用也能快速、高效地进行创建和驱动。图形化编程环境Lynx可扩展成各种功能类面板,使用户不用编程也能快速生成实时仿真环境。此外,Vega还包括了完整的C语言应用程序接口,可为软件开发人员提供最大限度的软件控制和灵活性。

1.3MFC

MFC(Microsoft Foundation Classes)是微软公司提供的一个类库,以C++类的形式封装了大部分Windows API,并包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类、很多Windows的内建控件和组件的封装类。

2 虚拟操作系统模型的建立

分油机虚拟操作系统模型包括分油机本体、电动机、控制箱、加热器、供油泵、沉淀油柜、日用油柜、高置水箱及管系等。这些模型可分为静态模型和动态模型两大类,其中:静态模型是指在分油机操作过程中状态不发生变化的模型,只呈现物体外观形状;动态模型是指在分油机操作过程中可动态显示或交互操作的节点模型,如控制箱上的电流表、运行指示灯、启停按钮和控制阀等。

2.1静态模型的建立

Multigen Creator提供了多边形和圆形等基本平面几何体的建模工具[3],并在变形工具箱中收集了10个几何体变形工具,可利用该工具箱完成复杂几何体的构建和平面几何体到3D模型的转化。为优化模型数据库,提高系统显示的实时性和逼真性,使用颜色、材质、纹理和细节层次模型(Level Of Detail,LOD)等技术对整个模型数据库进行优化,建成分油机外观静态模型。

2.2动态节点模型的建立

除了平面几何体建模工具以外,Multigen Creator还提供了自由度(Degree Of Freedom,DOF)技术、仪表建模技术、Switch节点技术和声音建模技术等高级建模技术。利用这些建模技术,可实现使用者与场景模型的交互,建立交互式虚拟系统。建成的控制箱和控制阀模型见图1。

图1 控制箱和控制阀模型

2.2.1控制阀模型的建立

手动控制排渣分油机的控制阀用来控制分油机的工作过程,具有空位、密封、补偿和开启等4个工作位置,每个位置90°,绕固定轴旋转一周。DOF技术可使模型对象具有活动的能力[4],DOF节点可控制其所有子节点按照设置的自由度范围进行移动或旋转运动,因此控制阀适合用DOF技术创建。创建步骤为

1) 建立控制阀模型。

2) 建立DOF节点,命名为“ctrl_valve”,DOF节点必须以组节点为父节点。

3)将控制阀节点放到DOF节点下,使其成为DOF子节点。

4)重新定位局部坐标系,使其定位到控制阀的旋转平面。

5)设置控制阀DOF的属性,使其绕z轴旋转,步长为90°(见图2)。

图2 控制阀DOF属性设置窗口

2.2.2运行指示灯、启停按钮模型的建立

Multigen Creator的OpenFlight 模型数据库提供的节点(Switch)是一种可以控制其子节点显示状态的特殊节点类型[5],包含一系列的节点掩码,每个掩码都可对应一种子节点的显示状态组合。因此,可使用Switch节点技术建立运行指示灯和启停按钮的模型。以运行指示灯为例,其在分油机启动后变亮,分油机停机后变暗,仅有2种状态显示。在Multigen Creator中建立Switch节点,命名为“lamp_r”,在该节点下建立“灯亮”和“不亮”2种状态子节点模型,分别放置在2个Object节点下,灯亮用绿色表示,灯不亮用暗色表示。双击Switch 节点,打开属性设置对话框(见图3),使节点在Mask lndex 1 状态下显示灯亮的状态,在Mask lndex 2状态下显示灯不亮的状态。启停按钮命名为“btn_start”和“btn_stop”。

图3 Switch节点属性设置对话框

2.2.3电流表模型的建立

Multigen Creator提供了仪表面板模块,使用该模块可完成盘式量表的创建。盘式量表的表盘尺寸、背景、刻度区域和数字标示等参数均可在盘式量表设置窗口中完成。电流表中的指针也绕固定轴旋转,因此也可使用DOF技术对电流表进行建模,命名为“e_pointer”,具体建立过程参照控制阀模型。但这样只是完成了电流表几何建模,要使电流表的读数能真实反映出分油过程中电流的变化情况,还应根据分油机厂家提供的启动电流和转速变化曲线(见图4)建立电流表的数学模型。[6]

图4 分油机启动电流和转速变化曲线

由图4可知:在分油机启动瞬间,电流表读数达到最大;在分油机加速过程中,电流表读数有一次大的波动;当分油机达到额定转速时,电流表读数会稳定在最小值;在分离过程中,电流表读数基本不变;在排渣时,电流表读数又会出现波动。

为得到分油机加速过程中启动电流随启动时间的变化曲线函数方程,可用MATLAB进行数据拟合,以启动时间的百分比为横坐标、启动电流的百分比为纵坐标把图中的数据量化;若用五次方程拟合,则取点时一定要大于5个点。这里取10个点,取点数据见表1。

表1 分油机启动电流量化数据取点表

使用MATLAB的Polyfit命令可得到拟合多项式

y=0.000 1x5-0.001x4+0.008 6x3+0.252 3x2+

2.326 3x+154.558 8

(1)

拟合得到的启动电流图形见图5。

2.2.4虚拟声音建模

为增强仿真效果,提高虚拟操作的真实性,Multigen Creator提供了声音建模技术,即向模型数据库中添加可驱动音频的声音节点。Multigen Creator的每个模型库都有声音调板,要添加到模型上的音频文件必须先加载到声音调板中。Multigen Creator支

图5 启动电流拟合曲线

持的音频文件型包括:wav格式的波形文件和mid格式、rmi格式的MIDI文件。音频文件在动力实验室分油机操作时现场采集得到,保存为wav文件,包括分油机加速声sep_acc.wav,分油机稳定运转声sep_sta.wav和分油机停机减速声sep_dec.wav。

指定父节点,点击声音节点创建按钮即可在当前节点下创建声音节点,分别命名为“sound_acc”“sound_sta”和“sound_dec”,声音调板中的音频文件即可自动赋予该声音节点。新建的声音节点位置默认在坐标原点,使用Position命令可将其定位到合适的位置。通过设置声音节点Priority的物理属性,可设置分油机3个声音节点的播放顺序。

3 虚拟操作系统的驱动

3.1基于MFC的Vega程序框架

要实现Vega对虚拟场景的驱动,应调用图形式界面环境Lynx,在不编写代码的前提下便捷地改变应用程序的性能,如显示通道、多CPU分配、视点、观察者、系统配置、模型和数据库等,生成ADF文件,然后由Vega调用ADF文件实现虚拟交互操作。

Vega有基于Win32的控制台程序、基于Windows的应用程序和基于MFC的应用程序等3种开发环境。[7]与另外2种应用程序相比,基于MFC的应用程序在应用程序窗口管理、网络数据传输和减少编程的工作量方面更具优势,因此选择基于MFC的应用程序。通过vgInitWinSys()函数初始化系统,创建共享内存区;通过vgDefineSys()函数需要的事件和类定义系统;最后调用vgConfigSys()函数完成系统配置。Vega循环还需调用vgSyncFrame()函数和vgFrame ()函数刷新帧循环。

MFC提供了强大的AppWizard进行程序设计,先新建zsVegaView类,为其添加成员函数runVega(),开启Vega渲染线程和一些基本配置,主要代码为:

void zsVegaView::runVega( void )

{ vegaThread =

afxBeginThread( runVegaApp, this );

window = vgGetWin( 0 );

channel = vgGetChan( 0 );

observer = vgGetObserv( 0 );

scene = vgGetScene( 0 );

vgProp(window, VGWIN_WINBORDER, 0 );

}

在runVegaApp()中完成配置三部曲和帧循环。

3.2分油机控制箱和控制阀驱动的实现

要实现对控制箱上电流表、运行指示灯、启动按钮、停止按钮和控制阀的驱动,首先应该在Vega程序中定义相应类型的变量[8],主要代码为:

vgPart *elec_pointer;

pfSwitch *lamp_run;

pfSwitch *button_start;

pfSwitch *button_stop;

vgPart *control_valve;

然后对变量初始化,在程序进入主循环之前进行,主要代码为:

elec_pointer = vgFindPart(obj,”e_pointer”,NULL);

lamp_run = findSwitchInObject(obj,”lamp_r”);

button_start = findSwitchInObject(obj,”btn_start”);

button_stop = findSwitchInObject(obj,”btn_stop”);

control_valve = vgFindPart(obj,”ctrl_valve”,NULL);

最后添加鼠标左键响应函数OnLButtonDown,判断按钮或控制阀的状态,完成电流表模型的计算,获取电流表指针的数据,根据计算结果在while主循环中实现动作。[9-10]

程序执行流程见图6。

图6 程序执行流程图

4 虚拟操作试验验证

分油机启动前的工作全部完成之后,点击“启动”按钮,运行灯变亮,电流表指针指向最高,此时播放分油机加速的声音文件,说明分油机已按预期启动,电流表的读数逐渐下降反映出分油机的转速正在逐渐升高。当电流表读数降至最低点时,分油机达到了额定转速,此时播放分油机稳定运转的声音文件,进行正常的分油作业。当分油结束时,点击“停止”按钮,此时电流表读数变为零,播放分油机停机的声音文件,直至结束。试验结果表明:虚拟分油机操作系统可模拟实际分油机的工作过程,达到了预期的效果。

5 结束语

将虚拟现实技术应用于轮机工程专业教学培训中,应用虚拟仿真建模软件Creator和视景驱动软件Vega开发了分油机虚拟操作系统。系统模型采用Openflight模型数据库优化数据格式,画面逼真、立体感强、反应灵敏,且具有良好的听觉体验和沉浸感,与利用3DMAX软件开发的虚拟现实系统相比交互性更强。轮机学员可通过该系统全面了解分油机的系统结构和操作管理要点,通过虚拟系统操作训练减少分油机实机的操作次数,提高分油机实操过程的经济性,延长设备使用寿命。目前该系统已用于本科在校生的评估训练操作中,取得了较好的效果,提高了教学培训的质量,同时也能满足《STCW公约马尼拉修正案》对航海电化教育的要求。

[1] 王乘,周均清,李利军.Creator可视化仿真建模技术[M].武汉:华中科技大学出版社,2005:9-10.

[2] 王乘,李利军,周均清,等.Vega实时三维视景仿真技术[M].武汉:华中科技大学出版社,2005:1-2.

[3] 仇小鹏,杨平利,蒋阳.仿真建模利器-MultiGen Creator[J].计算机仿真,2007,24(5):279-282.

[4] 王延红,杨平利,仇小鹏,等.仿真建模软件Creator的应用技术[J].计算机仿真,2005,22(7):179-181.

[5] 黄会营,段晓明.船舶运动视景仿真系统设计与实现[J].计算机仿真,2012,29(1):369-373.

[6] 李世臣,甘辉兵,邹奔腾,等.船用分油机仿真系统的设计与实现[J].中国航海,2009,32(1):43-48.

[7] 李军,王绍棣,常建刚,等.基于Vega的视景驱动软件的分析与设计[J].系统仿真学报,2003,15(3):397-411.

[8] 莫卫国,胡飞.基于Vega的视景仿真系统中的人机交互技术[J].计算机仿真,2007,24(10):177-187.

[9] 彭国均, 翁跃宗. 三维仿真技术在航标管理中的应用研究[J].中国航海,2007,73(4):17-23.

[10] 童小念, 罗铁祥, 蓝庆青. 在视景仿真系统中定制人机交互功能[J].深圳大学学报理工版,2008,25(1):88-91.

RealizationofVirtualOilSeparatorOperationwithCreatorandVega

PANGShouwen
(Marine College, Shandong Jiaotong University, Weihai 264200, China)

With the aim for avoiding actual separation operation of oil separator for training, which consumes fuel and power and shorten service life of equipment, a virtual oil separator system is built, by means of the Creator modeling and the Vega driving. In order to improve the reality of the system, the technologies of Level Of Detail(LOD), Degree Of Freedom(DOF), Switch, instruments and sounds are used to build system models. To simulate working flow, the MATLAB data fitting technique is used. Tests prove that the virtual oil separator system can simulate the actual operation process and suitable for teaching and training.

ship engineering; oil separator; virtual; interaction; driving

2015-05-19

山东交通学院校科研基金(Z201101)

逄守文(1980—), 男, 山东威海人, 讲师, 硕士, 从事轮机工程管理研究。E-mail: shwpang@126.com

1000-4653(2015)03-0029-04

TP391.9

A

猜你喜欢
油机控制阀电流表
测电阻试触法的一个疑难解释
分油机自动控制优化设计分析*
锂电池正极材料气流输送控制系统的研发
120型控制阀错装的危害及建议研究
大数据中心高压油机供电模式探讨
移动油机发电物联网应用系统研究
电流表使用“四步走”
基于CRUISE软件1.6L油机匹配某轻卡动力总成分析
例析电流表的正确使用
电流测量“三部曲”