基于虚拟现实的毒气泄漏扩散三维仿真方法研究

时间:2022-10-16 10:44:16

基于虚拟现实的毒气泄漏扩散三维仿真方法研究

摘 要 结合化工企业大型储罐区毒气泄漏,场景多,规模大,人机交互要求高等特点。利用虚拟现实技术中的MultiGen-Creator建模工具建立储罐区的三维模型,然后在VC++6.0平台的MFC框架下,利用Vega开发基于多视角有毒气体泄漏可视化仿真系统,并对有毒气体进行控制。三维仿真系统具有直观逼真的漫游交互界面,实现真实感图形动态显示,展现亲历事故的真实效果。

关键词 虚拟现实;毒气泄漏;Creater;Vega

中图分类号TP39 文献标识码A 文章编号 1674-6708(2013)100-0216-03

0引言

近年来, 计算机技术发展迅速, 尤其是高性能显卡的出现,虚拟现实仿真技术得到广泛应用。从当前的情况来看,开展有毒气体泄漏扩散的人员疏散应急演练往往需要投入大量的人力、物力、财力,而虚拟现实模拟仿真则是解决这些问题很好的手段和方法。利用虚拟现实技术进行有毒气体泄漏扩散三维仿真,模拟人员疏散应急演练是必然趋势。

1 建立厂区模型

虚拟现实技术整个实时漫游系统的基础是建立虚拟场景模型,而虚拟场景模拟的基础是建立实体模型。实体模型的好坏直接决定模拟运行的效果和场景的逼真度。因此对于规模大场景复杂的化工企业储罐区来说,建立良好的模型是非常重要的[1]。

1.1 地形的建立

使用Creator打开Vega软件的实例地形town.flt。选定道路之间平坦的地形,利用Creator的纹理控件选择水泥纹理,使用按钮将水泥纹理铺设到平坦地势上,得到厂区的基本地形。

1.2 楼房的建立

使用Face控件中的建立楼体的地基,然后使用Geometry中的Wall控件建立主楼的墙体,最后使用Geometry中的Roof控件建立主楼的屋顶。这样楼房的形状就建立好了。建立模型之后的工作就是给模型赋予材质和贴图。在虚拟现实中,材质是用于模型表面的反射特性,区别于现实生活中反射光线的特性,通过贴图使模型增加质感,使模型的造型 得到完善,使虚拟三维场景更加逼真。使用Texture控件为楼房添加纹理。

1.3 厂房的建立

厂房建立方法同楼房的建立,最后把制作好的纹理贴到框架上就可以得到想要的厂房。

1.4 罐体及管道的建立

首先利用Face控件中的控件建立罐体的底座和罐身。然后使用Geometry中的控件建立罐体的法兰,分别利用Face中的控件和Modgeom中的控件建立管道拐弯处,利用Face控件中的控件建立管道。在模型建立之后使用Texture控件添加纹理。

为了使整个厂区看起来更加真实紧凑,还可以引入Creator和Vega软件的相关模型实例。例如供电设施、汽车、钢架、库房。

2 罐区实时场景漫游的实现

打开Vega软件,选择LvnX界面的左侧工具箱中设置按钮,在右侧窗口中设置相应的参数[2]。主要步骤如下:

1)点击Object(对象)按钮,点击新建按钮,然后点击file框中的按钮,选择插入模型的路径,然后在右边窗口中设定模型的相关参数,包括位置坐标,显示方式等。在加入建筑物等三维模型文件之前应首先加入虚拟场景;

2)点击Scene(场景)按钮,把要显示的全部目标导入虚拟场景中;

3)点击Observers(观察者)按钮、Channel(通道)按钮,选择观察的方式和通道的方式;

4)点击Motion Models(运动方式)按钮,选择在虚拟场景中如驱动、飞行、步行等观察者的运动方式;

5)选择环境特效(Environment Effects)按钮,设置虚拟场景的环境特效,这里设置了三种特效,包括时间、云、太阳。最终可以通过鼠标控制,在虚拟场景中实现漫游预览功能。

3 液氯泄漏事故三维仿真

3.1 氯气模型的建立

使用Vega的特效模块系统定义有毒气体模块,选择特效(Special Effects)按钮,点击新建按钮,命名为smoke。设定毒气的颜色、范围、位置。选择Scene(场景)按钮,点击FX attachment按钮,将smoke导入。

3.2 氯气扩散的数学模型及数据库的建立

1)泄漏尺寸的确定

根据《工业污染事故评价技术手册》中世界银行国际信贷公司(IFC)提供的有关压力容器的裂口尺寸确定方法,泄漏面积A=a×b,式中a为泄漏长度;b为泄漏宽度;其中泄漏长度a为其管径周长的20%。

