穆亞倩,王 飛
(1.蘭州交通大學(xué) 光電技術(shù)與智能控制教育部重點實驗室,蘭州 730070;2.中鐵十一局集團 電務(wù)工程有限公司,武漢 430079)
研究與開發(fā)
基于時刻表的列車模擬運行的研究與設(shè)計
穆亞倩1,王 飛2
(1.蘭州交通大學(xué) 光電技術(shù)與智能控制教育部重點實驗室,蘭州 730070;2.中鐵十一局集團 電務(wù)工程有限公司,武漢 430079)
為了實現(xiàn)城市軌道交通的安全有效運輸,提出了一種適用于城市軌道交通列車運行時刻表的編制方法。把例如起始時間、終止時間等一些列車運行時所必需的數(shù)據(jù)以XML格式存儲在列車時刻表中,在對XML格式的時刻表數(shù)據(jù)進行解析時采用了較為方便有效的Tinyxml解析器,把解析出來的時刻表用于列車的模擬運行上。采用了定時器以獲得最新的時刻表數(shù)據(jù)。利用流程圖和VC++ 6.0詳細說明了列車時刻表模擬運行法的軟件實現(xiàn)過程,實現(xiàn)了ATS系統(tǒng)與聯(lián)鎖系統(tǒng)之間的有關(guān)時刻表和命令對信息的校核與傳遞。
城市軌道交通;時刻表;Tinyxml;列車模擬運行
在大中型城市的公共交通系統(tǒng)中,軌道交通系統(tǒng)正在扮演著重要的角色。一般來說,城市軌道交通系統(tǒng)有以下特點:單一旅客運輸方式、運行距離短、每日有運行高峰期、客流隨節(jié)假日波動比較大等;在設(shè)計上也有站間運行距離短、行車密度較高、行駛速度較快、安全性能要求高等特點[1]。
地鐵列車在運營時間上是按照一定的時刻表運行的。也就是說,列車運行圖和運營時刻表是城市軌道交通行車組織的計劃和基礎(chǔ)。文獻 [1]分析了列車自動監(jiān)控(ATS,Automatic Train Supervision)子系統(tǒng)中的時刻表和運行圖管理模塊,并實現(xiàn)了地鐵列車時刻表的自動編制和運行圖繪制功能。文獻 [2]對時刻表編輯系統(tǒng)和在線調(diào)整系統(tǒng)進行了研究與介紹。文獻 [3]研究了在列車時刻表的優(yōu)化和城市軌道交通的再生制動問題。
在這一背景下,本文提出了一種時刻表的編制方法并引用了 Tinyxml解析器 ,把解析出來的時刻表用于列車的模擬運行上。
列車時刻表是計劃列車到達、出發(fā)或通過車站的時刻以及在??空緢鰰r停留的時間的表格[2]。它為ATS系統(tǒng)中的列車自動運行提供了時間依據(jù),同時也是組織列車運行的基礎(chǔ)。時刻表描述了在一個給定的運行日內(nèi),計劃的所有的列車移動 (旅行 )的時刻標準和所有臨時速度的限制要求[3~5]。根據(jù)其作用特點可以分為基本運行時刻表、計劃運行時刻表和實際運行時刻表。
1.1 基本運行時刻表
基本列車時刻表規(guī)定了各次列車占用區(qū)間的順序 (車次號)、列車在一個車站到達和離開 (或通過 )的時刻、列車在區(qū)間的運行時間、列車在??寇囌镜耐U緯r間、折返站列車折返作業(yè)時間以及調(diào)車機車出入場的時間等[5~6]。
1.2 計劃運行時刻表
每日運營開始之前,根據(jù)當(dāng)日的運營計劃,系統(tǒng)會自動地從數(shù)據(jù)庫中選擇一個基本運行圖或時刻表作為當(dāng)日的計劃運行時刻表。或者調(diào)度員在調(diào)度員工作站上選擇適當(dāng)?shù)幕具\行時刻表,也可作為當(dāng)日的計劃運行時刻表。
無論哪種方式創(chuàng)建的計劃運行時刻表都會出現(xiàn)調(diào)度員確認的提示信息,經(jīng)調(diào)度員修改或確認后,ATS系統(tǒng)根據(jù)該計劃運行時刻表組織和實施當(dāng)日的列車運行計劃,并將該計劃顯示在控制中心的各個工作站上[5~6]。
1.3 實際運行時刻表
實際運行時刻表由ATS系統(tǒng)根據(jù)列車在各個車站及車站之間實際運行的情況自動生成的,其主要記錄了列車在每個車站的到發(fā)時刻以及在區(qū)間的運行時間,并將其在調(diào)度員工作站上顯示出來[6]。
列車時刻表編制前,需要人工地輸入一些基本數(shù)據(jù),包括列車在各個區(qū)間的運行時間、列車停站時間、列車折返時間等。這些輸入的數(shù)據(jù)必須介于標準值表里所定義的最大值和最小值之間,即最小值≤計劃數(shù)據(jù)≤最大值[7]。
在輸入以上數(shù)據(jù)后,還需要根據(jù)一天中的運營計劃確定列車的運行時段數(shù)、各運行時段的起始時間和結(jié)束時間 ,以及各時段的列車運行間隔和周期[7]。在此基礎(chǔ)上,可計算得出各時段的上線列車數(shù)。設(shè)某時段的列車運行間隔為H,周期為T,上線列車數(shù)為N,則有:
在以上數(shù)據(jù)的基礎(chǔ)上,選定運營所需要的折返模式,便可自動推定出列車時刻表并將之顯示出來。推定出時刻表的流程圖如圖1所示。
圖1 推定出時刻表的流程圖
依照列車運行時刻表 ,隨著時間的流逝 ,控制中心會不停獲取所有列車在各個區(qū)間內(nèi)的最新的運行數(shù)據(jù) ,它的核心目的是不停刷新更新列車時刻表 ,判斷各站之間運行線路上是否有新的列車出現(xiàn),把新出現(xiàn)的列車加入到對應(yīng)下一站的列車運行列表中,并啟動該站列車運行線程[8]。在列車運行過程中 ,根據(jù)列車的到達時刻和出發(fā)時刻來計算列車在本車站的??繒r間。當(dāng)此列車從該站完全通過時 , 此列車在該站的的運行線程結(jié)束,從該站的列車運行列表中刪除此列車。相應(yīng)地,此列車的運行線程會出現(xiàn)在下一站的列車運行時刻表中。由于這種監(jiān)控運行的方法不考慮列車在其它站的運行狀況,而只顯示在當(dāng)前車站區(qū)段內(nèi)的運行情況,所以它一般只適用于聯(lián)鎖車站的監(jiān)控。
另外,列車的運行時間和時刻表數(shù)據(jù)要實時地保持一致。因為列車的運行起始時刻和終止時刻都取決于時刻表,同時列車運行時間的變化也體現(xiàn)在列車時刻表的變化上;當(dāng)某列車在某站內(nèi)出現(xiàn)異常情況或者需要調(diào)整時,會生成新的時刻表,以便給后續(xù)列車提供新的準確的時刻表依據(jù)來運行[7~9]。
在列車時刻表模擬運行的建模中 , 車站、時刻表、命令對等單元都是一個個實體對象,這些對象不僅有自己的名稱和數(shù)據(jù)類型等基本屬性,而且相互之間也存在著一定的協(xié)調(diào)關(guān)系。這些實體對象及其之間的協(xié)調(diào)關(guān)系共同完成了列車時刻表的模擬運行[7]。下面是部分實例模型的具體設(shè)計。
(1)車站模型
屬性:本站車站站名,本站車站ID號,下站車站站名,下站車站ID號,上站車站站名,上站車站ID 號 ,股道 ID 號。
作用:站間聯(lián)鎖控制,故障設(shè)置。
(2)時刻表模型
屬性:列車車次號,股道 ID,接發(fā)車標志,某列車在上一站離開的時刻,某列車在本站到達的時刻,某列車在本站開出的時刻,某列車在下站到達的時刻等。
作用:列車車次號追蹤,時刻表調(diào)整等。
(3)命令對模型
屬性:股道 ID,接發(fā)車標志,始端按鈕 ID 號,終端按鈕 ID 號,上一車站的 ID 號,本車站的 ID 號等。
作用:進路辦理。
要保證實時有效地完成時刻表模擬運行任務(wù),在軟件上對總的模擬運行流程的設(shè)計是很重要的環(huán)節(jié),關(guān)鍵運行過程流程圖見圖2所示。本設(shè)計采用模塊化,下文對各模塊的內(nèi)容分別進行了詳細闡述。
圖2 關(guān)鍵運行過程流程圖
5.1 讀入推定的時刻表數(shù)據(jù)
在本次模擬中,首先需要將推定出的時刻表數(shù)據(jù)寫成XML形式的文件,其中,部分XML形式的時刻表文件如下:
在對時刻表文件解析時采用了 Tinyxml。Tinyxml是一個開源的解析 XML 的解析庫,能夠在Windows 或 Linux 中編譯 C++。這個解析庫通過解析XML文件,然后在內(nèi)存中生成DOM模型,從而很方便的遍歷這棵XML樹。DOM模型即文檔對象模型,是將整個文檔分成多個元素(如書、章、節(jié)、段等),并利用樹型結(jié)構(gòu)表示這些元素之間的順序關(guān)系以及嵌套包含關(guān)系。它最大的特點就是它很小,也很方便,添加 6 個文件(tinystr.h、tinyxml. h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp)到 C++ 工程后就可以靜態(tài)連接到程序里。它很適合如配置文件、數(shù)據(jù)文件等這類簡單文件的解析。Tinyxml實現(xiàn)的是 DOM 訪問模型,因此提供了一系列的類對應(yīng)XML文件中的各個節(jié)點。主要類間的定義如下。
TiXmlDocument:表示整個 XML 文檔,不對應(yīng)其中某個特定的節(jié)點。
TiXmlElement:表示元素節(jié)點,可以包含子節(jié)點和 TiXmlAttribute。
TiXmlComment:表示注釋。
TiXmlDeclaration:表示聲明。
TiXmlText:表示文本節(jié)點。
TiXmlUnknown:表示未知節(jié)點,通常是出錯了
計算機讀取并解析時刻表文件的流程圖如圖3所示。
圖3 解析時刻表流程圖
5.2 定時器處理過程
為了保證隨時解析讀取到的時刻表都是最新的,因此在基于時刻表的模擬運行中加入了定時器部分,設(shè)置定時器的間隔時間為 300 ms,即 300 ms 讀取一次最新的時刻表,定時器處理的流程圖如圖4所示。
圖4 定時器處理過程流程圖
5.3 查找下列列車到站的間隔時間
獲取到最新的基本時刻表后,需要從時刻表中讀取到所有的即將到站的列車中所需時間最短的那趟車的車次號及最短時間間隔等信息,其流程如下:
(1)定義一個時間差數(shù)組;
(2)獲取并讀出車站所有基本時刻表時間,并且獲取當(dāng)前時間,并且將兩個時間轉(zhuǎn)換為同一類型的時間;
(3)車站所有基本時刻表時間減去當(dāng)前時間,并把所得的差值放在定義好的時間差數(shù)組中;
(4)求出時間差數(shù)組中的最小差值,即為所需時間最短的那趟車的時間差,相應(yīng)地推算出該趟列車的車次號及??康恼久傻烂然拘畔?。
在控制中心調(diào)度臺上可以詳細地看到各個區(qū)間內(nèi)的列車到達下一站的時間間隔情況,并且當(dāng)定義定時器的時間間隔為 300 ms時,控制臺的最新的時間間隔消息會每隔 300 ms刷新一次,因此區(qū)間內(nèi)的每條列車到達下一站與當(dāng)前的時間間隔會呈現(xiàn)倒計時狀態(tài),實驗界面如圖 5 所示。
5.4 將辦理下條列車進路的指令自動發(fā)送給聯(lián)鎖系統(tǒng)
在本次列車運行仿真中,定義當(dāng)區(qū)間內(nèi)的某趟列車到達下一站時間與當(dāng)前的時間差減小到 3 min時,進路設(shè)定系統(tǒng)會自動地向聯(lián)鎖系統(tǒng)下發(fā)辦理進路的指令。
根據(jù)其來源于時刻表和列車運行調(diào)整系統(tǒng)的信息,自動進路設(shè)定系統(tǒng)會發(fā)出列車進路設(shè)置命令;根據(jù)其來源于控制中心的排列進路的指令,聯(lián)鎖系統(tǒng)負責(zé)實際的安全排列進路[10~12]。
圖5 實驗界面圖
聯(lián)鎖系統(tǒng)與ATS系統(tǒng)之間會進行命令的許可校核,當(dāng)許可校核得到否定結(jié)果時,聯(lián)鎖系統(tǒng)將向ATS系統(tǒng)回送一個相應(yīng)的信息,然后由 ATS系統(tǒng)重復(fù)傳輸相同的控制命令,直至達到規(guī)定的次數(shù)和時間為止[10~12]。此二者必須協(xié)同地相互配合和相互協(xié)調(diào),才能安全有效的完成列車基于時刻表運行的任務(wù)。
隨著城市軌道交通的快速發(fā)展,制作一個地鐵列車運行時刻表并依照此時刻表來運行并不是一件難事,但要制作一個把設(shè)備情況和運營情況能完美的結(jié)合起來的時刻表仍需繼續(xù)研究[13]。本文首先介紹列車時刻表的概述及分類。接著介紹一種適用于城市軌道交通列車運行時刻表的編制方法,給出了詳細的推定時刻表的流程。在解析時刻表時用到了TinyXml解析器,詳細介紹了 TinyXml的解析方法。最后介紹了列車時刻表模擬法,并把解析出來的時刻表用于模擬列車運行上。在本次模擬運行中主要采用流程圖和模塊化研究了列車時刻表模擬運行法的軟件實現(xiàn)過程,完成了聯(lián)鎖系統(tǒng)與ATS系統(tǒng)之間有關(guān)時刻表信息和命令對信息的傳遞。其中,對 ATS子系統(tǒng)時刻表編制及模擬運行尚有許多內(nèi)容值得進一步研究 ,部分實際因素并沒有全部考慮進去 ,例如聯(lián)鎖系統(tǒng)與 ATS系統(tǒng)之間如何快速準確地完成許可校核、運行圖的自動調(diào)整問題等,都值得在以后的學(xué)習(xí)中繼續(xù)深入研究。
[1] 白 鑫 . 城市軌道交通信號系統(tǒng)關(guān)鍵技術(shù)研究 [D].成都:西南交通大學(xué) , 2000:67-70.
[2] 王堅強 . 城市軌道交通時刻表編輯系統(tǒng)及在線調(diào)整系統(tǒng)研究與設(shè)計 [D].成都:西南交通大學(xué) , 2010:5-8.
[3] 趙 樂 . 基于再生制動的地鐵列車時刻表優(yōu)化模型與算法研究 [D]. 北京:北京交通大學(xué),2014:7-8 .
[4] 中國建筑工業(yè)出版社 .城市公共交通規(guī)范 [M]. 北京:中國建筑工業(yè)出版社 , 1997.
[5] 朱美超 . 城市軌道交通時刻表編輯器的設(shè)計與實現(xiàn) [D]. 南京:南京理工大學(xué) , 2008:15.
[6] 張雁鵬,黨建武,邢建平 . 城市軌道交通列車自動監(jiān)督時刻表管理設(shè)計系統(tǒng) [J]. 城市軌道交通研究,2013(10):48-52.
[7] 畢瑩玉 . 上海地鐵列車運行建模及仿真 [D]. 上海:同濟大學(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] 劉伯鴻,李國寧 . 城市軌道交通信號 [M]. 成都:西南交通大學(xué)出版社,2011:94-95.
[11] 林瑜筠,呂永昌 . 計算機聯(lián)鎖 [M].北京:中國鐵道出版社,2007:34.
[12] 徐 飛,陳浩然 . 廣州地鐵一號線列車運行控制的特點及實現(xiàn)方法 [J]. 地鐵與輕軌 , 1997(2):26-29.
[13] 李玉寶,鐘毅強 . 地鐵系統(tǒng)時刻表編輯器淺析 [J]. 鐵道通信信號 , 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é)基金項目(1212RJZA046)。
穆亞倩,在讀碩士研究生;王 飛,助理工程師。