应用VRML技术的脉冲爆震发动机虚拟实验系统开发

2011-07-31 05:33郑海飞
图学学报 2011年4期
关键词:爆震按键虚拟现实

郑海飞, 唐 豪



应用VRML技术的脉冲爆震发动机虚拟实验系统开发

郑海飞, 唐 豪

(南京航空航天大学,江苏南京 210016)

在脉冲爆震发动机的教学科研中,迫切需要开发一个演示系统结构与运行过程的虚拟实验室系统。以VRML虚拟现实技术为平台和UG三维实体建模为单元,构建了具有交互功能的脉冲爆震发动机虚拟动态实验系统,实现了脉冲爆震发动机的虚拟拆卸与装配以及脉冲爆震发动机系统的虚拟运行。该虚拟实验系统避免了实际试验过程的危险性和涉密性等问题,具备远程教学科研的演示功能。

计算机应用;虚拟实验系统;虚拟现实建模语言;脉冲爆震发动机;动态交互技术

大量研究表明,脉冲爆震发动机——Pulse Detonation Engine,PDE(下文均称PDE)是本世纪非常有发展前途的一种动力装置,在航空航天领域内有着广阔的应用前景。然而,在PDE的研究、设计、评价、审查过程中,对于各种PDE在实验室的试验过程、方法等需要作相关的介绍,但可能因为试验正在进行、研究内容涉密、课堂教学是否便利及运行所带来的高噪声高污染等等原因,而无法进行实地参观,这就迫切需要运用计算机仿真与辅助设计来达到直观的电脑动画演示介绍的目的,因此建立基于VRML交互式技术的虚拟动态PDE是解决这种需求的关键途径与技术。

虚拟现实一直是计算机图形学领域中关注的焦点课题,而实现虚拟动态交互是用户融入虚拟环境的基本要求之一。虚拟动态交互是指用户的行为能够实时作用于虚拟环境。目前实现虚拟动态交互的首选方法主要有两种:一用典型的程序语言(如OPENGL等)设计实现;二用虚拟现实三维立体网络程序语言VRML设计实现。

VRML是Virtual Reality Modeling Language 即虚拟现实构造语言的缩写。VRML可以创建虚拟的加工机械、动力装置等,甚至还可以创建出具有和浏览者的交互性更接近于现实世界的虚拟空间。

本文基于UG的三维实体设计与VRML语言相结合的技术手段,进行PDE的虚拟动态交互式技术研究,以达到对PDE的结构、零部件及工作过程的虚拟动态交互式技术的研究目的。

1 脉冲爆震发动机的结构及工作原理[3]

1.1 脉冲爆震发动机的结构

吸气式PDE主要由以下部件组成:进气道、燃料及氧化剂供给系统、预混段、起爆器、爆震室、尾喷管等。由进气道输送来的来流与来自燃料供给系统的燃料在混合段混合,再进入爆震室,经点火起爆产生爆震波,燃烧产物通过喷管排出产生推力。

1.2 脉冲爆震发动机的工作原理

图1为PDE的基本工作过程,它由以下几个过程组成:

(1)扫气过程

当上一个循环完成后,燃烧室内仍残存部分燃气,如果直接冲入可燃混气,有可能被这部分燃气点燃,这就无法实施爆震燃烧过程,所以在冲入新鲜空气前必须进行扫气,即冲入新空气将爆震管中残存的燃气排出。

(2)可燃混合物填充过程

对于气体燃料,燃料与空气的混合是进气过程的关键,而对于液体燃料来说,燃料迅速物化、蒸发、掺混是产生爆震燃烧的关键。

(3)爆震波的触发

当新鲜混气充满爆震管时,进气阀关闭,同时点火器点火以触发爆震波。

(4)爆震波的起爆、形成及其传播过程

被点着的可燃混合气体开始以爆燃形式燃烧,待从封闭端反射回来的一系列压缩波赶上向管口端传播的压缩波后,经不断地加强从而形成稳定的C-J爆震波。

(5)膨胀与排气过程

当爆震波传出爆震管时,管口处产生了一系列的反射膨胀波,反射膨胀波向管内传播,同时燃气被排除管外。当全部膨胀波传播得到推力壁上后,排气过程结束,至此PDE完成了一个完整的工作周期。

图1 PDE的工作原理图

本文的虚拟动态交互式技术研究是以小尺寸气动阀PDE为研究对象,其结构图如图2所示。

图2 PDE的结构图

根据PDE的结构和工作原理,对PDE的结构、零部件和工作过程进行虚拟动态交互式技术研究。其中,PDE运行情况的模拟较为复杂,是本文研究的重点和难点。

