穆亞倩,王 飛
(1.蘭州交通大學(xué) 光電技術(shù)與智能控制教育部重點(diǎn)實(shí)驗(yàn)室,蘭州 730070;2.中鐵十一局集團(tuán) 電務(wù)工程有限公司,武漢 430079)
研究與開(kāi)發(fā)
基于時(shí)刻表的列車模擬運(yùn)行的研究與設(shè)計(jì)
穆亞倩1,王 飛2
(1.蘭州交通大學(xué) 光電技術(shù)與智能控制教育部重點(diǎn)實(shí)驗(yàn)室,蘭州 730070;2.中鐵十一局集團(tuán) 電務(wù)工程有限公司,武漢 430079)
為了實(shí)現(xiàn)城市軌道交通的安全有效運(yùn)輸,提出了一種適用于城市軌道交通列車運(yùn)行時(shí)刻表的編制方法。把例如起始時(shí)間、終止時(shí)間等一些列車運(yùn)行時(shí)所必需的數(shù)據(jù)以XML格式存儲(chǔ)在列車時(shí)刻表中,在對(duì)XML格式的時(shí)刻表數(shù)據(jù)進(jìn)行解析時(shí)采用了較為方便有效的Tinyxml解析器,把解析出來(lái)的時(shí)刻表用于列車的模擬運(yùn)行上。采用了定時(shí)器以獲得最新的時(shí)刻表數(shù)據(jù)。利用流程圖和VC++ 6.0詳細(xì)說(shuō)明了列車時(shí)刻表模擬運(yùn)行法的軟件實(shí)現(xiàn)過(guò)程,實(shí)現(xiàn)了ATS系統(tǒng)與聯(lián)鎖系統(tǒng)之間的有關(guān)時(shí)刻表和命令對(duì)信息的校核與傳遞。
城市軌道交通;時(shí)刻表;Tinyxml;列車模擬運(yùn)行
在大中型城市的公共交通系統(tǒng)中,軌道交通系統(tǒng)正在扮演著重要的角色。一般來(lái)說(shuō),城市軌道交通系統(tǒng)有以下特點(diǎn):?jiǎn)我宦每瓦\(yùn)輸方式、運(yùn)行距離短、每日有運(yùn)行高峰期、客流隨節(jié)假日波動(dòng)比較大等;在設(shè)計(jì)上也有站間運(yùn)行距離短、行車密度較高、行駛速度較快、安全性能要求高等特點(diǎn)[1]。
地鐵列車在運(yùn)營(yíng)時(shí)間上是按照一定的時(shí)刻表運(yùn)行的。也就是說(shuō),列車運(yùn)行圖和運(yùn)營(yíng)時(shí)刻表是城市軌道交通行車組織的計(jì)劃和基礎(chǔ)。文獻(xiàn) [1]分析了列車自動(dòng)監(jiān)控(ATS,Automatic Train Supervision)子系統(tǒng)中的時(shí)刻表和運(yùn)行圖管理模塊,并實(shí)現(xiàn)了地鐵列車時(shí)刻表的自動(dòng)編制和運(yùn)行圖繪制功能。文獻(xiàn) [2]對(duì)時(shí)刻表編輯系統(tǒng)和在線調(diào)整系統(tǒng)進(jìn)行了研究與介紹。文獻(xiàn) [3]研究了在列車時(shí)刻表的優(yōu)化和城市軌道交通的再生制動(dòng)問(wèn)題。
在這一背景下,本文提出了一種時(shí)刻表的編制方法并引用了 Tinyxml解析器 ,把解析出來(lái)的時(shí)刻表用于列車的模擬運(yùn)行上。
列車時(shí)刻表是計(jì)劃列車到達(dá)、出發(fā)或通過(guò)車站的時(shí)刻以及在??空緢?chǎng)時(shí)停留的時(shí)間的表格[2]。它為ATS系統(tǒng)中的列車自動(dòng)運(yùn)行提供了時(shí)間依據(jù),同時(shí)也是組織列車運(yùn)行的基礎(chǔ)。時(shí)刻表描述了在一個(gè)給定的運(yùn)行日內(nèi),計(jì)劃的所有的列車移動(dòng) (旅行 )的時(shí)刻標(biāo)準(zhǔn)和所有臨時(shí)速度的限制要求[3~5]。根據(jù)其作用特點(diǎn)可以分為基本運(yùn)行時(shí)刻表、計(jì)劃運(yùn)行時(shí)刻表和實(shí)際運(yùn)行時(shí)刻表。
1.1 基本運(yùn)行時(shí)刻表
基本列車時(shí)刻表規(guī)定了各次列車占用區(qū)間的順序 (車次號(hào))、列車在一個(gè)車站到達(dá)和離開(kāi) (或通過(guò) )的時(shí)刻、列車在區(qū)間的運(yùn)行時(shí)間、列車在停靠車站的停站時(shí)間、折返站列車折返作業(yè)時(shí)間以及調(diào)車機(jī)車出入場(chǎng)的時(shí)間等[5~6]。
1.2 計(jì)劃運(yùn)行時(shí)刻表
每日運(yùn)營(yíng)開(kāi)始之前,根據(jù)當(dāng)日的運(yùn)營(yíng)計(jì)劃,系統(tǒng)會(huì)自動(dòng)地從數(shù)據(jù)庫(kù)中選擇一個(gè)基本運(yùn)行圖或時(shí)刻表作為當(dāng)日的計(jì)劃運(yùn)行時(shí)刻表。或者調(diào)度員在調(diào)度員工作站上選擇適當(dāng)?shù)幕具\(yùn)行時(shí)刻表,也可作為當(dāng)日的計(jì)劃運(yùn)行時(shí)刻表。
無(wú)論哪種方式創(chuàng)建的計(jì)劃運(yùn)行時(shí)刻表都會(huì)出現(xiàn)調(diào)度員確認(rèn)的提示信息,經(jīng)調(diào)度員修改或確認(rèn)后,ATS系統(tǒng)根據(jù)該計(jì)劃運(yùn)行時(shí)刻表組織和實(shí)施當(dāng)日的列車運(yùn)行計(jì)劃,并將該計(jì)劃顯示在控制中心的各個(gè)工作站上[5~6]。
1.3 實(shí)際運(yùn)行時(shí)刻表
實(shí)際運(yùn)行時(shí)刻表由ATS系統(tǒng)根據(jù)列車在各個(gè)車站及車站之間實(shí)際運(yùn)行的情況自動(dòng)生成的,其主要記錄了列車在每個(gè)車站的到發(fā)時(shí)刻以及在區(qū)間的運(yùn)行時(shí)間,并將其在調(diào)度員工作站上顯示出來(lái)[6]。
列車時(shí)刻表編制前,需要人工地輸入一些基本數(shù)據(jù),包括列車在各個(gè)區(qū)間的運(yùn)行時(shí)間、列車停站時(shí)間、列車折返時(shí)間等。這些輸入的數(shù)據(jù)必須介于標(biāo)準(zhǔn)值表里所定義的最大值和最小值之間,即最小值≤計(jì)劃數(shù)據(jù)≤最大值[7]。
在輸入以上數(shù)據(jù)后,還需要根據(jù)一天中的運(yùn)營(yíng)計(jì)劃確定列車的運(yùn)行時(shí)段數(shù)、各運(yùn)行時(shí)段的起始時(shí)間和結(jié)束時(shí)間 ,以及各時(shí)段的列車運(yùn)行間隔和周期[7]。在此基礎(chǔ)上,可計(jì)算得出各時(shí)段的上線列車數(shù)。設(shè)某時(shí)段的列車運(yùn)行間隔為H,周期為T,上線列車數(shù)為N,則有:
在以上數(shù)據(jù)的基礎(chǔ)上,選定運(yùn)營(yíng)所需要的折返模式,便可自動(dòng)推定出列車時(shí)刻表并將之顯示出來(lái)。推定出時(shí)刻表的流程圖如圖1所示。
圖1 推定出時(shí)刻表的流程圖
依照列車運(yùn)行時(shí)刻表 ,隨著時(shí)間的流逝 ,控制中心會(huì)不停獲取所有列車在各個(gè)區(qū)間內(nèi)的最新的運(yùn)行數(shù)據(jù) ,它的核心目的是不停刷新更新列車時(shí)刻表 ,判斷各站之間運(yùn)行線路上是否有新的列車出現(xiàn),把新出現(xiàn)的列車加入到對(duì)應(yīng)下一站的列車運(yùn)行列表中,并啟動(dòng)該站列車運(yùn)行線程[8]。在列車運(yùn)行過(guò)程中 ,根據(jù)列車的到達(dá)時(shí)刻和出發(fā)時(shí)刻來(lái)計(jì)算列車在本車站的??繒r(shí)間。當(dāng)此列車從該站完全通過(guò)時(shí) , 此列車在該站的的運(yùn)行線程結(jié)束,從該站的列車運(yùn)行列表中刪除此列車。相應(yīng)地,此列車的運(yùn)行線程會(huì)出現(xiàn)在下一站的列車運(yùn)行時(shí)刻表中。由于這種監(jiān)控運(yùn)行的方法不考慮列車在其它站的運(yùn)行狀況,而只顯示在當(dāng)前車站區(qū)段內(nèi)的運(yùn)行情況,所以它一般只適用于聯(lián)鎖車站的監(jiān)控。
另外,列車的運(yùn)行時(shí)間和時(shí)刻表數(shù)據(jù)要實(shí)時(shí)地保持一致。因?yàn)榱熊嚨倪\(yùn)行起始時(shí)刻和終止時(shí)刻都取決于時(shí)刻表,同時(shí)列車運(yùn)行時(shí)間的變化也體現(xiàn)在列車時(shí)刻表的變化上;當(dāng)某列車在某站內(nèi)出現(xiàn)異常情況或者需要調(diào)整時(shí),會(huì)生成新的時(shí)刻表,以便給后續(xù)列車提供新的準(zhǔn)確的時(shí)刻表依據(jù)來(lái)運(yùn)行[7~9]。
在列車時(shí)刻表模擬運(yùn)行的建模中 , 車站、時(shí)刻表、命令對(duì)等單元都是一個(gè)個(gè)實(shí)體對(duì)象,這些對(duì)象不僅有自己的名稱和數(shù)據(jù)類型等基本屬性,而且相互之間也存在著一定的協(xié)調(diào)關(guān)系。這些實(shí)體對(duì)象及其之間的協(xié)調(diào)關(guān)系共同完成了列車時(shí)刻表的模擬運(yùn)行[7]。下面是部分實(shí)例模型的具體設(shè)計(jì)。
(1)車站模型
屬性:本站車站站名,本站車站ID號(hào),下站車站站名,下站車站ID號(hào),上站車站站名,上站車站ID 號(hào) ,股道 ID 號(hào)。
作用:站間聯(lián)鎖控制,故障設(shè)置。
(2)時(shí)刻表模型
屬性:列車車次號(hào),股道 ID,接發(fā)車標(biāo)志,某列車在上一站離開(kāi)的時(shí)刻,某列車在本站到達(dá)的時(shí)刻,某列車在本站開(kāi)出的時(shí)刻,某列車在下站到達(dá)的時(shí)刻等。
作用:列車車次號(hào)追蹤,時(shí)刻表調(diào)整等。
(3)命令對(duì)模型
屬性:股道 ID,接發(fā)車標(biāo)志,始端按鈕 ID 號(hào),終端按鈕 ID 號(hào),上一車站的 ID 號(hào),本車站的 ID 號(hào)等。
作用:進(jìn)路辦理。
要保證實(shí)時(shí)有效地完成時(shí)刻表模擬運(yùn)行任務(wù),在軟件上對(duì)總的模擬運(yùn)行流程的設(shè)計(jì)是很重要的環(huán)節(jié),關(guān)鍵運(yùn)行過(guò)程流程圖見(jiàn)圖2所示。本設(shè)計(jì)采用模塊化,下文對(duì)各模塊的內(nèi)容分別進(jìn)行了詳細(xì)闡述。
圖2 關(guān)鍵運(yùn)行過(guò)程流程圖
5.1 讀入推定的時(shí)刻表數(shù)據(jù)
在本次模擬中,首先需要將推定出的時(shí)刻表數(shù)據(jù)寫成XML形式的文件,其中,部分XML形式的時(shí)刻表文件如下:
在對(duì)時(shí)刻表文件解析時(shí)采用了 Tinyxml。Tinyxml是一個(gè)開(kāi)源的解析 XML 的解析庫(kù),能夠在Windows 或 Linux 中編譯 C++。這個(gè)解析庫(kù)通過(guò)解析XML文件,然后在內(nèi)存中生成DOM模型,從而很方便的遍歷這棵XML樹(shù)。DOM模型即文檔對(duì)象模型,是將整個(gè)文檔分成多個(gè)元素(如書、章、節(jié)、段等),并利用樹(shù)型結(jié)構(gòu)表示這些元素之間的順序關(guān)系以及嵌套包含關(guān)系。它最大的特點(diǎn)就是它很小,也很方便,添加 6 個(gè)文件(tinystr.h、tinyxml. h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp)到 C++ 工程后就可以靜態(tài)連接到程序里。它很適合如配置文件、數(shù)據(jù)文件等這類簡(jiǎn)單文件的解析。Tinyxml實(shí)現(xiàn)的是 DOM 訪問(wèn)模型,因此提供了一系列的類對(duì)應(yīng)XML文件中的各個(gè)節(jié)點(diǎn)。主要類間的定義如下。
TiXmlDocument:表示整個(gè) XML 文檔,不對(duì)應(yīng)其中某個(gè)特定的節(jié)點(diǎn)。
TiXmlElement:表示元素節(jié)點(diǎn),可以包含子節(jié)點(diǎn)和 TiXmlAttribute。
TiXmlComment:表示注釋。
TiXmlDeclaration:表示聲明。
TiXmlText:表示文本節(jié)點(diǎn)。
TiXmlUnknown:表示未知節(jié)點(diǎn),通常是出錯(cuò)了
計(jì)算機(jī)讀取并解析時(shí)刻表文件的流程圖如圖3所示。
圖3 解析時(shí)刻表流程圖
5.2 定時(shí)器處理過(guò)程
為了保證隨時(shí)解析讀取到的時(shí)刻表都是最新的,因此在基于時(shí)刻表的模擬運(yùn)行中加入了定時(shí)器部分,設(shè)置定時(shí)器的間隔時(shí)間為 300 ms,即 300 ms 讀取一次最新的時(shí)刻表,定時(shí)器處理的流程圖如圖4所示。
圖4 定時(shí)器處理過(guò)程流程圖
5.3 查找下列列車到站的間隔時(shí)間
獲取到最新的基本時(shí)刻表后,需要從時(shí)刻表中讀取到所有的即將到站的列車中所需時(shí)間最短的那趟車的車次號(hào)及最短時(shí)間間隔等信息,其流程如下:
(1)定義一個(gè)時(shí)間差數(shù)組;
(2)獲取并讀出車站所有基本時(shí)刻表時(shí)間,并且獲取當(dāng)前時(shí)間,并且將兩個(gè)時(shí)間轉(zhuǎn)換為同一類型的時(shí)間;
(3)車站所有基本時(shí)刻表時(shí)間減去當(dāng)前時(shí)間,并把所得的差值放在定義好的時(shí)間差數(shù)組中;
(4)求出時(shí)間差數(shù)組中的最小差值,即為所需時(shí)間最短的那趟車的時(shí)間差,相應(yīng)地推算出該趟列車的車次號(hào)及??康恼久?,股道名等基本信息。
在控制中心調(diào)度臺(tái)上可以詳細(xì)地看到各個(gè)區(qū)間內(nèi)的列車到達(dá)下一站的時(shí)間間隔情況,并且當(dāng)定義定時(shí)器的時(shí)間間隔為 300 ms時(shí),控制臺(tái)的最新的時(shí)間間隔消息會(huì)每隔 300 ms刷新一次,因此區(qū)間內(nèi)的每條列車到達(dá)下一站與當(dāng)前的時(shí)間間隔會(huì)呈現(xiàn)倒計(jì)時(shí)狀態(tài),實(shí)驗(yàn)界面如圖 5 所示。
5.4 將辦理下條列車進(jìn)路的指令自動(dòng)發(fā)送給聯(lián)鎖系統(tǒng)
在本次列車運(yùn)行仿真中,定義當(dāng)區(qū)間內(nèi)的某趟列車到達(dá)下一站時(shí)間與當(dāng)前的時(shí)間差減小到 3 min時(shí),進(jìn)路設(shè)定系統(tǒng)會(huì)自動(dòng)地向聯(lián)鎖系統(tǒng)下發(fā)辦理進(jìn)路的指令。
根據(jù)其來(lái)源于時(shí)刻表和列車運(yùn)行調(diào)整系統(tǒng)的信息,自動(dòng)進(jìn)路設(shè)定系統(tǒng)會(huì)發(fā)出列車進(jìn)路設(shè)置命令;根據(jù)其來(lái)源于控制中心的排列進(jìn)路的指令,聯(lián)鎖系統(tǒng)負(fù)責(zé)實(shí)際的安全排列進(jìn)路[10~12]。
圖5 實(shí)驗(yàn)界面圖
聯(lián)鎖系統(tǒng)與ATS系統(tǒng)之間會(huì)進(jìn)行命令的許可校核,當(dāng)許可校核得到否定結(jié)果時(shí),聯(lián)鎖系統(tǒng)將向ATS系統(tǒng)回送一個(gè)相應(yīng)的信息,然后由 ATS系統(tǒng)重復(fù)傳輸相同的控制命令,直至達(dá)到規(guī)定的次數(shù)和時(shí)間為止[10~12]。此二者必須協(xié)同地相互配合和相互協(xié)調(diào),才能安全有效的完成列車基于時(shí)刻表運(yùn)行的任務(wù)。
隨著城市軌道交通的快速發(fā)展,制作一個(gè)地鐵列車運(yùn)行時(shí)刻表并依照此時(shí)刻表來(lái)運(yùn)行并不是一件難事,但要制作一個(gè)把設(shè)備情況和運(yùn)營(yíng)情況能完美的結(jié)合起來(lái)的時(shí)刻表仍需繼續(xù)研究[13]。本文首先介紹列車時(shí)刻表的概述及分類。接著介紹一種適用于城市軌道交通列車運(yùn)行時(shí)刻表的編制方法,給出了詳細(xì)的推定時(shí)刻表的流程。在解析時(shí)刻表時(shí)用到了TinyXml解析器,詳細(xì)介紹了 TinyXml的解析方法。最后介紹了列車時(shí)刻表模擬法,并把解析出來(lái)的時(shí)刻表用于模擬列車運(yùn)行上。在本次模擬運(yùn)行中主要采用流程圖和模塊化研究了列車時(shí)刻表模擬運(yùn)行法的軟件實(shí)現(xiàn)過(guò)程,完成了聯(lián)鎖系統(tǒng)與ATS系統(tǒng)之間有關(guān)時(shí)刻表信息和命令對(duì)信息的傳遞。其中,對(duì) ATS子系統(tǒng)時(shí)刻表編制及模擬運(yùn)行尚有許多內(nèi)容值得進(jìn)一步研究 ,部分實(shí)際因素并沒(méi)有全部考慮進(jìn)去 ,例如聯(lián)鎖系統(tǒng)與 ATS系統(tǒng)之間如何快速準(zhǔn)確地完成許可校核、運(yùn)行圖的自動(dòng)調(diào)整問(wèn)題等,都值得在以后的學(xué)習(xí)中繼續(xù)深入研究。
[1] 白 鑫 . 城市軌道交通信號(hào)系統(tǒng)關(guān)鍵技術(shù)研究 [D].成都:西南交通大學(xué) , 2000:67-70.
[2] 王堅(jiān)強(qiáng) . 城市軌道交通時(shí)刻表編輯系統(tǒng)及在線調(diào)整系統(tǒng)研究與設(shè)計(jì) [D].成都:西南交通大學(xué) , 2010:5-8.
[3] 趙 樂(lè) . 基于再生制動(dòng)的地鐵列車時(shí)刻表優(yōu)化模型與算法研究 [D]. 北京:北京交通大學(xué),2014:7-8 .
[4] 中國(guó)建筑工業(yè)出版社 .城市公共交通規(guī)范 [M]. 北京:中國(guó)建筑工業(yè)出版社 , 1997.
[5] 朱美超 . 城市軌道交通時(shí)刻表編輯器的設(shè)計(jì)與實(shí)現(xiàn) [D]. 南京:南京理工大學(xué) , 2008:15.
[6] 張雁鵬,黨建武,邢建平 . 城市軌道交通列車自動(dòng)監(jiān)督時(shí)刻表管理設(shè)計(jì)系統(tǒng) [J]. 城市軌道交通研究,2013(10):48-52.
[7] 畢瑩玉 . 上海地鐵列車運(yùn)行建模及仿真 [D]. 上海:同濟(jì)大學(xué),2008:48-51.
[8] 李永軍 . 地鐵 ATS 系統(tǒng)仿真研究 [D]. 北京:北京交通大學(xué) , 2005.
[9] 李永軍,唐禎敏 . 地鐵調(diào)度監(jiān)督系統(tǒng)的仿真研究 [J]. 現(xiàn)代城市軌道交通 , 2004(4):30-32.
[10] 劉伯鴻,李國(guó)寧 . 城市軌道交通信號(hào) [M]. 成都:西南交通大學(xué)出版社,2011:94-95.
[11] 林瑜筠,呂永昌 . 計(jì)算機(jī)聯(lián)鎖 [M].北京:中國(guó)鐵道出版社,2007:34.
[12] 徐 飛,陳浩然 . 廣州地鐵一號(hào)線列車運(yùn)行控制的特點(diǎn)及實(shí)現(xiàn)方法 [J]. 地鐵與輕軌 , 1997(2):26-29.
[13] 李玉寶,鐘毅強(qiáng) . 地鐵系統(tǒng)時(shí)刻表編輯器淺析 [J]. 鐵道通信信號(hào) , 2012(1):38-40.
責(zé)任編輯 徐侃春
Research and design of train simulated running process of train based on train timetable schedule
MU Yaqian1, WANG Fei2
( 1.Key Laboratory of Opto-Electronic Technology and Intelligent Control of the Ministry of Education, Lanzhou Jiaotong University, Lanzhou 730070, China; 2. China Railway Eleven Bureau Group Signal and Communication Engineering Co. Ltd, Wuhan 430079, China )
In order to implement eff i cient and safe transport for Urban Transit, this paper put forward a method of drawing up train timetable which was suitable for it. The data such as the start-time and the end-time were stored in XML format and then parsed by the TinyXml which was very convenient and eff i cient. The parsed data were used on the train simulated the running process. The timer was used to ensure the latest data. In the paper, the software implemented process of train simulated running was introduced in detail by using program f l ow chart and VC + +6.0. It was implemented the checking and transferring about train timetable and command between ATS and interlock system.
Urban Transit; time table; Tinyxml; train simulated running
U292∶TP39
:A
1005-8451(2015)03-0001-05
2014-08-18
甘肅省自然科學(xué)基金項(xiàng)目(1212RJZA046)。
穆亞倩,在讀碩士研究生;王 飛,助理工程師。