某電控模擬系統軟件設計的關鍵工作就是對操作訓練過程中所有可能發生的過程及過程狀態之間的轉移關系進行描述。傳統的事件驅動設計思想,通過建立作為控制程序基本單元的事件例程之間的邏輯關系及響應程序, 實現對操作訓練過程的描述。 但由于電控模擬系統往往包含有若干不同功能的分系統,而各分系統又包含有一定數目的子系統,使得其結構層級往往比較復雜, 采用這種設計思想往往存在著高復雜性和低可讀性的缺點, 代碼的可維護性和復用性也較差;因此,本文針對傳統實現方式中存在的缺點和不足,提出了一種基于 EHFSM[1,2]控制任務流程推進的軟件控制方案。
1 過程建模及 FSM 方法
1.1 過程建模
電控模擬系統的操作訓練可以看作是基于時間的一系列連續的子過程,每一個子過程描述模擬訓練在某一時間段所處的狀態,并影響或決定后一子過程的初始狀態。 因此,可以采用過程建模的方法取代傳統的事件驅動思想實現對電控模擬系統的控制,這種狀態描述的方式也使得系統的結構更加清晰,控制更加高效,有效填補了傳統方式的缺點和不足。 過程模型的組成包括:
過程:表達模擬訓練系統中的某個操作的持續時序關系。
過程遷移:表達過程之間的遷移。
事件: 指電控模擬訓練過程中激活過程遷移的元素,包括外部事件、內部事件。 其中外部事件主要指號手控制產生的命令、動作以及信號等事件,內部事件主要是指由于過程的推進產生的某些變化。
過程遷移條件:表達過程轉換的約束規則。
1.2 FSM 方法
FSM(Finite State Machine)即有限狀態機,通常被定義為由 5 個對象組成的有序集合:【公式】
f 是一個從 I×S 到 S 的函數, 即由一個輸入 Ij和一狀態 Sk給出下一個狀態:g 是一 個 從 I×S 到 O 的 函 數, 即 由 一 輸入 Ij和一狀態 Sk給出下一個輸出。其工作原理是:狀態機根據系統內接收到的計算結果、系統外輸入事件,產生相應的輸出結果,同時系統會根據轉換機制判斷條件成立與否,來決定是否根據事件發生狀態的轉換,狀態轉換后的輸出狀態作為下一事件的開始狀態。 工作原理描述如圖 1 所示?!緢D1】
通過 FSM 及過程模型各個組成部分的定義發現:電控模擬系統的過程對應于 FSM 中的轉移,仿真訓練過程中的事件對應于 FSM 中的事件,過程轉移則對應于 FSM 中的轉移,過程轉移條件對應于 FSM 中的轉移規則,可以說模擬訓練過程的模型語義和 FSM 的語義描述基本一致。 因此可以采用FSM 方法描述電控模擬系統的過程模型。
2 基于 EHFSM 的過程模型框架
2.1 FSM 方法的不足
電控模擬系統共包括開機自檢、自動、手動、監控及點步等 5 種工作方式,每一種工作方式下,操作都主要由 205 號手完成,但同時也需要 201 號手的配合,這種不同工作方式的劃分以及操作訓練的交叉配合使得訓練過程出現了不同的層次和交叉,傳統的有限狀態機并不支持這種分層和交叉描述。
此外,為滿足號手開展針對性訓練,需要定義一個由狀態Sj經過特殊的觸發事件直接轉換到 Sj的 “跳躍”,如圖 2(b)所示。 而在傳統的有限狀態機中,若實現由 S1狀態到 S3的遷移,只能通過狀態序列\\(S1,S2,S3\\)來進行,而無法 直接 由 S1 跳 轉至 S3,如圖 2(a)所示。 這種變化并不等同于上述跳躍的定義。 這種功能需求傳統的有限狀態機同樣是無法實現的?!緢D2】
2.2 基于 EHFSM 的改進方法
針對以上問題,對傳統有限狀態機進行改進,引入了擴展分層有限狀態機。 其定義如下:【公式 2】
A= α0,α1,…αn是活動集合,其中每個元素 α1=(in,pre,block) 都是 一 個 三元 組 ,in 是 I 中 的 元 素 或 者 為 空 ,pre 是 關于 V 中的變量、輸入參數或一些常量的謂詞表達式,block 是賦值語句和輸出語句的集合;δ:S×A→S 是狀態轉換函數;T= t0,t1,…,tm是非空轉換集合,每個元素 tj=\\(initial,final,action\\)都是一個三元組。 initial 和 final 是 S 中狀態,代表 tj的初始狀態和結束狀態,action∈A 是指發生在該轉換上的活動;V 是變量集。EHFSM 示例如圖 3 所示?!緢D3】
根據定義,EHFSM 主要是在有限狀態機模型描述的基礎上增加了變量、操作和遷移的前置條件。前置條件 pre 是程序執行前變量所必須滿足的一組約束條件,只有當前置條件為真時,狀態遷移才能進行,前置條件的存在使得狀態遷移存在不確定性, 即 EHFSM 中的狀態遷移不僅由系統的當前狀態和當前的輸入決定,還與狀態遷移的前置條件有關。 這樣就可以采用前置條件來實現狀態的“跳躍”;而且 EHFSM的分層描述方式也能滿足對電控模擬訓練過程的分層和交叉的描述需求。
電控模擬系統中, 主要的操作工步包括 39 個操作規程,其中開機自檢包含 5 個主要操作工步, 手動方式包含 10 個操作工步,自動方式包含 6 個操作工步,點步工作方式包含13 個操作工步,監控工作方式包含 5 個操作工步。 因此,將電控模擬系統的 EHFSM 分為了三層結構。 如圖 4 所示。其中,電控模擬系統為第一層 EHFSM。 開機自檢、手動方式、自動方式、點步方式以及監控方式為第二層 EHFSM,是第一層的具體細化。 39 個具體的操作規程是第三層 EHFSM,是第二層的具體細化。 第四層為單一操作工步 EHFSM,根據具體的訓練規程要求進行描述?!緢D4】
3 系統實現
在電控模擬系統中, 采用動態鏈表的方式存儲包含操作工序流程的約束規則, 鏈表中的每個節點存儲了一條規則。
節點的設計如下:【公式 3】
控制程序流程設計如圖 5 所示。其中,前驅轉換約束用于實現回退功能,系統根據上一狀態的節點指針,找到回退目的狀態,并通過將當前響應部件的物理狀態設置為目的狀態來實現;后置轉換約束用于實現快進功能,原理同上?!緢D5】
4 結束語
文中針對電控模擬系統傳統軟件設計思想中存在的缺點和不足,提出了采用 EHFSM 過程建模的控制方案,提高了程序設計及系統運行效率。
參考文獻:
[1] 劉 鴻 ,尹 霞.基 于 分 層 有 限 狀 態 機 的一 致 性 測 試 生成[J].清華大學學報,2003,43(7):993-996[1]LIU Hong, YIN Xia. The conformance testing ofhierarchical finite state machine [J].Journal of TsinghuaUniversity based on Generation, 2003,43\\(7\\):993-996
[2] 年曉玲.基于 擴 展 有限 狀 態 機軟件測 試用 例 自動生成 的 研究[D].成都:西南交通大學,2005
[3] 黎 文 導 ,盧 瑜.有 限 狀 態 機 (FSM)的 實 現[J].青 海 師 范 大 學學報:自然科學版,2001(4):18-21LIU Wen-dao, LU Yu. Achievement of Finite state machine\\(FSM\\) [J]. Journal of Qinghai Normal University based onGeneration:Natural Science Format,2001(4):18-21.
[4] 劉偉.面 向仿 真 訓練 系統的 過 程 模型 框架 研究 與實 現[D] .長沙:國防科技大學,2004
[5] 侯洪濤.海上 補 給 仿真 訓練 系統 模型 框架設計與實 現 面 向仿真訓練系統的過程模型框架研究與實現[D].長沙:國防科技大學,2006.
[6] 張 海 波. 基 于HLA的 分 布 式 鉆 井 施 工 仿 真 培訓 系統 研究[D].大慶:東北石油大學,2012.