袁 捷
(上海電氣泰雷茲交通自動化系統(tǒng)有限公司,上海 201206)
作為安全苛求系統(tǒng),基于通信的列車控制系統(tǒng)(CBTC)承擔(dān)著列車定位、列車防護(hù)及聯(lián)鎖控制等關(guān)鍵功能。為了滿足系統(tǒng)的安全完整性等級要求,在系統(tǒng)生命周期的多個階段都需要進(jìn)行功能安全分析。
安全分析的主要目的是識別系統(tǒng)及子系統(tǒng)危害,提出緩解措施及功能安全證據(jù)等[1]。對于安全分析,EN50129 標(biāo)準(zhǔn)[2]推薦且應(yīng)用較為廣泛的方法包括失效模式、影響及危害分析(FMECA)、失效模式及影響分析(FMEA)、危害與可操作性分析(HAZOP)、故障樹分析(FTA)等。例如,文獻(xiàn)[3]將FMECA 方法應(yīng)用于城市軌道交通車輛故障分析;文獻(xiàn)[4]則對FMECA 方法進(jìn)行改進(jìn)并應(yīng)用于動車組牽引傳動系統(tǒng);文獻(xiàn)[5]將FTA方法應(yīng)用于CBTC 系統(tǒng)數(shù)據(jù)傳輸安全分析;文獻(xiàn)[6]和文獻(xiàn)[7]運(yùn)用HAZOP 方法分別對城市軌道交通車站的人員防護(hù)開關(guān)功能和列控系統(tǒng)安全軟件黑盒測試進(jìn)行了分析。隨著全自動無人駕駛等技術(shù)的不斷發(fā)展,CBTC 系統(tǒng)的功能自動化程度及復(fù)雜度越來越高,加劇了功能安全分析工作的難度。而這些分析方法依賴人工推理演繹,其結(jié)果的完整性和準(zhǔn)確性受限于分析人員的能力及對系統(tǒng)的熟悉程度。
近年來,基于模型的分析方法逐漸成為研究與應(yīng)用的熱點(diǎn)。文獻(xiàn)[8-9]總結(jié)了基于模型的分析方法在航空領(lǐng)域的發(fā)展與應(yīng)用;文獻(xiàn)[10-13]分別運(yùn)用不同的建模方法對區(qū)域控制器移動授權(quán)計(jì)算、列控系統(tǒng)ATP 等級轉(zhuǎn)換、列控系統(tǒng)列車追蹤、區(qū)間占用檢查等功能和場景進(jìn)行了研究。該文探討一種基于需求建模和仿真進(jìn)行安全分析的方法。
該文使用達(dá)索系統(tǒng)的Stimulus 需求仿真工具,基于需求建模進(jìn)行功能安全分析,其原理見圖1。主要實(shí)施步驟如下:
圖1 需求建模及安全分析原理
步驟1:在功能設(shè)計(jì)階段,根據(jù)功能需求建立功能行為模型;
步驟2:將安全需求注入需求模型;
步驟3:通過設(shè)定的功能場景或隨機(jī)場景驅(qū)動需求模型;
步驟4:根據(jù)模型的輸出結(jié)果分析安全需求的符合性。
該文選取2 個功能實(shí)例進(jìn)行分析。
(1)車門保持關(guān)閉控制,其特點(diǎn)是功能場景復(fù)雜。
(2)軌旁控制單元主備切換,其特點(diǎn)是多個子系統(tǒng)關(guān)聯(lián)、變量多、邏輯層級豐富。
車門保持關(guān)閉控制功能是全自動無人駕駛項(xiàng)目中的新增功能,當(dāng)車門保持關(guān)閉命令激活時,車門無法打開;反之,車門可以在車輛靜止時手動打開。主要應(yīng)用場景如下:
(1)列車行駛過程中激活車門保持關(guān)閉命令,禁止車門打開。
(2)正常停站時釋放站臺側(cè)車門的保持關(guān)閉命令,允許該側(cè)車門打開。
(3)列車在區(qū)間迫停時,根據(jù)乘客請求、中央操作員遠(yuǎn)程控制命令及逃生平臺布置等因素判斷激活或釋放車門保持關(guān)閉命令。
(4)系統(tǒng)發(fā)生故障時,根據(jù)列車運(yùn)行模式、通信狀態(tài)等因素判斷激活或釋放車門保持關(guān)閉命令。
該功能的輸入變量包括乘客緊急手柄輸入狀態(tài)、列車位置、逃生平臺布置、列車運(yùn)行模式、中央操作員遠(yuǎn)程控制命令等,輸出變量為車門保持關(guān)閉控制命令。該功能雖然輸出命令單一,但輸入變量眾多,任何一個變量的變化都可能導(dǎo)致一個新的場景出現(xiàn),因此所涉及的功能場景非常豐富。
在進(jìn)行建模前,首先應(yīng)當(dāng)劃定需求分析邊界。車門保持關(guān)閉控制功能主要由車載子系統(tǒng)實(shí)現(xiàn),安全分析聚焦于車門保持關(guān)閉的控制邏輯,其他相關(guān)的列車定位及中央遠(yuǎn)程命令校驗(yàn)等功能將被簡化,僅作為輸入變量用于驅(qū)動仿真功能實(shí)現(xiàn)。
結(jié)合需求設(shè)計(jì),模型中的需求分為三部分:自動/遠(yuǎn)程釋放區(qū)域判斷、乘客緊急手柄狀態(tài)監(jiān)督、車門保持關(guān)閉命令判斷。其中,車門保持關(guān)閉命令判斷又分為自動釋放、遠(yuǎn)程釋放、本地釋放和故障釋放等。需求模型結(jié)構(gòu)見圖2。
圖2 車門保持關(guān)閉控制需求模型結(jié)構(gòu)
需求建模完成后,將各個需求模塊的輸入、輸出接口相連接,并將安全需求設(shè)置為“觀察者”模式,建立仿真環(huán)境,見圖3。仿真運(yùn)行時,安全需求作為“觀察者”獨(dú)立于功能需求之外,且跟隨功能需求狀態(tài)實(shí)時運(yùn)算。“操作員命令”和“乘客輸入”為2 個驅(qū)動模型運(yùn)行的外部輸入變量。在該實(shí)例中,安全需求設(shè)置為“系統(tǒng)未處理或未鎖存乘客緊急請求”。
圖3 車門保持關(guān)閉控制仿真環(huán)境
仿真環(huán)境搭建完成后進(jìn)行隨機(jī)測試。在隨機(jī)測試中,除有明確定義的變量外,其他未定義的輸入變量默認(rèn)為隨機(jī)值,且每個周期取值不同。隨機(jī)測試可以有效提高分析的需求覆蓋率,幫助識別需求沖突、需求缺失等錯誤。
圖4 展示了一個需求沖突錯誤示例,該需求沖突由測試中注入的隨機(jī)變量組合觸發(fā)。列車故障后恢復(fù)正常運(yùn)行場景與遠(yuǎn)程/本地請求釋放場景疊加,多種釋放邏輯產(chǎn)生了不同的車門保持關(guān)閉控制命令。即圖2 中的“遠(yuǎn)程釋放”需求模塊判斷需釋放(圖中“HDC=Enable”)車門保持關(guān)閉控制命令,而“故障釋放”需求模塊判斷需施加(圖中“HDC=Disable”)車門保持關(guān)閉控制命令,由于不同的需求模塊控制同一個輸出變量,但賦值不同,工具報告需求沖突。對應(yīng)到實(shí)際功能場景,該需求沖突由乘客請求、操作員命令、通信中斷及恢復(fù)等多種運(yùn)營場景疊加導(dǎo)致,在常規(guī)靜態(tài)分析或測試中很難被識別。在設(shè)計(jì)階段,針對該沖突進(jìn)行需求修訂后該問題得以解決。
圖4 需求沖突示例
在多重場景并不完全獨(dú)立互斥的情況下,可能同時觸發(fā)矛盾的安全需求,導(dǎo)致出現(xiàn)沖突。對于輸入變量眾多、場景復(fù)雜的功能,傳統(tǒng)分析不容易識別此類沖突。借助需求建模,功能需求和輸入變量得以模型化,輸入變量可以任意、隨機(jī)取值,大大豐富了分析所覆蓋的實(shí)際運(yùn)營場景,有效提高了安全分析的完整性。
安全功能建模與仿真分析除了利用隨機(jī)變量組合獲得更多的場景覆蓋和沖突識別之外,還可以為場景分析提供精確、快速的結(jié)果輸出,提高安全分析的效率與準(zhǔn)確度。
軌旁控制單元主要承擔(dān)列車位置追蹤、進(jìn)路處理、移動授權(quán)、聯(lián)鎖控制等安全關(guān)鍵功能,支持主、備機(jī)冗余配置,正常情況下,只有主機(jī)對外輸出控制指令。同時,主機(jī)和備機(jī)互相通信,備機(jī)時刻保持與主機(jī)狀態(tài)同步。當(dāng)主機(jī)故障時,備機(jī)無縫接管控制權(quán),成為新的主機(jī)并對外輸出控制指令。
軌旁控制單元切換模塊的邏輯層級、互動關(guān)系非常復(fù)雜,涉及控區(qū)內(nèi)多臺設(shè)備的處理邏輯、數(shù)十個接口控制變量、幾百條功能需求等。傳統(tǒng)分析方式需要人工完成特定場景下的系統(tǒng)反應(yīng)推演,分析是否符合安全原則,非常有挑戰(zhàn)且耗時,而基于模型的分析方法可以有效提高分析準(zhǔn)確度與效率。
對于中大型安全功能,可以分層次進(jìn)行需求建模,實(shí)現(xiàn)對安全原則的驗(yàn)證。主要建模步驟如下:
(1)將目標(biāo)需求劃分為幾個模塊,定義模塊之間的接口變量。
(2)根據(jù)每個模塊的需求及接口變量分別搭建需求模型。
(3)將各模塊的需求模型進(jìn)行組合,并通過定義的接口變量連接,封裝成為完整的功能模型。
軌旁控制單元主備切換功能需求模型分為4 個模塊:通信接口、對端狀態(tài)判斷、同步狀態(tài)判斷和主備狀態(tài)判斷。完整的需求模型結(jié)構(gòu)見圖5。
圖5 主備切換需求模型結(jié)構(gòu)
根據(jù)實(shí)際的冗余架構(gòu),搭建由A 機(jī)和B 機(jī)組成的仿真環(huán)境,模擬主、備機(jī)冗余配置。其中,A 機(jī)和B 機(jī)的需求完全相同,即需求無須重復(fù)定義。在該實(shí)例中,安全需求定義為A 機(jī)和B 機(jī)不能同時處于主控狀態(tài),即主備切換的安全原則。
通過設(shè)定不同變量的初始值及運(yùn)行狀態(tài),可仿真不同場景下的系統(tǒng)切換反應(yīng)。以單點(diǎn)通信故障情況下的主備切換場景為例,初始變量設(shè)置為A 機(jī)優(yōu)先主控,運(yùn)行7 s 后A 機(jī)故障,隨后A 機(jī)進(jìn)入“故障消除-故障再次發(fā)生”的循環(huán)狀態(tài)。
根據(jù)設(shè)計(jì),該場景下應(yīng)當(dāng)有一臺設(shè)備處于主控狀態(tài),另一臺在與主機(jī)同步后進(jìn)入備用狀態(tài),當(dāng)主機(jī)故障后,備機(jī)立即接管成為主機(jī)。仿真結(jié)果見圖6。系統(tǒng)啟動時A機(jī)進(jìn)入主控狀態(tài),B 機(jī)先進(jìn)入初始化狀態(tài)隨后進(jìn)入備用狀態(tài);當(dāng)模擬的故障發(fā)生后,A 機(jī)退出主控、進(jìn)入初始化狀態(tài),B 機(jī)立即接管進(jìn)入主控狀態(tài);之后A 機(jī)故障消除進(jìn)入備用狀態(tài),或再次故障進(jìn)入初始化狀態(tài),B 機(jī)始終保持主控。該仿真結(jié)果符合設(shè)計(jì)意圖,且仿真過程中工具未報錯,安全需求始終得到滿足。
圖6 單點(diǎn)通信故障主備切換場景仿真結(jié)果
建模仿真分析的優(yōu)勢之一在于準(zhǔn)確且高效。一旦模型建立,工具可以根據(jù)分析者的任意輸入變量組合快速給出系統(tǒng)反應(yīng)結(jié)果,從而檢驗(yàn)需求設(shè)計(jì)是否符合預(yù)期、安全需求是否得到滿足,并且場景分析結(jié)果及安全需求的符合性由工具自動給出,可以減少分析過程中人為錯誤的影響。
該文通過2 個應(yīng)用實(shí)例介紹了一種需求建模分析方法,通過需求模型的搭建和測試,幫助識別需求沖突、設(shè)計(jì)意圖偏離、安全需求違背等錯誤。仿真分析可以通過隨機(jī)的輸入變量組合呈現(xiàn)更多場景,大大提高場景覆蓋率。同時,通過需求建模將功能設(shè)計(jì)數(shù)學(xué)化,基于模型的分析結(jié)果可以有效減少人員主觀因素影響。對于變量眾多、控制邏輯復(fù)雜的功能,該分析方法可以對傳統(tǒng)分析方法進(jìn)行有效補(bǔ)充。