章 瑀
(中國鐵路上海局集團(tuán)有限公司杭州電務(wù)段,助理工程師,浙江 杭州 310009)
半獨(dú)立路權(quán)下的新型有軌電車與公路車輛共享交叉口,為提高電車的運(yùn)行效率,交叉口信號通常給予有軌電車一定的通行優(yōu)先權(quán)。在制定信號優(yōu)先控制策略時(shí),一般借助VISSIM等微觀交通仿真工具進(jìn)行交叉口的路網(wǎng)建模與通行效率評價(jià),進(jìn)而輔助運(yùn)營管理的決策。然而對于管理人員而言VISSIM 的建模過程較為復(fù)雜,當(dāng)各仿真輸入變量出現(xiàn)較大變化時(shí)需重新在軟件中修改并進(jìn)行仿真而不能快速獲取評價(jià)結(jié)果,因此有必要基于VISSIM 所提供的COM(Component Object Model,組件對象模型)接口進(jìn)行二次開發(fā),為運(yùn)管者提供方便操作的用戶界面及圖表化的評價(jià)數(shù)據(jù)顯示,使有軌電車的運(yùn)營管理更加高效。
VISSIM作為常用的微觀交通仿真軟件,廣泛用于建模與分析各類交通信號、通道設(shè)置下的公共交通和城市交通運(yùn)行情況,因其底層包含的交通仿真模型都有嚴(yán)格的數(shù)學(xué)分析或邏輯流程為基礎(chǔ),保證了輸出的仿真評價(jià)結(jié)果對信號優(yōu)化及工程實(shí)施都具有一定借鑒意義[1]。
VISSIM 由交通仿真器與信號狀態(tài)產(chǎn)生器兩部分構(gòu)成,兩者之間通過內(nèi)部接口交換信號狀態(tài)與車輛運(yùn)行檢測數(shù)據(jù),見圖1。交通仿真器包含了各類車輛運(yùn)動(dòng)模型,如基于心理-生理駕駛行為的車輛跟馳模型,基于規(guī)則算法的車輛換道模型,基于泊松分布的車輛到達(dá)模型等。而信號狀態(tài)產(chǎn)生器則以一微小固定間隔(最小為0.1 s)從交通仿真器中提取車輛運(yùn)行檢測數(shù)據(jù),用于確定下一仿真秒的信號狀態(tài),同時(shí)將該信號狀態(tài)反饋給交通仿真器。
為實(shí)現(xiàn)有軌電車的信號優(yōu)先控制邏輯,可使用VISSIM 提供的外部信號狀態(tài)發(fā)生器VAP(Vehicle Actuated Programming,車輛感應(yīng)邏輯編程),該附加模塊提供了一個(gè)可編程的、基于信號相位及可感應(yīng)控制的仿真環(huán)境,在仿真過程中,通過設(shè)置于路段中的檢測器實(shí)時(shí)采集電車運(yùn)行數(shù)據(jù)并結(jié)合獲取到的信號顯示信息來實(shí)現(xiàn)電車信號的優(yōu)先控制。此外,通過VISSIM提供的COM接口還可對仿真中的模型參數(shù)進(jìn)行提取和修改,在此基礎(chǔ)上通過編程開發(fā)用戶界面,以便運(yùn)管人員更加靈活方便地進(jìn)行仿真輸入,獲取評價(jià)結(jié)果。

