基于C#和Arc Engine的毒气扩散仿真系统的设计与实现
2013-07-05张庆龙戴毅茹赵荣泳
张庆龙,戴毅茹,赵荣泳
(同济大学 电子与信息工程学院,上海 201804)
0 引言
随着仿真技术的发展,气体扩散过程的模拟仿真研究进入了一崭新的阶段。目前GIS技术已经逐渐被用于气体扩散过程的模拟仿真,它是一种以地理空间数据库为基础,采用地理模型分析方法,适时提供多种空间动态的地理信息,为相关研究和决策服务的计算机技术系统。从技术和应用的角度,GIS具有强大的空间分析、模拟及可视化表达能力[1]。ArcGIS Engine是在ArcGIS9版本才开始推出的新产品,是一套完备的嵌入式GIS组件库和工具库[2]。
本文基于C#开发语言和ArcGIS Engine绘图技术,采用C/S模式设计了毒气扩散动态仿真系统。仿真系统选择具有连续性泄漏特点的毒气扩散模型,采用C#和ArcGIS Engine提供的绘图方法及关键技术对具体空间环境和气象条件下连续点源气体的扩散过程进行了直观形象的模拟和分析[3],取得了较好的效果。
1 总体设计
1.1 需求规定
毒气扩散仿真系统是毒气泄漏突发事件模拟仿真的重要工具。系统要求能按照毒气泄漏事件发生后的时间t模拟毒气扩散的状态,并将相应仿真数据提供给用户。系统操作方式需要简单,界面需要简洁直观,方便用户操作和观看仿真结果。
1.2 运行环境
本系统的运行环境分为硬件环境和软件环境。硬件环境:内存1G以上,主频2.2GHz以上的服务器端计算机,内存512MB以上。软件环境:Window 2000以上的操作系统,安装Framework 3.5以上环境,数据库服务器为Arc Engine 9.3平台。选择Arc Engine 9.3是因为它可以为绘制的图形提供数据存储和记录的功能,且安全性能高,另外还可以提供相应绘图需要的组件和工具。本系统采用Visual Studio 2005开发,因为该版本的VS跟Arc Engine 9.3具有良好的兼容性,且.NET平台具有良好的可移植性和通用性。
1.3 设计原则
系统设计遵循现在气体扩散仿真软件的主流特点,并融入实时性的特点,确保系统的现实性、实用性、安全性和准确性。软件开发过程中采用国际通用的软件开发标准和工具,确保系统的可维护性和扩展性。
2 系统设计与实现
2.1 系统架构设计
由于毒气扩散的动态仿真是以ArcGIS Engine的绘图方法进行绘制的,因此,如何将ArcGIS Engine和二次开发的平台有效结合,利用建立的毒气扩散模型进行动态模拟也是需要解决的关键问题。考虑到二次开发平台的兼容性,选择ArcGIS Engine 9.3与C#2005结合作为二次开发的环境,并采用ArcGIS Engine绘图方法实现了毒气扩散仿真系统,有效地解决这个问题,整个动态仿真系统的架构和仿真系统结构见图1。
图1 动态仿真系统架构和仿真系统结构图
仿真计算层主要负责支撑和运行一个仿真的环境,维护仿真系统的时间一致性,推行仿真进程的运行,管理仿真对象的数据分发和所有权,分配仿真对象任务,维护仿真对象属性等功能。
扩散仿真层由5大模块组成,如图所示,主要负责毒气扩散仿真模型的运行,毒气扩散状态图的显示,用户接口的交互及评价指标的生成等工作。
基础信息模块:5个模块中最底层的模块。主要功能:保存地图上一切仿真要素信息;保存用户设置的仿真参数;与 “永久性”存储数据的交互 (读取和写入);提供所有需要的数学计算函数。
绘图模块:所有的与图形绘制相关的函数和方法都由这个模块负责。
鼠标交互模块:实现不同状态下用户的鼠标策略。
Arc Engine引用库模块:为Paint模块提供引用库。
用户界面模块:维护Interaction界面除外的所有用户界面;捕捉用户鼠标信息,根据鼠标的信息调用相应模块;直接通过用户界面设置Base中的相关信息。
2.2 仿真程序核心算法设计
基本思想是,先确定泄漏点,然后在一定的气象和物理条件下,利用高斯烟羽模型得到毒气扩散范围的坐标值,将坐标值转换到Arc Engine地图的投影坐标系下,然后使用C#语言将转换后的毒气扩散范围坐标值在Arc Engine地图上呈现出毒气扩散致死区、重伤区和轻伤区的等浓度区域分布图,算法流程见图2。其中,模拟范围为下风向1500m以内,每5s计算一次毒气扩散范围。
图2 核心算法流程图
2.3 系统基本功能
毒气扩散仿真系统由地图导入、事故点建模、风向建模、毒气模型参数设置和毒气绘制五个部分组成。
采用ArcGIS Desktop设计系统需要的地图。在模拟毒气扩散的同时,系统自动计算出每个时间点对应的三个毒气扩散区域即死亡区、重伤区和轻伤区的扩散纵深。
2.4 系统实现的关键技术
(1)气体扩散模型选择。近年来,国内外对气体泄漏扩散模型进行了大量研究和改进,已经有多个成熟危化品气体扩散模型,如高斯模型、Sutton模型、平板模型等[4,5]。目前,危化品气体扩散模型依据泄漏源的毒气泄漏类型,可以分为瞬时型模型和连续型模型。具体选择哪种毒气扩散模型由应急疏散仿真系统的场景和特点决定。基于大范围疏散场景和大规模、长时间连续泄漏的特点,选连续型高斯烟羽模型作为扩散模型。
高斯烟羽模型[6],又称为中等密度云连续扩散模型。有界的连续点源扩散高斯烟羽模型表达:
(2)Arc Engine绘图方法。在使用模型进行模拟分析时,需要将默认的坐标系转换成Arc Engine地图的投影坐标系[7];Geometry是Arc Engine中使用最为广泛的对象集之一。通过Geometry可以绘制点、线(直线或曲线)、面等要素。利用这些基本的要素可以绘制毒气扩散区域图。按照直观性的特点,对扩散区域进行渲染。按照毒气扩散区域覆盖的区域可视化特点,对扩散区域所在图层进行透明化处理,因此,选择要素作为需要绘制的对象。
(3)模型计算。高斯烟羽模型的实现是毒气扩散模拟实现的关键问题,本仿真系统采用clsDiffusionModel类实现。因此,clsDiffusionModel类的实现是仿真系统实现的关键。
3 系统应用举例
本文选取上海吴泾化工区为地图,地图范围(2.2×3.6)Km。以表1和表2的初始条件为例,利用仿真系统对吴泾化工区附近突发的毒气泄漏事件进行模拟仿真,并对毒气扩散的区域纵深与高斯烟羽模型的关键参数的关系进行了简要研究。
表1 初始条件
表2 初始条件
3.1 基于表1初始参数的毒气扩散区域图
图3 t=10min和t=15min毒气扩散示意图
3.2 基于表1初始参数的毒气扩散区域纵深与时间t的关系图
图3表明在不同时刻的毒气扩散区域图,图4更详细地表明了在初始条件下,毒气扩散区域纵深与泄漏发生后时刻t的关系。该系统不仅可以动态模拟毒气扩散的状况,还可以通过调节高斯烟羽模型关键参数,模拟出不同的毒气扩散情景,这样增加了仿真系统的可塑性。
图4 毒气扩散区域纵深和时间t的关系图
4 结论
本文以突发的毒气泄漏事件为研究背景,对Arc Engine仿真技术在毒气扩散仿真中的应用进行了细致研究,实现了基于Arc Engine仿真技术和高斯烟羽模型的毒气扩散动态仿真系统。系统不仅使毒气泄漏的扩散状态直观化、准确化、实时化,而且对毒气泄漏事故现场的预测、评估和后续人员疏散方案的制定具有良好的辅助决策作用。
[1]钟登华,宋洋,黄河,郑家祥.基于GIS水电工程施工系统的三维动态图形仿真技术[J].系统仿真学报,2003,12.
[2]孙丽,高飞,胡小华,马传松.Arc Engine插件式GIS二次开发框架的设计和实现[J].测绘科学,2011,5.
[3]金陶胜,余志.基于GIS的汽车尾气污染扩散仿真[J].系统仿真学报,2004,11.
[4]陈国华,张静,潘游,等.区域风险评价方法研究[J].中国安全科学学报,2006,6.
[5]R.Ohba,A.Kouchi,T.Hara,V.Vieillard and D.Nedelka.Validation of Heavy and Light Gas Dispersion Models for the Safety Analysis of LNG Tank[J].Journal of Loss Prevention in the Process Industries.2004,5.
[6]邓金华,沈贤明,张保平,王建兵.Mat lab在化学危险性气体扩散模拟分析中的应用[J].中国安全生产科学技术,2005,5.
[7]刘进忙,张晓刚.经纬度坐标变换及其在防空C3I系统中的应用[J].空军工程大学学报(自然科学版),2002,1.