陳 波,袁文強(qiáng),黃 金
(1中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司 機(jī)車(chē)車(chē)輛研究所,北京 100081;2動(dòng)車(chē)組和機(jī)車(chē)牽引與控制國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100081;3杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,杭州 310018)
近年來(lái),隨著速度350 km/h的“復(fù)興號(hào)”中國(guó)標(biāo)準(zhǔn)動(dòng)車(chē)組正式投入運(yùn)營(yíng),中國(guó)高鐵移動(dòng)裝備步入正向設(shè)計(jì)階段,因需開(kāi)發(fā)出全套高速動(dòng)車(chē)組工作邏輯。作為中國(guó)高鐵裝備產(chǎn)業(yè)集中進(jìn)行高速動(dòng)車(chē)組正向設(shè)計(jì)的最新成果,CR400AF和CR400BF這2個(gè)型號(hào)的中國(guó)標(biāo)準(zhǔn)動(dòng)車(chē)組實(shí)現(xiàn)了機(jī)械接口的物理互聯(lián)、電氣接口的數(shù)據(jù)互聯(lián)、軟件接口的邏輯互聯(lián)和操作界面的互通、主要硬件的互換,確立了不同于“歐標(biāo)”和“日標(biāo)”的中國(guó)標(biāo)準(zhǔn)體系[1]。
為了進(jìn)一步加強(qiáng)動(dòng)車(chē)組正向設(shè)計(jì)能力,尤其是面向全生命周期的動(dòng)車(chē)組正向設(shè)計(jì),國(guó)內(nèi)外開(kāi)展了不同程度的基于模型的系統(tǒng)工程(Model-Based System Engineering,MBSE)應(yīng) 用 探 索[2-4]。在系統(tǒng)的概念設(shè)計(jì)與方案階段,以標(biāo)準(zhǔn)系統(tǒng)建模語(yǔ)言(SysML)構(gòu)建動(dòng)車(chē)組系統(tǒng)模型,遵循統(tǒng)一表達(dá)規(guī)范,解決自然語(yǔ)言對(duì)于動(dòng)車(chē)組復(fù)雜場(chǎng)景表征能力弱的問(wèn)題,在一定程度上實(shí)現(xiàn)早期的系統(tǒng)仿真驗(yàn)證。
文中以動(dòng)車(chē)組換端場(chǎng)景為對(duì)象,采用Cameo System Modeler軟件,基于SysML構(gòu)建了動(dòng)車(chē)組換端仿真模型。探索了動(dòng)車(chē)組整車(chē)邏輯設(shè)計(jì)采用MBSE的方法論,遵從自上而下、從里到外、由宏觀(guān)到微觀(guān)的原則。
MBSE是一種應(yīng)用建模方法的正式方式,用于支持系統(tǒng)需求、設(shè)計(jì)、分析、檢驗(yàn)與確認(rèn)活動(dòng),這些活動(dòng)從概念設(shè)計(jì)階段開(kāi)始,貫穿整個(gè)開(kāi)發(fā)過(guò)程及后續(xù)的生命周期階段。MBSE是系統(tǒng)工程領(lǐng)域發(fā)展的一種基于模型表達(dá)和驅(qū)動(dòng)的方法,它可以看成是模型驅(qū)動(dòng)原則、方法、工具、語(yǔ)言的指導(dǎo)規(guī)范,是對(duì)學(xué)科交叉和規(guī)?;膹?fù)雜系統(tǒng)的實(shí)施[5]。
為支持MBSE的實(shí)施,在統(tǒng)一建模語(yǔ)言(Unified Modeling Language,UML)的基礎(chǔ)上提出了SysML,支持對(duì)復(fù)雜系統(tǒng)的需求、行為、參數(shù)與結(jié)構(gòu)等進(jìn)行基于圖的無(wú)二義性說(shuō)明、分析、設(shè)計(jì)。旨在從一開(kāi)始,在產(chǎn)品的相關(guān)人員間建立統(tǒng)一的交流平臺(tái)[5-6]。SysML定義了9種圖,如圖1所示。
圖1 SysML的9種 圖
北京交通大學(xué)何麗蕓利用SysML針對(duì)鐵路信號(hào)系統(tǒng)CTCS-3列控系統(tǒng)需求規(guī)范進(jìn)行建模和形式化驗(yàn)證的研究[7]。北京交通大學(xué)黃靜將基于SysML活動(dòng)圖的建模方法應(yīng)用在鐵路列控系統(tǒng)中,使用活動(dòng)圖來(lái)形象地展示虛擬軌道區(qū)段占用檢測(cè)和列車(chē)行車(chē)區(qū)段管理方式[8]。
浙江大學(xué)袁文強(qiáng)等針對(duì)動(dòng)車(chē)組高壓系統(tǒng)方案設(shè)計(jì),提出基于SysML模型的動(dòng)車(chē)組功能自動(dòng)生成高壓系統(tǒng)方案。將動(dòng)車(chē)組設(shè)計(jì)知識(shí)通過(guò)SysML表達(dá)形成動(dòng)車(chē)組高壓系統(tǒng)功能庫(kù)和組件庫(kù),定義一套符合業(yè)務(wù)知識(shí)的推理規(guī)則,針對(duì)特定的功能快速推出設(shè)計(jì)方案,提升產(chǎn)品設(shè)計(jì)效率[9]。
以某型動(dòng)車(chē)組換端邏輯為例,其換端中換端條件檢查包括:
(1)列車(chē)靜止;
(2)總風(fēng)管壓力大于700 kPa;
(3)牽引/制動(dòng)手柄處于“0”位;
(4)停放制動(dòng)施加;
(5)高壓正常工作(主斷閉合,網(wǎng)壓正常);
(6)中壓供電正常(單編組內(nèi)輔助變流器啟動(dòng)3個(gè)以上);
(7)方向開(kāi)關(guān)處于“0”位。
具體的換端操作順序如下:
(1)施加停放制動(dòng);
(2)司機(jī)手柄打到“0”位;
(3)將 方 向 開(kāi) 關(guān) 從“前”位 或“后”位 打到“0”位;
(4)拔出司機(jī)鑰匙,換端模式激活;
(5)在另一頭車(chē)插入司機(jī)鑰匙并旋轉(zhuǎn),換端模式結(jié)束。
換端模式退出條件包括:
(1)換端條件不滿(mǎn)足,自動(dòng)退出換端模式,并且主斷斷開(kāi),受電弓降下;
(2)通過(guò)換端操作順序退出。
動(dòng)車(chē)組換端場(chǎng)景復(fù)雜,SysML提供了一種可視化的動(dòng)車(chē)組換端場(chǎng)景表達(dá)方式,可將其每個(gè)邏輯過(guò)程刻畫(huà)清晰,并且具有邏輯嚴(yán)謹(jǐn)、語(yǔ)言精練、無(wú)歧義等優(yōu)點(diǎn)。
此外,Cameo System Modeler軟件還支持基于模型的動(dòng)車(chē)組換端場(chǎng)景邏輯仿真過(guò)程。通過(guò)動(dòng)車(chē)組列車(chē)級(jí)換端仿真,清晰地展示行為的細(xì)節(jié)過(guò)程,設(shè)計(jì)師能夠清楚地看到里面的每一個(gè)動(dòng)作,物質(zhì)的流動(dòng)、動(dòng)作的跳轉(zhuǎn)、信號(hào)的傳遞、部件之間的交互等一系列詳細(xì)信息,極大地輔助換端場(chǎng)景設(shè)計(jì)過(guò)程。
文中提出的動(dòng)車(chē)組換端模型構(gòu)建方法如圖2所示,分為3個(gè)步驟:
圖2 基于SysML的動(dòng)車(chē)組換端場(chǎng)景邏輯仿真技術(shù)流程
(1)動(dòng)車(chē)組結(jié)構(gòu)建模:系統(tǒng)組成建模、內(nèi)部交互建模、參數(shù)分析計(jì)算;
(2)動(dòng)車(chē)組換端時(shí)序建模:定義相關(guān)信號(hào)模型、捕獲動(dòng)車(chē)組主行為、動(dòng)車(chē)組換端狀態(tài)細(xì)化、換端場(chǎng)景設(shè)計(jì)過(guò)程參數(shù)變更;
(3)構(gòu)建換端驗(yàn)證配置:可視化動(dòng)車(chē)組換端狀態(tài)、模擬動(dòng)車(chē)組操控界面、實(shí)例化動(dòng)車(chē)組、動(dòng)車(chē)組換端時(shí)序仿真配置。
各個(gè)步驟間存在依賴(lài)關(guān)系,如2.4參數(shù)變更中需要執(zhí)行在1.3步驟中定義的分析模型,第3步構(gòu)建換端驗(yàn)證配置中需要以第1步中定義的模型作為基石,圖中也顯示了每個(gè)步驟中用到的SysML元素。
采用SysML狀態(tài)機(jī)圖捕獲動(dòng)車(chē)組換端場(chǎng)景的主行為如圖3所示,其可以理解為頂層行為。包括4個(gè)狀態(tài)行為:Idling、司控室1為激活狀態(tài)、司控室2為激活狀態(tài)和換端中。為了充分合理描述換端操作場(chǎng)景,特意采用了一個(gè)換端中狀態(tài),用于承載動(dòng)車(chē)組換端中的詳細(xì)行為。
圖3 動(dòng)車(chē)組換端場(chǎng)景主行為
針對(duì)每個(gè)狀態(tài),分別定義了每個(gè)狀態(tài)下所執(zhí)行的活動(dòng)。Idling狀態(tài)下包含一個(gè)活動(dòng)resetToIDLE,表明在該狀態(tài)下需要執(zhí)行重置操作。換端中狀態(tài)下定義了其entry和do 2個(gè)字段,表明在執(zhí)行換端操作前需要優(yōu)先執(zhí)行換端條件檢查操作,在執(zhí)行了entry操作后,再執(zhí)行換端操作活動(dòng)。
在采用SysML模塊定義圖捕獲了系統(tǒng)結(jié)構(gòu)和信號(hào)、以及采用狀態(tài)機(jī)圖捕獲了系統(tǒng)主行為后,需要對(duì)其每個(gè)狀態(tài)下的具體動(dòng)作進(jìn)行捕獲。采用SysML活動(dòng)圖描述了重置為IDLE邏輯過(guò)程如圖4所示。整體過(guò)程為:第一,檢查列車(chē)哪端處于激活狀態(tài);第二,假設(shè)當(dāng)前司控室1為激活狀態(tài),則將其isActive和isKeyInserted系統(tǒng)屬性設(shè)置為false。
圖4 重置為IDLE邏輯過(guò)程
換端條件檢查邏輯過(guò)程如圖5所示,采用活動(dòng)圖捕獲了換端前所有的檢查步驟,分別用一個(gè)Call Behavior Action表征。每個(gè)檢查步驟都是一個(gè)完整封裝好了的Activity,采用這樣的模式,能夠?qū)崿F(xiàn)邏輯的封裝、活動(dòng)模型的重用且模型可讀性強(qiáng)。檢查動(dòng)作模型包括:檢查動(dòng)車(chē)組是否靜止;檢查總風(fēng)管壓力是否大于7 bar;檢查牽引手柄是否處于“0”位;檢查制動(dòng)手柄是否處于“0”位;判斷停放制動(dòng)是否施加;檢查主斷是否閉合;檢查網(wǎng)壓是否正常;檢查中壓供電是否正常;檢查方向開(kāi)關(guān)是否處于“0”位。在完成一系列檢查動(dòng)作后,判斷can-ChangeDriverRoom變量,如果其值為true,表明可以換端,否則,不滿(mǎn)足換端條件,降弓同時(shí)斷開(kāi)主斷。
圖5 換端條件檢查邏輯過(guò)程
檢查動(dòng)車(chē)組是否處于靜止?fàn)顟B(tài)的邏輯過(guò)程如圖6所示。讀取動(dòng)車(chē)組當(dāng)前速度,判斷是否為0,如果不是,則打印相應(yīng)信息,并將canChangeDriver-Room變量設(shè)置為false。
圖6 檢查動(dòng)車(chē)組是否靜止邏輯過(guò)程
執(zhí)行換端操作邏輯過(guò)程如圖7所示。其詳細(xì)過(guò)程為首先判斷當(dāng)前哪個(gè)司控臺(tái)處于激活狀態(tài),假設(shè)司控臺(tái)1處于激活狀態(tài),則將司控臺(tái)1的屬性變量isActive和isKeyInserted重置為false,同時(shí)將司控臺(tái)2的屬性變量isActive和isKeyInserted的值設(shè)置為true。將stateOfDriverRoom的值設(shè)置為Driver room 2 is active。最后,打印信息,并且執(zhí)行發(fā)送信號(hào)動(dòng)作—可以換端到司控臺(tái)2信號(hào)。
圖7 執(zhí)行換端操作邏輯過(guò)程
基于模型的交互界面如圖8所示,包括顯示當(dāng)前動(dòng)車(chē)組速度、動(dòng)車(chē)組當(dāng)前狀態(tài),分別和系統(tǒng)模型中的velocity和stateOfDriverRoom綁定。同時(shí),構(gòu)造了4個(gè) 按 鈕:Change to room 1 from IDLE、Change to room 2 from IDLE、Reset to IDLE、Change driver room,分別和4個(gè)同名信號(hào)綁定。當(dāng)點(diǎn)擊該按鈕時(shí),分別給系統(tǒng)模型發(fā)送相應(yīng)信號(hào)。
圖8 用戶(hù)操作UI界面
在換端場(chǎng)景系統(tǒng)模型構(gòu)造完成之后,開(kāi)始對(duì)其進(jìn)行仿真運(yùn)行。啟動(dòng)后的初始狀態(tài)如圖9所示,在仿真開(kāi)始時(shí)會(huì)對(duì)系統(tǒng)進(jìn)行初始化,每個(gè)關(guān)聯(lián)實(shí)例模型都會(huì)執(zhí)行其主行為模型,每個(gè)實(shí)例的主行為模型是對(duì)應(yīng)的狀態(tài)機(jī)圖,如動(dòng)車(chē)組實(shí)例會(huì)停留在起始狀態(tài),等待觸發(fā)信號(hào)。EMU界面會(huì)被啟動(dòng),并顯示當(dāng)前速度為0,2個(gè)司控室都是非激活狀態(tài)。2個(gè)司控室操控界面會(huì)被啟動(dòng),并且牽引手柄、制動(dòng)手柄和方向開(kāi)關(guān)都處于ZERO位置。狀態(tài)圖標(biāo)顯示為IDLE。在右下角變量區(qū)域,系統(tǒng)變量stateOfDriverRoom當(dāng)前值顯示2個(gè)司控臺(tái)都是非激活狀態(tài),與從其他角度看系統(tǒng)狀態(tài)一致。
圖9 換端場(chǎng)景系統(tǒng)模型仿真初始狀態(tài)
在系統(tǒng)躍遷到Idling時(shí),會(huì)執(zhí)行resetToIDLE活動(dòng),如圖10所示,首先讀取司控臺(tái)1的isActive變量,判斷其是否為激活狀態(tài),然后判斷司控臺(tái)2是否為激活狀態(tài)。由于是直接從最開(kāi)始到IDLE,所以2個(gè)司控臺(tái)的isActive值均為false。
圖10 Idling狀態(tài)下執(zhí)行resetToIDLE檢查2個(gè)司控臺(tái)都為非激活狀態(tài)
在執(zhí)行完點(diǎn)擊Change to room 1 from IDLE命令后,系統(tǒng)各狀態(tài)如圖11所示。交互界面顯示司控室1為激活狀態(tài);在狀態(tài)機(jī)圖中系統(tǒng)當(dāng)前狀態(tài)為司控室1為激活,圖標(biāo)顯示司控室1為激活;并在控制臺(tái)打印了當(dāng)前司控室1為激活狀態(tài),它們的結(jié)果保持一致。
圖11 執(zhí)行完change to room 1命令后系統(tǒng)狀態(tài)
在EMU界面上點(diǎn)擊change driver room按鈕,觸發(fā)換端操作信號(hào),系統(tǒng)進(jìn)入到換端中狀態(tài),并執(zhí)行換端條件檢查邏輯過(guò)程,如圖12所示。
圖12 點(diǎn)擊change driver room按鈕后執(zhí)行邏輯
在判斷滿(mǎn)足換端條件后,系統(tǒng)開(kāi)始執(zhí)行換端操作。如圖13所示,當(dāng)前為從司控室2換端到司控室1,需要將司控室2的isActive和isKeyInserted變量設(shè)置為false,同時(shí)將司控室1的這2個(gè)變量設(shè)置為true。
圖13 執(zhí)行換端操作邏輯仿真過(guò)程(從司控室2換端到司控室1)
成功換端到司控室1后,系統(tǒng)情況如圖14所示,收到可以換端到司控室1信號(hào)后,系統(tǒng)躍遷到司控室1為激活狀態(tài),同時(shí),圖標(biāo)顯示司控室1已激活,并在控制臺(tái)打印相關(guān)信息。
圖14 從司控室2成功換端到司控室1邏輯仿真過(guò)程
文中針對(duì)動(dòng)車(chē)組換端場(chǎng)景,基于SysML構(gòu)建了系統(tǒng)模型,利用SysML的塊定義圖、內(nèi)部塊圖等結(jié)構(gòu)圖描述動(dòng)車(chē)組換端場(chǎng)景相關(guān)結(jié)構(gòu)組成,利用狀態(tài)機(jī)圖、活動(dòng)圖等行為圖描述換端場(chǎng)景的復(fù)雜邏輯過(guò)程,定制了系統(tǒng)仿真UI界面,開(kāi)展了系統(tǒng)仿真驗(yàn)證。結(jié)果表明,所構(gòu)建的SysML系統(tǒng)模型能夠準(zhǔn)確表達(dá)動(dòng)車(chē)組換端場(chǎng)景的設(shè)計(jì)意圖,值得在未來(lái)動(dòng)車(chē)組設(shè)計(jì)中推廣使用。