陳 鶯
(武漢軟件工程職業學院 湖北 武漢 430205)
由于無人潛器在水下工作時需面臨復雜并且不確定的工作環境,有時需要完成復雜的水下作業任務,因此水下無人潛器在水下作業時丟失或損壞的風險性極高。歷史上水下無人潛器的損失事故已多次發生,如美國“Nereus”HROV、美國“ABE”AUV和英國“Autosub-2”AUV[1]。為了提高水下無人潛器工作時的安全性,降低丟失或損壞的幾率,一種高效可靠的安全系統對水下無人潛器是必不可少的。
一套完整的安全系統包含故障診斷和故障決策兩部分。故障診斷和決策方法可分為基于信號處理的方法、基于模型分析的方法和基于知識的方法[2]。基于信號處理的方法是一種定量分析法,其通過分析傳感器信號來提取諸如幅度、頻率及方差的特征值進而確定故障類型。基于模型的分析方法也需要利用實際傳感器的測量信號來訓練故障分析模型。然而,實際對象通常是難以建模的非線性系統,且在實際試驗前傳感器真實數據是無法獲取的,而這是通過基于信號處理方法或基于模型分析的方法設計診斷系統時所必須的輸入條件。相比之下,基于知識的方法,如專家系統、模糊推理和模式識別,因為不需要準確的對象模型,成為了一種更易實現且更合適的方法[3]。這種方法可被用于為具有不完整知識的復雜系統設計故障診斷系統。
專家系統是一種計算機程序系統,它模擬人類對問題的推理過程,進而完成對人類知識的表征,并采用啟發式知識而非精確匹配的關系來解決問題,更準確地反映了大多數人類知識。通常,診斷專家系統的設計有三種類型:基于規則的診斷專家系統、基于模型的診斷專家系統和在線診斷專家系統。在基于規則的診斷專家系統中,推理策略包括前向推理(即遵循規則從原始數據到結論的推理過程),后向推理(即通過假設驗證實現從目標到數據的推理過程)和雙向推理。之后又出現了一種新的專家系統,稱為基于模型的診斷專家系統。這種方法的前提是測量傳感器是高精度的,這也是基于模型的診斷專家系統的關鍵問題。在線診斷專家系統是傳統專家系統的知識庫和與目標對象交互過程的組合,因為在線專家系統與動態過程并行,響應時間成為這類專家系統的一個關鍵問題[4]。針對該問題,本文提出了一種將有限狀態機算法應用于在線專家系統推理機的方法,以提高在線專家系統的推理性能,并將其應用于無人潛器的安全系統中。有限狀態機FSM包含有限數量的系統狀態,可以在獲得輸入事件后根據狀態遷移表推理得到輸出并完成狀態遷移。它具備以清晰簡潔的形式描述極其復雜的邏輯推理關系的能力,十分適用于水下無人潛器復雜安全系統的設計。
本文通過分析水下無人潛器的工作模式,梳理并列出水下無人潛器可能遭遇的各種故障事件,然后完成了故障事件分類及故障等級的定義。設計安全系統的工作原理,根據故障事件分類及故障等級定義確定有限狀態機的狀態集合及輸入事件集合,并完成有限狀態機的狀態遷移圖。最后在stateflow建模工具中搭建了安全系統的模型進行模型驗證,并完成了控制器代碼的自動生成與部署。
本文中的無人潛器工作時可分為兩種模式:遙控模式和自主模式。遙控模式下,由水面作業人員遙控操作無人潛器完成試驗任務;自主模式下,無人潛器自主完成裝訂得到的試驗任務。上述任一模式下,無人潛器都可能在正常工況和應急工況下工作。應急工況是指無人潛器在水下工作時遭遇突發故障或險情,需要根據突發情況完成決策與自救,降低損壞或丟失的風險。此時,水下無人潛器中的安全系統應發揮必要的作用。
本文中的安全系統由應急控制器EMU(Emergency Control Unit)、執行機構和應急電源組成,如圖1所示。其中,執行機構包含操舵系統、潛浮系統、高壓吹除系統及拋載系統。本文提出的基于有限狀態機的故障診斷在線專家系統運行在應急控制器(可編程邏輯控制器PLC)中。

