房 晨,郭 進(jìn)
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院, 成都 610031)
CTCS2是基于軌道電路的列車運行控制系統(tǒng),系統(tǒng)的信號設(shè)計過程復(fù)雜,需要通過大量試驗,不斷完善。傳統(tǒng)的方法是通過大量的現(xiàn)場跑車來完善,這樣既給鐵路運輸帶來不便,又產(chǎn)生大量試驗成本。而通過計算機(jī)仿真技術(shù)進(jìn)行模擬實驗,具有經(jīng)濟(jì)、安全和試驗周期短等特點。
客運專線CTCS2仿真系統(tǒng),是由西南交通大學(xué)交通信息工程及控制鐵道部重點實驗室開發(fā)的基于CTCS2的軟件仿真平臺。該仿真系統(tǒng)以合肥—南京客運專線的永寧站—肥東站為仿真對象,以施工及設(shè)計單位提供的基礎(chǔ)數(shù)據(jù)為仿真依據(jù),實現(xiàn)對CTCS2列車控制系統(tǒng)各部分的功能、性能、技術(shù)條件的數(shù)字化模擬與測試。仿真系統(tǒng)由4部分組成:車載仿真子系統(tǒng),地面設(shè)備仿真子系統(tǒng),數(shù)據(jù)庫管理子系統(tǒng)以及控制中心仿真子系統(tǒng)。
控制中心子系統(tǒng)完成整個站場的圖形顯示和設(shè)備狀態(tài)顯示,完成列車運行顯示、故障設(shè)置、臨時限速設(shè)置、進(jìn)路操作、自動化運行、統(tǒng)計分析工作,具有歷史數(shù)據(jù)回放功能。由于控制中心子系統(tǒng)具有宏觀顯示以及與其他子系統(tǒng)信息交互的功能特點,因此首先需要建立仿真對象的拓?fù)浣Y(jié)構(gòu)來描述信號設(shè)備(包括信號機(jī)、軌道區(qū)段、道岔、應(yīng)答器)的固有屬性及其邏輯關(guān)系。根據(jù)施工設(shè)計單位提供的基礎(chǔ)數(shù)據(jù)制作控制中心初始化輸入數(shù)據(jù)表單,控制中心子系統(tǒng)通過將表單讀入靜態(tài)數(shù)據(jù)庫,后續(xù)程序?qū)?shù)據(jù)庫中的有用信息讀入內(nèi)存生成線路及車站拓?fù)鋽?shù)據(jù)結(jié)構(gòu),從而計算出區(qū)間閉塞和進(jìn)路信息。數(shù)據(jù)流程如圖1。

圖1 控制中心數(shù)據(jù)流程圖
將仿真對象抽象成3層:圖形層、拓?fù)鋵雍碗姎鈱印D形層由鋪畫線路和站場的底層圖形單元構(gòu)成,包括:線段,圓形,三角形等;拓?fù)鋵邮欠抡鎸ο笸負(fù)浣Y(jié)構(gòu)及邏輯關(guān)系的抽象,包括頂點(文中站內(nèi)的頂點又稱為節(jié)點)和邊;電氣層是聯(lián)鎖閉塞的電氣基礎(chǔ),包括:信號機(jī)、道岔、軌道區(qū)段、應(yīng)答器和進(jìn)路。模型的層次結(jié)構(gòu)如圖2。

圖2 數(shù)據(jù)模型層次結(jié)構(gòu)
(1)數(shù)據(jù)存儲方式。系統(tǒng)采用表單文件和數(shù)據(jù)庫兩種數(shù)據(jù)存儲方式,表單文件主要用于存儲控制中心仿真子系統(tǒng)的初始化輸入數(shù)據(jù),主要包括圖形顯示、設(shè)備屬性和相互關(guān)系的基本信息。數(shù)據(jù)庫存儲作為程序操作的數(shù)據(jù)源,具有操作靈活的特點,用來支持控制中心仿真子系統(tǒng)的運行。
(2)數(shù)據(jù)管理一體化。系統(tǒng)將對電氣層元素的屬性數(shù)據(jù)(元素的固有屬性、運行狀態(tài)和與其他元素的關(guān)系)和圖形層數(shù)據(jù)進(jìn)行統(tǒng)一管理,使它們成為互為映射的整體,也就是每一個電氣層的元素在線路和站場鋪畫圖中的拓?fù)湮恢镁鶎?yīng)著相關(guān)的屬性信息。
(3)面向?qū)ο蟮臄?shù)據(jù)模型設(shè)計。本仿真系統(tǒng)的研究對象是設(shè)計5個車站4個區(qū)間的復(fù)雜系統(tǒng),包括了CTCS2級列車控制系統(tǒng)所有主要模塊和設(shè)備,傳統(tǒng)的數(shù)據(jù)模型很難處理這樣的復(fù)雜對象,而面向?qū)ο蟮臄?shù)據(jù)模型無論對多復(fù)雜的數(shù)據(jù)都可以準(zhǔn)確地用一個對象來表示,對象的屬性以及對對象的操作可以分別封裝成類的成員變量和成員方法,這樣可以極大地加強(qiáng)軟件的封裝性,提高開發(fā)效率。
表單使用Excel電子表格軟件設(shè)計和制作。設(shè)計分為線路表單設(shè)計和車站表單設(shè)計。線路表單內(nèi)容包括整條線路的基本信息;而車站表單每個車站各有一張,內(nèi)容具體到每個車站的基本信息。
作為線路整體的初始化數(shù)據(jù),設(shè)計了信號點、軌道區(qū)段數(shù)據(jù)表及應(yīng)答器數(shù)據(jù)表,表格式如圖3和圖4。圖中羅列了信號點、軌道區(qū)段、應(yīng)答器可能被用到的所有信息。

