葛新宇,黨建武
(1.蘭州交通大學電子與信息工程學院,蘭州 730070; 2.蘭州交通大學,蘭州 730070)
隨著城市軌道交通的迅速發展,基于通信的列車控制CBTC(Communication Based Train Control)系統由于其高速度、高密度等特點已經成為當今軌道交通首選通信制式。CBTC系統核心部分通過軟件實現并采用模塊化設計,減少了系統硬件數量,方便了系統的維護,大大減少了維護費用。美國拉斯維加斯單軌電車是世界上第一條采用CBTC作為信號制式的城市軌道交通線路,自此CBTC系統廣泛應用于城市軌道交通中,在我國主要有廣州地鐵4號線、北京地鐵4號線、北京地鐵10號線及香港迪士尼專線等。但是在CBTC系統研發階段如何為正在研發的系統提供一個發現系統故障排除故障的平臺,成為了制約系統研發的障礙。
由于為CBTC系統[1-3]提供真實的環境進行測試并不現實,因為要為系統提供真實的鐵路線路和列車,因此采用仿真測試的手段就顯得更加理想。CBTC仿真測試系統可在CBTC系統研發過程中使用模擬器為車載設備提供一個模擬真實的工作環境,為CBTC的研發提供在實驗室重現現場運營場景和進行故障分析的手段。在實現CBTC仿真測試系統時首先應對列車運行環境進行建模,在建模過程中存在線路數據、車輛數據、信號數據等大量數據,如何有效地組織管理這些數據,仿真測試系統各個子系統應該采用怎么樣的系統結構都直接影響模擬環境的真實性。
仿真測試系統[4-6]為車載系統提供相關接口并通過車載通信總線DCS與車載設備進行通信。運用仿真手段模擬列車運營環境,可對列車運行中典型問題進行故障注入,并記錄測試結果,通過對測試結果的分析給出故障評定,為車載設備提供檢測故障的依據,它主要由以下子系統組成。
測試服務器——提供人機交互界面并根據速度模擬器計算的速度信息和距離信息,對列車進行位置跟蹤,協調各模擬器工作,向各模擬器發送測試條件,模擬列車在真實線路上的運行環境;實現車載系統功能測試管理,包括測試條件的生成,自動測試以及測試結果的驗證,輸出測試記錄等。
列車模擬器——模擬列車與車載設備的功能接口,提供列車兩端主控手柄、方向手柄、模式按鈕、ATO(列車自動駕駛)開始按鈕、確認按鈕等駕駛臺操作信息;模擬列車開關量狀態:門狀態、門模式、完整性信息等列車狀態信息,同時顯示列車的狀態:ATO發車、AR(自動折返)提示、制動狀態、門開關命令等,綜合顯示列車的運行狀態信息;列車模擬器還把自身的工作狀態及接口數據反饋給測試服務器。
速度模擬器——速度模擬器根據列車模擬器發送來的牽引制動指令和方向手柄信息、ATO牽引制動指令和ATP(列車自動防護)輸出的EB(緊急制動)、NB(常用制動)信息和牽引切除指令,計算列車當前應有的速度和加速度;根據列車當前的速度和加速度輸出相應的TG脈沖信號和測速雷達速度信號給車載設備;并且可以根據測試服務器的測試指令模擬列車打滑空轉;同時將列車的速度和距離信息發送給測試服務器;速度模擬器可以同時提供頭尾車載設備的速度信號。
無線報文生成器——模擬無線功能接口,根據測試服務器報文條件,生成相應的無線報文發送給車載子系統,并接收車載設備的輸出信息,解析并反饋給測試服務器。無線報文生成器可以支持頭尾車載設備的同時工作。
應答器報文生成器——模擬應答器功能接口,根據測試服務器報文條件,生成相應的應答器報文發送給車載子系統。應答器報文生成器可以支持頭尾車載設備的同時工作。
對端模擬器——模擬列車另一端車載設備,提供頭尾車載設備通信接口模擬功能。
數據管理服務器——對整個系統中海量數據進行組織管理,并存儲由測試服務器生成的測試結果。
測試總線——用于各個子系統間通信。
各子系統之間數據流如圖1所示。