圖1 VISSIM的構(gòu)成及與COM接口的調(diào)用關(guān)系
目前有軌電車通過交叉口時(shí)的信號控制方案主要有固定周期配時(shí)控制、絕對優(yōu)先、相對優(yōu)先等。
固定周期配時(shí)即無優(yōu)先的信號控制方案,交叉口信號各相位以固定時(shí)間周期循環(huán)運(yùn)行,有軌電車運(yùn)行至交叉口時(shí)只能跟隨同一方向的車流一起放行,此方案投入最小,也不會(huì)對現(xiàn)有交通造成額外影響,有軌電車通行效率較低。
絕對優(yōu)先與相對優(yōu)先都是主動(dòng)優(yōu)先的信號控制策略[2]。在交叉口接近區(qū)段以及離去區(qū)段布設(shè)電車位置檢測器,根據(jù)對電車位置信息的檢測來實(shí)現(xiàn)交叉口信號的調(diào)整控制,給予電車通行優(yōu)先權(quán),具體的調(diào)整方法包括紅燈早斷、綠燈延長、插入相位等[3]。絕對優(yōu)先即無條件優(yōu)先,無論有軌電車接近交叉口時(shí)當(dāng)前信號是何種顯示,信號機(jī)在確保沖突相位關(guān)閉的情況下為其開放通過信號,響應(yīng)優(yōu)先請求。相對優(yōu)先則在絕對優(yōu)先控制的基礎(chǔ)上增加了公路交通信號最小綠燈時(shí)長的判斷條件,保證了當(dāng)前正在放行的車流能得到最低程度的疏解,避免有軌電車的優(yōu)先給公路交通造成過多延誤與擁堵。

圖2 主動(dòng)優(yōu)先信號控制流程
圖2 描述了主動(dòng)優(yōu)先控制下的信號感應(yīng)控制與有軌電車行為之間的對應(yīng)聯(lián)系。當(dāng)有軌電車通過接近區(qū)段的檢測器1時(shí),有軌電車發(fā)出優(yōu)先通行請求,若此時(shí)交叉口信號機(jī)顯示的相位與電車通行方向非沖突,則不需做任何信號切換即可使電車通過交叉口;若當(dāng)前為沖突相位,相對優(yōu)先下還需要判斷此時(shí)交叉口信號相位是否已經(jīng)滿足了設(shè)置的最小綠燈時(shí)長,在滿足條件時(shí)再根據(jù)下一相位是否為沖突顯示,進(jìn)行紅燈的早斷或者插入可供有軌電車通過的相位,以允許電車駛?cè)虢徊婵趨^(qū)段。有軌電車經(jīng)過布置于交叉口出口處的檢測器2 時(shí),交叉口區(qū)段電車出清,此時(shí)根據(jù)是否已滿足當(dāng)前信號相位的規(guī)定顯示時(shí)間來決定是否切換至下一相位,至此一次主動(dòng)優(yōu)先下的信號控制流程結(jié)束。
在VISSIM中進(jìn)行絕對優(yōu)先、相對優(yōu)先等信號感應(yīng)邏輯控制的實(shí)現(xiàn)時(shí),可借助其提供的VisVAP 工具,利用繪制信號流程圖的方式并結(jié)合獲取到的檢測器狀態(tài)來實(shí)現(xiàn)所需的邏輯過程。提供邏輯控制函數(shù)的動(dòng)態(tài)鏈接庫vap216.dll、相位過渡轉(zhuǎn)換定義文件.pua 以及VisVAP 編譯生成的.vap 邏輯控制文件三者一同構(gòu)成并實(shí)現(xiàn)了VAP信號感應(yīng)控制。
VISSIM 所 提 供 的VISSIM_COMSERVERLib 組件為連接外部的客戶端程序提供了新的方法,將VISSIM 作為服務(wù)器并通過COM 接口,使客戶端程序得以從VISSIM 中獲取仿真信息,并可向VISSIM傳輸仿真參數(shù)等控制指令,最終實(shí)現(xiàn)對VISSIM仿真過程的控制[4]。
本文將在微軟Visual StudioNET 環(huán)境下以C#語言實(shí)現(xiàn)客戶端的界面設(shè)計(jì)并完成COM 所提供接口方法的使用。在一個(gè)新工程中,通過添加引用的方式即可將VISSIM_COMSERVERLib 組件添加進(jìn)工程。圖3為VISSIM_COM 接口對象所包含的層次結(jié)構(gòu)[5],Vissim為根節(jié)點(diǎn),其他所有對象都由其派生而來,如Net(路網(wǎng))、Simulation(仿真)、Evaluation(評價(jià))等,Net 節(jié)點(diǎn)下還包括了構(gòu)成交通路網(wǎng)的其他要素,如Links(路段集合)、VehicleInputs(車輛輸入集合)等,每一集合都可索引至具體的已建模對象,COM提供了若干方法可對每一對象進(jìn)行特定操作。