2)确定泄漏速率

3)确定泄漏量W=Q0×t,其中Q0-泄漏速率;t-泄漏时间。

4)依靠自身能量扩散阶段

5)高斯扩散阶段

(6)通过使用Microsoft Office Access 建立控制气体扩散的坐标数据库表。

4实时场景交互功能的实现

4.1 交互功能的实现

1)新建一个类为CFireData基类为CRecordSet,引入ODBC的数据库Microsoft Access FireData.mdb。定义一个计时器,设置每一秒读取一次气体扩散范围的坐标来控制气体的扩散。利用以下循环语句来读取数据库数据。

while(!m_pFireData->IsEOF())

{

if (nRecordCount >= MAXSPARAM) break;

FireModel[nRecordCount].nXScale = (int)m_pFireData->m_XScale/10;

FireModel[nRecordCount].nYScale = (int)m_pFireData->m_YScale/10;

FireModel[nRecordCount].nZScale = (int)m_pFireData->m_ZScale/10;

m_pFireData->MoveNext();

nRecordCount++;

}

2)设置事故场景的初始化,把accident.adf文件放到VC++的工程目录中,通过以下语句使动画在AccidentHappend中显示。

static CVegaAdm MyAdm;

CWnd *pCtrlWnd = GetDlgItem(IDC_STATIC_ACCIDRNT);

CRect rect;

pCtrlWnd->GetClientRect(&rect);

MyAdm.Start(AfxGetInstanceHandle(),pCtrlWnd->GetSafeHwnd(),"accident.adf");

MyAdm.SetOSWndSize(rect.right, rect.bottom);

同理,将industry.adf画面导入到Accident View窗口。

3)为了更好地观测事故仿真效果,本系统采用Vega的多通道显示技术,实现多

通道显示效果,来观测气体扩散画面。部分代码如下:

obs=vgFindObserv("level"); // 找到在ADF 中定义的观察者

chan=vgFindChan("level"); // 找到在ADF 中定义的通道

vgAddObservChan(obs,chan); // 将观察者和通道绑定在一起

4)由于不能确定事故发生的风速,因此定义风速矢量函数,由于氯气泄漏时受重力影响,同时也定义了重力矢量函数,这样能更真实的模拟气体的扩散。部分函数代码如下:

void CAccidentHappenDlg::SetFireWindVelocityvector() //风速矢量函数

{

UpdateData(TRUE);

phFx_Fire = vgFindFx("smoke");

static float wvvec[4];

wvvec[0]=(float)m_edit_twvvec/ 10.0;

wvvec[1]=(float)m_edit_xwvvec/ 10.0;

wvvec[2]=(float)m_edit_ywvvec/ 10.0;

wvvec[3]=(float)m_edit_zwvvec/ 10.0;

vgAttrList ( phFx_Fire, VGFX_WVECTOR, wvvec, 1);

}

void CAccidentHappenDlg::SetFireGravityvector() //重力矢量函数

{

UpdateData(TRUE);

phFx_Fire = vgFindFx("smoke");

static float gvec[3];

gvec[0]=(float)m_edit_xgvec/ 10.0;

gvec[1]=(float)m_edit_ygvec/ 10.0;

gvec[2]=(float)m_edit_zgvec/ 10.0;

vgAttrList ( phFx_Fire, VGFX_GVECTOR, gvec, 1);

}

4.2氯气泄漏扩散仿真控制

4.2.1控制界面

单击“事故虚拟场景”按钮对虚拟场景进行动态漫游。单击“事故虚拟仿真”按钮观看氯气泄漏的扩散过程。

4.2.2氯气泄漏扩散虚拟仿真界面

打开事故虚拟仿真界面,为了控制毒气的流向,手动输入重力矢量和风速矢量。点击开始按钮,氯气泄漏扩散仿真开始,用户可以形象的观看到氯气的扩散过程和范围。其界面如下图所示。

5 结论

有毒气体泄漏扩散模拟采用虚拟现实技术的原理,并建立了可视化仿真系统平台,同样虚拟现实技术在其他典型事故现场回归、火灾模拟三维可视化也具有独特的优势。把虚拟现实作为一种崭新的技术应用到应急救援领域将具有非常广阔的应用前景和现实意义。

参考文献

[1]韩冬.基于虚拟现实技术的大型储罐区灭火救援场景的构建[J].防灾科技学院学报,2012,12(1):93-96.

[2]罗双艳.气垫船海上运动的视景仿真技术研究[D].哈尔滨工程大学,2007:84-85.

[3]严永江.液氯储罐泄漏事故后果的分析与探讨[J].环境工程报,2011,8(4):103-105.

上一篇:GIS技术在电力系统中的应用分析 下一篇:民办高校预防网络攻击的研究