圖1 安全系統組成
實際應用中,一些故障診斷專家系統依據故障事件的等級順序完成診斷與決策,這個過程需要花費大量時間[5]。基于二元決策圖和故障樹分類的專家系統是一種有效的故障診斷專家系統,它可以指導故障分析,定位故障并決定應急策略[6]。然而,本文中的水下無人潛器在工作過程中,可能出現許多并發故障事件,甚至故障等級會隨時間變化。對于這種動態的系統,二元決策圖和故障樹分類方法顯現出它們在時變系統中的不足。為了解決該問題,本文提出了一種改進的在線故障診斷專家系統(ODES),它可被用于這種多重故障并發或故障等級隨時間變化的復雜系統中,并具有靈活度高、響應速度快、功能拓展方便等特點。
如圖2所示,本文中的ODES有兩種類型的輸入:由無人潛器主控系統生成的實時故障或報警信號;由應急控制器生成的應急效果監測信號。它們都被存入故障數據庫中作為專家系統的輸入。元知識庫和專家決策規則庫則構成了安全系統中專家系統的知識庫。

圖2 在線診斷專家系統原理圖
在專家系統的知識庫中,將造成水下無人潛器喪失工作能力的故障事件定義為頂層故障類別T;將中層故障類別A細分為:動力和推進系統故障(A1)、液壓操舵系統故障(A2)、潛浮和高壓空氣系統故障(A3)、均衡和疏水系統故障(A4)、通信系統故障(A5)、潛器位姿異常(A6)、軸系故障(A7)。最后,我們可以分析得到近240種基本故障事件X,分別對應實際系統中可能出現的各種故障事件。根據以往的經驗和知識,以上基本故障事件及它們間的組合可被劃分為四個層次,包括:預防層故障事件、A級故障事件、B級故障事件和C級故障事件。四個層次對應的故障示例見表1。當出現預防層故障時,安全系統無需動作,潛器上的主控系統具備自行解決問題的能力。當出現A級、B級或C級故障時,應急控制器將根據當前情況采取不同的應急措施,使潛器脫離危險。

表1 故障等級與對應故障事件列表(部分)
盡管知識庫中的所有規則都能被一一列出,但由于規則數量之大,僅通過簡單編程已很難清晰地將所有規則表現出來,且由于規則數量造成推理過程復雜,推理機的響應時間會大大增加。有限狀態機(FSM)是一種計算模型,它可以有效地降低推理混沌,為復雜系統的邏輯提供了建模的可能性。目前,FSM已被廣泛應用于各種領域,包括人工四足機器人、自動駕駛及時序電路等[7]。FSM可分為確定性有限狀態機(DFSM)和非確定性有限狀態機(NDFSM),它們都可用5個元素進行描述,見式(1)。區別在于是否需要為每一個輸入信號設置遷移函數,以及在相同狀態下對于相同的輸入信號是否有多個遷移函數[20]。
A=(∑,Q,q0,δ,F)
(1)
式中:∑表示非空有窮輸入事件集合,?a?∑ ,a是∑的一個事件;Q表示非空有窮狀態集合,對于?q?Q,q是Q的一個狀態;q0是唯一的初始狀態;δ表示狀態遷移函數δ(q,a)=p,代表狀態q接受事件a后遷移到狀態p;F?Q是接受狀態集合,對于?q?F,q是F的一個終止狀態。
本文中在線診斷專家系統的推理機是基于NDFSM設計的,依據本文中水下無人潛器的工作模式,其狀態集合、輸入事件集合如下:
1) 狀態集合:
? Normal:狀態正常;
? Test:自檢中;
? A級故障狀態:存在A級警報,進行操舵上浮;
? B級故障狀態:存在B級警報,進行短路吹除;
? C級故障狀態:存在C級警報,進行拋載;
? 故障解除狀態:故障排除后,處于待機狀態。
2) 輸入事件集合:
? A級故障報警: fault1;
? B級故障報警: fault2;
? C級故障報警: fault3;
? 自救完成;
? 復位操作;
? 應急模擬試驗開始;
? 報警或應急模擬試驗結束。
由此,我們得到安全系統推理機中NDFSM的原理圖,如圖3所示。

圖3 安全系統NDFSM狀態遷移圖
基于模型的設計方法是一種先進的系統開發方法,可以將研發人員從編程工作中解脫出來。由于采用了圖形化的設計方法,使得開發的目標變得清晰、明確而且唯一,同時也便于交流和維護[8]。基于模型的設計方法的核心在于對目標對象及算法進行建模及模型驗證,之后是數據管理及參數配置工作,保證生成高效、高質量、高可用性的代碼,最后進行等效性驗證。
Stateflow是一種控制邏輯建模工具,它通過狀態機和模擬模型中的流程圖實現對目標系統的建模[9]。它是一種圖形化建模工具,在對復雜系統的邏輯進行建模時具有無可比擬的優越性,能為本文中基于有限狀態機的在線診斷專家系統提供極大的建模便利性。此外,它還能提供仿真環境用于模型驗證,最后生成目標控制器的代碼,而不需要開發人員手動編寫代碼實現算法功能。在Stateflow中搭建安全系統推理機的模型并進行封裝,如圖4所示,模型左側為輸入信號,右側為輸出信號,即決策結果。

