付 强, 仲丛友
(天津职业技术师范大学,天津300222)
港口集装箱物流系统是一个多环节而又相互平行的空间作业系统[1],在实际教学中通常是以教师讲解、图片展示和播放视频录像等方式介绍港口相关机械设备,但对于具体的机械动作及运作过程,设备间相互协调关系等不能很好的表现。尤其对港口码头的物业流程、集装箱装卸工艺、码头的平面布局等难以直观的描述。通过可视化仿真的方式使学生在虚拟现实的环境下学习港口集装箱物流的作业过程,不但使教学过程易于理解而且能够极大地提高学生的学习兴趣。
随着多媒体教学应用的广泛展开,计算机辅助教学(CAI)已经是高等学校重要的教学方式之一[2]。可视化仿真方法由于其直观、生动、易于理解等特性在教学中受到了学生的广泛欢迎,目前应用较多的一些主流仿真软件大多是进行整体物流系统的建模仿真,具有较强的实体建模和统计分析能力[3]。但由于其结构复杂,功能模块多,对于初学者的计算机应用能力和程序设计能力有较高的要求,适合进行物流系统规划,效率分析,效益评估等。但在课堂教学中由于学生的现有知识和技能水平等的限制,应用上述这些复杂的仿真系统辅助教学难以起到预期的效果。
着色Petri网(Colored Petri Net,CPN)是描述并发、同步、异步、资源竞争、协调等动态系统行为的有效工具,不仅有充分的模拟能力和丰富的分析方法,还便于使用和理解。同时,CPN是一种语义严格的形式化数学建模工具,可以定性和定量地分析系统的动态性能。CPN在基本Petri网基础上增加了token的颜色信息,并且通过层次化简化网的复杂性,较好地解决了基本Petri网在进行复杂系统建模时会导致模型过于庞大复杂的问题[4]。
CPN将一般Petri网的图形界面表示方法和高级编程语言的数据结构进行融合将函数式编程和逻辑化的模型描述相结合[5-7],并通过在Token和变迁中增加时间信息演变来的着色赋时Petri网(CTPN),为系统响应时间、平均等待时间等系统性能评价提供了支持,是Petri网扩展版本中发展比较成熟的一种。
在CPN中所有的实体都有各自的颜色集,本文中建立的仿真模型中主要实体的颜色集定义如下[8-9]:
(1)船舶。colset SHIP=record no:NO* ton:INT*c:INT*bn:NO*AT:INT timed。其中:no为船舶编号;ton为吨位;c为实际装载的容量;bn为停泊的泊位号;AT为到达时间。
(2)泊位。colset BERTH=record no:NO*c:INT*free:BOOL*AT:INT timed。其中:no为泊位号;c为该泊位拥有的岸桥数量;free为是否被占用;AT为被占用的开始时间。
(3)岸桥。colset CRANE=record no:NO*bn:INT*AT:INT timed。其中:no为岸桥编号;bn为所属泊位号;AT为每次开始工作时间。
(4)集卡。colset TRUCK=record no:NO*bn:NO*loaded:BOOL,e:BOOL。其中:no为集卡编号;bn为工作的泊位号;loaded为是否已装载;e为所装载的集装箱类型(空箱或重箱)。
图1 基于CPN的港口物流系统仿真模型
在定义了系统中所需的各类实体后,便可以建立基于CPN的仿真模型,如图1所示,并通过对CPN的状态空间分析找出模型中存在的并发、冲突、死锁等逻辑关系,对模型进行修改和完善,建立起符合实际情况的系统逻辑模型。
OpenSceneGraph(OSG)是一款开源的高性能3D图形开发库。广泛应用在可视化仿真、游戏、虚拟现实、高端技术研发以及建模等领域[10]。使用标准的C++和OpenGL编写而成,可以运行在Windows系列、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX 以及FreeBSD操作系统。
OSG为开发者提供了3D模型读取、场景组织、几何体绘制、渲染控制和优化等基础功能,是对OPENGL图形库的再一次封装,省去了开发底层图形引擎的工作,降低了开发难度。开发者可以将主要精力集中在三维模型开发,场景规划,系统运行逻辑设计以及数据处理等主要工作上,减少前期与开发目标无关的准备工作,加快系统开发的速度。
本文采用VC++进行仿真系统的开发,基于MFC的文档/视图结构建立应用程序结合OSG在场景组织和控制方面的优势建立仿真环境,并在此基础之上进行系统建模与开发。
港口教学仿真系统包含7个主要模块,分别为:数据读取模块、数据库管理模块、场景建立和管理模块、仿真运行模块、人机交互模块、视图显示模块和数据输出模块。其中场景建立和管理模块和仿真运行模块为系统核心模块,数据读取模块又分为场景数据读取模块和模型文件读取模块,数据输出模块又分为仿真结果数据输出模块和程序运行日志输出模块。各模块间关系如图2所示:
3.3.1 建立应用程序框架
建立基于MFC的单文档应用程序框架,主窗口有场景渲染区、系统设置区和仿真过程动态输出区3个主要区域组成。仿真系统主窗口界面如图3所示。
3.3.2 建立绘图环境
绘图环境的建立由OSG的Viewer类完成,主要包括初始化窗口像素格式,设置场景摄像机和光照,设置场景观察控制器等。
3.3.3 仿真场景的建立与组织
图2 仿真系统模块图
图3 仿真系统主窗口界面
OSG的场景组织采用场景图(Scene Graphic)结构,通过场景图把场景中个元素及其属性组织成一棵场景树。场景图中的根结点表示整个三维场景,子结点表示场景中每个对象的位置信息、动画设置以及逻辑关系等属性,叶子结点则代表物理对象本身、可拉伸的几何模型和材质属性[11-12]。
场景的建立和组织由场景类(class Scene)完成,它首先读取场景配置文件scene.xml,然后根据文件中的设置信息完成场景的初始化。场景配置文件scene.xml采用XML格式存储数据[13],主要包含两部分的内容:模型文件列表和场景节点结构。这样的文件结构正好符合OSG的场景图结构,便于建模初期的场景组织和管理。
场景类首先根据模型列表读取模型信息,但并不读取模型文件数据。然后根据场景节点结构建立场景节点,在建立场景节点的同时读取用到的模型数据,对于重复使用的模型并不重复读取。
通过场景配置文件的使用简化了场景建立的过程,对于场景的修改和更新也更加方便,大大减少了编程的工作量。
港口系统仿真是一种离散系统仿真,采用消息驱动机制运行仿真逻辑。在系统的运行过程中的每一个状态的变化或者人为的干预都会触发一个或多个事件,系统通过对这些事件的处理模拟现实世界的真实状况,并记录这个过程中产生的数据。仿真过程结束后,通过统计分析等手段对这些数据进行处理,作为决策支持的重要条件。
可视化仿真的另外一个重要成果就是操作者可以实时地观察仿真运行的全过程,通过多次、多角度的观察或操作发现系统的不合理之处,并可以尝试不同的解决方案优化系统。
仿真输出主要包含两部分的数据:仿真过程记录的数据和程序日志。根据仿真结果生成数据报表,报表中记录仿真运行时间,仿真中产生的各种随机事件[14-16](船舶到达时间分布,岸桥、集卡工作时间分布等),船舶等待队列,集卡等待队列,岸桥工作时间等数据信息。部分示例仿真数据如表1、表2和图4所示。
表1 仿真结果统计表
图4 泊位占用时间
通过港口教学仿真系统的应用使以往枯燥的课堂教学过程变得生动、形象,激发学生学习兴趣,真正实现了寓教于乐。由于港口仿真在教学中的应用还在初级阶段,系统功能还不够完善,例如随机数产生部分还不能做到完全真实模拟船舶的到达和运输车辆的路线控制等,在今后的应用过程中还需不断的实践和改进。
[1] 韩晓龙,丁以中.集装箱港口装卸作业仿真系统[J].系统仿真学报,2006,18(8):2366-2369.
[2] 乔 斌,张晶娜.浅谈CAI课件在课堂应用中的不足及对策[J].价值工程,2012(21):240-241.
[3] 黄银娣,卞荣花,张 骏.国内外物流系统仿真软件的应用研究[J].工业工程与管理,2010,15(3):124-128.
[4] 张梅青,周 叶.Petri网理论在物流管理中的应用研究综述[J].物流技术,2010(4):13-16.
[5] 胡筱敏,马云峰.基于CPN tools的环评工程分析信息化技术的研究[J].环境保护科学,2011(3):63-72.
[6] 袁崇义.Petri网原理与应用[M].北京:电子工业出版社,2005:66-69.
[7] 舒远仲,刘炎培,彭晓红.面向对象Petri网建模技术综述[J].计算机工程与设计,2010,31(5):3432-3435.
[8] 张海霖,江志斌,许泓.集装箱港口集疏运调度系统作业模式的仿真分析[J].上海交通大学学报,2006,40(6):1204-1206.
[9] 宋阿妮,王明哲,郭法滨.着色Petri网的结构展开方法[J].系统工程理论与实践,2012,31(2):315-317.
[10] 闫晓东.基于OSG的飞行视景仿真平台开发[J].计算机仿真,2008(5):58-60.
[11] 项 杰,靳媛媛,李爱光.OSG中三维场景构建的关键技术[J].地理空间信息,2012(1):43-45.
[12] 耿 宏,徐科,董健康.基于OSG的虚拟机载设备维护平台的研究[J].微计算机信息,2012,28(3):96-98.
[13] 许毅玟.XML技术在Web数据挖掘中的应用研究[J].信息与电脑,2012(7):93-94.
[14] 杨春霞,王 诺,杨华龙.集装箱码头泊位)岸桥分配耦合优化.计算机集成制造系统,2012,17(10):2271-2276.
[15] 计明军,靳志宏.集装箱码头集卡与岸桥协调调度优化[J].复旦学报(自然科学版),2007,46(4):476-480.
[16] 张 戎,艾彩娟.基于广义随机Petri网的口岸通关流程建模与仿真——以洋山保税港区进口法检货物的通关流程为例[J].系统工程理论实践,2012,32(1):1568-1574.