周庭梁++查偉
摘要:CBTC車載控制器是一個對安全性能有較高要求的系統,對其進行完整的測試具有很重要的意義。但在實際的系統研發和測試中,對其核心的車載控制器還缺乏可信的安全生命周期集成和測試手段。最原始的方法就是把待測的CBTC車載系統安裝到真實車輛上進行測試,但這種方法成本大,安全系數不高。從仿真模型、測試程序集和與被測單元的接口等三方面提出通用方法,并嘗試在自主CBTC系統的產業化過程中建立測評公共服務平臺。
關鍵詞:CBTC;地鐵;仿真器;模型
中圖分類號:TP273 文獻標識碼:A 文章編號:2095-6835(2014)09-0114-02
1開發背景
地鐵作為一種環保、快捷、安全的交通工具,成為各國優先發展的交通設施。為保證地鐵運行的安全,需要在實驗室內部設計出仿真機車模型,并對列車的運行控制系統的性能進行檢測。
為了開發仿真機車模型,各國都進行了大量的研究。雖然我國對于信號系統的仿真研究晚于國外,但近些年發展較為迅速。國內發展較早的是同濟大學(原上海鐵道學院)的鐵道部計算機聯鎖檢驗站和北京交通大學運輸自動化所。
另外,各CBTC提供廠商,例如ALSTOM,SIEMENS等之間缺乏通用的測評支撐環境,需要提供適用于各廠家CBTC系統的測評公共服務平臺。
為此,將嘗試從自動測試設備的仿真模型、測試案例集和與被測單元的接口等方面提出解決方法,還要對關鍵要素進行研究,創造出一種面向服務的測評環境,并結合CBTC車載控制器測評需求進行驗證。
對于仿真測試平臺中容錯性測試方法的問題(即在有限的軟硬件環境下,盡可能滿足仿真容錯性要求),如何通過引入故障注入等操作方法,實現仿真機車對外發動消息的故障注入控制,模擬在實際機車運行中發生概率極低的故障情況,檢測CBTC運控系統的抗干擾性,也是當前的仿真機車必須要解決的難題之一。
1.1通用的仿真機車模型
在仿真機車模型運行過程中,仿真機車需要與CC保持實時通訊,一方面接收CC發過來的控制指令,另一方面向CC實時發送列車的狀態信息。目前國內主要的地鐵機車供應商有中國南車、中國北車等,國外的供應商主要有阿爾斯通、龐巴迪等。國內不同的供應商提供的機車有較大的差別,因此需要仿真每一家供應商提供的機車,設計不同的仿真機車模型。仿真機車模型可以通過設計機車的主體框架完成機車的主體功能;用動態庫組件的方式把每種機車不同的部分功能提取出來,生成相對獨立的動態組件;通過配置可支持不同種類的機車,從而形成了相對統一的機車模型庫,建立起通用的仿真機車模型。
在真實機車運行過程中,有些情況發生的概率非常小,但是在仿真測試過程中,通用仿真機車模型的車載控制器CC中的ATP(Automatic Train Protection列車自動防護)子系統都要將各個小概率事件考慮在內,例如機車齒距、齒號不一致,CC中的ATP程序會很快判斷出列車動力學失效。定位失效,最終導致機車緊急制動。在設計通用仿真機車模型的時候,先對沒有故障注入功能的通用仿真機車模型進行動力學分析建模,再根據不同機車模型的需要,利用某種特殊故障注入的方法,把故障注入功能融入到通用仿真機車模型中去。
1.2基于形式化的模型開發
在機車建模過程中,可以把仿真機車看作為一個黑盒,對其進行操作時,仿真機車需要給出相應的響應作為輸出。仿真機車需要根據實際的機車動力學模型,通過計算機仿真技術,把實際的機車動力學模型抽象虛擬化。
以列車位移為例,利用控制理論的方法,從輸入、輸出的角度描述機車模型。仿真機車需要計算車輪轉動的周數,并結合實際的輪徑,實時計算仿真機車的位移。
1.2.1響應輸入
響應輸入:Δs:表示車體移動的車移位置增量;D:表示車輪直徑;d:表示車輪轉動方向;e:輪轉偏差率,表示車輪轉動位置與車體移動位置的偏差比。Δt:表示計算周期。V0:表示上一周期的車移速率;a:表示加速率,其中當a<0時表示減速率;s0:表示上一周期計算得到的車移位置;Δt:表示計算周期;F:下行_上行,機車車頭方向,當為TRUE時,表示車頭在上行方向,當為FALSE時,表示車頭在下行方向;D:列車行駛方向;R:列車倒車。
1.2.2響應輸出
響應輸出:ΔO:表示車輪轉動的輪轉周數增量。每隔Δt時間,計算輪轉周數的增量:ΔO =[Δs /(π×D)]×d×e;V1:表示本周期計算得到的車移速率;Δs:表示車體移動的車移位置增量;s1:表示本周期計算得到的車移位置;blockID;列車所占block區段。Abs:列車所占block的相對坐標。
該功能用來計算車體移動的車移速率、位移增量和車移位置。車體移動是指車體在與軌道平行的方向的位移,用車移位置的變化來表示車移速度。
1.2.3邏輯描述
根據車移速率、加速度計算車移速度:
V1=V0+A×Δt. (1)
根據車移速度、加速度計算車移位置的增量:
Δs=0.5×(V0+V1)×Δt . (2)
計算車移位置:
(D==向后→S1=S0﹢+Δs)∧(R ==TRUE→S1=S0+Δs)∧(F ==TURE→S1=S0+Δs). (3)
(┐D==向后→S1=S0+Δs)∧(┐R ==TRUE→S1=S0+Δs)∧(┐F ==TURE→S1=S0-Δs). (4)
————————————————————————————
* [基金項目]上海張江國家自主創新示范區專項發展資金重大項目(編號:ZJ2012-ZD-011)
計算blockID、坐標:根據上次計算得到的blockID、坐標和本周期車移位置的增量計算本周期blockID、坐標。
根據列車當前車移位置和前、后車輪距車頭距離計算列車所占block區段。
2面向服務的測試架構
由于同一廠家CBTC系統的可測試接口不盡相同,同一功能的實現和相關系統架構的差別也比較大,因此需要使用適配的方式來決定通用的測試接口。
采用緊湊的接口方式,將功能、性能、失效測試等封裝為通用的服務,隱藏掉內部的實現細節,使其具有一定的自治性和可調度性,并通過統一的接口,向各廠家的CBTC系統提供測試服務。
2.1面向服務的分布式測試架構
基于API Hook技術的故障注入方法,攔截分布式的軟件服務應用,在發送和接收消息時調用系統網絡套接字服務API,然后執行測試程序的相應函數。測試程序在識別出傳輸消息所使用的具體承載協議后,提取消息的內容,并測試整個分布式軟件服務的調用過程。該方法具有客觀化、自動化和輕量化的特點。
API Hook的故障注入方法能自動在消息中執行通信消息譯碼和狀態擾動任務,通過配置消息發動方操作系統的協議堆棧來注入故障。一個Hook截斷輸入的請求消息,通過消息連接將消息傳送到故障注入器并接收來自故障注入器的消息,經過修改的消息被正常傳送到目的地。另一個Hook截斷應答消息,并進行類似的處理,最后輸出。
將故障注入器作為一個單獨的構造,主要原因是:①簡化注入器的設計;②便于把這個處理過程安排在一個單獨的機器上運行,再通過TCP或者UDP等通信協議與消息處理API裝置連接;③可以使多個節點使用相同的測試用例,實現測試自動化。
2.2結合機車仿真模型的故障注入測試服務
面向服務的CBTC測試平臺需要仿真CBTC系統各個系統部分,包括車載控制器CC、軌旁ZC、LC設備、ATS自動監控系統和聯鎖系統等。另外,還需要仿真出通用的機車模型,滿足整個CBTC運行的條件。通用的仿真機車模型在運行過程中,需要考慮到真實列車運行過程中的實際情況,例如機車電氣延遲、坡度補償等。通用的仿真機車模型接口以服務的方式對外提供,處于服務狀態的接口能接受外界給予的故障消息激勵,并作出相應的反應。
仿真機車的故障注入測試輸入數據主要強調的是數據的隨機性,包括消息傳輸過程的通信故障,例如延時、丟包、亂序等。接口調用過程中的數據包括語法故障和API參數故障,可概括為在命令模式下隨機輸入的ASCII字符流(如非法數據、亂序數據、信號層錯誤數據等)和在視窗模式下隨機輸入的有效鍵盤與鼠標輸入序列。這些輸入完全不考慮系統邏輯,目的在于測試整個系統的抗干擾性,從某種程度上說也是一種破壞性的測試。
如圖1所示,用戶可以通過數據采集和分析模塊設置語法故障、參數故障和通信故障,這些故障消息被傳到故障注入模
塊中,故障注入模塊通過API HOOK的方式把故障注入消息送到仿真機車模型中,仿真機車模型響應故障注入消息并把結果狀態傳給結果集,最后將結果狀態記到日志數據庫中。
圖1CBTC車載控制器測試平臺
3CBTC車載控制器測試平臺應用
在CBTC系統測試中,按照CBTC系統的需求,很多情況下需要ATP子系統發出緊急制動EB指令讓機車停車,并導向安全側,以保障機車和乘客的安全。而在現實的測試中,并不是每種會導致機車EB的條件都會被測試到,因為有些情況在真實的機車運行中發生的概率非常小,但如果這些小概率事件沒有被測試到,對于整個列車的信號系統將是一個很大的隱患,例如,機車編碼里程計的齒距、齒號不一致這種情況,ATP系統必須立即發出EB指令保護機車,而普通的沒有故障注入的測試平臺則不能夠仿真模擬出這種條件。故障注入的仿真機車在正常行駛中,可根據測試人員編寫的腳本,通過上述的API HOOK原理隨時模擬并發出齒距、齒號不一致的消息,進而觀察ATP是否能夠正確地接收到相應故障命令,并發出正確的EB指令讓機車停車。
4結束語
通過仿真機車模型中故障注入的方法覆蓋了整個CBTC運控系統因容錯機制而規避了的測試路徑,提高了測試的糾錯能力,為CBTC運控系統測試中及時發現缺陷、查找系統缺陷提供了有力的保障。但從提高測試效率方面來看,還有改進的空間,如果能對故障集中的測試案例進行某種邏輯排列,促成測試序列的自動運行,則將對CBTC運控系統的自動化測試發展產生重要的意義。
參考文獻
[1]王英學,高波,李倫貴.高速列車模型實驗室系統及其測試結果分析[J].鐵道工程學報,2003(01).
[2]范文豪,馬捷中,孫姜燕.一種針對VxWorks系統的通用軟件故障注入方法[J].測控技術,2011(30).
[3]穆瑞崎,王丹,范紅梅.基于故障注入的CBTC車載測試技術的研究[J].鐵道通信信號,2010(46).
〔編輯:王霞〕
CBTC Service-oriented Evaluation Board Controller Support Environmental Research
Zhou Tingliang, Zha Wei
Abstract: CBTC car safety controller is a high performance system requirements, has a very important meaning its complete test. But in the actual system development and testing, its core vehicle controller also lacks credible security lifecycle integration and testing methods. The most primitive method is to be tested is mounted to the vehicle system CBTC tested on a real vehicle, but the cost of this method is large, the safety factor is not high. General method proposed simulation model from three aspects, test procedures and test sets, and the interface unit, etc., and try to establish a platform for the evaluation of public services in the industrialization process of self-CBTC system.
Key words: CBTC; metro; simulator; model
2.2結合機車仿真模型的故障注入測試服務
面向服務的CBTC測試平臺需要仿真CBTC系統各個系統部分,包括車載控制器CC、軌旁ZC、LC設備、ATS自動監控系統和聯鎖系統等。另外,還需要仿真出通用的機車模型,滿足整個CBTC運行的條件。通用的仿真機車模型在運行過程中,需要考慮到真實列車運行過程中的實際情況,例如機車電氣延遲、坡度補償等。通用的仿真機車模型接口以服務的方式對外提供,處于服務狀態的接口能接受外界給予的故障消息激勵,并作出相應的反應。
仿真機車的故障注入測試輸入數據主要強調的是數據的隨機性,包括消息傳輸過程的通信故障,例如延時、丟包、亂序等。接口調用過程中的數據包括語法故障和API參數故障,可概括為在命令模式下隨機輸入的ASCII字符流(如非法數據、亂序數據、信號層錯誤數據等)和在視窗模式下隨機輸入的有效鍵盤與鼠標輸入序列。這些輸入完全不考慮系統邏輯,目的在于測試整個系統的抗干擾性,從某種程度上說也是一種破壞性的測試。
如圖1所示,用戶可以通過數據采集和分析模塊設置語法故障、參數故障和通信故障,這些故障消息被傳到故障注入模
塊中,故障注入模塊通過API HOOK的方式把故障注入消息送到仿真機車模型中,仿真機車模型響應故障注入消息并把結果狀態傳給結果集,最后將結果狀態記到日志數據庫中。
圖1CBTC車載控制器測試平臺
3CBTC車載控制器測試平臺應用
在CBTC系統測試中,按照CBTC系統的需求,很多情況下需要ATP子系統發出緊急制動EB指令讓機車停車,并導向安全側,以保障機車和乘客的安全。而在現實的測試中,并不是每種會導致機車EB的條件都會被測試到,因為有些情況在真實的機車運行中發生的概率非常小,但如果這些小概率事件沒有被測試到,對于整個列車的信號系統將是一個很大的隱患,例如,機車編碼里程計的齒距、齒號不一致這種情況,ATP系統必須立即發出EB指令保護機車,而普通的沒有故障注入的測試平臺則不能夠仿真模擬出這種條件。故障注入的仿真機車在正常行駛中,可根據測試人員編寫的腳本,通過上述的API HOOK原理隨時模擬并發出齒距、齒號不一致的消息,進而觀察ATP是否能夠正確地接收到相應故障命令,并發出正確的EB指令讓機車停車。
4結束語
通過仿真機車模型中故障注入的方法覆蓋了整個CBTC運控系統因容錯機制而規避了的測試路徑,提高了測試的糾錯能力,為CBTC運控系統測試中及時發現缺陷、查找系統缺陷提供了有力的保障。但從提高測試效率方面來看,還有改進的空間,如果能對故障集中的測試案例進行某種邏輯排列,促成測試序列的自動運行,則將對CBTC運控系統的自動化測試發展產生重要的意義。
參考文獻
[1]王英學,高波,李倫貴.高速列車模型實驗室系統及其測試結果分析[J].鐵道工程學報,2003(01).
[2]范文豪,馬捷中,孫姜燕.一種針對VxWorks系統的通用軟件故障注入方法[J].測控技術,2011(30).
[3]穆瑞崎,王丹,范紅梅.基于故障注入的CBTC車載測試技術的研究[J].鐵道通信信號,2010(46).
〔編輯:王霞〕
CBTC Service-oriented Evaluation Board Controller Support Environmental Research
Zhou Tingliang, Zha Wei
Abstract: CBTC car safety controller is a high performance system requirements, has a very important meaning its complete test. But in the actual system development and testing, its core vehicle controller also lacks credible security lifecycle integration and testing methods. The most primitive method is to be tested is mounted to the vehicle system CBTC tested on a real vehicle, but the cost of this method is large, the safety factor is not high. General method proposed simulation model from three aspects, test procedures and test sets, and the interface unit, etc., and try to establish a platform for the evaluation of public services in the industrialization process of self-CBTC system.
Key words: CBTC; metro; simulator; model
2.2結合機車仿真模型的故障注入測試服務
面向服務的CBTC測試平臺需要仿真CBTC系統各個系統部分,包括車載控制器CC、軌旁ZC、LC設備、ATS自動監控系統和聯鎖系統等。另外,還需要仿真出通用的機車模型,滿足整個CBTC運行的條件。通用的仿真機車模型在運行過程中,需要考慮到真實列車運行過程中的實際情況,例如機車電氣延遲、坡度補償等。通用的仿真機車模型接口以服務的方式對外提供,處于服務狀態的接口能接受外界給予的故障消息激勵,并作出相應的反應。
仿真機車的故障注入測試輸入數據主要強調的是數據的隨機性,包括消息傳輸過程的通信故障,例如延時、丟包、亂序等。接口調用過程中的數據包括語法故障和API參數故障,可概括為在命令模式下隨機輸入的ASCII字符流(如非法數據、亂序數據、信號層錯誤數據等)和在視窗模式下隨機輸入的有效鍵盤與鼠標輸入序列。這些輸入完全不考慮系統邏輯,目的在于測試整個系統的抗干擾性,從某種程度上說也是一種破壞性的測試。
如圖1所示,用戶可以通過數據采集和分析模塊設置語法故障、參數故障和通信故障,這些故障消息被傳到故障注入模
塊中,故障注入模塊通過API HOOK的方式把故障注入消息送到仿真機車模型中,仿真機車模型響應故障注入消息并把結果狀態傳給結果集,最后將結果狀態記到日志數據庫中。
圖1CBTC車載控制器測試平臺
3CBTC車載控制器測試平臺應用
在CBTC系統測試中,按照CBTC系統的需求,很多情況下需要ATP子系統發出緊急制動EB指令讓機車停車,并導向安全側,以保障機車和乘客的安全。而在現實的測試中,并不是每種會導致機車EB的條件都會被測試到,因為有些情況在真實的機車運行中發生的概率非常小,但如果這些小概率事件沒有被測試到,對于整個列車的信號系統將是一個很大的隱患,例如,機車編碼里程計的齒距、齒號不一致這種情況,ATP系統必須立即發出EB指令保護機車,而普通的沒有故障注入的測試平臺則不能夠仿真模擬出這種條件。故障注入的仿真機車在正常行駛中,可根據測試人員編寫的腳本,通過上述的API HOOK原理隨時模擬并發出齒距、齒號不一致的消息,進而觀察ATP是否能夠正確地接收到相應故障命令,并發出正確的EB指令讓機車停車。
4結束語
通過仿真機車模型中故障注入的方法覆蓋了整個CBTC運控系統因容錯機制而規避了的測試路徑,提高了測試的糾錯能力,為CBTC運控系統測試中及時發現缺陷、查找系統缺陷提供了有力的保障。但從提高測試效率方面來看,還有改進的空間,如果能對故障集中的測試案例進行某種邏輯排列,促成測試序列的自動運行,則將對CBTC運控系統的自動化測試發展產生重要的意義。
參考文獻
[1]王英學,高波,李倫貴.高速列車模型實驗室系統及其測試結果分析[J].鐵道工程學報,2003(01).
[2]范文豪,馬捷中,孫姜燕.一種針對VxWorks系統的通用軟件故障注入方法[J].測控技術,2011(30).
[3]穆瑞崎,王丹,范紅梅.基于故障注入的CBTC車載測試技術的研究[J].鐵道通信信號,2010(46).
〔編輯:王霞〕
CBTC Service-oriented Evaluation Board Controller Support Environmental Research
Zhou Tingliang, Zha Wei
Abstract: CBTC car safety controller is a high performance system requirements, has a very important meaning its complete test. But in the actual system development and testing, its core vehicle controller also lacks credible security lifecycle integration and testing methods. The most primitive method is to be tested is mounted to the vehicle system CBTC tested on a real vehicle, but the cost of this method is large, the safety factor is not high. General method proposed simulation model from three aspects, test procedures and test sets, and the interface unit, etc., and try to establish a platform for the evaluation of public services in the industrialization process of self-CBTC system.
Key words: CBTC; metro; simulator; model