2 脉冲爆震发动机的虚拟动态交互式技术研究

2.1 研究总体框架

2.1.1 UG特点

Unigraphics NX软件(UG)是集CAD/CAE/ CAM于一体的三维参数化设计软件。UG可将三维实体模型导出格式为.WRL的VRML文件,进而在VRML2.0编辑器中对模型进行交互式虚拟动态研究。

2.1.2 VRML特点

VRML技术在虚拟现实的实现上具有以下一些特点:

(1)整个浏览过程由用户控制,而不是由计算机来控制;

(2)VRML提供的技术能够把三维、二维、文本和多媒体集成为统一的整体;

(3)VRML支持脚本语言,可以产生一种全新的交互式应用;

(4)VRML支持外部编程接口(EAI);

(5)VRML使用的是实时3D着色引擎。

2.1.3 总体框架

基于以上两款软件的特点,本文研究的具体流程及框图(图3)如下所示:

图3 虚拟PDE的交互式技术研究流程图

(1)根据PDE的实际几何尺寸,在UG中建立三维模型。

(2)将在UG中创建的PDE三维模型导出.WRL文件,并在VRML编辑器中得到VRML三维实体代码,并分析代码。

(3)根据生成的PDE三维实体代码进行VRML交互式编程。即包括各运动节点的设计、三大功能模块(零件的拆卸、零件的装配、PDE的运行)控制器的设计、控制器脚本(Scrpit节点)的设计。

(4)进行虚拟PDE的交互式操控。

2.2 研究技术方法

2.2.1 UG三维实体建模

以UG为平台创建三维实体。

(1)首先通过建模、创建平面、拉伸、求和、求差等操作,建立起PDE各个零部件的零件图。

(2)然后通过装配功能把已创建的零件图组装成装配图。

通过UG建模得到PDE三维实体模型,比在VRML编辑器内创建三维模型要更方便,生成的三维模型效果更好。

2.2.2 虚拟现实语言建模

首先在虚拟试验室中设计三个控制按钮,即DISASSEMBLE、ASSEMBLE、RUN,以实现虚拟PDE的三个交互式功能。三个控制按钮设计好之后,运用Script脚本语言对各个零件的运动情况进行设计:设计其运动的先后顺序,时间长度等等。图4即为虚拟现实语言建模的总体框架。

图4 虚拟现实语言建模的总体框架图

3 交互式虚拟PDE关键技术研究

3.1 模块控制按键的虚拟现实语言建模研究

3.1.1 控制按键实体的虚拟现实语言建模研究

控制按键的设计是进行交互式操作的关键。图5中的三个深色按键即为虚拟实验室中的PDE控制按键。

图5 虚拟实验室中PDE的控制按键图

以DISASSEMBLE(拆卸功能模块)的控制按键为例。

首先,要创建按键的实体。本文应用Text节点,此节点用于在虚拟世界中创建文本。在Text节点定义中包含frontStyle域和string域。frontStyle域存放一个FrontStyle节点,用来控制文本的形式和放置方式。string域保存被渲染的文本字符串。string域是一个MFString域,这意味着它可以有多个字符串,每一个串在自己所在的行里进行渲染。每两行之间的间距缺省设置为字符的高度,它可以用FrontStyle节点来改变。

DISASSEMBLE模块控制按键的功能可描述为:当鼠标点击按键时,PDE的各个零部件便开始按拆卸路径进行运动,而且伴随着拆卸时环境音乐的播放。因此,此按键传出的了两个命令——零件开始按既定路径运动的命令和环境音乐播放命令。这就需要用到Group节点,在Group节点内创建鼠标点击的TouchSensor节点()、按键的文本节点、环境声音节点Sound。控制按键的具体程序如下所示:

Group{

children [

DEF touch1 TouchSensor {}

DEF MySwitch1 Switch {

whichChoice 0

choice [

DEF Body__1 Transform {……

children [ ……

geometry Text

{ string [ " DESTRUCTION "]

fontStyle FontStyle {size 40

spacing 5

}

}

DEF Body__11 Transform {……

children [ ……

geometry Box {size 270 40 1}

]

}

]

}

]

}

Sound {…… }

]

ROUTE touch1.touchTime TO bad.startTime

}

3.1.2 控制按键脚本的虚拟现实语言建模研究

为了实现控制按键的控制功能,本文采用scritp脚本语言进行操控。在控制按键的实体建模程序块中,运用Switch节点,其定义为:

