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