蔣 熙, 馮佳平, 賈飛凡, 孫捷萍, 李春曉
(北京交通大學(xué) 軌道交通控制與安全國家重點實驗室, 北京 100044)
近年來,我國城市軌道交通飛速發(fā)展,網(wǎng)絡(luò)化運營成為基本特征。乘客換乘和客流擁堵傳播使各線間運營狀態(tài)耦合性增強(qiáng),路網(wǎng)客流分布動態(tài)與各相關(guān)因素呈現(xiàn)復(fù)雜的非線性關(guān)系。尤其在故障和突發(fā)事件等異常運營情況下,準(zhǔn)確把握客流分布動態(tài)變得更困難,不利于實現(xiàn)科學(xué)的運營決策。為獲得客流分布動態(tài),常常在客流分配基礎(chǔ)上進(jìn)行客流分布計算,屬于較為宏觀的客流分布推算方法。這類算法效率較高,但難以準(zhǔn)確地考察路網(wǎng)各要素間動態(tài)作用關(guān)系帶來的影響。計算機(jī)仿真是實現(xiàn)客流分布動態(tài)推算的另一種途徑,即通過構(gòu)建并運行仿真模型完成客流對象狀態(tài)的推演,獲得客流分布的動態(tài)變化。相比客流分配方法,這種自底向上的基于仿真的推演方法雖然建模復(fù)雜性較高、運算時間較長,但是針對基于客流分布的相關(guān)問題具有更廣闊的適應(yīng)性。
在城市軌道交通系統(tǒng)中,計算機(jī)仿真被廣泛地運用于乘客行為建模與分析、多種運營決策與評估。在基于車站乘客行為的相關(guān)研究中,文獻(xiàn)[1-5]研究了車站乘客仿真建模方法,文獻(xiàn)[6-7]介紹了MicroPedSim、SimPed、Nomad、Legion、STEPS、Anylogic、VISSIM等行人仿真軟件在城軌中的應(yīng)用,文獻(xiàn)[8-10]研究了基于仿真的地鐵車站應(yīng)急疏散分析與評估。在線路列車運行仿真方面,文獻(xiàn)[11-13]研究了面向線路運輸能力分析與方案評估的城軌列車運行仿真模型,文獻(xiàn)[14]介紹了RAILSI、TrainSTAR、UTRAS、OpenTrack、Railsys等列車運行仿真軟件。在路網(wǎng)層面上,考慮了列車流、客流及其動態(tài)交互作用的仿真建模研究還剛剛起步,文獻(xiàn)[15]面向路網(wǎng)規(guī)劃目標(biāo),研究了城市軌道交通多粒度的建模與仿真方法。
然而,對于大規(guī)模路網(wǎng),客流動態(tài)分布推演面臨著仿真運算量巨大、仿真效率低的問題,并行計算則是解決這類問題的有效途徑。但在城市軌道交通仿真領(lǐng)域,針對大規(guī)模路網(wǎng)客流分布推演的仿真建模和并行方法還鮮有報導(dǎo)。本文面向城市軌道交通全路網(wǎng)的客流分布推演問題,著重研究模型構(gòu)建、系統(tǒng)仿真狀態(tài)推演方法、并行仿真時鐘協(xié)調(diào)等關(guān)鍵問題,在大規(guī)模路網(wǎng)條件下,實現(xiàn)高效、靈活的城市軌道交通路網(wǎng)客流分布推演。
乘客自進(jìn)入城市軌道交通系統(tǒng)后,隨列車運行和乘客在站內(nèi)走行,乘客所處的位置與狀態(tài)就不斷發(fā)生變化,這樣,路網(wǎng)上不同線路、列車以及車站等空間設(shè)施上所分布的客流量將隨時間呈現(xiàn)出動態(tài)變化,這就是所謂的客流時空動態(tài)分布,簡稱客流動態(tài)分布。
按照系統(tǒng)仿真基本原理,在設(shè)置了路網(wǎng)運營初始時刻、需要仿真的時間長度及仿真步長后,路網(wǎng)客流分布推演是在路網(wǎng)客流分布的初始“空”狀態(tài)基礎(chǔ)上,隨著仿真時鐘的推進(jìn),依據(jù)分時段客流OD數(shù)據(jù)和列車運行圖數(shù)據(jù)生成進(jìn)入路網(wǎng)的乘客和列車,利用仿真模型一步一步更新路網(wǎng)運營狀況并計算客流分布狀態(tài),直到仿真結(jié)束時刻的動態(tài)全過程。從這一角度看,城市軌道運營系統(tǒng)是由路網(wǎng)基礎(chǔ)設(shè)施、列車、乘客、運輸組織等多個部分組成的。其中,路網(wǎng)基礎(chǔ)設(shè)施是路網(wǎng)內(nèi)列車運行和乘客流動的物質(zhì)載體和能力約束;乘客利用路網(wǎng)的車站和列車服務(wù)完成出行過程,包括乘客到達(dá)車站,選擇路徑,在路徑上完成進(jìn)入車站、通過或駐留某車站設(shè)施、上車、下車、換乘、出站等活動環(huán)節(jié);列車根據(jù)時刻表或調(diào)整計劃,形成列車到站、停車、出發(fā)等狀態(tài)變化,為乘客的上車、下車狀態(tài)變化給出必要條件。此外,由列車運行圖、列車交路、車站限流方案等形成的運輸組織計劃與方案,作為驅(qū)動列車活動、設(shè)施運用狀態(tài)變化依據(jù),同時也影響乘客的出行與流動。在系統(tǒng)仿真模型構(gòu)建時,路網(wǎng)基礎(chǔ)設(shè)施、列車、乘客、運輸組織及其動態(tài)作用關(guān)系都應(yīng)該成為建模時考慮的基本要素。由此,基于宏觀運輸流動態(tài)特性的仿真建模方法對本文問題的適用性較弱,本文將從運輸對象個體行為角度出發(fā),結(jié)合研究需求確定底層仿真模型的粒度。
在任一時刻,城市軌道交通系統(tǒng)狀態(tài)由路網(wǎng)內(nèi)若干設(shè)備設(shè)施、列車及乘客等實體狀態(tài)及其復(fù)雜交互作用共同決定。對于擁有數(shù)千設(shè)備設(shè)施、數(shù)千趟列車以及數(shù)百萬乘客的城市軌道交通網(wǎng)絡(luò),如北京、上海等城市地鐵,在仿真建模時,無論是構(gòu)建各實體的行為模型,還是設(shè)計整個系統(tǒng)的狀態(tài)推演算法,都面臨著網(wǎng)絡(luò)規(guī)模大、模型構(gòu)成復(fù)雜的難題。尤其是在網(wǎng)絡(luò)客流實時推演的應(yīng)用中,若還需要根據(jù)客流推演精度靈活設(shè)置仿真粒度,系統(tǒng)狀態(tài)及其轉(zhuǎn)移關(guān)系的抽象與表示就具有更大的難度。同時,大規(guī)模路網(wǎng)客流實時推演的龐大運算量使得并行仿真成為一個可能途徑,那么,采用何種仿真建模方法與并行仿真需求相適應(yīng)也成為需要研究的問題。
在仿真系統(tǒng)中,列車和乘客是決定系統(tǒng)狀態(tài)的主導(dǎo)實體。在各自的生命周期內(nèi),按照一定的行為規(guī)則、在與其他實體相互作用下,列車和乘客均在路網(wǎng)上各自的路徑上完成一系列活動或過程,其客流集合和列車流集合在路網(wǎng)上的分布不斷發(fā)生變化,從而形成系統(tǒng)的狀態(tài)演變。在此,由一定范圍內(nèi)的大量乘客個體和列車個體構(gòu)成的客流和列車流被稱為“運輸流”。
與既有研究的一般仿真建模方法不同,本文按照上下兩個層次進(jìn)行狀態(tài)轉(zhuǎn)移建模,提出了適用于多分辨率并行仿真推演的“運輸流狀態(tài)網(wǎng)絡(luò)模型”,并將其與有限狀態(tài)機(jī)模型結(jié)合起來實現(xiàn)系統(tǒng)的狀態(tài)推演。本文建模的核心思想可歸納為如下幾點:
(1) 上層從系統(tǒng)中運輸流分布的角度出發(fā),實現(xiàn)客流和列車流在路網(wǎng)中空間位置狀態(tài)的轉(zhuǎn)移,下層則從乘客或列車個體行為的角度出發(fā),描述乘客或列車在路網(wǎng)不同位置上進(jìn)行狀態(tài)轉(zhuǎn)移的邏輯關(guān)系。
(2) 同時,為使運輸流的狀態(tài)推演模型能夠獨立于不同的仿真粒度,將運輸流狀態(tài)的抽象與路網(wǎng)基礎(chǔ)設(shè)施的抽象二者關(guān)聯(lián)起來,構(gòu)建本文所謂的“運輸流狀態(tài)網(wǎng)絡(luò)”模型,并以此作為系統(tǒng)上層狀態(tài)推演的依據(jù)。
(3) 而下層狀態(tài)轉(zhuǎn)移則以乘客或列車進(jìn)入、離開某類設(shè)施及在設(shè)施內(nèi)的活動進(jìn)行狀態(tài)抽象,并利用有限狀態(tài)機(jī)模型進(jìn)行構(gòu)建。
這樣,在不同推演精度要求下,根據(jù)不同抽象程度形成不同粒度的路網(wǎng)設(shè)施網(wǎng)絡(luò)模型,而對不同的粒度,與之相匹配的運輸流狀態(tài)網(wǎng)絡(luò)則可以具有一致的結(jié)構(gòu)描述方式。利用這一優(yōu)勢,本文構(gòu)建了統(tǒng)一的狀態(tài)網(wǎng)絡(luò)推演引擎,在狀態(tài)網(wǎng)絡(luò)的遍歷過程中驅(qū)動各實體的位置狀態(tài)轉(zhuǎn)移,從而完成第一層次上的系統(tǒng)狀態(tài)推演。這樣,可以在靈活地支持多粒度仿真的同時,提高模型的可重用性和建模效率。由此,本文采用了將運輸流狀態(tài)網(wǎng)絡(luò)與有限狀態(tài)機(jī)相結(jié)合的仿真建模方法進(jìn)行模型構(gòu)建,形成了仿真模型框架,見圖1。
依據(jù)仿真的路網(wǎng),可以構(gòu)建與其路網(wǎng)拓?fù)銰對應(yīng)的運輸流狀態(tài)網(wǎng)絡(luò)拓?fù)銰′,在此基礎(chǔ)上,運輸流狀態(tài)網(wǎng)絡(luò)TN可表示為7元組,即
{CurSimtime,NextSimutime,G′ ,Passengers,
Trains,RouteDecesion,TrainPlan}
其中,CurSimtime和NextSimutime為當(dāng)前仿真時鐘及下一步仿真時鐘,屬離散的時間點序列,在并行仿真條件下,依據(jù)本文4.1節(jié)的時鐘協(xié)調(diào)方法進(jìn)行推進(jìn);Passengers為路網(wǎng)上的乘客實集合,每個乘客的個體行為按照2.3節(jié)的乘客狀態(tài)自動機(jī)模型進(jìn)行狀態(tài)轉(zhuǎn)移;Trains為路網(wǎng)上各線的列車實體集合,每個列車的運行狀態(tài)按照2.3節(jié)的列車狀態(tài)自動機(jī)模型進(jìn)行狀態(tài)轉(zhuǎn)移;RouteDecesion為乘客路徑選擇決策單元,在當(dāng)前狀態(tài)條件下,基于乘客出行選擇特性,從出發(fā)站至目的站間多路徑中為乘客選擇出行路徑,確定乘客在網(wǎng)絡(luò)中后續(xù)將要途徑或換乘的網(wǎng)絡(luò)單元序列,按照文獻(xiàn)[10]所述方法實現(xiàn);TrainPlan為列車運行計劃單元,為列車確定其在線路后續(xù)運行過程中的車站、區(qū)間序列及其計劃時刻,在按圖行車條件下,其依據(jù)由列車交路和時刻表給出。
{UnitID,Type,SubTypye,CurEntity,
PreUnit,NextUnit,CapacityParams,
TrafficFeatureParams,MessageQue,BorderFlag}
節(jié)點與弧的主要屬性見表1。
針對給定的城市軌道交通路網(wǎng)構(gòu)建其交通流狀態(tài)網(wǎng)絡(luò)模型時,需要根據(jù)不同的建模需求抽象出與其描述精細(xì)程度相適應(yīng)的活動,并從承載相應(yīng)活動的角度出發(fā)來定義網(wǎng)絡(luò)中的節(jié)點和聯(lián)弧,進(jìn)而構(gòu)建運輸流狀態(tài)網(wǎng)絡(luò)。
例如,為網(wǎng)絡(luò)化運營決策服務(wù)的實時客流推演所關(guān)注的列車活動及運行過程主要包括列車出段、入段、進(jìn)站、停站、出站、折返、區(qū)間運行等環(huán)節(jié);對于乘客出行活動及過程,則關(guān)注乘客到達(dá)車站、進(jìn)站、站內(nèi)走行、候車、上車、乘車、下車、換乘、出站等,一般可忽略列車或乘客在某一時刻的精確位置、速度、加速度等細(xì)節(jié)。為滿足這種精細(xì)度要求,可以抽象出各類節(jié)點與聯(lián)弧以承載上述相應(yīng)活動環(huán)節(jié),見表2。其中,某些節(jié)點和聯(lián)弧僅承載乘客或列車活動,某些則屬于乘客與列車共用。對于更精細(xì)的客流推演需求,則可以抽取出更細(xì)致的活動并增加相應(yīng)的節(jié)點和聯(lián)弧,采用類似的方法構(gòu)建出更細(xì)粒度的運輸流狀態(tài)網(wǎng)絡(luò)。
表1 節(jié)點與聯(lián)弧一般化表述的屬性說明
表2 網(wǎng)絡(luò)節(jié)點聯(lián)弧與實體活動的承載關(guān)系
對于一個局部路網(wǎng)示意見圖2(a),所構(gòu)建的運輸流狀態(tài)網(wǎng)絡(luò)拓?fù)銰′ =(V′,E′)見圖2(b)。
在某一仿真時刻,各乘客和列車實體分布在狀態(tài)網(wǎng)絡(luò)中的某些單元上,所有實體在路網(wǎng)上的位置與活動的整體狀況構(gòu)成了系統(tǒng)狀態(tài)的一個映像。系統(tǒng)狀態(tài)推演的核心在于,隨著仿真時鐘的變化,推動各乘客和列車實體在客流狀態(tài)網(wǎng)絡(luò)中各節(jié)點與聯(lián)弧上的位置變化,并完成在各位置上的相應(yīng)活動下的狀態(tài)轉(zhuǎn)移。
對于路網(wǎng)中任意具有EntityID編號的乘客實體ePassenger, 假設(shè)該乘客實體的當(dāng)前邏輯時間為nowtime,承載當(dāng)前乘客實體的狀態(tài)網(wǎng)絡(luò)節(jié)點為curunit(curunit∈(V′∪E′)),下一狀態(tài)網(wǎng)絡(luò)節(jié)點為nextunit(nextunit∈NextUnit),本文用8元組(nowtime,EntityID,curunit,checkstatus,nextunit,IMessQue,OMessQue,F(xiàn)SM-P)描述乘客實體;類似的,對于列車實體eTrain,可用8元組(nowtime,EntityID,curunit,checkstatus,nextunit,IMessQue,OMessQue,F(xiàn)SM-T)進(jìn)行描述。
其中,checkstatus為狀態(tài)推演掃描過程中該實體的訪問狀態(tài);IMessQue為實體狀態(tài)轉(zhuǎn)移前的消息;OMessQue為實體狀態(tài)轉(zhuǎn)移后產(chǎn)生的消息;而FSM-P和FSM-T則是本文構(gòu)建的乘客行為有限狀態(tài)機(jī)模型FSM-P(Finite-State Machine for Passenger) 和列車運行有限狀態(tài)機(jī)模型FSM-T(Finite-State Machine for Train),見圖3,各狀態(tài)與條件定義見表3、表4。在當(dāng)前仿真時鐘和系統(tǒng)狀態(tài)下,在狀態(tài)轉(zhuǎn)移的時間條件滿足的基礎(chǔ)上,再依據(jù)不同的狀態(tài)條件去觸發(fā)FSM-P或FSM-T,可以將各實體轉(zhuǎn)移到下一個狀態(tài)。
表3 FSM-P的符號說明
狀態(tài)符號含義狀態(tài)條件符號含義PQ1進(jìn)站TP1后續(xù)節(jié)點對應(yīng)設(shè)施的能力約束條件PQ2站內(nèi)某聯(lián)弧設(shè)施內(nèi)行動TP2后續(xù)聯(lián)弧對應(yīng)設(shè)施的能力約束條件PQ3站內(nèi)某節(jié)點上行動TP3列車??空九_∩開門∩列車容量非滿載PQ4到站臺候車TP4允許發(fā)車(區(qū)間運行弧對應(yīng)設(shè)施能力約束)PQ5乘車運行TP5車站為乘客的終點PQ6下車到達(dá)站臺TP6TRUEPQ7出站TP1′,TP2′ ,TP3′ ,TP4′分別為TP1, TP2,TP3, TP4的“非”
表4 FSM-T的符號說明
進(jìn)一步,本文構(gòu)建了狀態(tài)推演引擎,通過遍歷運輸流狀態(tài)網(wǎng)絡(luò)TN并觸發(fā)相應(yīng)實體的FSM-P或FSM-T更新客流和列車流狀態(tài),以實現(xiàn)系統(tǒng)狀態(tài)推演。算法流程見表5。其中關(guān)鍵事件CriticalEvent和關(guān)鍵事件注冊消息CEInfoRegister用于實現(xiàn)各子域間的仿真時鐘協(xié)調(diào),其含義和用法將在3.2節(jié)中闡述。
表5 基于TN遍歷的系統(tǒng)狀態(tài)推演引擎算法
在網(wǎng)絡(luò)化運營條件下,基于個體行為模型的路網(wǎng)客流推演仿真規(guī)模巨大,對仿真運算能力提出了嚴(yán)峻挑戰(zhàn)。采用并行仿真技術(shù)需要解決的兩個核心問題在于并行仿真任務(wù)分解與時鐘協(xié)調(diào)方法。
本文采用基于功能和域相混合的方式進(jìn)行仿真任務(wù)分解,其中,核心仿真模型按照“域”劃分為多個仿真運算節(jié)點,其分解方法將影響仿真并發(fā)度與運算效率。在城市軌道交通系統(tǒng)中,除了少數(shù)城市有一些線路具有跨線運行條件外,多數(shù)線路上的列車基本在同一條線內(nèi)運行。乘客自車站進(jìn)入城市軌道交通系統(tǒng)后,因乘客OD點和路徑選擇的不同,其出行過程將包括若干線路內(nèi)的運行活動及線間的換乘活動。可見,列車和乘客的活動均是以線路為基礎(chǔ)而展開。因此,為更好地適應(yīng)軌道交通系統(tǒng)的特點,與一般的道路交通并行仿真系統(tǒng)中以局部區(qū)域“面”劃分任務(wù)的方式不同,本文以“線路”為基本單位進(jìn)行仿真任務(wù)的劃分。由于不同的劃分結(jié)果對并行仿真效率有重要影響,合理的劃分結(jié)果應(yīng)盡量減少任務(wù)劃分后不同仿真節(jié)點間通信開銷,并盡可能保持各仿真節(jié)點的負(fù)荷均衡。
對于一個擁有線路集L(包含m條線路)的路網(wǎng),路網(wǎng)拓?fù)淇捎肎=(V,E)表示,其中E為具有斷面流量權(quán)重的邊(區(qū)間)的集合,V為具有車站流量權(quán)重的節(jié)點集合,包含換乘站VT和非換乘站VS兩個子集。任務(wù)分解的工作就是根據(jù)客流仿真節(jié)點數(shù)量n將L劃分為n個子集L1,L2,…,Ln,所有子集的元素個數(shù)總和為m,其中Lu∩Lv=Φ(u,v=1,2,…,n,u≠v),Lu,Lv∈L。設(shè)w(VTij)為銜接線路集Li與Lj間的各換乘站的換乘客流總量,i,j=1,2,…,n,w(Li)為線路子集Li內(nèi)部中所有線路客流總量,則任務(wù)分解的工作在于確定L的每個劃分子集,使得各子集間w(Li)的偏差及∑w(VTij)最小化。分解后形成各個域邊界,并將邊界車站各接入節(jié)點與接出節(jié)點的BorderFlag標(biāo)記為TRUE。
(1)
(2)
(3)
由于其組成部分被分解,并行仿真系統(tǒng)需要采用一定的時鐘協(xié)調(diào)機(jī)制來維護(hù)系統(tǒng)的時空一致性。按照前述并行仿真策略,城市軌道交通路網(wǎng)運營仿真核心模型可劃分為若干個仿真子域,一個子域內(nèi)又包含若干個列車運行仿真器和乘客活動仿真器,由此,本文分兩個層次來實現(xiàn)仿真時鐘協(xié)調(diào):
(1) 仿真子域內(nèi)時鐘協(xié)調(diào)。同一個子域內(nèi)的列車與乘客交互作用較頻繁,且各實體狀態(tài)變化速度相差不大。因此,可以在子域邏輯時鐘的約束下,由該子域的狀態(tài)推演仿真引擎觸發(fā)該步長內(nèi)所有的實體狀態(tài)轉(zhuǎn)移,這是一種內(nèi)置的強(qiáng)同步手段。
(2) 子域間仿真時鐘協(xié)調(diào)。為了提高并發(fā)度,對于不同子域的各仿真器,并不需要在每個仿真步長而是在某些特定情況下才與其他子域保持同步。在保守策略基礎(chǔ)上,本文設(shè)計了一種基于關(guān)鍵事件的協(xié)調(diào)方法,以簡單高效的方式實現(xiàn)各子域仿真時鐘的協(xié)調(diào)。
基于關(guān)鍵事件的仿真時鐘協(xié)調(diào)機(jī)制的基本思路是,分析需要實現(xiàn)同步的情形與時機(jī),將引發(fā)同步的事件抽取為關(guān)鍵同步事件。產(chǎn)生該事件的仿真器所在的子域稱為Master,其他相關(guān)的子域稱為Slave,按照Master發(fā)起、Slave響應(yīng)的方式進(jìn)行同步,實現(xiàn)各子域仿真邏輯時鐘的協(xié)調(diào)。
由于列車的進(jìn)出站決定了車站乘客活動的變化,同時上線后的列車在各站的到發(fā)時刻具有較強(qiáng)的計劃性和時間約束,因此,可將銜接相鄰區(qū)域的換乘車站(稱區(qū)域分界站)內(nèi)列車進(jìn)站、出站事件作為啟動不同子域仿真同步過程的關(guān)鍵事件CriticalEvent。而在仿真推進(jìn)中的不同時刻,產(chǎn)生關(guān)鍵同步事件的列車可能不同,因此,發(fā)揮主導(dǎo)作用的Master也會隨仿真時間而動態(tài)變化。
在仿真狀態(tài)推演時(見表4算法),當(dāng)形成CriticalEvent后,將向各相關(guān)子域注冊事件的所在網(wǎng)絡(luò)單元、列車及發(fā)生時間(.time)等信息。同時,接收到CEInfoRegister消息的子域按邏輯時間順序?qū)⑵浞湃腙犃校⒁罁?jù)本子域是否為事件的生成者,將發(fā)生時間最早的CriticalEvent定義為“最早主同步事件”MCE或“最早從同步事件”SCE。另規(guī)定,各關(guān)鍵事件的產(chǎn)生者只能夠向后更新其預(yù)計發(fā)生的邏輯時間。
在仿真推進(jìn)過程中,主要依據(jù)下一步預(yù)計邏輯時間t′以及MCE、SCE的時間time數(shù)值大小,按照下述原則進(jìn)行時鐘協(xié)調(diào)后再調(diào)用ScanStateNet算法完成本次時鐘推進(jìn),各子域在時鐘協(xié)調(diào)過程的動態(tài)圖模型,見圖4。
(1) 若t′小于其他二者,表示該子域下一步不會執(zhí)行到或者跨越同步事件,則該子域處于“自由推進(jìn)”狀態(tài)FreeStep。
(2) 若子域下一步即將執(zhí)行到MCE事件,則該子域進(jìn)入“主同步開始”狀態(tài)MasterSynchStart,發(fā)送“啟動同步指令”SynchCommand后進(jìn)入阻塞狀態(tài)MasterSynBlock,待其接收到其他子域發(fā)來的與MCE在時間和列車編號均匹配的“響應(yīng)同步消息”SynchRespond后被喚醒 ,進(jìn)入“主同步完成”狀態(tài)MasterSynComplete。
(3) 若子域下一步即將跨越SCE時,則該子域進(jìn)入“從同步開始”狀態(tài)SlaveSynchStart,在未接收到該事件的Master發(fā)送來的SynchCommand指令以前,進(jìn)入阻塞狀態(tài)MasterSynBlock,直到被主同步指令喚醒后發(fā)送SynchRespond消息并轉(zhuǎn)變?yōu)椤皬耐酵瓿伞睜顟B(tài)SlaveSynComplete。
運用本文提出的并行仿真方法,利用一臺4核計算機(jī),在Windows操作系統(tǒng) .Net開發(fā)環(huán)境下,作者使用C#編程語言自主開發(fā)了城市軌道交通運營并行仿真系統(tǒng),系統(tǒng)主要功能模塊構(gòu)成見圖5。利用所構(gòu)建的系統(tǒng),以北京市軌道交通系統(tǒng)作為背景和研究對象,進(jìn)行路網(wǎng)運營狀態(tài)的實時客流推演仿真。
按照本文的混合式分解策略,首先將系統(tǒng)按功能分解為仿真數(shù)據(jù)加載、仿真運行過程動態(tài)展示、仿真指標(biāo)計算與展示、仿真實驗管理與運行控制、仿真數(shù)據(jù)采集與存儲、核心仿真器等任務(wù)。進(jìn)一步,對核心仿真器實施基于區(qū)域的任務(wù)分解。本次仿真對象共包括16條線路,即L={l1,l2,…,l8,…,l16},依據(jù)每條線路的客流量Qp和各線路間的日間平均換乘量TQpq,利用本文1.2任務(wù)分解模型求解后得到各子集集合分別為L1={l1,l4,l15},L2={l5,l6,l9,l11,l13,l16},L3={l2,l3,l12},L4={l7,l8,l10,l14}。根據(jù)域分解的結(jié)果,核心仿真器再次被劃分為4個子域。這樣,將分解后形成的多子任務(wù)放到多核計算機(jī)上進(jìn)行并行仿真運算,可以對路網(wǎng)運營狀況進(jìn)行快速仿真推演,從而輸出各仿真時刻的系統(tǒng)狀態(tài)、分時段的運營動態(tài)指標(biāo)并進(jìn)行存儲。運用并行仿真技術(shù),在仿真時鐘的步長設(shè)為1 s的情況下,本案例的全網(wǎng)全日客流量為976萬人,自運營初始時刻04:30到運營結(jié)束時刻23:59,完成一次全路網(wǎng)仿真推演運算的最大機(jī)器耗時為3.9 s,體現(xiàn)出并行仿真在運算速度上的優(yōu)勢。
在本仿真實例中,通過對路網(wǎng)范圍各線各站的客流動態(tài)分布仿真推演,在各仿真步長可以獲得各乘客所在位置、各列車位置的動態(tài)變化,并得到各站進(jìn)出站量、換乘量、各斷面流量等客流分布數(shù)據(jù)的動態(tài)變化。同時,為了進(jìn)行仿真檢驗,本研究從實際運營中獲取當(dāng)日各時段(每15 min)的運營數(shù)據(jù)與仿真結(jié)果進(jìn)行對比。按全網(wǎng)各站各分時出站客流數(shù)據(jù)進(jìn)行檢驗時,得到仿真平均相對誤差為10.2%,按照全網(wǎng)各區(qū)間分時段的客流斷面數(shù)據(jù)進(jìn)行檢驗時,仿真結(jié)果的平均相對誤差為14.5%。實際斷面數(shù)據(jù)與仿真數(shù)據(jù)的對比情況,見圖6。
利用該仿真系統(tǒng),進(jìn)一步可進(jìn)行多種仿真分析與評估,例如,識別運營當(dāng)日可能出現(xiàn)的客流擁堵及發(fā)展態(tài)勢。仿真時刻07:35路網(wǎng)客流分布狀態(tài)見圖7,其中深紅色圓圈和線條代表出現(xiàn)了嚴(yán)重?fù)矶碌能囌竞土熊噧?nèi)擁擠的區(qū)間。相應(yīng)車站(立水橋、西直門、西二旗、軍事博物館等)在其擁堵方向的站臺乘客聚集人數(shù)的動態(tài)變化,見圖8,可見某些車站因大量乘客留乘而出現(xiàn)站臺客流急劇聚集,造成擁堵。在此基礎(chǔ)上,依據(jù)一段時間內(nèi)的仿真輸出數(shù)據(jù),可以制定相應(yīng)的控制策略以緩解擁堵狀況,為提高運營安全與服務(wù)水平提供支持。
城市軌道交通路網(wǎng)客流分布動態(tài)推演對網(wǎng)絡(luò)化運營決策具有重要支撐作用,本文面向大規(guī)模路網(wǎng)研究了客流分布動態(tài)推演建模與并行仿真方法,已完成的和下一步的研究工作主要包括:
(1) 提出了適用于大規(guī)模路網(wǎng)多分辨率并行仿真推演的“運輸流狀態(tài)網(wǎng)絡(luò)模型”,并將其與有限狀態(tài)機(jī)模型結(jié)合起來,構(gòu)建了包含兩個狀態(tài)轉(zhuǎn)移層的仿真模型架構(gòu)。給出了運輸流狀態(tài)網(wǎng)絡(luò)TN的建模方法,構(gòu)建了狀態(tài)推演引擎、列車有限狀態(tài)機(jī)模型FSM-T和乘客有限狀態(tài)機(jī)模型FSM-P,給出了狀態(tài)推演算法,即,通過狀態(tài)推演引擎遍歷TN并觸發(fā)相應(yīng)實體的FSM-P或FSM-T來更新客流和列車流狀態(tài),使?fàn)顟B(tài)推演高效而靈活。
(2) 采用混合策略進(jìn)行并行仿真任務(wù)分解,以區(qū)域間換乘量和客流量偏差最小為目標(biāo)進(jìn)行域劃分方案的優(yōu)化,提高了仿真的并發(fā)度。提出了分別按子域內(nèi)和子域間兩個層次實現(xiàn)時鐘協(xié)調(diào)的機(jī)制,對于子域內(nèi)的時鐘協(xié)調(diào),提出了一種基于關(guān)鍵同步事件的仿真時鐘協(xié)調(diào)方法,以簡單高效的方式實現(xiàn)并行仿真的時鐘推進(jìn)。
(3) 以北京地鐵為例進(jìn)行了仿真驗證。未來的研究方向在于考慮實時數(shù)據(jù)接入條件下的客流推演,進(jìn)一步提高仿真模型精度及并行仿真效率。