臧天哲 顧保南
(同濟大學交通運輸工程學院, 201804, 上海)
在城市軌道交通(以下簡稱“城軌”)建設階段,需要對其規(guī)劃線網(wǎng)不斷進行優(yōu)化,其方案評價離不開城軌線網(wǎng)客流分配環(huán)節(jié)。城軌線網(wǎng)優(yōu)化涉及的變化因素眾多,如線路數(shù)量、換乘站及換乘方案、線位及站位、敷設方式、運營組織模式等,其中每個因素變化所對應的方案評價都需進行線網(wǎng)客流分配,因而線網(wǎng)客流分配在線網(wǎng)規(guī)劃中會大量重復發(fā)生。文獻[1-3]對城軌線網(wǎng)的建模方法和客流分配算法進行了研究,但未能對線網(wǎng)客流分配全過程進行集成以實現(xiàn)自動化運行。文獻[4]以城市道路網(wǎng)絡為研究對象,對其客流分配自動化進行了研究。本文基于對城軌線網(wǎng)客流分配過程的研究,旨在開發(fā)城軌線網(wǎng)客流分配自動化計算程序。
目前,常用的主流宏觀仿真軟件,如VISUM、TransCAD等,都可以對大規(guī)模城軌線網(wǎng)進行四階段的計算。相比于其他宏觀仿真軟件,VISUM軟件在計算模型豐富度和接口易用性等方面均具有一定優(yōu)勢,因此,本文使用VISUM軟件作為程序開發(fā)的基礎平臺。基于VISUM軟件的城軌線網(wǎng)客流分配評價指標手動計算方法主要包含線網(wǎng)供給方案建模、線網(wǎng)需求建模、交通分配計算及計算結(jié)果輸出與顯示等4個部分。在VISUM軟件中手動完成上述計算過程需要龐大的輸入、修改及校對工作量,且進行多方案比選時也會產(chǎn)生較多重復性工作,給研究工作帶來諸多不便。VISUM軟件本身為用戶開放了豐富的接口(如COM-API(組件對象模型-應用程序編程接口)),通過這些接口可以編寫外部程序以控制VISUM軟件的自動化運行。因此,需要對城軌線網(wǎng)客流分配評價指標的計算過程進行深入分析,開發(fā)外部程序調(diào)用VISUM軟件的計算模塊,實現(xiàn)基礎數(shù)據(jù)輸入、各項指標計算及計算結(jié)果輸出的自動化運行,充分發(fā)揮軟件本身在計算模塊上的優(yōu)勢,既滿足實際工作所需的復雜的分析計算要求,又提高了客流分配工作的效率。
本研究開發(fā)的程序需要自動讀取所需的外部數(shù)據(jù),并在VISUM軟件中完成線網(wǎng)供給方案模型的構(gòu)建,主要包括車站、線路和時刻表等對象的創(chuàng)建及屬性設置。該程序應能夠?qū)┙o方案的變化進行便捷的設定,并能夠在程序中顯示不同的供給方案。供給方案的變化包括規(guī)劃設計與運營管理兩個層面:規(guī)劃設計方面的變化包括多條規(guī)劃設計線路的OD(起訖點)、換乘節(jié)點及路由等可能的方案變化;運營管理層面的變化包括某條或多條線路的列車??空军c、時刻表等可能的方案變化。該程序能夠體現(xiàn)城市城軌線網(wǎng)供給方案變化,并在供給方案變化的條件下進行評價指標的計算。
本研究開發(fā)的程序需要自動讀取所需的外部數(shù)據(jù),并在VISUM軟件中完成線網(wǎng)需求模型的構(gòu)建,包括站間OD矩陣,以及需求時間序列等的設置。該程序的需求模型應能便于對近期和遠期、高峰與非高峰等的客流變化進行設定,且在OD需求變化的情況下自動計算評價指標。
本研究開發(fā)的程序需在VISUM軟件中建立交通分配計算流程體系,按照給定條件的指定路徑搜索方法,以及乘客選擇模型等分配計算方法,設置計算所需參數(shù),并自動進行交通分配計算。
本研究開發(fā)的程序需要與指定數(shù)據(jù)庫對接,并能自動且快速地計算出本線及線網(wǎng)的各項評價指標,以及輸出指標計算結(jié)果;該程序還能夠輸出圖片,對線網(wǎng)總體與局部的各種指標進行顯示。
基于需求分析,城軌線網(wǎng)客流分配自動化計算程序劃分為線網(wǎng)供給方案建模、線網(wǎng)需求方案建模、交通分配計算及數(shù)據(jù)輸出等4個主要功能模塊。城軌線網(wǎng)客流分配自動化計算程序的主要技術(shù)流程,如圖1所示。
圖1 城軌線網(wǎng)客流分配自動化計算程序的主要技術(shù)流程
線網(wǎng)供給方案模塊的主要功能是在VISUM軟件中完成線網(wǎng)供給方案模型的構(gòu)建,以描述城軌車站、線路及列車等對象的特性,包括線網(wǎng)中節(jié)點與路段的生成,車站、線路、車次、車輛編組的建立與屬性設置,以及交通小區(qū)的生成等。
線網(wǎng)需求模塊的主要功能是在VISUM軟件中完成線網(wǎng)需求模型的構(gòu)建,即乘客出行信息的描述。該模塊主要包括城軌OD矩陣的導入和乘客出行特征屬性的設置。
交通分配計算模塊的主要功能是基于VISUM軟件的計算流程完成交通分配計算。具體操作步驟如下:建立交通分配計算流程,設置相應計算參數(shù),通過運行交通分配計算流程得到計算結(jié)果。
數(shù)據(jù)輸出模塊的主要功能是將VISUM軟件中得到的分配計算結(jié)果進行輸出。具體操作步驟如下:按指定對象和字段生成數(shù)據(jù)列表并將其保存至本地數(shù)據(jù)庫,將需要的計算結(jié)果繪制成圖并保存為本地圖片。
3.1.1 節(jié)點與路段生成
在VISUM軟件中構(gòu)建城軌線網(wǎng)時,節(jié)點代表站點的位置,路段代表區(qū)間。路段具有方向性,由起始節(jié)點編號與到達節(jié)點編號來描述。VISUM軟件通過路段屬性表述路段上的交通特性。在構(gòu)建城軌線網(wǎng)時需設置允許通過的交通方式、行駛速度、行駛時間等屬性。本程序從城軌線網(wǎng).shp格式文件中讀取節(jié)點與路段信息,并在VISUM軟件中完成節(jié)點與路段對象的創(chuàng)建及其屬性設置。
3.1.2 交通小區(qū)設置
交通小區(qū)的設置主要涉及小區(qū)與小區(qū)連接線兩個對象。小區(qū)是乘客每次出行的起點與終點,它將交通供給與交通需求關(guān)聯(lián)起來。小區(qū)連接線用于將小區(qū)連接到路網(wǎng),即小區(qū)質(zhì)心和連接點之間的離開或到達路徑。本程序基于城軌站間OD矩陣進行客流分配,因此為每個站點需建立1個小區(qū)和1條小區(qū)連接線。
3.1.3 站點設置
在VISUM軟件中,通過車站、站點區(qū)域與站點等3個層面的對象來描述1個車站的特征。站點定義了1條線路的始發(fā)或到達點,列車在此處停泊并完成上下客。站點區(qū)域描述了軌道交通線網(wǎng)中從到達節(jié)點進入站點以及站點間的通路等區(qū)域。車站是等級最高的對象,涵蓋車站的名稱以及其他全部的構(gòu)建屬性。車站包含整個站點區(qū)域集合,亦包含所有的站點。1個車站可以包含1個或多個站點區(qū)域。1個站點區(qū)域唯一從屬于1個車站,并可包含1個或多個站點。當1個車站包含多個站點區(qū)域時,1個車站內(nèi)的不同站點區(qū)域之間的步行時間可以用來描述換乘步行時間。本程序在節(jié)點位置建立對應的車站、站點區(qū)域以及站點三級對象,并從外部基礎數(shù)據(jù)中讀取車站信息,完成車站名稱、換乘步行時間等屬性的設置。
3.1.4 線路、線路路徑與時刻表的設置
在VISUM軟件中,列車運行的相關(guān)信息通過線路、線路路徑、行駛時刻表及車輛歷程等對象來進行描述。線路對象是1條或多條線路路徑和對應時刻表的集合,概括了1條線路的基本信息。線路路徑對象描述了線路在1個方向上的空間路徑,是1個交路上行或下行方向的列車??空军c的集合。行駛時刻表對象描述了1條線路路徑下各個車站的停站時間以及各個區(qū)間的行駛時間,但并不指定發(fā)車時間。車輛歷程對象是指1個行駛時刻表下的1趟車次,通過指定發(fā)車時間,并與行駛時刻表中包含的停站時間以及區(qū)間運行時間相結(jié)合,即可得到所有車站的到發(fā)時間。本程序根據(jù)外部基礎數(shù)據(jù)中的列車時刻表數(shù)據(jù),自動建立線路、線路路徑、行駛時刻表與車輛歷程等對象,并完成相關(guān)屬性的設置。
列車時刻表是描述所有列車始發(fā)、???終到站的站點信息,以及始發(fā)時間、到達時間、??繒r間等的表格。通常情況下,列車時刻表的單元格內(nèi)容為到發(fā)時間,1列表示1個車次,1行表示1座車站。根據(jù)實際的列車時刻表手動設置VISUM軟件中的停站方案與時刻表,這包含大量的重復性工作,因此,本程序需要實現(xiàn)軌道交通線路的停站方案的制定,以及時刻表的自動化設置。具體實現(xiàn)的技術(shù)流程主要包含以下兩個步驟。
3.1.4.1 線路停站方案識別
采用VISUM軟件仿真1條線路中列車的實際運行情況時,需設置好列車需要停靠的車站。1條軌交線路1個方向的1個停站方案對應VISUM軟件中的1個線路路徑對象。具體如下:創(chuàng)建1個空集合L用于存儲線路路徑。讀取列車時刻表中第1班車次對應的1列,創(chuàng)建1個新的線路路徑對象l0。依次讀取此列每個時刻表的數(shù)值,若不為空值就代表該班列車在當前停站方案下??看苏?將該車站的編號添加到l0中,直至該列的所有非空值讀取完畢。新建對象l1,取值為l0,將l1添加至L中,并初始化l0。讀取列車時刻表的下列,將該車次??寇囌镜木幪柼砑拥絣0中,并與L中所有線路路徑對比:若l0與l1一致,表示該車次屬于l1對應的停站方案;若l0與l1不一致,則新建對象l2,取值為l0,將l2添加至L中,并初始化l0。以此類推,對列車時刻表中的每列循環(huán)計算,即可確定1條線路的所有停站方案,以及每個車次與停站方案的對應關(guān)系。
3.1.4.2 列車時刻表建立
將列車到發(fā)時間輸入至線網(wǎng)供給方案模型。VISUM軟件中的行駛時刻表對象描述了1條線路路徑下列車在各個車站的停站時間,以及在各個區(qū)間的行駛時間,但并不指定發(fā)車時間。因此,需明確每個車次屬于1個停站方案下的某個停站時間方案。針對車次k,在式(1)中已經(jīng)確定了該車次對應的列車停站方案m,則在線路路徑對象lm下新建行駛時刻表對象p0。對于該車次??康能囌緄,停站時間的計算方法為:
tk,i,停=tk,i,發(fā)-tk,i,到
(1)
式中:
tk,i,?!嚧蝛的列車在車站i的停站時間;
tk,i,發(fā)——車次k的列車在車站i的發(fā)車時間;
tk,i,到——車次k的列車在車站i的到站時間。
列車從車站i至車站i+1的區(qū)間運行時間的計算方法為:
tk,i,運=tk,i+1,到-tk,i,發(fā)
(2)
式中:
tk,i,運——車次k的列車從車站i至車站i+1的區(qū)間運行時間;
tk,i+1,到——車次k的列車在車站i+1的到站時間;
tk,i,發(fā)——車次k的列車在車站i的發(fā)車時間。
依次計算k在每個??寇囌镜耐U緯r間和區(qū)間運行時間,并將其存儲在行駛時刻表對象p0中。比較p0與lm下的所有行駛時刻表對象,從而判斷k屬于哪種停站時間方案。
在VISUM軟件中確定了k的停站時間和區(qū)間運行時間后,若要確定該車次在所有停靠車站的到發(fā)時間,還需指定該車次的發(fā)車時間。設k屬于m下的停站時間方案s,則在lm的行駛時刻表對象ps下新建車輛歷程對象vk,指定其發(fā)車時間屬性為tk,1,發(fā)。至此,該車次在所有??寇囌镜牡桨l(fā)時間已經(jīng)確定。循環(huán)執(zhí)行以上步驟,就可以確定列車在每條線路每個停站方案每個方向上的到站和發(fā)車時間。
3.1.5 車輛編組設置
車輛編組信息可以通過車輛單元和車輛組合兩個對象進行描述。車輛單元是指1節(jié)車輛,車輛組合是由多節(jié)車輛單元組合成的列車編組。車輛單元包含座席數(shù)量與載客容量等屬性,車輛組合的這些屬性值等于車輛組合所包含的車輛單元的對應屬性值之和。本程序根據(jù)基礎數(shù)據(jù)中各條線路的列車編組信息,自動創(chuàng)建相應的車輛單元和車輛組合對象,并建立其與線路之間的聯(lián)系。
3.2.1 OD矩陣創(chuàng)建
需求矩陣描述了起點小區(qū)和終點小區(qū)之間的需求。OD矩陣中的數(shù)值代表起點小區(qū)和終點小區(qū)之間的出行量,是交通分配中不可或缺的部分。本程序以小區(qū)數(shù)量為維度創(chuàng)建OD矩陣,并讀取基礎數(shù)據(jù)中的OD矩陣數(shù)據(jù)。
3.2.2 需求組成部分與時間序列設置
需求組成部分是由采用同一種出行方式的乘客組成的集合。在分析時段內(nèi),出行需求的時間分布通過一個開始時間和一個需求時間序列來描述,即可以將分析時段劃分為更小的時間間隔,并指定每個時間間隔內(nèi)的需求占總需求的比例。本程序針對城軌線網(wǎng)客流進行分配時,將需求組成部分對應的交通方式設定為公共交通,并按照基礎數(shù)據(jù)中的乘客出行時間分布設置時間序列。
3.3.1 計算流程的建立
針對公交出行的建模,VISUM軟件提供了3種不同的公交分配方法,即基于交通系統(tǒng)的分配方法、基于發(fā)車頻率的分配方法和基于時刻表的分配方法。這3種方法所需的輸入數(shù)據(jù)不同,其結(jié)果的精度及計算時間也不同。對于已有時刻表信息的城軌線網(wǎng),本程序選擇基于時刻表的分配方法建立交通分配計算流程。
3.3.2 計算參數(shù)的設置
VISUM軟件構(gòu)建的交通分配計算模型,主要包括路徑搜索、路徑預選、路徑阻抗計算、路徑選擇等步驟。本程序從基礎數(shù)據(jù)中讀取參數(shù)設置信息,并依次對交通分配計算模型中的參數(shù)進行設置。
3.3.3 交通分配的計算
在完成計算流程的建立以及模型參數(shù)的設置后,本程序按照給定算法運行分配計算流程,從而得到計算結(jié)果。
本文以上海城軌線網(wǎng)為研究對象,分別通過手動方式和本文開發(fā)的自動化程序建立城軌線網(wǎng)客流分配模型,并進行客流分配工作。與手動方式相比,自動化計算程序的效率提升主要體現(xiàn)在以下方面:
1) 線網(wǎng)供給建模。在建立城軌線網(wǎng)客流分配模型時:手動方式下需在VISUM軟件中創(chuàng)建對象,并為每類對象創(chuàng)建自定義屬性并賦值,當需要進行方案比選時還需重復進行這些操作;而自動化計算程序可以自動地讀取建模所需數(shù)據(jù),并自動完成多方案的建模工作。
2) 線網(wǎng)需求建模。采用多個時段的OD矩陣進行交通分配,手動操作時需要逐一設置分配時段,并為每個時段添加矩陣。本程序可以自動按需讀取需求矩陣并將其導入模型。
3) 結(jié)果輸出與顯示。在導出交通分配計算結(jié)果時:手動操作方式下每次分配后需在線網(wǎng)、線路、路段、車站等多個層面創(chuàng)建列表,并為每個列表選取不同的字段;本程序可以通過讀取參數(shù)文件,按規(guī)則自動創(chuàng)建列表并導出至本地數(shù)據(jù)庫。在繪制計算結(jié)果趨勢圖時:手動操作方式下需為每張圖片設置圖形樣式,當需要顯示多個屬性時就會產(chǎn)生大量重復工作;本程序可以讀取預設的圖形參數(shù),自動繪制各種類型的圖片。
本文研究了城軌線網(wǎng)客流分配的自動化計算方法,并通過軟件二次開發(fā)編寫了基于VISUM軟件的城軌線網(wǎng)客流分配自動化計算程序。通過對實例的分析,采用該方法進行城軌線網(wǎng)客流分配評價指標的計算,不僅可以滿足評價所需的復雜的分析計算要求,而且提高了評價工作的效率。