圖3 信號點、軌道區(qū)段數(shù)據(jù)表結(jié)構(gòu)

圖4 應(yīng)答器數(shù)據(jù)表結(jié)構(gòu)
站內(nèi)數(shù)據(jù)表分為進(jìn)路數(shù)據(jù)表、信號機(jī)表、道岔表、區(qū)段表,這些都是構(gòu)成站場圖形和聯(lián)鎖功能的必要數(shù)據(jù)。進(jìn)路數(shù)據(jù)表的表結(jié)構(gòu)如圖5。進(jìn)路數(shù)據(jù)表的內(nèi)容與設(shè)計單位繪制的聯(lián)鎖表內(nèi)容一致,提供了詳盡的進(jìn)路信息,通過對該表數(shù)據(jù)的讀取,可實現(xiàn)站場的任意進(jìn)路的聯(lián)鎖邏輯。

圖5 進(jìn)路數(shù)據(jù)表結(jié)構(gòu)
信號機(jī)表、道岔表、區(qū)段表按照數(shù)據(jù)結(jié)構(gòu)中線性表的格式進(jìn)行設(shè)計,每個表在具備自己獨有特性的基礎(chǔ)上彼此相互聯(lián)系,鏈接成站場的網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)。表結(jié)構(gòu)分別如圖6、圖7和圖8。

圖6 站內(nèi)信號機(jī)表結(jié)構(gòu)

圖7 站內(nèi)道岔表結(jié)構(gòu)

圖8 站內(nèi)軌道區(qū)段表結(jié)構(gòu)
將站場抽象為一個點,那么整條專線就是一個連通圖。圖G是由有限非空集合V及其二元子集E構(gòu)成,其中V中元素稱為頂點,E中元素稱為邊;集合V和E分別成為G的頂點集和邊集。圖G實際上是一個有序的二元組,記為G =(V,E)。在處理圖的時候,通常把2元集{u,v}簡寫成uv(或者vu)。如果uv是圖G的邊,那么就稱u和v在G中是鄰接的。G中的頂點數(shù)和邊數(shù)分別稱為該圖的階和邊數(shù)。本仿真系統(tǒng)的仿真線路由5個車站4個區(qū)間組成,如果將車站抽象為頂點,那么V={永寧鎮(zhèn),全椒,黃庵,巢北,肥東},如果將區(qū)間抽象為邊,那么E可以看成V的二元子集,即E={永寧鎮(zhèn)至全椒下行區(qū)間,全椒至黃庵下行區(qū)間,黃庵至巢北下行區(qū)間,巢北至肥東下行區(qū)間,肥東至巢北上行區(qū)間,巢北至黃庵上行區(qū)間,黃庵至全椒上行區(qū)間,全椒至永寧鎮(zhèn)上行區(qū)間},因此,仿真線路G的階數(shù)為5,邊數(shù)為8,表明由上、下行各4個區(qū)間,共8個區(qū)間構(gòu)成。G的拓?fù)浣Y(jié)構(gòu)如圖9。