Switch{

exposedField MFNode choice []

exposedField SFInt32 whichChoice -1

}

whichChoice的缺省值为 -1。这个值指示不应当选择任何子节点。在一个场景中隐藏或显示一个对象的简单方法是让Swich具有单个choice,然后将whichChoice改为-1隐藏对象,改为0则显示对象。如果choice域中多个子节点,便按递增顺序选择它们,并用0作为whichChoice的开始值。使用Swich节点是用于Scritp脚本中事件的输出与输入,并选择对象。DISASSEMBLE按键的Scritp脚本程序如下所示:

DEF A_Script Script

{ eventIn SFBool Process1

field SFNode node_V1 USE MySwitch1

field SFNode node_touch1 USE touch1

field SFNode node_touch2 USE touch2

url "vrmlscript:

function Process(value)

{ if(value==false)

{ if(node_V1.whichChoise==0)

{node_touch1.enabled=true;

node_touch2.enabled=false;

}

}

} "

}

当鼠标点击DISASSEMBLE按键时,node_V1.whichChoise==0,TouchSensor节点的touch1.enabled值为true,进而输出开始时间给TS1.startTime,拆卸功能便可实现。

3.2 零部件拆卸模块的虚拟现实语言建模研究

通过对UG导出的VRML程序代码的阅读及分析,掌握各个零件的编码是设计零部件拆卸路径的关键。

在设计路径前,必须要设计一个TimeSensor节点,相当于一个时间阀,当事件传送过来时就开启时间阀startTime。其程序代码为:

DEF TS1 TimeSensor

{ cycleInterval 200

stopTime 1

loop FALSE

}

其中规定了时间长度以及非循环性。之后,便开始定义路径,本文用的是PositionInterpolator插值器节点。PositionInterpolator插值器节点中的key称为关键码,存放每个时间点。key Value称为关键值,用于存放空间点。以爆震管为例,它的路径代码为:

DEF P28 PositionInterpolator

{ key [0 ,0.76,0.765,1]

keyValue [

1402.516418 250.032287 129.155578,

1402.516418 250.032287 129.155578,

1620.516418 250.032287 129.155578,

1620.516418 250.032287 129.155578 ]

}

接下来就要对路径事件的输入与输出进行编程,其代码为(以爆震管为例):

ROUTE touch1.isActive TO

A_Script.Process1

ROUTE touch1.touchTime TO

TS1.startTime

ROUTE TS1.fraction_changed TO

P28.set_fraction

ROUTE P28.value_changed TO

Body__29956.set_translation

当鼠标点击DESTRUCTION(拆卸功能模块)按键时,touch1.isActive输出其值false,传递给A_Script.Process1,A_Script脚本中的touch1值true传递给时间阀,便开始启动PositionInterpolator插值器节点中的路径变化,进而使得爆管按照既定路线运动。由此,可以设计出其他零部件的运动路径。图6为拆卸过程中的爆震管。

图6 爆震管的拆卸过程模拟图

注:1——爆震管;2——绕流器;3——法兰;4——点火段;5——进气道。

3.3 零部件装配模块的虚拟现实语言建模研究

在上一节的基础上,设计零部件装配模块时就十分的方便了。在这里仍然以爆震管为例,再其装配路径中仍然运用到了PositionInterpolator插值器节点。

另外,应该再设计一个与该功能对应的TimeSensor节点,之后便是对路径事件的输入与输出进行编程。需要提出的是,应该另外设计一个关于ASSEMBLAGE(装配功能模块)的script脚本节点。其具体的原理与拆卸模块中的相似,这里就不再赘述。

3.4 脉冲爆震发动机运行模块的虚拟现实语言建模研究

PDE的虚拟运行模块是较为复杂的模块,因为要设计出流体的效果,如火焰以及混气点火后经绕流片形成的爆震波等。本文采用的方法是利用实体建模,生成火焰、爆震波的三维模型,然后赋予其实际特征纹理。这一模块是本文的重点难点,更是本文的创新点。

为了在PDE运行时火焰能够显现出来,所以要在这一模块继续使用Swich节点。在choice内创造火焰等其他实体,它们的whichChoice代码从1开始(0是按键的代码)。因此,与此功能相应的script脚本也有所不同。其程序代码为:

DEF C_Script Script {

eventIn SFTime switchTime

eventOut SFInt32 whichChoice

url "vrmlscript:

function switchTime()

{ if(whichChoice= =0)

whichChoice=1;

else whichChoice=0; } "

}

