吳玲英
(上海申通地鐵集團(tuán)有限公司軌道交通培訓(xùn)中心,201102,上海∥工程師)
我國(guó)城市軌道交通正處于快速發(fā)展階段,就上海而言,有多家外國(guó)公司參與了上海軌道交通的建設(shè)。上海軌道交通1號(hào)線采用了美國(guó)GRS公司(現(xiàn)為ALSTOM公司的一部分)的列車自動(dòng)控制(ATC)系統(tǒng),2號(hào)線采用了美國(guó)USS公司的技術(shù),6、8、9號(hào)線則采用阿爾卡特的基于通信的列車控制(CBTC)系統(tǒng)。各公司的站場(chǎng)數(shù)據(jù)格式不同、站場(chǎng)仿真界面不同、仿真功能不同,這就需要開(kāi)發(fā)多套仿真系統(tǒng),以達(dá)到對(duì)上崗或者在崗人員的培訓(xùn)目的。站場(chǎng)圖是仿真系統(tǒng)的主視圖,在統(tǒng)一數(shù)據(jù)格式下自動(dòng)生成各類制式的站場(chǎng)圖將縮短仿真系統(tǒng)的開(kāi)發(fā)周期。
站場(chǎng)圖由信號(hào)機(jī)、道岔、軌道、站臺(tái)等站場(chǎng)設(shè)備圖形組成。這些設(shè)備元素之間存在著邏輯關(guān)系。圖1所示為上海軌道交通3號(hào)線的一段站場(chǎng)圖。
圖1 設(shè)備圖形與站場(chǎng)拓?fù)浣Y(jié)構(gòu)的對(duì)應(yīng)關(guān)系
站場(chǎng)圖的繪制,就是要確定各個(gè)設(shè)備圖形的位置坐標(biāo)。在站場(chǎng)圖的坐標(biāo)體系中,首先要確定的是道岔的坐標(biāo)位置。道岔構(gòu)成了站場(chǎng)的整體框架,對(duì)應(yīng)于站場(chǎng)拓?fù)浣Y(jié)構(gòu)中的節(jié)點(diǎn)。軌道連接了兩個(gè)離散的道岔,軌道的Y坐標(biāo)由所連接的道岔Y坐標(biāo)確定,軌道的X坐標(biāo)根據(jù)軌道在道岔間的位置偏移量確定,對(duì)應(yīng)于站場(chǎng)拓?fù)浣Y(jié)構(gòu)的邊。信號(hào)機(jī)、站臺(tái)等站場(chǎng)設(shè)備元素的坐標(biāo),由其所隸屬的軌道坐標(biāo)確定。
通過(guò)對(duì)站場(chǎng)圖結(jié)構(gòu)的分析,將站場(chǎng)數(shù)據(jù)結(jié)構(gòu)分為定位層、設(shè)備對(duì)象層兩層(圖2所示為站場(chǎng)數(shù)據(jù)的層次結(jié)構(gòu))。
1)定位層:站場(chǎng)拓?fù)鋱D抽象出了站場(chǎng)的整體形狀。如圖2所示,站場(chǎng)圖的設(shè)備坐標(biāo)基于站場(chǎng)拓?fù)鋱D的點(diǎn)邊坐標(biāo)。此層用拓?fù)鋱D定位站場(chǎng)設(shè)備位置。
2)設(shè)備對(duì)象層:此層將站場(chǎng)中的每個(gè)設(shè)備看作獨(dú)立的對(duì)象,將不同制式站場(chǎng)設(shè)備的共性概括出來(lái),作為各對(duì)象的基類,再繼承基類的數(shù)據(jù)結(jié)構(gòu),擴(kuò)展出具體制式站場(chǎng)設(shè)備的數(shù)據(jù)結(jié)構(gòu)。
圖2 站場(chǎng)數(shù)據(jù)的層次結(jié)構(gòu)
站場(chǎng)信息采用XML純文本存儲(chǔ)。XML是一種簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)語(yǔ)言,使用一系列簡(jiǎn)單的標(biāo)記描述數(shù)據(jù),其層次結(jié)構(gòu)清晰,易于讀寫與共享。泰雷茲公司的上海軌道交通8號(hào)線列車自動(dòng)監(jiān)控(ATS)仿真系統(tǒng)即采用XML存儲(chǔ)站場(chǎng)數(shù)據(jù)。
以下是采用XML純文本保存的信號(hào)機(jī)的數(shù)據(jù)結(jié)構(gòu)。
<Signal>
<ID>4101</ID>
<Name>XA</Name>
<EdgeID>3</EdgeID>
<Displacement>200000</Displacement>
<Direction>1</Direction>
<TerritoryID>1</TerritoryID>
</Signal>
其中,標(biāo)記<EdgeID>存儲(chǔ)了信號(hào)機(jī)所在邊的ID(編號(hào)),標(biāo)記<Displacement>存儲(chǔ)了信號(hào)機(jī)在所在邊上的偏移量,標(biāo)記<Direction>存儲(chǔ)了信號(hào)機(jī)的方向。
圖3顯示了站場(chǎng)數(shù)據(jù)實(shí)體間的關(guān)系:信號(hào)機(jī)(Signal)實(shí)體中JJQD、FirstQD字段代表了信號(hào)機(jī)的前后設(shè)備,道岔(Switch)實(shí)體中的 ConPre、ConDW、ConFW字段代表了道岔岔前、定位、反位連接的設(shè)備,軌道(Track)ConLeft、ConRight字段代表軌道左右連接的設(shè)備。
圖3 數(shù)據(jù)庫(kù)連接關(guān)系圖
根據(jù)不同線路的ATS系統(tǒng)的特點(diǎn),開(kāi)發(fā)不同的組件,形成組件庫(kù),以解決不同系統(tǒng)對(duì)相同部件表現(xiàn)形式上的差異[1-3]。
構(gòu)建站場(chǎng)圖組件的首要任務(wù)是設(shè)計(jì)其組件屬性。本文站場(chǎng)圖組件屬性分為靜態(tài)屬性和動(dòng)態(tài)屬性兩類。靜態(tài)屬性主要指設(shè)計(jì)組件時(shí)可修改,但當(dāng)站場(chǎng)圖繪制完成時(shí)就不可修改的一類屬性;動(dòng)態(tài)屬性主要指設(shè)計(jì)組件時(shí)無(wú)需設(shè)置,在站場(chǎng)圖的仿真運(yùn)行過(guò)程中可不斷改變的屬性。以上海軌道交通8號(hào)線信號(hào)機(jī)組件為例,其屬性可按如下設(shè)置:① 靜態(tài)屬性包含信號(hào)機(jī)名稱、信號(hào)機(jī)標(biāo)簽、信號(hào)機(jī)位置等;② 動(dòng)態(tài)屬性包含以限速前行狀態(tài)、引導(dǎo)狀態(tài)、未知狀態(tài),故障狀態(tài)等。
站場(chǎng)圖的組件定義如下:
class CL8SignalCtrl:public COleControl ∥信號(hào)機(jī)組件定義
{…}
其中,COleControl類封裝了 MFC(面向?qū)ο螅┑腁ctiveX控件。所有組件都由此類派生。
信號(hào)機(jī)組件屬性定義的MIDL代碼如下:
dispinterface_DL8Signal ∥信號(hào)機(jī)組件
{
properties: ∥靜態(tài)屬性
[id(6)]BSTR Name; ∥信號(hào)機(jī)名稱
[id(3)]BSTR Tag; ∥信號(hào)機(jī)標(biāo)簽
[id(1)]short Location; ∥信號(hào)機(jī)位置
∥動(dòng)態(tài)屬性
[id(2)]short State; ∥信號(hào)機(jī)狀態(tài)
[id(4)]boolean Fault; ∥信號(hào)機(jī)故障
[id(5)]boolean Approach; ∥信號(hào)機(jī)接近
…
};
目前ATS仿真系統(tǒng)的站場(chǎng)圖主要通過(guò)組件的人工拼接完成。在拼接過(guò)程中,需要設(shè)置組件的屬性,以及組件與組件之間的位置關(guān)系。不同制式ATS仿真系統(tǒng)的站場(chǎng)組件又有所差異,故采用拼接方式的工作量將很大。對(duì)組件屬性與組件位置的自動(dòng)設(shè)置,將簡(jiǎn)化站場(chǎng)圖生成過(guò)程。
據(jù)上所述,站場(chǎng)拓?fù)鋱D的點(diǎn)對(duì)應(yīng)道岔,邊對(duì)應(yīng)軌道。站場(chǎng)圖繪制的步驟是先繪制道岔,再繪制軌道、信號(hào)機(jī)、站臺(tái)。拓?fù)漤旤c(diǎn)的度數(shù)為3的點(diǎn)即表示道岔,因此構(gòu)造拓?fù)鋱D的鄰接矩陣。在無(wú)向圖中,任一頂點(diǎn)n的度為第n列所有元素的和。兩個(gè)道岔的斜股在同一斜邊上,那么這兩個(gè)道岔就是雙動(dòng)道岔,否則為單動(dòng)道岔。軌道、信號(hào)機(jī)、站臺(tái)根據(jù)所在邊的偏移量繪制。圖4為站場(chǎng)圖繪制流程。
列車仿真運(yùn)行時(shí),根據(jù)設(shè)備的前后關(guān)系繪制列車的位置。當(dāng)列車跨越區(qū)段時(shí),需要知道下一區(qū)段的信息,這就要生成組件的前后關(guān)系。采用分治的思想,先根據(jù)每條拓?fù)溥?,將該拓?fù)溥吷系能壍溃蒟坐標(biāo)從小到大依次排序,再由道岔與各邊上的首尾軌道確定前后關(guān)系。信號(hào)機(jī)、站臺(tái)的前后關(guān)系由所屬的軌道確定。這樣整個(gè)站場(chǎng)圖的設(shè)備關(guān)系就生成了。
圖4 站場(chǎng)圖繪制流程
為了生成不同制式的站場(chǎng)圖,首先要有各制式完備的站場(chǎng)組件庫(kù),然后結(jié)合站場(chǎng)拓?fù)鋱D、站場(chǎng)自動(dòng)生成算法,生成站場(chǎng)圖。圖5所示為自動(dòng)生成的上海軌道交通3號(hào)線的一段站場(chǎng)圖,圖6所示為自動(dòng)生成的上海軌道交通8號(hào)線的一段站場(chǎng)圖。
圖5 上海軌道交通3號(hào)線的一段站場(chǎng)圖
上述站場(chǎng)圖的自動(dòng)生成方法是研究了不同制式站場(chǎng)圖的共性,并結(jié)合站場(chǎng)圖結(jié)構(gòu)特性,給出自動(dòng)生成的算法。此方法的實(shí)現(xiàn),為開(kāi)發(fā)人員省去了組件配置及位置關(guān)系人工錄入的步驟,簡(jiǎn)化了此類仿真系統(tǒng)主視圖的開(kāi)發(fā)過(guò)程,為快速開(kāi)發(fā)列車運(yùn)行仿真培訓(xùn)系統(tǒng)奠定了基礎(chǔ)。
圖6 上海軌道交通8號(hào)線的一段站場(chǎng)圖
[1]段繼華,劉衛(wèi).組件化技術(shù)在程序設(shè)計(jì)中的應(yīng)用[J].無(wú)線電通信技術(shù),2003,29(1):57.
[2]王野,郭秀清.基于組件技術(shù)的列車自動(dòng)監(jiān)控仿真系統(tǒng)開(kāi)發(fā)平臺(tái)[J].計(jì)算機(jī)應(yīng)用,2007,27(增2):285.
[3]宇鵬,王曉峰,李云飛.Visual C++實(shí)踐與提高——ActiveX篇[M].北京:中國(guó)鐵道出版社,2001.