基于ABMS的煤矿井下逃生模型研究

2018-01-23 07:07张俊瑞陈立潮潘理虎
计算机技术与发展 2018年1期
关键词:巷道对象建模

张俊瑞,陈立潮,潘理虎,3

(1.晋中学院 信息技术与工程学院,山西 晋中 030619;2.太原科技大学 计算机科学与技术学院,山西 太原 030024;3.中国科学院 地理科学与资源研究所,北京 100101)

0 引 言

中国煤炭工业协会会长王显政在出席2016年世界煤炭协会技术委员会会议时表示,虽然中国一直在减少煤炭在能源消费结构中的比例,但2015年中国的煤炭消费量仍占世界的一半。煤矿从业人数众多,因此煤矿安全仍是需要重点讨论的一个问题。虽然现在的研究成果很多[1-4],并在数学建模、虚拟现实技术(virtual reality,VR)[5-6]、疏散模拟[7]、计算机建模[8-9]等方面取得了一定的研究成果,但是利用ABMS方法(Agent-based modeling and simulation)对煤矿安全逃生问题进行研究的却很少。

利用ABMS方法设计了煤矿井下逃生模型的总体架构和仿真程序中的主要类,然后对模型的UML类图和时序图进行了分析,最后通过RePast仿真平台对模型进行仿真,实现了井下矿工的逃生模拟。

1 ABMS简介

ABMS是基于Agent的建模和仿真方法,它是复杂适应系统(complex adaptive system,CAS)与分布式人工智能技术两种理论相融合的结果,是研究复杂系统的新途径和新方法。基于Agent的建模和仿真包括基于Agent的建模(Agent-based modeling)和基于Agent的仿真(Agent-based simulation)两方面,二者相互联系但又有所不同,不可分割。

2 模型架构分析

2.1 模型组成模块

煤矿井下逃生模型的组成模块如图1所示。模型包括系统初始化模块、运行模块和数据统计模块[10]。

图1 模型组成模块

系统初始化模块用于对模型进行初始化设置。首先将巷道地图数字化处理后生成的栅格地图导入模型中作为Agent的空间活动环境[10];然后对模型进行初始参数配置,模型中的初始参数包括井下Agent的数量、不同类型Agent所占的比例、Agent的行走速度、灾害的类型和参数(如灾害是否火灾、火灾的蔓延速度)等;最后对Agent的属性进行初始设置,如Agent的工号、年龄、婚否、受教育程度、是否带班组长等[10]。

运行模块是煤矿井下逃生模型的核心模块,负责整个模型的运行。模型仿真结果的显示、Agent行为决策的量化实现、模型的时钟控制(可参考文献[11])等都在这个模块实现。

数据统计模块用于统计模型运行过程中产生的大量统计数据,如火灾的蔓延情况、Agent逃生和死亡的数量等[10-11]。

2.2 模型中的主要类

在RePast提供的类库基础上,针对煤矿井下逃生模型开发了CoalMineDemo类包,用于实现模型的初始化设置、模型的运行控制和模型中的数据统计。CoalMineDemo类包中包括CoalMineModel类、CoalMineSpace类和CoalMineAgent类。CoalMineModel类最复杂,因为它是整个模型运行的起点,是被最优先执行的,控制着整个仿真模型的运行。在CoalMineModel类中包括了Private void buildModel()方法、Private void buildDisplay()方法和Private void buildSchedule()方法等,分别负责创建模型的底层结构、向用户显示表层结构和模型的状态时间表。CoalMineSpace类用于模型空间的初始化、灾害的初始发生地、Agent在空间活动环境中的初始化分布等的设置[10],用到的主要方法有public void setFire()、public boolean addAgent()、public int getTypeAt()和public boolean moveAgentAt()等[10],分别用于火灾的设置、Agent的添加、灾害类型的设置以及Agent移动情况的统计[10]等。CoalMineAgent类用于实现Agent的活动,用到的主要方法有public void step()、public void setVxVy()、public void draw()和public void report()等,用于实现每一个“tick”(RePast仿真平台的时间单位)模型要执行的内容、Agent的移动方向及位移量、显示方式及状态报告等的设置。

除此之外,还有Disaster类和Point类,均用于对灾害的类型和巷道环境中的避灾硐室[12-13]等进行描述[10]。

2.3 模型的UML类图

文中引入了UML(unified modeling language,统一建模语言)类图对模型中的CoalMineModel、CoalMineSpace、CoalMineAgent、Disaster和Point五个类之间的关系加以介绍,类描述情况如图2所示。

模型中各个类之间是关联关系。其中,CoalMineModel类与CoalMineSpace类是一对一的关系,即一个Model(模型)对应一个Space(空间活动环境);CoalMineModel类与CoalMineAgent类是一对多的关系,一个Model可以对应多个Agent(主体对象);CoalMineSpace类与CoalMineAgent类是一对多的关系,一个Space上可能有若干个Agent进行活动;CoalMineModel类与Disaster类是一对多的关系,一个Model中可能同时有多个Disaster(井下灾害)发生;CoalMineModel类与Point类也是一对多的关系,即一个Model中涉及到多个Point(井下硐室);CoalMineSpace类与Disaster类是一对多的关系,一个Space上可以有多个Disaster;CoalMineSpace类与Point类是一对多的关系,即一个Space上有多个Point。

2.4 模型的时序图

