付 強, 仲叢友
(天津職業技術師范大學,天津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.