李 博,王俊峰
(北京交通大學(xué)軌道交通控制與安全國家重點實驗室,北京100044)
CTCS-3中國列車運行控制系統(tǒng)(以下簡稱C3列控系統(tǒng))是基于GSM-R鐵路無線通信系統(tǒng),并采用軌道電路等方式檢查列車占用的列車運行控制系統(tǒng)。隨著我國鐵路的高速發(fā)展,C3列控系統(tǒng)已經(jīng)成為中國列車運行控制系統(tǒng)(CTCS)的發(fā)展方向[1~2]。
以前搭建的C3列控系統(tǒng)仿真平臺大部分是直接在以TCP/IP為底層通信平臺的基礎(chǔ)上搭建而成,整個系統(tǒng)過于分散,不利于仿真平臺統(tǒng)一管理和記錄各個模塊間的信息交互。不利于研究C3列控系統(tǒng)中各模塊間如何協(xié)調(diào)和高效工作。因此,建立相應(yīng)的C3列控系統(tǒng)模型并在實驗室仿真平臺下對系統(tǒng)進(jìn)行驗證和評估具有重要的現(xiàn)實意義。
本文主要介紹基于HLA/RTI底層通信平臺的C3列控系統(tǒng)分布交互式仿真結(jié)構(gòu),重點解決仿真管理器數(shù)據(jù)傳輸實時性的問題。
高層體系結(jié)構(gòu)(High Level Architecture, HLA)是一種新型的分布式仿真框架[2]。在基于HLA的仿真系統(tǒng)中,聯(lián)邦(Federation)是指用于達(dá)到某一特定仿真目的的分布式仿真系統(tǒng),它由若干個相互作用的聯(lián)邦成員(或簡稱成員)構(gòu)成。所有參與聯(lián)邦運行的應(yīng)用程序都可以稱為聯(lián)邦成員。
在C3列控系統(tǒng)仿真平臺中,C3列控系統(tǒng)便是作為聯(lián)邦而存在。車載設(shè)備、軌旁電子單元、列控中心、無線閉塞中心、臨時限速服務(wù)器、GSM-R通信接口設(shè)備等作為C3列控系統(tǒng)組成模塊而統(tǒng)一稱為仿真設(shè)備模塊;仿真管理器、線路數(shù)據(jù)庫、驗證分析模塊作為仿真平臺輔助工具而統(tǒng)一稱為仿真管理子系統(tǒng)。仿真設(shè)備模塊和仿真管理子系統(tǒng)都是C3列控系統(tǒng)聯(lián)邦下的聯(lián)邦成員,如圖1。運行支撐環(huán)境(RTI:Run-time Infrastructure)是HLA接口規(guī)范的具體實現(xiàn),是HLA仿真應(yīng)用程序設(shè)計和運行的基礎(chǔ),其功能類似于分布式操作系統(tǒng)。它主要提供底層通信傳輸服務(wù),是C3列控系統(tǒng)中各個聯(lián)邦成員數(shù)據(jù)交互的通道。
圖1 基于HLA的CTCS-3列控系統(tǒng)仿真聯(lián)邦結(jié)構(gòu)圖
C3列控系統(tǒng)仿真平臺是以某鐵路線為背景的分布式半實物仿真系統(tǒng)。全線設(shè)有21個車站,每個車站需要1臺列控中心模擬器,1臺CTC分機(jī)模擬器,1臺聯(lián)鎖模擬器。7臺無線閉塞中心(RBC)管理全線的行車許可,4臺多車模擬器模擬全線的列車,1臺軌旁模擬器模擬全線的線路信息,1臺GSM-R模擬器模擬GSM-R信息傳輸通道以及1臺CTC總機(jī)負(fù)責(zé)全線的列車調(diào)度和運行計劃的下達(dá)。不考慮真實設(shè)備,單是純虛擬的仿真節(jié)點就達(dá)到了77個,所以整個仿真平臺面臨的最大問題便是統(tǒng)一管理各個節(jié)點(即聯(lián)邦成員)以及如何處理好各個節(jié)點之間數(shù)據(jù)交互的問題。采用基于HLA/RTI這樣一個高效的底層通信平臺可以很好地解決這些問題。
1.2.1 便于實現(xiàn)對系統(tǒng)的統(tǒng)一管理
基于HLA/RTI的仿真平臺具有更好的互操作性和可復(fù)用性。利用RTI發(fā)布訂購機(jī)制,C3系統(tǒng)中的各聯(lián)邦成員間的互操作變得更加便利。例如:CTC分機(jī)需要給聯(lián)鎖發(fā)送進(jìn)路請求信息,CTC分機(jī)“發(fā)布”這一信息,聯(lián)鎖“訂購”這一信息便可以建立數(shù)據(jù)通路。仿真管理器這一聯(lián)邦成員需要監(jiān)控和管理各個節(jié)點間的數(shù)據(jù)流,它若需要獲取這一信息,只需要再“訂購”這一信息,就可以獲取該數(shù)據(jù)。所以仿真管理器只需要根據(jù)實際需求訂購它需要的信息,便可以通過RTI直接獲取,同時它也可以發(fā)布控制交互類信息給其他節(jié)點,所以便于實現(xiàn)對整個仿真平臺的統(tǒng)一管理。而且隨著列車和車站數(shù)量的增加,還可以增加聯(lián)邦成員的個數(shù),實現(xiàn)C3列控系統(tǒng)模塊的即插即用,易于系統(tǒng)的集成。
1.2.2 增加數(shù)據(jù)傳輸?shù)膶崟r性
使用Socket通信,接入n臺聯(lián)邦成員,需要彼此建立的連接將會有n(n-1)/2個[3]。在本實例中,77個仿真設(shè)備節(jié)點加上3個仿真管理節(jié)點,共80個聯(lián)邦成員,在基于Socket通信的情況下,需要建立的連接數(shù)將是6 160個,整個系統(tǒng)的通信量將相當(dāng)龐大,如果軟件模塊設(shè)計不當(dāng),極容易造成通信阻塞。而在基于HLA/RTI構(gòu)架的C3列控系統(tǒng)仿真平臺中,這80個聯(lián)邦成員之間只需要根據(jù)實際需要建立對應(yīng)的發(fā)布和訂購屬性,RTI底層通信平臺已經(jīng)幫我們解決了數(shù)據(jù)傳輸問題,可直接實現(xiàn)兩個節(jié)點間的數(shù)據(jù)交換,而且傳輸數(shù)據(jù)的實時性很好。在實際的測試中發(fā)現(xiàn), pRTI消息傳輸延遲不到1 ms。在負(fù)載量為400 byte的情況下,兩個聯(lián)邦成員之間數(shù)據(jù)傳輸?shù)难舆t僅為3.2 ms[4]。
1.2.3 減少數(shù)據(jù)傳輸量
HLA網(wǎng)絡(luò)結(jié)構(gòu)還提供數(shù)據(jù)過濾機(jī)制。各個聯(lián)邦成員有能力確定它們將產(chǎn)生什么信息,它們喜歡接收什么信息,數(shù)據(jù)傳輸服務(wù)的類型(例如可靠的或快速的)等。采用HLA后,整個聯(lián)邦范圍內(nèi)所發(fā)送的數(shù)據(jù)量將明顯減少,節(jié)約了網(wǎng)絡(luò)資源,因而可以給C3列控系統(tǒng)仿真平臺上添加更多的仿真節(jié)點,利于系統(tǒng)的擴(kuò)展。
此外,HLA/RTI通過提供通用的、相對獨立的支撐服務(wù)程序,將應(yīng)用層同底層支撐環(huán)境分離。即將具體的C3列控系統(tǒng)各仿真節(jié)點的功能實現(xiàn)、仿真運行管理和底層通信3者分開,使各個仿真模塊相對獨立地進(jìn)行開發(fā),可以加快仿真平臺的建設(shè)進(jìn)度。
基于HLA/RTI構(gòu)架的CTCS-3級列控系統(tǒng)仿真平臺分為仿真管理子系統(tǒng),仿真設(shè)備模塊與真實設(shè)備接口3大部分,每個部分按照功能和特征進(jìn)行模塊化的劃分,以實現(xiàn)分層和分批系統(tǒng)設(shè)計與構(gòu)建,便于系統(tǒng)管理和繼承。這3個部分構(gòu)成了基于HLA/RTI的仿真支撐環(huán)境,為車載真實設(shè)備和真實RBC提供運行測試環(huán)境,如圖2。
圖2 CTCS-3仿真平臺系統(tǒng)結(jié)構(gòu)圖
由線路數(shù)據(jù)庫,驗證分析模塊及仿真管理器模塊3個聯(lián)邦成員構(gòu)成。它們是區(qū)分于真實的系統(tǒng),但卻是仿真平臺中很重要的部分,負(fù)責(zé)管理整個仿真平臺,對仿真平臺的運行進(jìn)行過程控制,驗證分析等。
由仿真RBC模塊、CTC總機(jī)模塊、CTC分機(jī)模塊、聯(lián)鎖模塊、列控中心(TCC)模塊、多車運行模塊、軌旁模塊和仿真GSM-R模塊8種聯(lián)邦成員構(gòu)成。它們根據(jù)實際的方案和線路設(shè)置各自的節(jié)點數(shù)量,接入到HLA/RTI環(huán)境中。
由接口適配器聯(lián)邦成員構(gòu)成。通過設(shè)計接口適配器,一端滿足RTI接口,接入到HLA/RTI環(huán)境中,另一端滿足真實設(shè)備接口,與真實的被測設(shè)備連接,完成真實設(shè)備與仿真支撐環(huán)境的無縫接入及其之間的數(shù)據(jù)轉(zhuǎn)換。同時這個單元也是真實軟件平臺與仿真支持環(huán)境的接口,通過接口適配器完成真實軟件平臺與HLA/RTI的數(shù)據(jù)轉(zhuǎn)換和接口轉(zhuǎn)換。
隨著仿真節(jié)點的增加和仿真測試任務(wù)的加重,仿真測試過程需要一個規(guī)劃管理的角色,即仿真管理器。仿真管理器規(guī)劃仿真測試過程,管理各個仿真節(jié)點,協(xié)調(diào)控制C3列控系統(tǒng)的各個組成模塊執(zhí)行測試序列,為離線的數(shù)據(jù)驗證分析和系統(tǒng)評估提供數(shù)據(jù)基礎(chǔ)。
與仿真管理器相連的仿真測試節(jié)點主要有列控中心仿真器、RBC仿真器、聯(lián)鎖設(shè)備仿真器、CTC車站分機(jī)仿真器、車載設(shè)備仿真器、列車運行仿真器等,如圖3。仿真管理器內(nèi)部分8大模塊,分別實現(xiàn)仿真節(jié)點識別、仿真節(jié)點時間同步、仿真節(jié)點初始化配置、仿真過程監(jiān)測和控制等功能。
仿真管理器最突出的特點就是對整個仿真平臺中各個節(jié)點的管理,集中控制各個節(jié)點間交互的數(shù)據(jù),這也是它的核心部分。本文接下來著重從這兩方面進(jìn)行論述。
聯(lián)邦管理是指對一個聯(lián)邦執(zhí)行的創(chuàng)建、動態(tài)控制、修改和刪除等過程。聯(lián)邦執(zhí)行是指在聯(lián)邦(仿真系統(tǒng))運行過程中,RTI根據(jù)聯(lián)邦成員的請求,為實現(xiàn)聯(lián)邦成員之間的互操作而創(chuàng)建的一個虛擬世界。
在C3列控系統(tǒng)仿真平臺中,仿真管理器完成對聯(lián)邦的管理。在初始狀態(tài)時,當(dāng)仿真管理器(聯(lián)邦成員)調(diào)用RTI的Create Federation Execution服務(wù)之后,聯(lián)邦執(zhí)行開始存在。但此時聯(lián)邦執(zhí)行中并沒有聯(lián)邦成員,直到仿真管理器(第1個聯(lián)邦成員)調(diào)用了Join Federation Execution服務(wù)之后,聯(lián)邦成員才加入到聯(lián)邦執(zhí)行中。隨后,仿真管理器根據(jù)實際需要遠(yuǎn)程控制CTC分機(jī)、聯(lián)鎖、TCC等聯(lián)邦成員加入到聯(lián)邦執(zhí)行中。當(dāng)仿真結(jié)束后,仿真管理器遠(yuǎn)程控制所有的聯(lián)邦成員退出聯(lián)邦執(zhí)行后,仿真管理器調(diào)用Destroy Federation Execution服務(wù)撤銷聯(lián)邦執(zhí)行。
圖3 仿真管理器組成模塊
聯(lián)邦執(zhí)行創(chuàng)建與撤銷的整個過程都是在RTI的支持下,由仿真管理器推動。在這個過程中,仿真管理器與RTI之間的關(guān)系和交互過程如圖4。圖中的細(xì)線箭頭表示在聯(lián)邦執(zhí)行的生命周期內(nèi),仿真管理器和RTI之間的交互[5]。
圖4 仿真管理器和RTI之間的關(guān)系
仿真管理器需要實時監(jiān)控各個仿真節(jié)點間的信息交換,所以各個仿真節(jié)點和仿真管理器有龐大的信息量,需要采用一些方法增加數(shù)據(jù)傳輸?shù)膶崟r性。
3.2.1 采用多線程的方法增加數(shù)據(jù)傳輸實時性
在HLA體系下,不同的進(jìn)程模式?jīng)Q定了C3列控系統(tǒng)各個節(jié)點(聯(lián)邦成員)調(diào)用RTI的方式和RTI如何調(diào)用回調(diào)函數(shù)的方式。這也就決定了C3列控系統(tǒng)各個節(jié)點和RTI如何分享CPU時間。在單線程模式下,各個節(jié)點必須在一個線程內(nèi)向RTI提出請求并調(diào)用tick()函數(shù)完成回調(diào);在多線程模式下,系統(tǒng)的各個節(jié)點可以不調(diào)用tick()函數(shù),RTI內(nèi)部自動進(jìn)行消息處理并完成回調(diào),CPU時間得到充分利用,因而可以有效地改善網(wǎng)絡(luò)延遲,增加系統(tǒng)的實時性。
3.2.2 采用設(shè)置各個節(jié)點數(shù)據(jù)優(yōu)先級的方法,間接增加數(shù)據(jù)傳輸?shù)膶崟r性
在實際的C3列控系統(tǒng)中,各個模塊在系統(tǒng)中的重要性是不同的。RBC和聯(lián)鎖設(shè)備是關(guān)系到列車“故障—安全”導(dǎo)向的關(guān)鍵設(shè)備,其中RBC更是C3列控系統(tǒng)區(qū)別于C2列控系統(tǒng)的重要設(shè)備,所以仿真管理器應(yīng)該優(yōu)先接受這些節(jié)點傳輸?shù)男畔?。通過在應(yīng)用層面上改善數(shù)據(jù)傳輸?shù)膬?yōu)先級,間接解決數(shù)據(jù)傳輸?shù)膶崟r性問題。
本文研究了在基于HLA的分布交互式仿真體系結(jié)構(gòu)基礎(chǔ)上,利用仿真管理器管理各個仿真節(jié)點的方法。它具有模塊化程度高,數(shù)據(jù)交換效率高等優(yōu)點,大大方便了仿真過程的管理,為后期的系統(tǒng)方案驗證和評估奠定了基礎(chǔ)。
[1] 鐵道部科技司. CTCS-3級列控系統(tǒng)總體技術(shù)方案[S] .北京:鐵道部科技司,2008,3.
[2] ECSAG. ERTMS/ETCS Functional Requirement Specification(FRS) V4.29[S] . 2002.
[3] 宋晨亮,張勇. 基于HLA的分布式三維視景列車運行模擬器的設(shè)計與實現(xiàn)[J] . 鐵路計算機(jī)應(yīng)用,2008,17(3):27-30.
[4] 梁彥剛,唐國金,王峰. 基于HLA仿真系統(tǒng)實時性改進(jìn)策略研究[J] . 系統(tǒng)仿真學(xué)報,2005,17(2):361-363.
[5] 周彥,戴劍偉. HLA仿真程序設(shè)計[M] . 北京:電子工業(yè)出版社,2002:87.
[6] 李博,王俊峰. 無線機(jī)車信號數(shù)據(jù)安全傳輸方法的研究[J] . 鐵路計算機(jī)應(yīng)用,2009,18(5):49-50.