煤矿井下逃生模型中,不同类型的Agent对象存储在不同的对象列表中,由CoalMineModel对象统一进行存储和调用。

模型启动后,CoalMineModel对象调用buildModel()方法对模型的参数进行初始化设置,然后调用buildDisplay()方法对CoalMineSpace对象进行初始化,最后调用buildSchedule()方法启动模型。buildSchedule()方法里有一个内部类CoalMineAgentStep,该类能够对用户的操作进行响应。模型启动后,当用户点击RePast工具条上的“开始”按钮时,CoalMineAgentStep类开始执行,一个“tick”之后,space.update()方法完成对CoalMineSpace空间对象的更新。最后,CoalMineModel对象调用updateDisplay()方法对模型空间的显示界面进行更新并显示。

在模型执行过程中,模型对象model始终处于活动状态,所有Agent的活动都在模型对象model的管理之下,由model统一进行调度。模型对象的执行内容和时序非常重要,它决定了系统的可靠性和稳定性。

模型的时序图如图3所示。

3 模型仿真实现

3.1 模型的仿真平台

RePast仿真平台是在Java开发平台Eclipse的基础上导入RePast类库实现的。其仿真界面与Eclipse相似但又有所不同。一个Demo程序在RePast平台上的运行界面,包括显示界面、图表和直方图三个显示部分。RePast可以显示模型的运行情况,还可以通过图表和直方图对模型运行中的实验数据进行统计。因此,RePast能够较好地对模型进行仿真。

图3 模型的时序图

3.2 模型的仿真界面

图4是模型的仿真界面,其中的灰色栅格表示井下巷道,巷道旁突出的黑色栅格为井下硐室,巷道中的黑色栅格表示火灾的发生地和蔓延地,巷道最上方的黑色栅格为出口位置。仿真结果显示,Agent会在火灾发生时向着出口或者避灾硐室的位置逃生,因此该模型能够实现井下逃生模拟。

图4 模型的仿真界面

图5为火灾发生后Agent的逃生情况统计,分别用于统计活着的Agent、死亡的Agent、逃到出口的Agent及逃到避灾硐室的Agent数量。每有一个Agent成功逃到出口,模型中统计的活着Agent的数量相应减少,而逃到出口的Agent数量相应增加,火灾发生时死亡的Agent数量为零。统计井下火灾发生时Agent的逃生情况对研究煤矿井下逃生具有一定的参考价值。

图5 模型的数据统计

4 结束语

使用ABMS方法对煤矿逃生问题进行研究是研究煤矿安全问题的一个较好的手段。通过对模型的总体架构进行研究,详细分析了模型的UML类图和时序图,并设计了实现模型所需的所有类对象,最后在RePast仿真平台上利用Java语言对模型进行了仿真。仿真结果表明,模型架构设置较合理,可以较好地对煤矿安全逃生问题进行研究。

[1] COTTON S,DENNISON-JOHNSON A,GIRALDO L.Mine escape vehicle (MEV) concept development[C]//SME annual meeting and exhibit 2010.United States:[s.n.],2010:206-209.

[2] DZIURZYNSKI W,ROSZKOWSKI J,TOBICZYK J.Monitoring and control of ventilation in polish coal mines[C]//8th international mine ventilation congress-proceedings.Australa:[s.n.],2005:309-315.

[3] STANISAW W.Monitoring of natural hazards in the underground hard coal mines[C]//New technological solutions in underground mining international mining forum.Poland:[s.n.],2006:87-94.

[4] PAPASTEFANOU C.Escaping radioactivity from coal-fired power plants (CPPs) due to coal burning and the associated hazards:a review[J].Journal of Environmental Radioactivity,2010,101(3):191-200.

[5] 汪云甲,伏永明.矿井巷道三维自动建模方法研究[J].武汉大学学报:信息科学版,2006,31(12):1097-1100.

[6] 仵自连,王德永,樊 继.虚拟矿井生产仿真系统的分析与设计[J].微计算机信息,2006,22(9-2):308-310.

[7] 肖勇杰,封卫兵,晁 媛.基于LBM算法的大规模人群疏散研究[J].计算机技术与发展,2011,21(7):21-24.

[8] 蔡林沁.基于Agent的煤矿智能虚拟环境研究[D].合肥:中国科学技术大学,2007.

[9] 张俊瑞.基于Multi-Agent的煤矿井下矿工逃生模型研究[D].太原:太原科技大学,2012.

[10] 张俊瑞,陈立潮,潘理虎,等.基于多Agent的煤矿井下矿工逃生模型研究[J].计算机工程与设计,2012,33(12):4657-4662.

[11] 王 丽.煤矿井下避灾硐室研究[D].西安:西安科技大学,2009.

[12] 王 淇.煤矿井下避难硐室系统研究[D].武汉:武汉科技大学,2013.

[13] 肖时景.煤矿井下避难硐室的设计及位置优化的研究[D].邯郸:河北工程大学,2012.

猜你喜欢
巷道对象建模
高应力岩层巷道钻孔爆破卸压技术
基于FLUENT的下击暴流三维风场建模
晒晒全国优秀县委书记拟推荐对象
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
三维矿井巷道体间节点连接算法研究
求距求值方程建模
坚硬岩石巷道中深孔爆破技术的应用
浅谈锚网支护技术在深部返修巷道中的应用
基于PSS/E的风电场建模与动态分析
攻略对象的心思好难猜