圖1 CBTC仿真測試系統各子系統數據流
本段以列車開始啟動并在運行過程中人為開啟列車左門為例對CBTC仿真測試系統工作過程進行簡單介紹[7]。當CBTC仿真測試系統與車載建立通信后,可在列車模擬器子系統中插入鑰匙并開啟列車,同時觀察列車完整性、門狀態指示燈是否為綠燈,若為綠燈證明列車完整性與門狀態完好,按下確認按鈕解除列車EB狀態,同時拉動方向和牽引手柄,此時列車開始啟動。當列車運行經過2個應答器后測試服務器將追蹤到列車位置,并根據列車位置與線路情況驅動無線報文生成器向車載發送無線報文,無線報文中包含有移動授權信息(MA)。車載根據MA信息向MA終點運行,若此時測試人員通過人機交互界面將列車左門打開,車載ATP將控制列車緊急制動直至速度為零。若測試人員不做任何操作,在列車向MA終點運行的過程中車載未收到新的MA信息,那么車載ATO將會把列車停在MA終點,若接收到新的MA信息,那么車載ATO將會控制列車繼續向新的MA終點運行。若在測試過程中出現任何一種預計結果以外的結果都將視為車載設備故障,并生成測試記錄,以便分析車載設備的故障問題,整個過程如圖2所示。
通過圖3可以發現CAN協議[8]只是在OSI七層模型中的鏈路層做出了規定,對物理層并沒有做出詳細的說明。在CAN協議中對鏈路層的規定表現在目標層和傳輸層中,目標層的功能包括:確認要發送的信息,為應用層提供接口;傳輸層功能包括:數據幀組織,總線仲裁,檢錯、錯誤報告、錯誤處理。ISO11898標準滿足CAN協議與仿真測試系統在傳輸速度的要求,因此仿真測試系統采用ISO11898標準。

圖2 CBTC仿真測試系統測試過程

圖3 CAN分層結構
CAN總線中數據通信是基于消息的,所有的消息都是以固定的格式進行發送并在總線上進行廣播,這樣就保證了每個節點都可以收到消息以及消息的一致性,CAN總線定義了4種數據幀類型:數據幀、遙控幀、錯誤幀,過載幀。數據幀發送數據的固定格式,遙控幀是請求發送單元發送數據的幀,錯誤幀是檢測節點的工作狀態的幀,過載幀是用于接收單元通知其尚未做好準備的幀;圖4表示了標準數據幀的格式。

起始城仲裁域控制域數據域CRC域應答域結束
圖4標準數據幀格式
CAN總線是多主控總線結構[9],每一個節點都可以發送接收數據, CAN總線采用仲裁機制確定發送權歸屬于哪個節點。CAN總線的仲裁機制是在當多個節點進行發送時通過對其仲裁段顯性電平(值0)出現的次數進行比較,顯性電平最多的節點獲得當前發送權,其他節點將失去發送權轉為接受數據,同時失去發送權的節點可在當前發送完畢之后繼續進行仲裁以獲得發送權,CAN總線的仲裁機制保證了信息的完整性同時節省了時間。
CRC校驗可以保證CAN節點中數據傳輸的準確性,并且CRC校驗實現簡單,檢錯能力強。因此在仿真測試系統中采用CRC-16保證數據傳輸的準確性。
CAN總線[10]的設計包括:CAN收發器用來對數據鏈路層進行組幀和物理層比特流的生成;微控制器用來對接口邏輯、數據緩沖、濾波、位流處理、錯誤管理邏輯等邏輯進行統一管理;CAN協議控制器完成CAN協議的相關內容。CAN總線的設計如圖5所示。DS80C390芯片集成了微控制器與CAN協議控制器,采用這樣的芯片不僅提高了系統的集成度,還節省了空間降低了成本。

圖5 CBTC仿真測試系統CAN總線連接
仿真測試系統中有大量的數據,這些數據可分為靜態數據和動態數據[11]。靜態數據包括線路數據、列車參數數據等這種在系統中固定不變的數據。動態數據是在系統運行中隨之改變的數據,例如人機交互信息等。
靜態數據庫用來對列車運行環境以及車輛信息進行初始化配置。如軌道線路的初始化(閉塞區間ID、區間長度、坡度等)、列車初始化(列車載重、列車阻力、機車牽引力模式)、信號的初始化(道岔、信號機、計軸)。

圖6 數據庫結構
動態數據主要包括模擬量實時數據,開關量實時數據和派生量實時數據,如在列車模擬器中模擬列車駕駛臺的開關按鈕(開左門、關左門、ATO啟動、模式升、模式降等)。動態數據的更新是通過在測試服務器中人機交互界面的相關操作與測試服務器內部邏輯進行更新變化。
運用面向對象的設計方法[12],將每一個要素對象化。以每一個分區為基本對象將其抽象為一個節點,線路上所有的位置信息用<分區,偏移量>的相對坐標表示,可以將多個節點通過樹形拓撲結構將每個節點進行有機的結合,來表示一條完整的線路。每個對象具有獨立的性能數據、關聯數據、控制數據, 如分區ID、長度、正反接分區ID等, 這些數據只能由與線路有關的事件享用。圖7列出了仿真測試系統的對象標示。