圖3 VISSIM_COM接口節(jié)點(diǎn)層次
3.1 需求分析
1)交叉口線位類型是制約有軌電車通行效率的因素之一,根據(jù)不同的線位類型進(jìn)行建模分析也是VISSIM仿真的基礎(chǔ),故在客戶端操作流程的起始需要對線位類型進(jìn)行選擇,常見的有軌電車線位布置有路中直行式、路側(cè)直行式、路中轉(zhuǎn)彎式、路中轉(zhuǎn)路側(cè)等。
2)不同的信號控制策略適用不同的流量背景,故客戶端中用戶應(yīng)根據(jù)實(shí)際調(diào)查得到的交通流量及流量組成進(jìn)行自定義的輸入。
3)固定周期配時(shí)信號下包含了各相位的綠燈時(shí)長,主動(dòng)優(yōu)先感應(yīng)控制下包含了各相位的最小綠燈時(shí)長,客戶端提供對信號控制參數(shù)的設(shè)置,并提供信號控制策略的選擇。
4)有軌電車的發(fā)車時(shí)刻、發(fā)車頻率的合理性也是VISSIM仿真評價(jià)的應(yīng)用之一,客戶端提供電車發(fā)車時(shí)刻的自定義編輯。
5)此外為便于用戶可以觀察到仿真的運(yùn)行過程,還提供仿真速度,仿真周期的選擇,對仿真得到的評價(jià)結(jié)果進(jìn)行圖表化的展示,得到行程時(shí)間、延誤時(shí)間、車輛排隊(duì)長度這三方面的評價(jià)數(shù)據(jù)并提供仿真信息的匯總打印功能。
3.2 詳細(xì)設(shè)計(jì)
1)加載既有路網(wǎng)工程文件。加載路網(wǎng)的前提是設(shè)計(jì)人員已對典型的交叉口路網(wǎng)進(jìn)行了建模,對主動(dòng)優(yōu)先的信號控制邏輯進(jìn)行了實(shí)現(xiàn)并對VISSIM 仿真底層模型的參數(shù)進(jìn)行了初步校核,得到了一個(gè)較完善可靠的仿真工程。
作為VISSIM-COM 接口調(diào)用層次的根節(jié)點(diǎn),Vissim類所提供的方法是其他路網(wǎng)元素得以定義的基礎(chǔ)。如:
Vissim v-tram=new Vissim();//定 義 一 個(gè)Vissim類對象
v-tram.LoadNet(“tramcross.inp”);//使用Vissim類的方法加載路網(wǎng)文件
v-tram.LoadLayout(“tramcross.ini”);//加 載 路 網(wǎng)配置文件
調(diào)用成功即會(huì)打開VISSIM軟件,并在窗口中加載指定的路網(wǎng)文件及配置。對于調(diào)用過程中的異常,COM 通過返回HRESUTs 來報(bào)告錯(cuò)誤信息,可在客戶端中對拋出的這些異常進(jìn)行彈窗提示。
2)設(shè)置仿真輸入?yún)⒘俊S脩艨梢愿鶕?jù)電車沿線實(shí)際調(diào)查所得的交通量,對交叉口的車流量、路口轉(zhuǎn)向比、車型組成進(jìn)行輸入。以設(shè)置某一路口的車流量為例:
Net nt=v-tram.Net;//通過根節(jié)點(diǎn)構(gòu)建Net路網(wǎng)類
VehicleInputs.vehinputs=nt.VehicleInputs;//通 過Net類獲取仿真中車輛輸入集合
VehicleInput.vehinp1=vehinputs.GetVehicleInputByNumber(1);//根據(jù)索引號從集合中獲取一條
輸入記錄
vehinp1.set_AttValue("VOLUME",Convert.
ToDouble(w_input.Text));//將客戶端的輸入數(shù)據(jù)添加至該記錄的“流量”屬性中,見圖4。

