鄒少文
(中鐵二院工程集團有限責任公司,610031,成都∥高級工程師)
視景仿真技術被廣泛應用于模擬駕駛以及列車運行場景的展示與測試。在軌道交通仿真領域,目前多采用Creator進行場景建模,以Vega[1]進行視景驅動,其優點是模型及其控制邏輯代碼可高度定制,但缺點也較明顯,如工具使用麻煩、代碼偏向底層、開發難度大等,創建出的模型與線路環境也難以復用。本文以 MSTS(Microsoft Train Simulation)的文件資源為實現基礎,基于.Net平臺的XNA技術框架作為開發環境,利用MSTS良好的開源特性以及XNA套件快速開發的能力,在該平臺快速、準確地完成了對虛擬線路場景的搭建,將仿真重心從搭建虛擬環境本身轉移到利用該虛擬環境,完成對城市軌道交通現實運營場景的模擬。
在虛擬線路環境場景中,主要包括地理環境模型、氣候模型、聲音模型、動態模型、靜態模型、粒子系統等。MSTS提供了功能強大的線路編輯器,且支持第三方模型的導入,結合其豐富的模型庫及優良的開源特性,通過地形數據導入[1]、軌道鋪設,并根據現實場景,對照相關工程圖紙進行布景,即可完成對虛擬線路的搭建;且線路場景可根據后期需求進行更改,線路中的模型也可隨意替換,具有較高的復用性與可替換性。
信號機作為指導列車安全、高效運行的重要信號設備,在該虛擬線路場景中,對信號機顯示狀態和顯示邏輯的仿真測試是該仿真平臺的一項重要仿真功能。在虛擬線路的正線區段中,將信號機模型放置在進出站口、道岔前方、站間區間,即可完成信號系統的基礎搭建,如圖1所示。此外,要根據信號機前方區間是否空閑或前方道岔的定、反位狀態,設置信號機的顯示狀態與顯示邏輯。有些變量如車輛是否出清區段,需要在列車運行過程中實時計算得出,即通過編程手段獲取,MSTS編輯器并未給出較好的支持,特別是不能滿足在CBTC(基于通信的列車控制)模式下地面信號機的正確顯示。這使得虛擬線路中的信號系統不能很好地得到應用,為后面列車在虛擬線路中運行時信號機的正確顯示帶來不便,影響仿真結果的正確性。

