袁 捷
(上海電氣泰雷茲交通自動化系統有限公司,上海 201206)
作為安全苛求系統,基于通信的列車控制系統(CBTC)承擔著列車定位、列車防護及聯鎖控制等關鍵功能。為了滿足系統的安全完整性等級要求,在系統生命周期的多個階段都需要進行功能安全分析。
安全分析的主要目的是識別系統及子系統危害,提出緩解措施及功能安全證據等[1]。對于安全分析,EN50129 標準[2]推薦且應用較為廣泛的方法包括失效模式、影響及危害分析(FMECA)、失效模式及影響分析(FMEA)、危害與可操作性分析(HAZOP)、故障樹分析(FTA)等。例如,文獻[3]將FMECA 方法應用于城市軌道交通車輛故障分析;文獻[4]則對FMECA 方法進行改進并應用于動車組牽引傳動系統;文獻[5]將FTA方法應用于CBTC 系統數據傳輸安全分析;文獻[6]和文獻[7]運用HAZOP 方法分別對城市軌道交通車站的人員防護開關功能和列控系統安全軟件黑盒測試進行了分析。隨著全自動無人駕駛等技術的不斷發展,CBTC 系統的功能自動化程度及復雜度越來越高,加劇了功能安全分析工作的難度。而這些分析方法依賴人工推理演繹,其結果的完整性和準確性受限于分析人員的能力及對系統的熟悉程度。
近年來,基于模型的分析方法逐漸成為研究與應用的熱點。文獻[8-9]總結了基于模型的分析方法在航空領域的發展與應用;文獻[10-13]分別運用不同的建模方法對區域控制器移動授權計算、列控系統ATP 等級轉換、列控系統列車追蹤、區間占用檢查等功能和場景進行了研究。該文探討一種基于需求建模和仿真進行安全分析的方法。
該文使用達索系統的Stimulus 需求仿真工具,基于需求建模進行功能安全分析,其原理見圖1。主要實施步驟如下:

圖1 需求建模及安全分析原理
步驟1:在功能設計階段,根據功能需求建立功能行為模型;
步驟2:將安全需求注入需求模型;
步驟3:通過設定的功能場景或隨機場景驅動需求模型;
步驟4:根據模型的輸出結果分析安全需求的符合性。
該文選取2 個功能實例進行分析。
(1)車門保持關閉控制,其特點是功能場景復雜。
(2)軌旁控制單元主備切換,其特點是多個子系統關聯、變量多、邏輯層級豐富。
車門保持關閉控制功能是全自動無人駕駛項目中的新增功能,當車門保持關閉命令激活時,車門無法打開;反之,車門可以在車輛靜止時手動打開。主要應用場景如下:
(1)列車行駛過程中激活車門保持關閉命令,禁止車門打開。
(2)正常停站時釋放站臺側車門的保持關閉命令,允許該側車門打開。
(3)列車在區間迫停時,根據乘客請求、中央操作員遠程控制命令及逃生平臺布置等因素判斷激活或釋放車門保持關閉命令。
(4)系統發生故障時,根據列車運行模式、通信狀態等因素判斷激活或釋放車門保持關閉命令。
該功能的輸入變量包括乘客緊急手柄輸入狀態、列車位置、逃生平臺布置、列車運行模式、中央操作員遠程控制命令等,輸出變量為車門保持關閉控制命令。該功能雖然輸出命令單一,但輸入變量眾多,任何一個變量的變化都可能導致一個新的場景出現,因此所涉及的功能場景非常豐富。
在進行建模前,首先應當劃定需求分析邊界。車門保持關閉控制功能主要由車載子系統實現,安全分析聚焦于車門保持關閉的控制邏輯,其他相關的列車定位及中央遠程命令校驗等功能將被簡化,僅作為輸入變量用于驅動仿真功能實現。
結合需求設計,模型中的需求分為三部分:自動/遠程釋放區域判斷、乘客緊急手柄狀態監督、車門保持關閉命令判斷。其中,車門保持關閉命令判斷又分為自動釋放、遠程釋放、本地釋放和故障釋放等。需求模型結構見圖2。

圖2 車門保持關閉控制需求模型結構
需求建模完成后,將各個需求模塊的輸入、輸出接口相連接,并將安全需求設置為“觀察者”模式,建立仿真環境,見圖3。仿真運行時,安全需求作為“觀察者”獨立于功能需求之外,且跟隨功能需求狀態實時運算?!安僮鲉T命令”和“乘客輸入”為2 個驅動模型運行的外部輸入變量。在該實例中,安全需求設置為“系統未處理或未鎖存乘客緊急請求”。