圖4 車流量的設(shè)置實(shí)現(xiàn)過程
對于固定周期配時(shí)下的信號參量設(shè)置,也采取類似方法。 由根節(jié)點(diǎn)不斷向下遍歷直至SignalGroup(單一信號燈組),通過set-AttValue方法將客戶端獲取的數(shù)據(jù)添加入VISSIM 仿真的參數(shù)中。對于主動(dòng)優(yōu)先下的信號控制,由于COM未提供可讀寫的接口方法,可將客戶端獲取到的最小綠燈時(shí)間等參量通過文本的方式直接寫入工程文件的指定字段中。
3)設(shè)置發(fā)車時(shí)刻及仿真控制。客戶端中以表格的形式供用戶輸入電車的發(fā)車時(shí)刻,對上下行分別定義兩個(gè)List(隊(duì)列)用于存放用戶的輸入數(shù)據(jù)。當(dāng)運(yùn)行仿真時(shí),程序以仿真時(shí)間為上限循環(huán)調(diào)用COM提供的單步仿真函數(shù)RunSingleStep(),當(dāng)循環(huán)至用戶自定義的時(shí)刻時(shí),上行或下行線路即發(fā)送一輛電車AddVehicleToTransitLine()。
循環(huán)完成即代表仿真結(jié)束,使用根節(jié)點(diǎn)的Exit()方法退出VISSIM程序,同時(shí)刪除已創(chuàng)建的對象實(shí)例。
4)評價(jià)數(shù)據(jù)的圖表化顯示。仿真結(jié)束,評價(jià)的原始數(shù)據(jù)主要以文本形式進(jìn)行存儲,可使用.NET中File 類的相關(guān)方法進(jìn)行文本文件的信息處理,提取有效信息進(jìn)行圖形繪制。對于仿真信息的匯總打印,使用WinForm 所提供的PrintDocument 等組件,將用戶輸入的仿真信息以及評價(jià)圖表通過DrawString()、DrawImage()等方法進(jìn)行重新組織編排,將重要信息匯總于一頁。
3.3 仿真測試 通過客戶端窗口中各控件的事件響應(yīng)以及對VISSIM_COM 接口的調(diào)用,在客戶端輸入?yún)?shù)進(jìn)行測試,所實(shí)現(xiàn)的仿真控制效果見圖5。

圖5 客戶端效果
對各信號控制策略下的不同電車線位類型交叉口進(jìn)行多次測試顯示,只要在初始建模過程中按照統(tǒng)一順序進(jìn)行路網(wǎng)元素的編排,保證車輛輸入集合、路段集合等集合中的索引一致對應(yīng),客戶端程序即可通過索引號獲取正確的路網(wǎng)元素,以實(shí)現(xiàn)對仿真輸入?yún)⒘康目刂疲M(jìn)而提高客戶端的通用性。
本文提出了基于VISSIM_COM接口通過NET平臺開發(fā)客戶端供有軌電車運(yùn)營管理者輔助決策的新思路,并給出了詳細(xì)的方法與步驟。該客戶端程序充分利用了兩個(gè)平臺的優(yōu)勢,通過NET編制的圖形界面,實(shí)現(xiàn)了對VISSIM在有軌電車優(yōu)先控制仿真方面的交互,簡化了以往直接通過VISSIM進(jìn)行仿真參數(shù)輸入修改的繁瑣步驟。當(dāng)然為了提高仿真的真實(shí)性,在建模之前應(yīng)盡可能地進(jìn)行實(shí)地的交通調(diào)查,進(jìn)行底層模型參數(shù)的校核,從而得到更接近實(shí)際、更具參考價(jià)值的評價(jià)結(jié)果。