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