圖3 車門保持關閉控制仿真環境
仿真環境搭建完成后進行隨機測試。在隨機測試中,除有明確定義的變量外,其他未定義的輸入變量默認為隨機值,且每個周期取值不同。隨機測試可以有效提高分析的需求覆蓋率,幫助識別需求沖突、需求缺失等錯誤。
圖4 展示了一個需求沖突錯誤示例,該需求沖突由測試中注入的隨機變量組合觸發。列車故障后恢復正常運行場景與遠程/本地請求釋放場景疊加,多種釋放邏輯產生了不同的車門保持關閉控制命令。即圖2 中的“遠程釋放”需求模塊判斷需釋放(圖中“HDC=Enable”)車門保持關閉控制命令,而“故障釋放”需求模塊判斷需施加(圖中“HDC=Disable”)車門保持關閉控制命令,由于不同的需求模塊控制同一個輸出變量,但賦值不同,工具報告需求沖突。對應到實際功能場景,該需求沖突由乘客請求、操作員命令、通信中斷及恢復等多種運營場景疊加導致,在常規靜態分析或測試中很難被識別。在設計階段,針對該沖突進行需求修訂后該問題得以解決。

圖4 需求沖突示例
在多重場景并不完全獨立互斥的情況下,可能同時觸發矛盾的安全需求,導致出現沖突。對于輸入變量眾多、場景復雜的功能,傳統分析不容易識別此類沖突。借助需求建模,功能需求和輸入變量得以模型化,輸入變量可以任意、隨機取值,大大豐富了分析所覆蓋的實際運營場景,有效提高了安全分析的完整性。
安全功能建模與仿真分析除了利用隨機變量組合獲得更多的場景覆蓋和沖突識別之外,還可以為場景分析提供精確、快速的結果輸出,提高安全分析的效率與準確度。
軌旁控制單元主要承擔列車位置追蹤、進路處理、移動授權、聯鎖控制等安全關鍵功能,支持主、備機冗余配置,正常情況下,只有主機對外輸出控制指令。同時,主機和備機互相通信,備機時刻保持與主機狀態同步。當主機故障時,備機無縫接管控制權,成為新的主機并對外輸出控制指令。
軌旁控制單元切換模塊的邏輯層級、互動關系非常復雜,涉及控區內多臺設備的處理邏輯、數十個接口控制變量、幾百條功能需求等。傳統分析方式需要人工完成特定場景下的系統反應推演,分析是否符合安全原則,非常有挑戰且耗時,而基于模型的分析方法可以有效提高分析準確度與效率。
對于中大型安全功能,可以分層次進行需求建模,實現對安全原則的驗證。主要建模步驟如下:
(1)將目標需求劃分為幾個模塊,定義模塊之間的接口變量。
(2)根據每個模塊的需求及接口變量分別搭建需求模型。
(3)將各模塊的需求模型進行組合,并通過定義的接口變量連接,封裝成為完整的功能模型。
軌旁控制單元主備切換功能需求模型分為4 個模塊:通信接口、對端狀態判斷、同步狀態判斷和主備狀態判斷。完整的需求模型結構見圖5。

圖5 主備切換需求模型結構
根據實際的冗余架構,搭建由A 機和B 機組成的仿真環境,模擬主、備機冗余配置。其中,A 機和B 機的需求完全相同,即需求無須重復定義。在該實例中,安全需求定義為A 機和B 機不能同時處于主控狀態,即主備切換的安全原則。
通過設定不同變量的初始值及運行狀態,可仿真不同場景下的系統切換反應。以單點通信故障情況下的主備切換場景為例,初始變量設置為A 機優先主控,運行7 s 后A 機故障,隨后A 機進入“故障消除-故障再次發生”的循環狀態。
根據設計,該場景下應當有一臺設備處于主控狀態,另一臺在與主機同步后進入備用狀態,當主機故障后,備機立即接管成為主機。仿真結果見圖6。系統啟動時A機進入主控狀態,B 機先進入初始化狀態隨后進入備用狀態;當模擬的故障發生后,A 機退出主控、進入初始化狀態,B 機立即接管進入主控狀態;之后A 機故障消除進入備用狀態,或再次故障進入初始化狀態,B 機始終保持主控。該仿真結果符合設計意圖,且仿真過程中工具未報錯,安全需求始終得到滿足。

圖6 單點通信故障主備切換場景仿真結果
建模仿真分析的優勢之一在于準確且高效。一旦模型建立,工具可以根據分析者的任意輸入變量組合快速給出系統反應結果,從而檢驗需求設計是否符合預期、安全需求是否得到滿足,并且場景分析結果及安全需求的符合性由工具自動給出,可以減少分析過程中人為錯誤的影響。
該文通過2 個應用實例介紹了一種需求建模分析方法,通過需求模型的搭建和測試,幫助識別需求沖突、設計意圖偏離、安全需求違背等錯誤。仿真分析可以通過隨機的輸入變量組合呈現更多場景,大大提高場景覆蓋率。同時,通過需求建模將功能設計數學化,基于模型的分析結果可以有效減少人員主觀因素影響。對于變量眾多、控制邏輯復雜的功能,該分析方法可以對傳統分析方法進行有效補充。