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