陳 鶯
(武漢軟件工程職業(yè)學(xué)院 湖北 武漢 430205)
由于無(wú)人潛器在水下工作時(shí)需面臨復(fù)雜并且不確定的工作環(huán)境,有時(shí)需要完成復(fù)雜的水下作業(yè)任務(wù),因此水下無(wú)人潛器在水下作業(yè)時(shí)丟失或損壞的風(fēng)險(xiǎn)性極高。歷史上水下無(wú)人潛器的損失事故已多次發(fā)生,如美國(guó)“Nereus”HROV、美國(guó)“ABE”AUV和英國(guó)“Autosub-2”AUV[1]。為了提高水下無(wú)人潛器工作時(shí)的安全性,降低丟失或損壞的幾率,一種高效可靠的安全系統(tǒng)對(duì)水下無(wú)人潛器是必不可少的。
一套完整的安全系統(tǒng)包含故障診斷和故障決策兩部分。故障診斷和決策方法可分為基于信號(hào)處理的方法、基于模型分析的方法和基于知識(shí)的方法[2]?;谛盘?hào)處理的方法是一種定量分析法,其通過(guò)分析傳感器信號(hào)來(lái)提取諸如幅度、頻率及方差的特征值進(jìn)而確定故障類(lèi)型。基于模型的分析方法也需要利用實(shí)際傳感器的測(cè)量信號(hào)來(lái)訓(xùn)練故障分析模型。然而,實(shí)際對(duì)象通常是難以建模的非線性系統(tǒng),且在實(shí)際試驗(yàn)前傳感器真實(shí)數(shù)據(jù)是無(wú)法獲取的,而這是通過(guò)基于信號(hào)處理方法或基于模型分析的方法設(shè)計(jì)診斷系統(tǒng)時(shí)所必須的輸入條件。相比之下,基于知識(shí)的方法,如專(zhuān)家系統(tǒng)、模糊推理和模式識(shí)別,因?yàn)椴恍枰獪?zhǔn)確的對(duì)象模型,成為了一種更易實(shí)現(xiàn)且更合適的方法[3]。這種方法可被用于為具有不完整知識(shí)的復(fù)雜系統(tǒng)設(shè)計(jì)故障診斷系統(tǒng)。
專(zhuān)家系統(tǒng)是一種計(jì)算機(jī)程序系統(tǒng),它模擬人類(lèi)對(duì)問(wèn)題的推理過(guò)程,進(jìn)而完成對(duì)人類(lèi)知識(shí)的表征,并采用啟發(fā)式知識(shí)而非精確匹配的關(guān)系來(lái)解決問(wèn)題,更準(zhǔn)確地反映了大多數(shù)人類(lèi)知識(shí)。通常,診斷專(zhuān)家系統(tǒng)的設(shè)計(jì)有三種類(lèi)型:基于規(guī)則的診斷專(zhuān)家系統(tǒng)、基于模型的診斷專(zhuān)家系統(tǒng)和在線診斷專(zhuān)家系統(tǒng)。在基于規(guī)則的診斷專(zhuān)家系統(tǒng)中,推理策略包括前向推理(即遵循規(guī)則從原始數(shù)據(jù)到結(jié)論的推理過(guò)程),后向推理(即通過(guò)假設(shè)驗(yàn)證實(shí)現(xiàn)從目標(biāo)到數(shù)據(jù)的推理過(guò)程)和雙向推理。之后又出現(xiàn)了一種新的專(zhuān)家系統(tǒng),稱(chēng)為基于模型的診斷專(zhuān)家系統(tǒng)。這種方法的前提是測(cè)量傳感器是高精度的,這也是基于模型的診斷專(zhuān)家系統(tǒng)的關(guān)鍵問(wèn)題。在線診斷專(zhuān)家系統(tǒng)是傳統(tǒng)專(zhuān)家系統(tǒng)的知識(shí)庫(kù)和與目標(biāo)對(duì)象交互過(guò)程的組合,因?yàn)樵诰€專(zhuān)家系統(tǒng)與動(dòng)態(tài)過(guò)程并行,響應(yīng)時(shí)間成為這類(lèi)專(zhuān)家系統(tǒng)的一個(gè)關(guān)鍵問(wèn)題[4]。針對(duì)該問(wèn)題,本文提出了一種將有限狀態(tài)機(jī)算法應(yīng)用于在線專(zhuān)家系統(tǒng)推理機(jī)的方法,以提高在線專(zhuān)家系統(tǒng)的推理性能,并將其應(yīng)用于無(wú)人潛器的安全系統(tǒng)中。有限狀態(tài)機(jī)FSM包含有限數(shù)量的系統(tǒng)狀態(tài),可以在獲得輸入事件后根據(jù)狀態(tài)遷移表推理得到輸出并完成狀態(tài)遷移。它具備以清晰簡(jiǎn)潔的形式描述極其復(fù)雜的邏輯推理關(guān)系的能力,十分適用于水下無(wú)人潛器復(fù)雜安全系統(tǒng)的設(shè)計(jì)。
本文通過(guò)分析水下無(wú)人潛器的工作模式,梳理并列出水下無(wú)人潛器可能遭遇的各種故障事件,然后完成了故障事件分類(lèi)及故障等級(jí)的定義。設(shè)計(jì)安全系統(tǒng)的工作原理,根據(jù)故障事件分類(lèi)及故障等級(jí)定義確定有限狀態(tài)機(jī)的狀態(tài)集合及輸入事件集合,并完成有限狀態(tài)機(jī)的狀態(tài)遷移圖。最后在stateflow建模工具中搭建了安全系統(tǒng)的模型進(jìn)行模型驗(yàn)證,并完成了控制器代碼的自動(dòng)生成與部署。
本文中的無(wú)人潛器工作時(shí)可分為兩種模式:遙控模式和自主模式。遙控模式下,由水面作業(yè)人員遙控操作無(wú)人潛器完成試驗(yàn)任務(wù);自主模式下,無(wú)人潛器自主完成裝訂得到的試驗(yàn)任務(wù)。上述任一模式下,無(wú)人潛器都可能在正常工況和應(yīng)急工況下工作。應(yīng)急工況是指無(wú)人潛器在水下工作時(shí)遭遇突發(fā)故障或險(xiǎn)情,需要根據(jù)突發(fā)情況完成決策與自救,降低損壞或丟失的風(fēng)險(xiǎn)。此時(shí),水下無(wú)人潛器中的安全系統(tǒng)應(yīng)發(fā)揮必要的作用。
本文中的安全系統(tǒng)由應(yīng)急控制器EMU(Emergency Control Unit)、執(zhí)行機(jī)構(gòu)和應(yīng)急電源組成,如圖1所示。其中,執(zhí)行機(jī)構(gòu)包含操舵系統(tǒng)、潛浮系統(tǒng)、高壓吹除系統(tǒng)及拋載系統(tǒng)。本文提出的基于有限狀態(tài)機(jī)的故障診斷在線專(zhuān)家系統(tǒng)運(yùn)行在應(yīng)急控制器(可編程邏輯控制器PLC)中。
圖1 安全系統(tǒng)組成
實(shí)際應(yīng)用中,一些故障診斷專(zhuān)家系統(tǒng)依據(jù)故障事件的等級(jí)順序完成診斷與決策,這個(gè)過(guò)程需要花費(fèi)大量時(shí)間[5]。基于二元決策圖和故障樹(shù)分類(lèi)的專(zhuān)家系統(tǒng)是一種有效的故障診斷專(zhuān)家系統(tǒng),它可以指導(dǎo)故障分析,定位故障并決定應(yīng)急策略[6]。然而,本文中的水下無(wú)人潛器在工作過(guò)程中,可能出現(xiàn)許多并發(fā)故障事件,甚至故障等級(jí)會(huì)隨時(shí)間變化。對(duì)于這種動(dòng)態(tài)的系統(tǒng),二元決策圖和故障樹(shù)分類(lèi)方法顯現(xiàn)出它們?cè)跁r(shí)變系統(tǒng)中的不足。為了解決該問(wèn)題,本文提出了一種改進(jìn)的在線故障診斷專(zhuān)家系統(tǒng)(ODES),它可被用于這種多重故障并發(fā)或故障等級(jí)隨時(shí)間變化的復(fù)雜系統(tǒng)中,并具有靈活度高、響應(yīng)速度快、功能拓展方便等特點(diǎn)。
如圖2所示,本文中的ODES有兩種類(lèi)型的輸入:由無(wú)人潛器主控系統(tǒng)生成的實(shí)時(shí)故障或報(bào)警信號(hào);由應(yīng)急控制器生成的應(yīng)急效果監(jiān)測(cè)信號(hào)。它們都被存入故障數(shù)據(jù)庫(kù)中作為專(zhuān)家系統(tǒng)的輸入。元知識(shí)庫(kù)和專(zhuān)家決策規(guī)則庫(kù)則構(gòu)成了安全系統(tǒng)中專(zhuān)家系統(tǒng)的知識(shí)庫(kù)。
圖2 在線診斷專(zhuān)家系統(tǒng)原理圖
在專(zhuān)家系統(tǒng)的知識(shí)庫(kù)中,將造成水下無(wú)人潛器喪失工作能力的故障事件定義為頂層故障類(lèi)別T;將中層故障類(lèi)別A細(xì)分為:動(dòng)力和推進(jìn)系統(tǒng)故障(A1)、液壓操舵系統(tǒng)故障(A2)、潛浮和高壓空氣系統(tǒng)故障(A3)、均衡和疏水系統(tǒng)故障(A4)、通信系統(tǒng)故障(A5)、潛器位姿異常(A6)、軸系故障(A7)。最后,我們可以分析得到近240種基本故障事件X,分別對(duì)應(yīng)實(shí)際系統(tǒng)中可能出現(xiàn)的各種故障事件。根據(jù)以往的經(jīng)驗(yàn)和知識(shí),以上基本故障事件及它們間的組合可被劃分為四個(gè)層次,包括:預(yù)防層故障事件、A級(jí)故障事件、B級(jí)故障事件和C級(jí)故障事件。四個(gè)層次對(duì)應(yīng)的故障示例見(jiàn)表1。當(dāng)出現(xiàn)預(yù)防層故障時(shí),安全系統(tǒng)無(wú)需動(dòng)作,潛器上的主控系統(tǒng)具備自行解決問(wèn)題的能力。當(dāng)出現(xiàn)A級(jí)、B級(jí)或C級(jí)故障時(shí),應(yīng)急控制器將根據(jù)當(dāng)前情況采取不同的應(yīng)急措施,使?jié)撈髅撾x危險(xiǎn)。
表1 故障等級(jí)與對(duì)應(yīng)故障事件列表(部分)
盡管知識(shí)庫(kù)中的所有規(guī)則都能被一一列出,但由于規(guī)則數(shù)量之大,僅通過(guò)簡(jiǎn)單編程已很難清晰地將所有規(guī)則表現(xiàn)出來(lái),且由于規(guī)則數(shù)量造成推理過(guò)程復(fù)雜,推理機(jī)的響應(yīng)時(shí)間會(huì)大大增加。有限狀態(tài)機(jī)(FSM)是一種計(jì)算模型,它可以有效地降低推理混沌,為復(fù)雜系統(tǒng)的邏輯提供了建模的可能性。目前,F(xiàn)SM已被廣泛應(yīng)用于各種領(lǐng)域,包括人工四足機(jī)器人、自動(dòng)駕駛及時(shí)序電路等[7]。FSM可分為確定性有限狀態(tài)機(jī)(DFSM)和非確定性有限狀態(tài)機(jī)(NDFSM),它們都可用5個(gè)元素進(jìn)行描述,見(jiàn)式(1)。區(qū)別在于是否需要為每一個(gè)輸入信號(hào)設(shè)置遷移函數(shù),以及在相同狀態(tài)下對(duì)于相同的輸入信號(hào)是否有多個(gè)遷移函數(shù)[20]。
A=(∑,Q,q0,δ,F)
(1)
式中:∑表示非空有窮輸入事件集合,?a?∑ ,a是∑的一個(gè)事件;Q表示非空有窮狀態(tài)集合,對(duì)于?q?Q,q是Q的一個(gè)狀態(tài);q0是唯一的初始狀態(tài);δ表示狀態(tài)遷移函數(shù)δ(q,a)=p,代表狀態(tài)q接受事件a后遷移到狀態(tài)p;F?Q是接受狀態(tài)集合,對(duì)于?q?F,q是F的一個(gè)終止?fàn)顟B(tài)。
本文中在線診斷專(zhuān)家系統(tǒng)的推理機(jī)是基于NDFSM設(shè)計(jì)的,依據(jù)本文中水下無(wú)人潛器的工作模式,其狀態(tài)集合、輸入事件集合如下:
1) 狀態(tài)集合:
? Normal:狀態(tài)正常;
? Test:自檢中;
? A級(jí)故障狀態(tài):存在A級(jí)警報(bào),進(jìn)行操舵上??;
? B級(jí)故障狀態(tài):存在B級(jí)警報(bào),進(jìn)行短路吹除;
? C級(jí)故障狀態(tài):存在C級(jí)警報(bào),進(jìn)行拋載;
? 故障解除狀態(tài):故障排除后,處于待機(jī)狀態(tài)。
2) 輸入事件集合:
? A級(jí)故障報(bào)警: fault1;
? B級(jí)故障報(bào)警: fault2;
? C級(jí)故障報(bào)警: fault3;
? 自救完成;
? 復(fù)位操作;
? 應(yīng)急模擬試驗(yàn)開(kāi)始;
? 報(bào)警或應(yīng)急模擬試驗(yàn)結(jié)束。
由此,我們得到安全系統(tǒng)推理機(jī)中NDFSM的原理圖,如圖3所示。
圖3 安全系統(tǒng)NDFSM狀態(tài)遷移圖
基于模型的設(shè)計(jì)方法是一種先進(jìn)的系統(tǒng)開(kāi)發(fā)方法,可以將研發(fā)人員從編程工作中解脫出來(lái)。由于采用了圖形化的設(shè)計(jì)方法,使得開(kāi)發(fā)的目標(biāo)變得清晰、明確而且唯一,同時(shí)也便于交流和維護(hù)[8]?;谀P偷脑O(shè)計(jì)方法的核心在于對(duì)目標(biāo)對(duì)象及算法進(jìn)行建模及模型驗(yàn)證,之后是數(shù)據(jù)管理及參數(shù)配置工作,保證生成高效、高質(zhì)量、高可用性的代碼,最后進(jìn)行等效性驗(yàn)證。
Stateflow是一種控制邏輯建模工具,它通過(guò)狀態(tài)機(jī)和模擬模型中的流程圖實(shí)現(xiàn)對(duì)目標(biāo)系統(tǒng)的建模[9]。它是一種圖形化建模工具,在對(duì)復(fù)雜系統(tǒng)的邏輯進(jìn)行建模時(shí)具有無(wú)可比擬的優(yōu)越性,能為本文中基于有限狀態(tài)機(jī)的在線診斷專(zhuān)家系統(tǒng)提供極大的建模便利性。此外,它還能提供仿真環(huán)境用于模型驗(yàn)證,最后生成目標(biāo)控制器的代碼,而不需要開(kāi)發(fā)人員手動(dòng)編寫(xiě)代碼實(shí)現(xiàn)算法功能。在Stateflow中搭建安全系統(tǒng)推理機(jī)的模型并進(jìn)行封裝,如圖4所示,模型左側(cè)為輸入信號(hào),右側(cè)為輸出信號(hào),即決策結(jié)果。
圖4 安全系統(tǒng)Stateflow模型
PLC Coder是simulink中一款面向PLC的代碼生成工具[10],將其中的IDE設(shè)置為西門(mén)子Step 7,便能自動(dòng)生成得到SCL源文件。若再將該程序源文件導(dǎo)入到博途軟件中,可生成對(duì)應(yīng)的PLC程序塊,見(jiàn)圖5。該程序塊的輸入輸出與stateflow中封裝的模塊的輸入輸出是一致的。
圖5 SCL部分程序代碼及生成的程序塊(Step 7)
安全系統(tǒng)是一個(gè)雙閉環(huán)的系統(tǒng),見(jiàn)圖6。閉環(huán)1是安全系統(tǒng)對(duì)主控系統(tǒng)生成的實(shí)時(shí)故障或報(bào)警信號(hào)的響應(yīng)回路;閉環(huán)2是安全系統(tǒng)對(duì)采取應(yīng)急措施后應(yīng)急效果優(yōu)劣的響應(yīng)的回路。若通過(guò)閉環(huán)1決策所得的應(yīng)急措施有效,則閉環(huán)2不會(huì)決策出應(yīng)急措施,否則閉環(huán)2會(huì)將應(yīng)急故障等級(jí)升級(jí)并采取進(jìn)一步的應(yīng)急措施,以保證無(wú)人潛器的安全。
圖6 安全系統(tǒng)仿真原理圖
為了對(duì)應(yīng)用基于模型的設(shè)計(jì)方法開(kāi)發(fā)的安全系統(tǒng)的功能進(jìn)行驗(yàn)證,對(duì)如下應(yīng)急過(guò)程進(jìn)行仿真驗(yàn)證,依據(jù)安全系統(tǒng)決策所得結(jié)果判斷功能是否滿足要求。
1) 單一故障的應(yīng)急過(guò)程 單一故障的應(yīng)急過(guò)程是指無(wú)人潛器出現(xiàn)單一故障,安全系統(tǒng)根據(jù)故障事件確定故障等級(jí),進(jìn)而采取對(duì)應(yīng)的應(yīng)急措施。以出現(xiàn)I類(lèi)故障為例,安全系統(tǒng)的期望響應(yīng)過(guò)程如下:
fault1 → A級(jí)故障事件 → A級(jí)故障狀態(tài) → 操舵上浮 → 故障解除
將相同的故障事件輸入到對(duì)所設(shè)計(jì)的安全系統(tǒng)中,系統(tǒng)響應(yīng)情況如圖7所示。當(dāng)t=1 526 s時(shí),無(wú)人潛器出現(xiàn)I類(lèi)故障,F(xiàn)SM的狀態(tài)由“normal”轉(zhuǎn)入“A級(jí)故障狀態(tài)”。同時(shí)安全系統(tǒng)將對(duì)應(yīng)應(yīng)急舵角發(fā)送至底層運(yùn)動(dòng)控制器,由此可以說(shuō)明安全系統(tǒng)針對(duì)輸入的故障采取了正確的應(yīng)急措施。
圖7 單一故障的應(yīng)急過(guò)程
2) 故障等級(jí)的演變過(guò)程 故障等級(jí)的演變是指無(wú)人潛器出現(xiàn)故障事件并采取對(duì)應(yīng)措施的應(yīng)急過(guò)程中,無(wú)人潛器遭遇了另一個(gè)更危險(xiǎn)的故障事件。以出現(xiàn)I類(lèi)故障后又出現(xiàn)II類(lèi)故障為例,安全系統(tǒng)的期望響應(yīng)過(guò)程如下:
fault1 → A級(jí)故障事件 → A級(jí)故障狀態(tài) → 操舵上浮 → fault2 → B級(jí)故障事件 → B級(jí)故障狀態(tài) → 短路吹除
將相同的故障事件輸入到對(duì)所設(shè)計(jì)的安全系統(tǒng)中,系統(tǒng)響應(yīng)情況如圖8所示。安全系統(tǒng)的響應(yīng)情況表明系統(tǒng)能正確地在不同故障等級(jí)間切換并采取對(duì)應(yīng)的應(yīng)急措施。
圖8 故障等級(jí)的演變過(guò)程
3) 應(yīng)急失效過(guò)程 應(yīng)急失效過(guò)程是指安全系統(tǒng)采取應(yīng)急措施后,無(wú)人潛器并沒(méi)有脫離險(xiǎn)情或沒(méi)有顯現(xiàn)出脫離險(xiǎn)情的趨勢(shì)。此時(shí)安全系統(tǒng)將采取進(jìn)一步安全措施,比如用拋棄壓載替代打舵上浮,安全系統(tǒng)期望的響應(yīng)過(guò)程如下:
Fault1 → A級(jí)故障事件 → A級(jí)故障狀態(tài) → 操舵上浮 → 上浮失敗 → B級(jí)故障事件 → B級(jí)故障狀態(tài) → 短路吹除
將相同的故障事件輸入安全系統(tǒng)中,系統(tǒng)響應(yīng)情況如圖9所示。安全系統(tǒng)的響應(yīng)情況表明,系統(tǒng)能正確地對(duì)應(yīng)急失效情況進(jìn)行識(shí)別并采取進(jìn)一步的應(yīng)急措施。
圖9 應(yīng)急失效過(guò)程
仿真結(jié)果表明,應(yīng)用基于模型的設(shè)計(jì)方法開(kāi)發(fā)的安全系統(tǒng)準(zhǔn)確地融合了專(zhuān)家知識(shí),在安全系統(tǒng)可能遭遇的各種決策情況下,都表現(xiàn)出了決策的正確性,證明它具備為無(wú)人潛器安全作業(yè)提供有效保障的能力。
本文采用了有限狀態(tài)機(jī)技術(shù)對(duì)傳統(tǒng)的在線診斷專(zhuān)家系統(tǒng)進(jìn)行了改進(jìn),應(yīng)用了基于模型的設(shè)計(jì)方法,方便高效地實(shí)現(xiàn)控制器代碼的生成與部署,以一種更快速、更清晰、更準(zhǔn)確、更可靠的設(shè)計(jì)方法完成了水下無(wú)人潛器安全系統(tǒng)的設(shè)計(jì)工作。該安全系統(tǒng)經(jīng)過(guò)多種典型決策情況下的驗(yàn)證,表明它具備準(zhǔn)確故障定位和快速故障決策的能力,能為水下無(wú)人潛器進(jìn)行作業(yè)提供實(shí)時(shí)有效可靠的基本安全保障。目前,該安全系統(tǒng)偏向于決策與邏輯控制,然而水下無(wú)人潛器也可能面臨更為復(fù)雜的情況,如自救過(guò)程中也需要考慮障礙物的規(guī)避、安全姿態(tài)的控制等。此時(shí)需要安全系統(tǒng)具備執(zhí)行機(jī)構(gòu)失效時(shí)的運(yùn)動(dòng)控制功能,而這些都尚未考慮到安全系統(tǒng)的設(shè)計(jì)中。因此,集成決策、邏輯控制、傳感器信息采集及處理和閉環(huán)運(yùn)動(dòng)控制,為水下無(wú)人潛器開(kāi)發(fā)更全面、更智能的安全系統(tǒng)將是以后的主要研究?jī)?nèi)容。