圖1 信號機模型的放置示意
本文對城市軌道交通仿真線路中的地面信號機,在CBTC模式下的狀態顯示進行了探討。依據平臺現有條件模擬CBTC模式,地面信號機采用常態點燈方案,聯鎖系統根據移動授權對地面信號機進行驅動,在移動授權范圍內的地面信號機均為允許信號。特別是,在本線路中,通過一個閉塞分區即相鄰兩個順向通過信號機之間的軌道區段模擬一個計軸區段。一個計軸區段可劃分為多個虛擬邏輯區段。在CBTC模式下,同一計軸區段中允許多輛列車進行追蹤運行,列車之間的安全距離通過仿真車載設備實時計算來保證。若在降級模式下,一個計軸區段(閉塞分區)中只允許一列列車運行。
在模擬仿真CBTC模式下,仿真線路中的地面信號機通過ATS(列車自動監控)系統進行監控。由于虛擬線路環境中并不存在“區段”這一概念,因此在相關數據庫中,存儲了全線的位置坐標信息,包括對虛擬邏輯區段的位置劃分。列車在運行過程中通過實時查詢數據庫獲取當前位置,并向ATS系統轉發包括自身位置在內的各項列車運行狀態信息。ATS系統通過對列車位置的監督,結合進路信息與移動授權信息,通過創建的相關功能接口,向虛擬線路發送對應點燈命令,以實現信號機的正確顯示。其具體實現過程及原理如下文所述。
在MSTS中,通過替換信號機模型不同燈位上的貼圖實現顯示狀態的改變。在MSTS底層的sigcfg.dat信號機狀態顯示腳本文件中,每一類信號機的狀態顯示和顯示意義都有明確定義。以圖1中的出站矮柱三顯示信號機為例,該腳本定義了該信號機的類型SignalType,狀態顯示使用貼圖Signal-LightTex、信號顯示引導方向SignalAspects、顯示狀態分類SignalLights以及對應每一類狀態顯示的燈位顯示SignalDrawStates。按照規定的腳本語言格式,對該腳本文件進行修改,甚至完全重寫,可對信號機的狀態顯示進行重定義。例如在南方某些地區的城市軌道交通信號系統中,將白色燈光的意義等同于黃色燈光。在針對這類具體場景進行仿真時,就可直接修改對應的狀態顯示腳本實現該需求。
對該信號機顯示腳本的修改,豐富了模型的使用場景,避免了重新制作相應信號機模型的工作,提升了仿真的工作效率。
信號機狀態顯示的確定與信號機具體的使用場景直接相關,特別對采用不同閉塞方案的信號系統,其信號機的狀態顯示與含義也有明顯差異。在MSTS中,sigscr.dat腳本文件定義了所有信號機的顯示邏輯。以三顯示信號機為例,在sigscr.dat腳本中定義了該信號機的顯示邏輯,其中一個關鍵的變量是next_state,即前方信號機狀態。若信號機防護后方存在道岔時,則還與道岔的定、反位狀態存在聯鎖關系(如側向時顯示黃燈)。
通過對sigscr.dat腳本中對應信號機類型的顯示邏輯進行修改或調整,可以使信號機按具體的仿真場景要求進行顯示。
在城市軌道交通中,三顯示的信號機已基本滿足CBTC模式下信號顯示的需求。但是,為了拓寬本平臺中信號系統的仿真應用場景,如對鐵路信號系統的信號機顯示進行模擬,則需對上述兩個腳本文件進行相應的修改甚至重寫,使虛擬線路場景中信號系統得到更為廣泛的應用,也為后期滿足城市軌道交通中可能出現的特殊信號顯示提供必要的技術支持和技術儲備。現在通過將區間三顯示信號機的顯示制式變為四顯示[3]為例,僅對平臺中信號機的顯示狀態和顯示邏輯的調整進行一般性說明。其過程如下:
(1)增加一組顯示狀態:四顯示與三顯示相比,多了一組“綠黃”燈位顯示,因此在sigcfg.dat腳本文件對應信號機類型的SignalLights屬性中增加一類顯示,且添加相應的燈位顯示SignalDrawStates。
(2)調整顯示邏輯:信號機的燈位顯示含義和原有三顯示相比已發生變化,因此在sigscr.dat腳本的邏輯判斷中,新增一個條件分支用于判斷“綠黃”燈位顯示,并對其他燈位的顯示邏輯進行調整。四顯示燈位顯示狀態及顯示邏輯依據表1調整。最終四顯示實現效果如圖2所示。

表1 四顯示自動閉塞分區區間信號機顯示

圖2 區間通過信號機四顯示狀態圖
上述信號機顯示的改變僅是對平臺中信號機顯示狀態與顯示邏輯的調整進行了仿真與驗證,為今后復雜的信號顯示提供了實現的基礎。實際的城市軌道交通中,并未采用四顯示制式。
僅通過MSTS中的聯鎖邏輯文件,很難體現信號機、道岔與進路之間的聯鎖關系。特別是多輛列車在同一條線路中進行仿真運行時,已無法滿足正確顯示的要求。尤其在CBTC模式下,對于不同列車對應的移動授權范圍內的信號機,其顯示邏輯的確定也比較復雜,需要結合列車當前位置去不斷地判斷,而原有信號控制邏輯已不能滿足要求。因此,通過創建相關接口[4],讓外部系統(如車站聯鎖系統、ATS系統)對線路中的道岔、信號機進行控制,是讓虛擬線路中信號系統繼續正常工作的重要解決途徑,可保證仿真效果的正確性與真實性。
在創建接口前,該虛擬線路環境是封閉的。若要外部系統實現對虛擬環境中信號設備或車輛的控制,必須創建通信接口實現數據交互?!敖涌凇笔且粋€寬泛的概念,這里指的是Socket通信的一端。根據制定的通信協議與對應的功能函數,可將接口分為地面設備接口、車載設備接口與其他系統的接口等。這里的地面設備接口包括了對信號機、道岔、站臺屏蔽門等可控模型的處理。通過接口,ATS系統可與虛擬線路場景進行數據交互,通過對應接口功能函數實現對相關模型進行控制。其原理如圖3所示。