当鼠标点击RUN(运行模块)时,whichChoice= =0,这时便让whichChoice=1,然后,火焰、爆震波等实体便开始显现出来。图7为其效果图。

图7 虚拟PDE的运行工况模拟图

注:1——进气道输入空气与燃料;2——点火器中引燃混合气体;3——爆震波;4——火焰喷射。

从图7中可以看到,火焰在随时间变化,因为这里采用了CoordinateInterpolator节点,其与PositionInterpolator节点类似,设计好要变换的模型中的定义点之后,进行事件输入输出即得到火焰随时间变化。

另外,本文应用ScalarInterpolator 节点,可使爆震管的透明度随时间而变化,这样PDE运行时便能看见爆震管内部情况。其节点定义与CoordinateInterpolator等节点类似。运用ScalarInterpolator节点使实体透明度变化,需要在实体的材料定义处做如下处理:

appearance Appearance {

materialMaterial {……}

}

下划线处是爆震管的编号。接下来,进行事件的输入输出编程。其代码为:

ROUTE touch3.touchTime TO TS3.startTime

ROUTE TS3.fraction_changed TO inter1.set_fraction

ROUTE inter1.value_changed TO baoguan1.set_transparency ……

通过以上研究与设计,虚拟PDE的运行功能便可实现。运用虚拟动态交互式技术很好的模拟出了实际PDE的装配过程以及工作运行过程。

4 总结与展望

(1)通过建模编程研究,得到了完整的虚拟PDE,并阐述了PDE虚拟动态交互式操控各个环节的关键技术,实现了三大功能——零部件的拆卸(DISASSEMBLE)、零部件的装配(ASSEMBLE)、PDE的运行(RUN),从而解决了上文提出的工程难题。

(2)通过建模仿真研究,体现出VRML技术在虚拟实验室设计方面有着强大的优势。利用VRML技术实现PDE的虚拟动态交互式操控是可行的,可以很好的模拟出实验中的PDE。对PDE的虚拟动态仿真有着很高的参考价值与广泛的应用前景。

(3)本文所设计的虚拟PDE实现了在虚拟实验室中的交互式操控,在以后的发展与应用过程中,可将VRML交互式技术与其他数值模拟仿真技术相结合,以建立一个更加接近实际情况的虚拟实验室。

[1] 吴 兰, 罗如为, 陈孝威. 基于VRML与3DSMAX的虚拟动态交互技术研究[J]. 计算机仿真, 2007, 24(1): 213.

[2] 阳化冰, 刘忠丽, 刘忠轩, 等. 虚拟现实构造语言VRML[M]. 北京: 北京航空航天大学出版社, 2000. 1-2.

[3] 严传俊, 范 伟, 等. 脉冲爆震发动机原理及关键技术[M]. 西北工业大学出版社, 2004. 56, 78-79.

[4] 冯 伟. 用UG构建《机械设计基础》课程用三维模型库的研究[J]. 内江科技, 2009, (4): 175.

[5]MENG X X, LIU W W, XU Y N. Real-time collaborative design system for product assembly over the internet [J]. Information Technology for Balanced Manufacturing Systems, 2006, 220: 253-260.

Development of a Virtual Lab System for Pulse Detonation Engine by VRML Technology

ZHENG Hai-fei, TANG Hao

( Nanjing University of Aeronautics and Astronautics , Nanjing Jiangsu 210016, China )

The development of a virtual lab system for pulse detonation engine to demonstrate its structure and operation process is urgently needed in the teaching and scientific research. The interactive virtual dynamic experiment system is developed based on the VRML technology and 3D models designed by UG, to realize the virtual assembly and disassembly and virtual operation. This system solves the deficiencies of being risky and confidential in the actual test procedures and has the demonstration functions of remote education and scientific research.

computer application; virtual lab; VRML; pulse detonation engine; dynamic interactive technique

TP 391.9

A

1003-0158(2011)04-0057-06

2010-01-26

国家自然科学基金资助项目(NSFC50776045)

郑海飞(1986-),男,河南安阳人,硕士研究生,主要研究方向为燃烧与传热、VRML虚拟现实交互式技术。

猜你喜欢
爆震按键虚拟现实
基于有限状态机的按键检测程序设计
肺爆震伤治疗的研究进展
按键消抖在单片机和FPGA实验教学中的应用
REALITY BITES
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
一种多方向导光按键结构设计
紧密连接蛋白claudin 1、3、4与肺爆震伤致大鼠肺水肿的关系研究
3.0T磁敏感加权成像在兔颅脑爆震伤早期出血灶检测及预后评估中的应用
浅谈虚拟现实