王保民,陳 波,張世聰,袁文強(qiáng)
(1 中國鐵道科學(xué)研究院研究生部,北京100081;2 中國鐵道科學(xué)研究院集團(tuán)有限公司機(jī)車車輛研究所,北京100081;3 杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院,杭州310018)
基于模型的系統(tǒng)工程思想以模型為基礎(chǔ)實(shí)現(xiàn)對產(chǎn)品的系統(tǒng)設(shè)計(jì)思路的巨大轉(zhuǎn)變。它除了支持復(fù)雜產(chǎn)品的基于模型系統(tǒng)設(shè)計(jì)過程以外,還支持基于模型的復(fù)雜產(chǎn)品系統(tǒng)仿真過程[1]。通過仿真能夠清晰地展示產(chǎn)品行為的細(xì)節(jié)過程,設(shè)計(jì)師能夠清楚地看到里面的每一個動作,物質(zhì)的流動、動作的跳轉(zhuǎn)、信號的傳遞、部件之間的交互等一系列詳細(xì)信息,極大地輔助設(shè)計(jì)師加快產(chǎn)品設(shè)計(jì)過程和提升產(chǎn)品的設(shè)計(jì)質(zhì)量。
基于模型驅(qū)動的思想,采用系統(tǒng)建模語言(System Modeling Language,SysML)[2]開展動車組高壓系統(tǒng)的受電弓控制邏輯仿真研究工作。
SysML 是一種通用的針對復(fù)雜裝備系統(tǒng)工程應(yīng)用的建模語言,它可以支持包含硬件、軟件、信息、制造等多領(lǐng)域系統(tǒng)的描述、設(shè)計(jì)、分析、驗(yàn)證等。SysML 并不是一種全新的建模語言[3],它是建立在統(tǒng)一建模語言(Unified Modeling Language,UML)基礎(chǔ)之上的。Sys-ML 共包含9 種圖:用例圖、序列圖、狀態(tài)機(jī)圖、包圖、需求圖、參數(shù)圖、模塊定義圖、內(nèi)部模塊圖、活動圖。建模工具和以往的繪圖工具不同,系統(tǒng)工程師使用建模工具創(chuàng)建的是模型,當(dāng)改圖中元素時,元素本身的底層模型實(shí)現(xiàn)改變,相同元素的圖全部隨之改變。目前支持Sys-ML 的建模工具主要有 Magic Draw、Rhapsody、Integrity Modeler 和 M ? Design[4]。
分析的仿真具體場景包括受電弓的升弓和降弓過程,主斷路器的斷開和閉合過程[5]。如圖1~圖4 所示,依次給出了它們的簡化邏輯框圖。
圖1 升弓簡化邏輯
圖2 降弓簡化邏輯
圖3 主斷路器閉合簡化邏輯
圖4 斷開簡化邏輯
圖5 為面向本節(jié)仿真對象所構(gòu)造的動車組結(jié)構(gòu)分解模型。其包括控制部分列車控制管理系統(tǒng)TCMS(Train Control Management System,TCMS)、高壓系統(tǒng)和司控臺。
TCMS 有兩個重要的屬性:isPantographUP 和is-CircuitClosed,兩者皆為Boolean 類型。其中,isPantographUP 是TCMS 用于記錄受電弓的狀態(tài),如果其值為true 表示受電弓為升起狀態(tài),否則為降落狀態(tài)。is-CircuitClosed 是TCMS 用于記錄主斷路器狀態(tài),如果其值為true 表示主斷當(dāng)前狀態(tài)為閉合,否則為斷開狀態(tài)。
受電弓撥動開關(guān)和主斷路器撥動開關(guān)位于司控臺上,司機(jī)通過受電弓撥動開關(guān)和主斷路器板撥動開關(guān)向TCMS 發(fā)送升弓、降弓、合主斷和分主斷等指令。受電弓撥動開關(guān)的值屬性PantoKeySwitchState 是枚舉類型,其和后續(xù)仿真UI 界面元素綁定,用于指示司機(jī)發(fā)出何種受電弓指令操作。仿真實(shí)例中,高壓系統(tǒng)包括兩個核心物理組件受電弓和主斷路器。
為了實(shí)現(xiàn)高壓系統(tǒng)受電弓系統(tǒng)仿真,在定義用到的各種組件基礎(chǔ)上,需要梳理出組件之間交互的各種信號流,并基于模型的方式對信號建模。圖6 所示為高壓系統(tǒng)仿真用到的各種信號模型。具體可以分為4 大類。
受電弓撥動開關(guān)和主斷路器撥動開關(guān)信號分別為:PantoKeySwitchState 和 MCBKeySwitchButtonState,均為枚舉類型。PantoKeySwitchState 有3 個取值Raise/Lower/None,分別對應(yīng)發(fā)送升起/降落受電弓指令及開關(guān)歸零位置。MCBKeySwitchButtonState 有3 個取值Close/Open/None,分別對應(yīng)發(fā)送閉合/斷開主斷路器指令以及開關(guān)歸零位置。
受電弓相關(guān)的控制信號有4 個:RequestRaisePanto和RequestLowerPanto 用于模擬受電弓撥動開關(guān)向TCMS 發(fā)送的司機(jī)請求升弓或者降弓指令;PantographUP和PantographDOWN 用于模擬TCMS 經(jīng)邏輯處理后向受電弓發(fā)送的受電弓升起或者降落指令。
圖5 針對高壓系統(tǒng)仿真的動車組結(jié)構(gòu)分解圖
圖6 高壓系統(tǒng)用到信號
主斷路器相關(guān)的控制信號4 個:RequestOpenMCB和RequestCloseMCB 用于模擬主斷路器撥動開關(guān)向TCMS 發(fā)送的司機(jī)請求斷開或閉合主斷指令;MCBClose 和MCBOpen 用于模擬TCMS 經(jīng)邏輯處理后向主斷路器發(fā)送的閉合或斷開主斷指令。Terminate 信號用于終止整個高壓系統(tǒng)的仿真過程。
在定義了高壓系統(tǒng)仿真組件及其相關(guān)信號后,把每個組件當(dāng)做一個小黑盒,需要明確各個組件之間的信號流動。如圖7 所示,受電弓撥動開關(guān)通過兩個端口向TCMS 發(fā)送信號:發(fā)送請求升弓信號端口和發(fā)送請求降弓信號端口。主斷路器撥動開關(guān)也通過兩個端口向TCMS 發(fā)送信號:發(fā)送斷開主斷路器信號端口和發(fā)送閉合主斷路器信號端口。TCMS 通過兩個端口向受電弓發(fā)送信號:給受電弓發(fā)送升弓信號端口和給受電弓發(fā)送降弓信號端口;通過兩個端口向主斷路器發(fā)送信號:給主斷路器發(fā)送斷開信號端口和給主斷路器發(fā)送閉合信號端口。
高壓系統(tǒng)仿真開始時,呈現(xiàn)給使用者是一個交互界面。如圖8 所示,左邊為受電弓撥動開關(guān)面板,右邊為主斷路器撥動開關(guān)面板。使用者可以通過點(diǎn)擊按鈕向系統(tǒng)發(fā)送不同的指令,系統(tǒng)將會執(zhí)行相應(yīng)的操作。
圖7 各部件內(nèi)部信號交互
圖8 受電弓(左)和主斷路器(右)UI 界面
高壓系統(tǒng)仿真中,受控對象為受電弓和主斷路器,所用到的狀態(tài)圖標(biāo)如圖9 所示。從左往右依次為受電弓降落和升起,主斷路器閉合和斷開。
圖9 受電弓和主斷路器狀態(tài)圖標(biāo)
如圖10 為受電弓撥動開關(guān)狀態(tài),包括3 個狀態(tài):歸零位置、升弓位置和降弓位置。在初始時,受電弓撥動開關(guān)處于歸零位置狀態(tài),當(dāng)其state 屬性值為Raise 時,其狀態(tài)轉(zhuǎn)換為升弓位置。在進(jìn)入此狀態(tài)時,將執(zhí)行請求升弓活動。當(dāng)state 屬性值為Lower 時,將轉(zhuǎn)換到降弓位置狀態(tài),進(jìn)入該狀態(tài)時,執(zhí)行請求降弓動作。當(dāng)state為None 時,將轉(zhuǎn)換到歸零位置狀態(tài)。
如圖11 展示了主斷路器撥動開關(guān)的狀態(tài)轉(zhuǎn)換。包括3 個狀態(tài)位:歸零位置、閉合主斷和斷開主斷。當(dāng)mainSwitchButtonState 為Close 時,狀態(tài)躍遷為閉合主斷,在進(jìn)入此狀態(tài)時,執(zhí)行請求閉合主斷活動。當(dāng)main-SwitchButtonState 為Open 時,狀態(tài)躍遷為斷開主斷,當(dāng)mainSwitchButtonState 為 None 時,狀態(tài)躍遷為歸零位置。
圖10 受電弓撥動開關(guān)狀態(tài)轉(zhuǎn)換
圖11 主斷路器撥動開關(guān)狀態(tài)轉(zhuǎn)換
TCMS 在全程運(yùn)行中,一直處于運(yùn)行狀態(tài),期間接收來自受電弓撥動開關(guān)和主斷路器撥動開關(guān)的指令,并經(jīng)邏輯處理后向受電弓和主斷路器發(fā)送執(zhí)行信號指令。圖 12 展示了TCMS 的狀態(tài)轉(zhuǎn)換,接收的信號有RequestRaisePanto、RequestLowerPanto、RequestCloseMCB 和RequestOpenMCB。“處理請求升弓”動作活動如圖 13 所示。
圖12 TCMS 狀態(tài)轉(zhuǎn)換
如圖14 為受電弓狀態(tài),其包括兩個狀態(tài)DOWN 和UP,當(dāng)受電弓收到Pantograph UP 信號時,躍遷為UP狀態(tài),此時對應(yīng)的受電弓圖標(biāo)為升起的形狀。當(dāng)收到Pantograph DOWN 信號時,則躍遷為 DOWN 狀態(tài),此時受電弓圖標(biāo)為降落的形狀。
圖13 處理請求升弓活動
如圖 15 為主斷路器狀態(tài)轉(zhuǎn)換過程。 包括OPENED 和CLOSED 兩個狀態(tài),狀態(tài)之間的轉(zhuǎn)換事件為分別收到MCBOpen 和MCBClose 信號。
圖14 受電弓狀態(tài)轉(zhuǎn)換
圖15 主斷路器狀態(tài)轉(zhuǎn)換
如圖16 為高壓系統(tǒng)仿真配置面板,右上展示了通過構(gòu)建2 個ImageSwitcher 分別表示受電弓和主斷路器狀態(tài)的切換,受電弓狀態(tài)定義了UP 和DOWN 2 個狀態(tài)及其對應(yīng)的圖標(biāo)。右下展示了主斷路器定義的OPENED 和CLOSED 兩個狀態(tài)及其對應(yīng)的圖標(biāo)。左邊展示了高壓系統(tǒng)仿真配置,UI 包括受電弓狀態(tài)和主斷路器狀態(tài)兩個界面,executionTarget 設(shè)置為動車組實(shí)例。
通過以上的配置,運(yùn)行當(dāng)前的高壓系統(tǒng)仿真配置文件,初始時得到如圖17 所示的界面。區(qū)域1 為受電弓撥動開關(guān)交互界面,區(qū)域2 為受電弓當(dāng)前狀態(tài)顯示界面,區(qū)域3 為主斷路器當(dāng)前狀態(tài)顯示界面,區(qū)域4 為主斷路器撥動開關(guān)交互界面,區(qū)域5 為變量顯示區(qū)域,此處關(guān)心的是 TCMS 實(shí)例的isPantographUP 和isCircuit-Closed 2 個布爾變量,可以看到其初始值均為false,表明受電弓初始為降弓狀態(tài)且主斷路器為斷開狀態(tài)。
圖16 高壓系統(tǒng)仿真配置面板
圖17 高壓系統(tǒng)仿真運(yùn)行初始界面
當(dāng)點(diǎn)擊受電弓撥動開關(guān)上的Raise 按鈕后,發(fā)出升弓指令,此時受電弓撥動開關(guān)的狀態(tài)由歸零位置躍遷到升弓位置,同時將執(zhí)行請求升弓活動,如圖18 所示。當(dāng)執(zhí)行請求升弓活動后,司控臺將通過“發(fā)送請求升弓信號端口”向 TCMS 發(fā)送 RequestRaisePanto 信號,如圖19 所示。TCMS 在收到司控臺發(fā)來的請求升弓信號后,將會處理該信號,執(zhí)行處理請求升弓信號活動,執(zhí)行一系列動作,如圖20 所示。
TCMS 在處理完請求升弓信號活動后,將通過“給受電弓發(fā)送升弓信號端口”向受電弓發(fā)送Pantograph-UP 信號,如圖 21 所示,黃色的線表示前一條剛剛執(zhí)行完的單元。受電弓在收到Pantograph UP 信號后,躍遷為 UP 狀態(tài),如圖 22 所示。
圖18 受電弓撥動按鈕進(jìn)入升弓位置
圖19 司控臺向TCMS 發(fā)送RequestRaisePanto 信號
圖20 TCMS 執(zhí)行處理請求升弓信號活動
在區(qū)域2 受電弓顯示狀態(tài)變?yōu)樯螤畹耐瑫r,將會在區(qū)域1 控制臺提示“升起受電弓”,在區(qū)域3 變量區(qū)域 isPantograph UP 值 為 true,如圖 23 所示。TCMS 在完成處理升弓請求后,將回到初始狀態(tài),繼續(xù)等待接收來自其他系統(tǒng)的請求指令,如圖24 所示。
圖21 TCMS 向受電弓發(fā)送PantographUP 信號
圖22 受電弓收到PantographUP 信號后躍遷為UP 狀態(tài)
圖23 受電弓升起后仿真模型發(fā)生的變化
圖24 TCMS 回到初始狀態(tài)
基于模型驅(qū)動的思想,創(chuàng)建了TCMS、司控臺和高壓系統(tǒng)的架構(gòu)模型和行為模型(包括狀態(tài)模型、活動模型、信息交互模型等),并基于這些模型,結(jié)合動車組受電弓的控制邏輯流程,搭建了清晰的邏輯仿真模型,動畫式地呈現(xiàn)了動車組受電弓的控制過程。通過仿真研究,有助于早期驗(yàn)證系統(tǒng)設(shè)計(jì)方案的可行性、減少系統(tǒng)中存在的潛在風(fēng)險(xiǎn),方便企業(yè)與客戶之間的溝通和系統(tǒng)級語言的對接。