圖3 接口功能實現原理圖
在本平臺中,信號機控制命令生成主要有兩類場景:一類是ATS系統在進路自動排列或取消過程中,會對進路始端、終端信號機的狀態進行調整,從而生成對應的信號機控制命令。另一類是當CBTC系統計算出列車對應的移動授權中包含某些信號機時,該信號機狀態設置為允許信號;當計算得出前方信號機為移動授權終點時,則該信號機設置為禁行信號。
對于第一類場景:當ATS系統發送信號設備操作命令前,ATS系統的聯鎖邏輯模塊會對該命令的合法性,如對敵對信號是否開放、敵對進路是否辦理等進行檢測,只有滿足聯鎖條件的命令才會被發送;當虛擬線路接收到ATS系統發送的信號機或道岔操作命令時,根據制定的通信協議與對應的接口功能函數(如DealSignalCommand()、DealSwitchCommand()),三維場景中的信號機、道岔按命令動作,并將設備的當前狀態反饋給ATS系統,模擬實現了ATS系統對線路場景中信號設備的監控功能,并且在大屏監控界面給出對應界面顯示。ATS系統對地面設備操作流程如圖4所示。進路控制命令即是多個信號機和道岔操作命令的組合。關鍵代碼如下:
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系統對地面設備操作流程
對于第二類場景:在CBTC模式下,由于對每一列列車的移動授權在列車運行過程中是動態變化的,后行列車移動授權的終點與前行列車的位置密切相關在本平臺中,因此可通過車站設備對列車當前位置進行實時查詢,并將位置等相關信息經過數據轉發服務器發送至ATS系統;再根據ATP(列車自動防護)仿真模塊實時計算出兩列相鄰列車的位置間隔,并查詢相關數據庫,確定列車的移動授權范圍,檢查后行列車的移動授權范圍內是否包含信號機。若包含,則通過ATS系統向對應信號機發送允許信號;若不包含,則隨著列車位置移動,后行列車的移動授權不斷向前延伸,當延伸至對應信號機為移動授權終點時,通過ATS系統向該信號機發送禁行信號。列車周期性查詢自身位置信息的流程如圖5所示。

圖5 列車位置查詢
當ATS系統實現進路自動排列[5]時,如果符合進路辦理條件,則會依據圖4所示發送對應進路控制命令;虛擬線路場景在接受到該命令后,根據通信協議,調用相關功能函數,完成進路的排列(如圖5所示)。此時進路始端信號機開放亮綠燈,進路中道岔狀態轉換至指定位置。
當列車在區間中運行時,根據對應列車的移動授權范圍,確定對應區間通過信號機的狀態顯示。對于前行列車,其移動授權終點在該信號機后方,即該信號機在前行列車的移動授權范圍內,信號機顯示允許信號。當前行列車越過該信號機,且還未進入前方閉塞分區的下一個虛擬邏輯區段時,后車的移動授權終點延伸至該信號機,該信號機顯示禁行信號(如圖6右側所示)。
通過對本仿真平臺中信號機底層腳本文件的修改與外部接口的創建,解決了信號系統在虛擬線路場景中無法正確工作的問題。利用本文描述的方法,提高了信號機模型的利用效率,根據具體場景對腳本進行修改,結合外部系統如ATS系統,基本實現了對城市軌道交通信號系統工作狀態的模擬,保證了地面信號機顯示的正確性。當然,對于移動授權的計算,由于目前沒有獨立的仿真區域控制器,在算法上做得相對簡單,但能夠滿足基本仿真需求。該功能和聯鎖功能一樣,目前都暫由ATS仿真系統實現,后期會將該功能獨立為一個單獨的系統。通過該方式,不僅可對城市軌道交通的信號系統進行仿真模擬,還可針對鐵路、輕軌、有軌電車等軌道交通線路的信號系統進行仿真模擬,并可保證仿真結果的正確性和可靠性,滿足了仿真要求。特別是利用創建的相關接口,除了能夠對信號機、道岔狀態進行控制外,還可對列車的運行狀態進行遠程控制,為ATO(列車自動運行)功能的仿真提供實現基礎,從而可更加全面地完成城市軌道交通信號系統的仿真與模擬。

圖6 進路排列示意實景圖
[1] 徐恩,李學軍,鄒紅霞,等.基于Creator/VP的三維虛擬環境建模[J].系統仿真學報,2009(S1):121.
[2] 楊城,陳榮武,王懷松.基于MSTS與DEM數據的線路地形仿真與實現[J].系統仿真技術,2015(4):323.
[3] 李京梅.淺談三顯示與四顯示區間自動閉塞信號顯示的區別[J].鐵路通信信號設計,2002(3):35.
[4] 楊城,陳榮武,王懷松.基于MSTS的三維仿真演示系統外部接口的研究與實現[J].系統仿真技術,2016(4):280.
[5] 劉洪寬.城市軌道交通ATS關鍵技術及仿真平臺研究[D].成都:西南交通大學,2008.