摘 要:討論并分析了建立水下無人潛器(AUV)自主運動控制規(guī)則庫的必要性和重要性及可行性。指出主動機制是主動數(shù)據(jù)庫的一個重要功能,采用事件—條件—動作的規(guī)則來實現(xiàn)其主動功能。就控制系統(tǒng)的事件,動作特點提出控制規(guī)則數(shù)據(jù)庫設(shè)計方案,解決了自主控制系統(tǒng)中控制規(guī)則單一的瓶頸問題。最后,對主動控制規(guī)則庫的實現(xiàn)技術(shù)進行了討論并提出了相應(yīng)的解決方案。
關(guān)鍵詞:自主水下潛器;自主控制; ECA規(guī)則;規(guī)則庫;主動數(shù)據(jù)庫
1 概述
在海洋環(huán)境下工作的機構(gòu)中,水下機器人及自主水下潛器(AUV)的開發(fā)和利用無疑是一個相當(dāng)具有潛力的發(fā)展方向。海洋環(huán)境的不確定性對水下機器人及自主水下潛器(AUV)提出了更高的智能性、機動性等要求。AUV要實現(xiàn)在不同的工況下自主控制,單一的控制規(guī)則顯然已經(jīng)不能滿足我們的需求。我們希望AUV的控制系統(tǒng)工作在最佳的工況下,實現(xiàn)最好的效益。這就給AUV的運動控制帶來了一定的困難。常規(guī)的解決辦法是對整個系統(tǒng)進行自適應(yīng)控制,或者對控制參數(shù)進行現(xiàn)場尋優(yōu),但是這種控制方法的針對性很強而且比較單一,成本很高且不夠靈活。所以有必要建立一個含有多控制規(guī)則并能夠調(diào)根據(jù)任務(wù)使命和海況變化現(xiàn)場切換調(diào)用不同控制規(guī)則的控制規(guī)則庫。
2 AUV控制規(guī)則庫對控制的主動需求
通過對自主水下潛器(AUV)工作過程的了解和對其工作過程的不確定性分析。在動力裝置運行過程中,自主水下潛器對控制過程中的主動需求如下:
1) 實時監(jiān)控
系統(tǒng)實時采集AUV動力裝置的運行數(shù)據(jù),隨時掌握裝置的運行狀況。包括狀態(tài)監(jiān)控、性能監(jiān)控、功能監(jiān)控、安全監(jiān)控,以及故障監(jiān)控等等。將運行特定數(shù)據(jù)記錄在數(shù)據(jù)庫當(dāng)中,并與控制規(guī)則庫中的事件參數(shù)進行比較,通過對運行過程的關(guān)鍵數(shù)據(jù)的監(jiān)控和分析,將問題反饋給AUV的使命規(guī)劃層。
2) 對出現(xiàn)的問題及時進行處理
對出現(xiàn)的問題(或使命)及時進行響應(yīng),能夠主動根據(jù)使命的需求為AUV控制器匹配控制參數(shù),然后進行控制參數(shù)與控制算法相結(jié)合形成相應(yīng)的控制規(guī)則。從而滿足使命規(guī)劃層對行為層進行控制規(guī)則的調(diào)度與切換,確保動力裝置的運行狀態(tài)保持最佳。
3) 自適應(yīng),自組織功能
當(dāng)運行狀態(tài)發(fā)生了某一很大程度的變化,而規(guī)則庫中沒有與之相匹配的規(guī)則時,控制系統(tǒng)可以實時地進行尋優(yōu)或者是通過自學(xué)習(xí)對某些控制規(guī)則進行修正。之后規(guī)則庫將尋優(yōu)之后或修正后的控制參數(shù)重新組織并且編輯入庫,使得控制規(guī)則庫可以擴充規(guī)則數(shù)量。
4) 用戶可以添加整定好的規(guī)則入庫。
在完成控制規(guī)則庫的時候,可以咨詢某方面的專家,事先向控制規(guī)庫中添加已經(jīng)整定好的控制規(guī)則和控制參數(shù)以豐富規(guī)則庫的規(guī)則容量,減少系統(tǒng)以后運行的開支。
考慮到控制規(guī)則庫在自主水下潛器結(jié)構(gòu)里的重要性,這些主動性功能雖然表現(xiàn)形式各不相同,但都可采用主動數(shù)據(jù)庫所提供的“主動性”以統(tǒng)一的機制來實現(xiàn)。
3 AUV運動控制規(guī)則庫系統(tǒng)
自主水下潛器(AUV)運動控制系統(tǒng)是由事件(使命)驅(qū)動的,在控制系統(tǒng)中利用主動數(shù)據(jù)庫技術(shù),采用事件驅(qū)動的規(guī)則庫,根據(jù)應(yīng)用需要預(yù)先定義各種事件及其相應(yīng)動作,允許不同的事件引發(fā)不同的動作。一個主動控制規(guī)則庫系統(tǒng)功能上由一個傳統(tǒng)數(shù)據(jù)庫系統(tǒng)和一個事件驅(qū)動的知識庫和相應(yīng)的事件監(jiān)視器組成。
知識庫是一組由事件驅(qū)動的知識的集合,稱為“事件庫”。每一項知識表示在相應(yīng)的事件發(fā)生時,如何來主動地執(zhí)行其中包含的由用戶預(yù)先設(shè)定的動作。事件監(jiān)視器是一個隨時監(jiān)視知識庫中的事件是否已經(jīng)發(fā)生的監(jiān)視模塊,一旦監(jiān)視到某事件已經(jīng)發(fā)生時就主動地觸發(fā)系統(tǒng),按知識庫中指明的相應(yīng)知識執(zhí)行其中預(yù)先設(shè)定的動作??梢?,知識庫中知識表示形式的不同,將獲得各種不同的主動行為,在目前常采用事件驅(qū)動的“事件—條件—動作”規(guī)則 (ECA規(guī)則)表示這種知識。
1)ECA規(guī)則的設(shè)計
主動數(shù)據(jù)庫最常用的方法是將規(guī)則系統(tǒng)與數(shù)據(jù)庫技術(shù)相結(jié)合,以增強數(shù)據(jù)庫的主動功能。ECA規(guī)則的含義為:當(dāng)某一特定事件發(fā)生的時候,系統(tǒng)將檢查規(guī)定的條件是否成立。如果這些條件滿足,系統(tǒng)會觸發(fā)相應(yīng)的動作完成預(yù)先設(shè)定的工作。E——當(dāng)事件發(fā)生時相應(yīng)規(guī)則作出反應(yīng)(可以是原子事件,也可以是一系列原子事件的復(fù)合);C——條件檢查事件發(fā)生時前后情況; A——動作描述是如果相關(guān)事件發(fā)生和條件滿足時通過規(guī)則執(zhí)行任務(wù)。主動控制規(guī)則庫工作原理如圖l所示。
2)規(guī)則模型
ECA規(guī)則描述事件、條件、動作以及它們之間的耦合方式。事件部分前面已經(jīng)說明,(主要是原
子事件或者復(fù)合事件),條件一般是一組數(shù)據(jù)庫查詢或一組邏輯表達式,動作部分可以是一組數(shù)據(jù)庫操作或者用戶第一的特定操作。ECA規(guī)則的耦合方式有E—C耦合和C—A耦合,前者描述規(guī)則的條件何時求值,后者描述條件為真時何時執(zhí)行動作。這兩種耦合方式及其組合給ECA規(guī)則帶來了很大的靈活性,增強了規(guī)則的表達能力。事件驅(qū)動的“事件—條件—動作”有如下的一般方式:
RULE<規(guī)則名>[(<參數(shù)>……)]
WHEN(事件表達式)
IF<條件1> THEN<動作1>;
…………
IF<條件n> THEN<動作n>;(n 1)
END RULE[<規(guī)則名>]
[align=center]
圖1.主動控制規(guī)則庫工作原理圖[/align]
這些主動規(guī)則受系統(tǒng)中的一個事件監(jiān)視器的監(jiān)視控制,該事件監(jiān)視器主動的時刻監(jiān)視著事實庫。這樣,用戶可以通過設(shè)置各種不同的事件驅(qū)動規(guī)則,以一種統(tǒng)一的機制來實現(xiàn)諸多主動處理功能,從而滿足各種客觀的需求。
3)主動數(shù)據(jù)庫的實現(xiàn)
使用嵌入程序語言來實現(xiàn)系統(tǒng)主動功能,按傳統(tǒng)的方法設(shè)計一個接口把數(shù)據(jù)庫的操作嵌入到應(yīng)用程序中。對該規(guī)則庫系統(tǒng)的操作是在主程序當(dāng)中嵌入SQL語言來對數(shù)據(jù)庫進行操作。由于在系統(tǒng)運行程序與數(shù)據(jù)庫之間建立兩種語言的接口,而這是相對比較容易實現(xiàn)的。
4)事件監(jiān)視器的實現(xiàn)機制
實現(xiàn)主動數(shù)據(jù)庫系統(tǒng)的關(guān)鍵在于實現(xiàn)一種有效的事件監(jiān)視器。一方面它應(yīng)有效地檢測出各種事件的發(fā)生,另一方面不能因為事件監(jiān)視器的加入運行而使原應(yīng)用程序的執(zhí)行速度發(fā)生太大地變化。這往往需要軟硬件結(jié)合起來解決問題,特別當(dāng)事件是一些中斷性質(zhì)的事件時,必須有相應(yīng)硬件的支持。下面提供幾種可供選擇的實現(xiàn)機制。
?。?)在單處理器系統(tǒng)中,事件監(jiān)視器,不妨用在操作系統(tǒng)控制下的一個優(yōu)先級高的獨立進程來實現(xiàn),以保證它能經(jīng)常地運行,起到主動監(jiān)視各種事件發(fā)生的作用。在事件庫被分成塊兒時,應(yīng)該用一個指針批示對哪個事件庫進行監(jiān)視運行。
?。?)在多處理器系統(tǒng)中,它可以獨立分配一個處理器來完成,這時要解決多個處理器間的通信和同步問題。
?。?)事件監(jiān)視器的另一種實現(xiàn)途徑是:在數(shù)據(jù)庫管理系統(tǒng)中當(dāng)執(zhí)行到所有可能發(fā)生事件的地方或在預(yù)先設(shè)定的檢查點上都會產(chǎn)生一個中斷,使機器被迫切換到事件監(jiān)視器來工作,以便核實當(dāng)時發(fā)生的事件是否已被用戶設(shè)置在事件庫中了。然后,就觸發(fā)執(zhí)行其后跟的規(guī)則或規(guī)則組,否則就返回繼續(xù)執(zhí)行。
以上幾種實現(xiàn)機制各有利弊,—般說,后一種軟硬件結(jié)合的途徑對于在單處理器上實現(xiàn)較簡單的系統(tǒng)可能是頗具吸引力的。專門分配一個處理器來實現(xiàn)事件監(jiān)視系統(tǒng),自然對一些大型系統(tǒng)而言是比較理想的。
4 具體實現(xiàn)舉例
數(shù)據(jù)庫管理系統(tǒng)使用微軟公司的SQL Server,控制系統(tǒng)的主程序使用C++實現(xiàn),對數(shù)據(jù)庫的操作使用ADO技術(shù)來實現(xiàn)。ADO(ActiveX數(shù)據(jù)對象)是Microsoft面向?qū)ο蟮臄?shù)據(jù)庫訪問新技術(shù),該技術(shù)基于COM組件,具有諸多優(yōu)點,如跨語言、跨平臺、跨操作系統(tǒng)等,適用于所有非Visual C++ OLE DB訪問。ADO是一個數(shù)據(jù)庫編程模塊,它允許OLE DB從多種語言中訪問,易于使用,速度快,內(nèi)存支出少和磁盤遺跡小。有關(guān)ADO技術(shù)在很多資料當(dāng)中都有相關(guān)介紹,這里就不詳細介紹了。
以自主水下潛器(AUV)定深PID多規(guī)則切變控制來舉例,實現(xiàn)示意圖如圖2所示。AUV做定深運動的時候會根據(jù)不同的使命及海況做不同姿態(tài)的定深運動,高速的時候通常使用升降舵就可以很容易的實現(xiàn);低速的時候由于舵效不明顯,通常使用垂直槽道推進器下拉從而使AUV下潛;有的時候為了完成特定使命我們需要AUV做快速定深、常規(guī)定深或更復(fù)雜的定深運動等等,當(dāng)遇到以上這些情況時AUV會通過事件監(jiān)視器來監(jiān)視決策層的使命事件以及海況等等參數(shù),查詢控制規(guī)則庫并且檢索與事件匹配的PID定深控制規(guī)則或者控制參數(shù),然后與對應(yīng)控制算法進行函數(shù)封裝后傳遞給控制器執(zhí)行層進行AUV定深運動控制。PID控制對應(yīng)的有三個屬性:Kp、Ki、Kd,這樣就可以實現(xiàn)一個控制算法可以選擇多種控制參數(shù)組,從而形成多種控制策略來滿足AUV定深運動控制對多種定深規(guī)則的切變換調(diào)用。當(dāng)定深PID規(guī)則庫建起來的時候可以針對不同的定深規(guī)則對規(guī)則庫參數(shù)進行規(guī)則的添加、修改、刪除、查詢檢索等功能。
[align=center]
圖2. AUV定深PID控制舉例[/align]
5 結(jié)束語
主動性功能對各種過程控制系統(tǒng)是非常重要的。利用面向?qū)ο蠹夹g(shù)及AI技術(shù)實現(xiàn),增加了規(guī)則的知識表達能力,使其表達復(fù)雜事件及復(fù)雜操作的能力更加強大,同時也提高了系統(tǒng)規(guī)則推理機的工作效率。因為很多控制系統(tǒng)要求其中的應(yīng)用軟件、數(shù)據(jù)采集、控制反饋等具有高度的實時性、安全性、可靠性、容錯性和交互性。主動性功能雖然表現(xiàn)形式各不相同,但通過主動數(shù)據(jù)庫提供的主動機制可以以統(tǒng)一的機制來實現(xiàn)。本文在自主水下潛器(AUV)系統(tǒng)水下工作自主控制系統(tǒng)的設(shè)計中充分考慮系統(tǒng)的主動需求,利用主動數(shù)據(jù)庫技術(shù)實現(xiàn)AUV控制系統(tǒng)的主動功能。 規(guī)則庫中每條規(guī)則名稱都是專業(yè)術(shù)語,避免了產(chǎn)生規(guī)則名沖突,在檢索調(diào)用的時候速度很快、易于操作,從而滿足控制器對多控制規(guī)則的實時需求。避免了從前要編寫大量的不同的控制規(guī)則算法子程序進行調(diào)用,減少了整個系統(tǒng)的資源占用量。解決了從前控制規(guī)則單一的問題,使AUV控制系統(tǒng)更合理地實地在線控制,為現(xiàn)場作業(yè)提供良好的工作環(huán)境。
參考資料:
[1]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論(第三版).北京:高等教育出版社,2000.2
[2]周志達,吳鶴齡,林國璋,高峰.主動面向?qū)ο髷?shù)據(jù)庫系統(tǒng)中主動規(guī)則的研究.北京理工大學(xué)學(xué)報,1998年12月,第38卷 第6期