圖7 仿真測試系統的對象標示
仿真測試系統中線路數據全部來自于工程圖紙,DBMS采用SQL Server 2005關系數據庫。仿真測試系統需要將分離出來的對象用SQL語言進行表示,具體內容包括:將屬性映射成列;在關系數據庫中實現繼承;將類映射成表;映射關聯、聚合以及組合。
將抽象出的對象映射成SQL中的表有很多方式,一個類可以對應于一張表;也可以對應于多張表;還可以幾個類組合成一張表,有時候一個類的一個屬性也可以對應于一張單獨的表等。
當一個類是獨立的、沒有任何繼承關系,又與其他類無相同的屬性信息,就可以將它簡單地與一個數據庫表進行一一對應,并在數據庫中設置PRIMART KEY約束,保證數據的完整性和規范性。例如列車參數類,如圖8所示。

圖8 列車參數映射關系
當一個類的某一屬性在多個對象中具有相同的屬性時,例如信號機,在線路參數中主要包含位置<分區,偏移量>屬性,同時在動態數據中還要包含信號機的狀態屬性,因此信號機對象映射為2個列表,此時添加表的PRIMART KEY作為FOREIGN KEY引入到原數據庫中,使這2個表聯系起來,這樣可以避免數據冗余。
由于映射方式很多,各種映射關系各不相同在此處就不做詳細敘述。
在CBTC仿真測試系統中,基于面向對象的設計方法組織數據庫,用<分區,偏移量>的相對坐標表示位置信息可以獲得精確的位置信息和移動授權信息,從而實現移動閉塞的追蹤、折返、出入段的仿真。為CBTC車載系統提供一個真實的模擬環境及故障處理手段。

圖9 仿真測試系統運行圖
圖9所示是仿真測試系統運行站場圖,圖中線路中每一小段代表一個分區,矩形代表站臺,在站臺的左側有S(Skip)、H(Hold)字母是跳??圮嚇酥?,當兩個字母都顯示時列車既不調停也不扣車,列車正常運行,當只有一個字母時則代表列車將在此站跳停(S)或扣車(H),在站臺與軌道之間的一條線代表屏蔽門的狀態。用三角號表示應答器(只畫出了有源應答器),雙圓表示計軸設備,單圓表示信號機,并用矩形和四分之一圓的組合圖形表示列車,四分之一圓代表車頭方向,在列車的上方顯示列車速度以及運行模式等信息。線路上下方坐標軸用以顯示列車在上行、下行線時的速度距離曲線。
以章節1.2仿真測試系統簡單工作流程所述過程為例,圖9(a)為列車正常運行,從下方坐標軸中的速度距離曲線中看以看到,列車將運行到測試站三并在停在測試站三,在列車行進過程中人為打開車門時,車載ATP發現存在安全隱患使列車進入緊急制動狀態,直到列車速度為零并待人為確定無安全隱患時才可以重新啟動列車如圖9(b)所示。
本文基于CBTC仿真測試系統,根據仿真的需求運用面向對象的設計方法對數據庫進行設計,對現實車輛環境進行了抽象,對站場元素進行了精確描述。同時仿真測試系統采用CAN總線,通過仲裁機制和CRC校驗來保證數據的完整性和準確性,從而加大了數據庫和仿真測試系統的可靠、準確性。
系統的設計滿足了在實驗室重現現場運行的要求,為CBTC系統研發提供了一個排除故障的平臺。但是列車運行環境千變萬化,本系統僅提供了列車運行的理想環境,對于列車在雨雪天氣等惡劣環境下的運行并沒有考慮,在以后的研究中將對列車運行復雜多變的環境進行補充,增加系統的實用性。
[1] 辛驥,陳微.淺談基于CBTC的地鐵列車定位功能[J].鐵道通信信號,2008(9):4-6.
[2] 王偉,張建明.基于最小系統的CBTC仿真測試平臺[J].都市快軌交通,2011,24(4):33-36.
[3] 魯也傳,陳永生,郭玉臣.基于通信的列車自動監控系統平臺設計與實現[J].計算機應用,2009,29(S2):152-154.
[4] 王超.一種適用于CBTC仿真測試的校本研究[D].北京:北京交通大學,2010.
[5] 李亮,陳寧.CBTC軟件仿真輔助開發系統的研究與實現[J].鐵道通信信號,2010,46 (S1):50-51.
[6] 王琰.基于通信的列車控制系統后備系統的探討[J].鐵道標準設計,2007(6):133-134.
[7] 楊楊.基于故障注入的CBTC系統測試的研究與實現[D].北京:北京交通大學,2009.
[8] 季特.車載通信解決方案剖析CAN總線內部結構[J].電子測試,2005(10):34-36.
[9] 左希慶,李天真.基于CAN總線的傳感器網絡在安全監控系統中的應用[J].工礦自動化,2007(5):64-66.
[10] 張麗平,梁清華,周瑩.基于CAN總線的實時數據庫設計[J].遼寧工業大學學報,2010,30(2):84-86.
[11] 杜菡萏,焦萬立.基于有向圖的CBTC 仿真系統數據庫設計[J].鐵路計算機應用,2012,21(1):49-51.
[12] 王成,唐濤.CBTC仿真系統中數據庫的設計與實現[J].計算機仿真,2007,24(9):258-264.