鄒少文
(中鐵二院工程集團有限責任公司,610031,成都∥高級工程師)
視景仿真技術(shù)被廣泛應(yīng)用于模擬駕駛以及列車運行場景的展示與測試。在軌道交通仿真領(lǐng)域,目前多采用Creator進行場景建模,以Vega[1]進行視景驅(qū)動,其優(yōu)點是模型及其控制邏輯代碼可高度定制,但缺點也較明顯,如工具使用麻煩、代碼偏向底層、開發(fā)難度大等,創(chuàng)建出的模型與線路環(huán)境也難以復用。本文以 MSTS(Microsoft Train Simulation)的文件資源為實現(xiàn)基礎(chǔ),基于.Net平臺的XNA技術(shù)框架作為開發(fā)環(huán)境,利用MSTS良好的開源特性以及XNA套件快速開發(fā)的能力,在該平臺快速、準確地完成了對虛擬線路場景的搭建,將仿真重心從搭建虛擬環(huán)境本身轉(zhuǎn)移到利用該虛擬環(huán)境,完成對城市軌道交通現(xiàn)實運營場景的模擬。
在虛擬線路環(huán)境場景中,主要包括地理環(huán)境模型、氣候模型、聲音模型、動態(tài)模型、靜態(tài)模型、粒子系統(tǒng)等。MSTS提供了功能強大的線路編輯器,且支持第三方模型的導入,結(jié)合其豐富的模型庫及優(yōu)良的開源特性,通過地形數(shù)據(jù)導入[1]、軌道鋪設(shè),并根據(jù)現(xiàn)實場景,對照相關(guān)工程圖紙進行布景,即可完成對虛擬線路的搭建;且線路場景可根據(jù)后期需求進行更改,線路中的模型也可隨意替換,具有較高的復用性與可替換性。
信號機作為指導列車安全、高效運行的重要信號設(shè)備,在該虛擬線路場景中,對信號機顯示狀態(tài)和顯示邏輯的仿真測試是該仿真平臺的一項重要仿真功能。在虛擬線路的正線區(qū)段中,將信號機模型放置在進出站口、道岔前方、站間區(qū)間,即可完成信號系統(tǒng)的基礎(chǔ)搭建,如圖1所示。此外,要根據(jù)信號機前方區(qū)間是否空閑或前方道岔的定、反位狀態(tài),設(shè)置信號機的顯示狀態(tài)與顯示邏輯。有些變量如車輛是否出清區(qū)段,需要在列車運行過程中實時計算得出,即通過編程手段獲取,MSTS編輯器并未給出較好的支持,特別是不能滿足在CBTC(基于通信的列車控制)模式下地面信號機的正確顯示。這使得虛擬線路中的信號系統(tǒng)不能很好地得到應(yīng)用,為后面列車在虛擬線路中運行時信號機的正確顯示帶來不便,影響仿真結(jié)果的正確性。
圖1 信號機模型的放置示意
本文對城市軌道交通仿真線路中的地面信號機,在CBTC模式下的狀態(tài)顯示進行了探討。依據(jù)平臺現(xiàn)有條件模擬CBTC模式,地面信號機采用常態(tài)點燈方案,聯(lián)鎖系統(tǒng)根據(jù)移動授權(quán)對地面信號機進行驅(qū)動,在移動授權(quán)范圍內(nèi)的地面信號機均為允許信號。特別是,在本線路中,通過一個閉塞分區(qū)即相鄰兩個順向通過信號機之間的軌道區(qū)段模擬一個計軸區(qū)段。一個計軸區(qū)段可劃分為多個虛擬邏輯區(qū)段。在CBTC模式下,同一計軸區(qū)段中允許多輛列車進行追蹤運行,列車之間的安全距離通過仿真車載設(shè)備實時計算來保證。若在降級模式下,一個計軸區(qū)段(閉塞分區(qū))中只允許一列列車運行。
在模擬仿真CBTC模式下,仿真線路中的地面信號機通過ATS(列車自動監(jiān)控)系統(tǒng)進行監(jiān)控。由于虛擬線路環(huán)境中并不存在“區(qū)段”這一概念,因此在相關(guān)數(shù)據(jù)庫中,存儲了全線的位置坐標信息,包括對虛擬邏輯區(qū)段的位置劃分。列車在運行過程中通過實時查詢數(shù)據(jù)庫獲取當前位置,并向ATS系統(tǒng)轉(zhuǎn)發(fā)包括自身位置在內(nèi)的各項列車運行狀態(tài)信息。ATS系統(tǒng)通過對列車位置的監(jiān)督,結(jié)合進路信息與移動授權(quán)信息,通過創(chuàng)建的相關(guān)功能接口,向虛擬線路發(fā)送對應(yīng)點燈命令,以實現(xiàn)信號機的正確顯示。其具體實現(xiàn)過程及原理如下文所述。
在MSTS中,通過替換信號機模型不同燈位上的貼圖實現(xiàn)顯示狀態(tài)的改變。在MSTS底層的sigcfg.dat信號機狀態(tài)顯示腳本文件中,每一類信號機的狀態(tài)顯示和顯示意義都有明確定義。以圖1中的出站矮柱三顯示信號機為例,該腳本定義了該信號機的類型SignalType,狀態(tài)顯示使用貼圖Signal-LightTex、信號顯示引導方向SignalAspects、顯示狀態(tài)分類SignalLights以及對應(yīng)每一類狀態(tài)顯示的燈位顯示SignalDrawStates。按照規(guī)定的腳本語言格式,對該腳本文件進行修改,甚至完全重寫,可對信號機的狀態(tài)顯示進行重定義。例如在南方某些地區(qū)的城市軌道交通信號系統(tǒng)中,將白色燈光的意義等同于黃色燈光。在針對這類具體場景進行仿真時,就可直接修改對應(yīng)的狀態(tài)顯示腳本實現(xiàn)該需求。
對該信號機顯示腳本的修改,豐富了模型的使用場景,避免了重新制作相應(yīng)信號機模型的工作,提升了仿真的工作效率。
信號機狀態(tài)顯示的確定與信號機具體的使用場景直接相關(guān),特別對采用不同閉塞方案的信號系統(tǒng),其信號機的狀態(tài)顯示與含義也有明顯差異。在MSTS中,sigscr.dat腳本文件定義了所有信號機的顯示邏輯。以三顯示信號機為例,在sigscr.dat腳本中定義了該信號機的顯示邏輯,其中一個關(guān)鍵的變量是next_state,即前方信號機狀態(tài)。若信號機防護后方存在道岔時,則還與道岔的定、反位狀態(tài)存在聯(lián)鎖關(guān)系(如側(cè)向時顯示黃燈)。
通過對sigscr.dat腳本中對應(yīng)信號機類型的顯示邏輯進行修改或調(diào)整,可以使信號機按具體的仿真場景要求進行顯示。
在城市軌道交通中,三顯示的信號機已基本滿足CBTC模式下信號顯示的需求。但是,為了拓寬本平臺中信號系統(tǒng)的仿真應(yīng)用場景,如對鐵路信號系統(tǒng)的信號機顯示進行模擬,則需對上述兩個腳本文件進行相應(yīng)的修改甚至重寫,使虛擬線路場景中信號系統(tǒng)得到更為廣泛的應(yīng)用,也為后期滿足城市軌道交通中可能出現(xiàn)的特殊信號顯示提供必要的技術(shù)支持和技術(shù)儲備?,F(xiàn)在通過將區(qū)間三顯示信號機的顯示制式變?yōu)樗娘@示[3]為例,僅對平臺中信號機的顯示狀態(tài)和顯示邏輯的調(diào)整進行一般性說明。其過程如下:
(1)增加一組顯示狀態(tài):四顯示與三顯示相比,多了一組“綠黃”燈位顯示,因此在sigcfg.dat腳本文件對應(yīng)信號機類型的SignalLights屬性中增加一類顯示,且添加相應(yīng)的燈位顯示SignalDrawStates。
(2)調(diào)整顯示邏輯:信號機的燈位顯示含義和原有三顯示相比已發(fā)生變化,因此在sigscr.dat腳本的邏輯判斷中,新增一個條件分支用于判斷“綠黃”燈位顯示,并對其他燈位的顯示邏輯進行調(diào)整。四顯示燈位顯示狀態(tài)及顯示邏輯依據(jù)表1調(diào)整。最終四顯示實現(xiàn)效果如圖2所示。
表1 四顯示自動閉塞分區(qū)區(qū)間信號機顯示
圖2 區(qū)間通過信號機四顯示狀態(tài)圖
上述信號機顯示的改變僅是對平臺中信號機顯示狀態(tài)與顯示邏輯的調(diào)整進行了仿真與驗證,為今后復雜的信號顯示提供了實現(xiàn)的基礎(chǔ)。實際的城市軌道交通中,并未采用四顯示制式。
僅通過MSTS中的聯(lián)鎖邏輯文件,很難體現(xiàn)信號機、道岔與進路之間的聯(lián)鎖關(guān)系。特別是多輛列車在同一條線路中進行仿真運行時,已無法滿足正確顯示的要求。尤其在CBTC模式下,對于不同列車對應(yīng)的移動授權(quán)范圍內(nèi)的信號機,其顯示邏輯的確定也比較復雜,需要結(jié)合列車當前位置去不斷地判斷,而原有信號控制邏輯已不能滿足要求。因此,通過創(chuàng)建相關(guān)接口[4],讓外部系統(tǒng)(如車站聯(lián)鎖系統(tǒng)、ATS系統(tǒng))對線路中的道岔、信號機進行控制,是讓虛擬線路中信號系統(tǒng)繼續(xù)正常工作的重要解決途徑,可保證仿真效果的正確性與真實性。
在創(chuàng)建接口前,該虛擬線路環(huán)境是封閉的。若要外部系統(tǒng)實現(xiàn)對虛擬環(huán)境中信號設(shè)備或車輛的控制,必須創(chuàng)建通信接口實現(xiàn)數(shù)據(jù)交互?!敖涌凇笔且粋€寬泛的概念,這里指的是Socket通信的一端。根據(jù)制定的通信協(xié)議與對應(yīng)的功能函數(shù),可將接口分為地面設(shè)備接口、車載設(shè)備接口與其他系統(tǒng)的接口等。這里的地面設(shè)備接口包括了對信號機、道岔、站臺屏蔽門等可控模型的處理。通過接口,ATS系統(tǒng)可與虛擬線路場景進行數(shù)據(jù)交互,通過對應(yīng)接口功能函數(shù)實現(xiàn)對相關(guān)模型進行控制。其原理如圖3所示。
圖3 接口功能實現(xiàn)原理圖
在本平臺中,信號機控制命令生成主要有兩類場景:一類是ATS系統(tǒng)在進路自動排列或取消過程中,會對進路始端、終端信號機的狀態(tài)進行調(diào)整,從而生成對應(yīng)的信號機控制命令。另一類是當CBTC系統(tǒng)計算出列車對應(yīng)的移動授權(quán)中包含某些信號機時,該信號機狀態(tài)設(shè)置為允許信號;當計算得出前方信號機為移動授權(quán)終點時,則該信號機設(shè)置為禁行信號。
對于第一類場景:當ATS系統(tǒng)發(fā)送信號設(shè)備操作命令前,ATS系統(tǒng)的聯(lián)鎖邏輯模塊會對該命令的合法性,如對敵對信號是否開放、敵對進路是否辦理等進行檢測,只有滿足聯(lián)鎖條件的命令才會被發(fā)送;當虛擬線路接收到ATS系統(tǒng)發(fā)送的信號機或道岔操作命令時,根據(jù)制定的通信協(xié)議與對應(yīng)的接口功能函數(shù)(如DealSignalCommand()、DealSwitchCommand()),三維場景中的信號機、道岔按命令動作,并將設(shè)備的當前狀態(tài)反饋給ATS系統(tǒng),模擬實現(xiàn)了ATS系統(tǒng)對線路場景中信號設(shè)備的監(jiān)控功能,并且在大屏監(jiān)控界面給出對應(yīng)界面顯示。ATS系統(tǒng)對地面設(shè)備操作流程如圖4所示。進路控制命令即是多個信號機和道岔操作命令的組合。關(guān)鍵代碼如下:
public void DealCommand()
{
ConCmd Cmd=ControlCmd;
switch(Cmd.ObjectName)
{
case"SIG"://信號機
DealSignalCommand(Cmd.ObjectID,Cmd.ObjectState);
break;
case"SWI"://道岔
DealSwitchCommand(Cmd.ObjectID,Cmd.ObjectState);
break;
default:
break;
}
}
圖4 ATS系統(tǒng)對地面設(shè)備操作流程
對于第二類場景:在CBTC模式下,由于對每一列列車的移動授權(quán)在列車運行過程中是動態(tài)變化的,后行列車移動授權(quán)的終點與前行列車的位置密切相關(guān)在本平臺中,因此可通過車站設(shè)備對列車當前位置進行實時查詢,并將位置等相關(guān)信息經(jīng)過數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器發(fā)送至ATS系統(tǒng);再根據(jù)ATP(列車自動防護)仿真模塊實時計算出兩列相鄰列車的位置間隔,并查詢相關(guān)數(shù)據(jù)庫,確定列車的移動授權(quán)范圍,檢查后行列車的移動授權(quán)范圍內(nèi)是否包含信號機。若包含,則通過ATS系統(tǒng)向?qū)?yīng)信號機發(fā)送允許信號;若不包含,則隨著列車位置移動,后行列車的移動授權(quán)不斷向前延伸,當延伸至對應(yīng)信號機為移動授權(quán)終點時,通過ATS系統(tǒng)向該信號機發(fā)送禁行信號。列車周期性查詢自身位置信息的流程如圖5所示。
圖5 列車位置查詢
當ATS系統(tǒng)實現(xiàn)進路自動排列[5]時,如果符合進路辦理條件,則會依據(jù)圖4所示發(fā)送對應(yīng)進路控制命令;虛擬線路場景在接受到該命令后,根據(jù)通信協(xié)議,調(diào)用相關(guān)功能函數(shù),完成進路的排列(如圖5所示)。此時進路始端信號機開放亮綠燈,進路中道岔狀態(tài)轉(zhuǎn)換至指定位置。
當列車在區(qū)間中運行時,根據(jù)對應(yīng)列車的移動授權(quán)范圍,確定對應(yīng)區(qū)間通過信號機的狀態(tài)顯示。對于前行列車,其移動授權(quán)終點在該信號機后方,即該信號機在前行列車的移動授權(quán)范圍內(nèi),信號機顯示允許信號。當前行列車越過該信號機,且還未進入前方閉塞分區(qū)的下一個虛擬邏輯區(qū)段時,后車的移動授權(quán)終點延伸至該信號機,該信號機顯示禁行信號(如圖6右側(cè)所示)。
通過對本仿真平臺中信號機底層腳本文件的修改與外部接口的創(chuàng)建,解決了信號系統(tǒng)在虛擬線路場景中無法正確工作的問題。利用本文描述的方法,提高了信號機模型的利用效率,根據(jù)具體場景對腳本進行修改,結(jié)合外部系統(tǒng)如ATS系統(tǒng),基本實現(xiàn)了對城市軌道交通信號系統(tǒng)工作狀態(tài)的模擬,保證了地面信號機顯示的正確性。當然,對于移動授權(quán)的計算,由于目前沒有獨立的仿真區(qū)域控制器,在算法上做得相對簡單,但能夠滿足基本仿真需求。該功能和聯(lián)鎖功能一樣,目前都暫由ATS仿真系統(tǒng)實現(xiàn),后期會將該功能獨立為一個單獨的系統(tǒng)。通過該方式,不僅可對城市軌道交通的信號系統(tǒng)進行仿真模擬,還可針對鐵路、輕軌、有軌電車等軌道交通線路的信號系統(tǒng)進行仿真模擬,并可保證仿真結(jié)果的正確性和可靠性,滿足了仿真要求。特別是利用創(chuàng)建的相關(guān)接口,除了能夠?qū)π盘枡C、道岔狀態(tài)進行控制外,還可對列車的運行狀態(tài)進行遠程控制,為ATO(列車自動運行)功能的仿真提供實現(xiàn)基礎(chǔ),從而可更加全面地完成城市軌道交通信號系統(tǒng)的仿真與模擬。
圖6 進路排列示意實景圖
[1] 徐恩,李學軍,鄒紅霞,等.基于Creator/VP的三維虛擬環(huán)境建模[J].系統(tǒng)仿真學報,2009(S1):121.
[2] 楊城,陳榮武,王懷松.基于MSTS與DEM數(shù)據(jù)的線路地形仿真與實現(xiàn)[J].系統(tǒng)仿真技術(shù),2015(4):323.
[3] 李京梅.淺談三顯示與四顯示區(qū)間自動閉塞信號顯示的區(qū)別[J].鐵路通信信號設(shè)計,2002(3):35.
[4] 楊城,陳榮武,王懷松.基于MSTS的三維仿真演示系統(tǒng)外部接口的研究與實現(xiàn)[J].系統(tǒng)仿真技術(shù),2016(4):280.
[5] 劉洪寬.城市軌道交通ATS關(guān)鍵技術(shù)及仿真平臺研究[D].成都:西南交通大學,2008.