圖4 安全系統Stateflow模型
PLC Coder是simulink中一款面向PLC的代碼生成工具[10],將其中的IDE設置為西門子Step 7,便能自動生成得到SCL源文件。若再將該程序源文件導入到博途軟件中,可生成對應的PLC程序塊,見圖5。該程序塊的輸入輸出與stateflow中封裝的模塊的輸入輸出是一致的。

圖5 SCL部分程序代碼及生成的程序塊(Step 7)
安全系統是一個雙閉環的系統,見圖6。閉環1是安全系統對主控系統生成的實時故障或報警信號的響應回路;閉環2是安全系統對采取應急措施后應急效果優劣的響應的回路。若通過閉環1決策所得的應急措施有效,則閉環2不會決策出應急措施,否則閉環2會將應急故障等級升級并采取進一步的應急措施,以保證無人潛器的安全。

圖6 安全系統仿真原理圖
為了對應用基于模型的設計方法開發的安全系統的功能進行驗證,對如下應急過程進行仿真驗證,依據安全系統決策所得結果判斷功能是否滿足要求。
1) 單一故障的應急過程 單一故障的應急過程是指無人潛器出現單一故障,安全系統根據故障事件確定故障等級,進而采取對應的應急措施。以出現I類故障為例,安全系統的期望響應過程如下:
fault1 → A級故障事件 → A級故障狀態 → 操舵上浮 → 故障解除
將相同的故障事件輸入到對所設計的安全系統中,系統響應情況如圖7所示。當t=1 526 s時,無人潛器出現I類故障,FSM的狀態由“normal”轉入“A級故障狀態”。同時安全系統將對應應急舵角發送至底層運動控制器,由此可以說明安全系統針對輸入的故障采取了正確的應急措施。

圖7 單一故障的應急過程
2) 故障等級的演變過程 故障等級的演變是指無人潛器出現故障事件并采取對應措施的應急過程中,無人潛器遭遇了另一個更危險的故障事件。以出現I類故障后又出現II類故障為例,安全系統的期望響應過程如下:
fault1 → A級故障事件 → A級故障狀態 → 操舵上浮 → fault2 → B級故障事件 → B級故障狀態 → 短路吹除
將相同的故障事件輸入到對所設計的安全系統中,系統響應情況如圖8所示。安全系統的響應情況表明系統能正確地在不同故障等級間切換并采取對應的應急措施。

圖8 故障等級的演變過程
3) 應急失效過程 應急失效過程是指安全系統采取應急措施后,無人潛器并沒有脫離險情或沒有顯現出脫離險情的趨勢。此時安全系統將采取進一步安全措施,比如用拋棄壓載替代打舵上浮,安全系統期望的響應過程如下:
Fault1 → A級故障事件 → A級故障狀態 → 操舵上浮 → 上浮失敗 → B級故障事件 → B級故障狀態 → 短路吹除
將相同的故障事件輸入安全系統中,系統響應情況如圖9所示。安全系統的響應情況表明,系統能正確地對應急失效情況進行識別并采取進一步的應急措施。

圖9 應急失效過程
仿真結果表明,應用基于模型的設計方法開發的安全系統準確地融合了專家知識,在安全系統可能遭遇的各種決策情況下,都表現出了決策的正確性,證明它具備為無人潛器安全作業提供有效保障的能力。
本文采用了有限狀態機技術對傳統的在線診斷專家系統進行了改進,應用了基于模型的設計方法,方便高效地實現控制器代碼的生成與部署,以一種更快速、更清晰、更準確、更可靠的設計方法完成了水下無人潛器安全系統的設計工作。該安全系統經過多種典型決策情況下的驗證,表明它具備準確故障定位和快速故障決策的能力,能為水下無人潛器進行作業提供實時有效可靠的基本安全保障。目前,該安全系統偏向于決策與邏輯控制,然而水下無人潛器也可能面臨更為復雜的情況,如自救過程中也需要考慮障礙物的規避、安全姿態的控制等。此時需要安全系統具備執行機構失效時的運動控制功能,而這些都尚未考慮到安全系統的設計中。因此,集成決策、邏輯控制、傳感器信息采集及處理和閉環運動控制,為水下無人潛器開發更全面、更智能的安全系統將是以后的主要研究內容。