圖9 線路的拓?fù)浣Y(jié)構(gòu)
為此,設(shè)計區(qū)間軌道區(qū)段類、區(qū)間信號機(jī)類和應(yīng)答器類即可完成線路數(shù)據(jù)結(jié)構(gòu)的定義。
4.2.1 站場數(shù)據(jù)結(jié)構(gòu)的選擇
根據(jù)聯(lián)鎖軟件的數(shù)據(jù)結(jié)構(gòu)理論,站場數(shù)據(jù)結(jié)構(gòu)分為兩種:總進(jìn)路表式數(shù)據(jù)結(jié)構(gòu)和站場形數(shù)據(jù)結(jié)構(gòu)。兩者的主要區(qū)別是產(chǎn)生進(jìn)路方式不同,前者以人工或半自動方式窮舉所有進(jìn)路,后者則根據(jù)站場節(jié)點間的鏈接關(guān)系自動搜索進(jìn)路。前者的缺點是:對于比較大的站場,進(jìn)路數(shù)量龐大,編制總進(jìn)路表繁瑣易出錯,且需隨站場的改建而更新。后者的優(yōu)點是自動化程度高。
但是考慮與行車指揮平臺連接時,要能完全按照行車指揮的意圖辦理特定的進(jìn)路。目前仿真系統(tǒng)采用的是總進(jìn)路表結(jié)構(gòu),優(yōu)點是能選出與行車指揮平臺意圖完全一致的進(jìn)路,不會受到因為采用站場形數(shù)據(jù)結(jié)構(gòu)時由于搜索規(guī)則的不同而選出不一致進(jìn)路的情況發(fā)生。為將來程序擴(kuò)展及模塊化修改考慮,在定義站場設(shè)備節(jié)點數(shù)據(jù)結(jié)構(gòu)時參考站場形數(shù)據(jù)結(jié)構(gòu)的方式,設(shè)置了節(jié)點間鏈接屬性,不影響總進(jìn)路表結(jié)構(gòu)時的處理,能預(yù)留接口。
4.2.2 站場數(shù)據(jù)結(jié)構(gòu)定義
(1)車站類定義。車站擁有自己固有的屬性:名稱、車站長度、起始公里標(biāo)、起始屏幕顯示坐標(biāo)等;車站是站內(nèi)設(shè)備的“容器”,應(yīng)當(dāng)擁有站場設(shè)備的存儲空間。在仿真實現(xiàn)過程中,筆者使用了VC6.0集成編譯環(huán)境中的MFC基礎(chǔ)類庫(Microsoft Foundation Classes)所提供的CArray動態(tài)數(shù)組類來實現(xiàn)站場設(shè)備存儲。使用CArray動態(tài)數(shù)組原因是:站場中的設(shè)備對象存儲需要用到復(fù)雜的數(shù)組結(jié)構(gòu),并希望能動態(tài)管理;CArray
(2)站場設(shè)備節(jié)點定義。站場設(shè)備主要包含信號機(jī),道岔,軌道電路區(qū)段,侵限絕緣軌道區(qū)段。屬于不同類型的設(shè)備,但在站場圖中都表現(xiàn)出站場節(jié)點這一基本屬性。因此在這一層次上所有設(shè)備節(jié)點是有共性的。
節(jié)點數(shù)據(jù)結(jié)構(gòu)的定義,采用面向?qū)ο蟮脑O(shè)計思想,將站場中的設(shè)備封裝成類,設(shè)備的屬性狀態(tài)對應(yīng)類的成員變量,對設(shè)備的操作對應(yīng)類的成員函數(shù)。仿真程序中設(shè)計了1個站場設(shè)備基類和3個設(shè)備子類。基類抽象了站場設(shè)備的共有屬性和操作,3個子類分別對應(yīng)站場3大件:信號機(jī)、道岔、軌道區(qū)段,對這些類進(jìn)行實例化,就形成了仿真數(shù)據(jù)中的節(jié)點。
本系統(tǒng)根據(jù)站場情況,設(shè)計了4個類:站場設(shè)備基類CStaDevBase,信號機(jī)類CMyStaSignal,道岔類CMyStaSwitch,軌道區(qū)段類CMyStaSection。
使用Visual C++ 6.0和Access2003編程實現(xiàn)了控制中心仿真子系統(tǒng)的界面程序,通過在Intel Pentium IV 1.8 G/內(nèi)存512 M微機(jī)上的單機(jī)運行,線路和戰(zhàn)場鋪畫正確,界面顯示友好,并能和其它子系統(tǒng)進(jìn)行初步的通信和聯(lián)調(diào),證明了本文描述的數(shù)據(jù)結(jié)構(gòu)設(shè)計的正確性和有效性。
[1]嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)[M]. 北京:清華大學(xué)出版社,1996:156-169.
[2]趙志熙.車站信號控制系統(tǒng)[M]. 北京:中國鐵道出版社,2006:165-170.
[3]GARY CHARTRAND.圖論導(dǎo)引[M].北京:人民郵電出版社,2007:1-158.
[4]金 鑫. 鐵路站場配置圖生成系統(tǒng)設(shè)計與實現(xiàn)[J].鐵道運輸與經(jīng)濟(jì),2004(1):1-3.
[5]于雙元. 基于GIS的鐵路車站信號設(shè)備管理系統(tǒng)設(shè)計與實現(xiàn)途徑[J]. 北方交通大學(xué)學(xué)報,2000,24(3):25-33.