摘 要:討論并分析了建立水下無人潛器(AUV)自主運動控制規(guī)則庫的必要性和重要性及可行性。指出主動機制是主動數據庫的一個重要功能,采用事件—條件—動作的規(guī)則來實現其主動功能。就控制系統的事件,動作特點提出控制規(guī)則數據庫設計方案,解決了自主控制系統中控制規(guī)則單一的瓶頸問題。最后,對主動控制規(guī)則庫的實現技術進行了討論并提出了相應的解決方案。
關鍵詞:自主水下潛器;自主控制; ECA規(guī)則;規(guī)則庫;主動數據庫
1 概述
在海洋環(huán)境下工作的機構中,水下機器人及自主水下潛器(AUV)的開發(fā)和利用無疑是一個相當具有潛力的發(fā)展方向。海洋環(huán)境的不確定性對水下機器人及自主水下潛器(AUV)提出了更高的智能性、機動性等要求。AUV要實現在不同的工況下自主控制,單一的控制規(guī)則顯然已經不能滿足我們的需求。我們希望AUV的控制系統工作在最佳的工況下,實現最好的效益。這就給AUV的運動控制帶來了一定的困難。常規(guī)的解決辦法是對整個系統進行自適應控制,或者對控制參數進行現場尋優(yōu),但是這種控制方法的針對性很強而且比較單一,成本很高且不夠靈活。所以有必要建立一個含有多控制規(guī)則并能夠調根據任務使命和海況變化現場切換調用不同控制規(guī)則的控制規(guī)則庫。
2 AUV控制規(guī)則庫對控制的主動需求
通過對自主水下潛器(AUV)工作過程的了解和對其工作過程的不確定性分析。在動力裝置運行過程中,自主水下潛器對控制過程中的主動需求如下:
1) 實時監(jiān)控
系統實時采集AUV動力裝置的運行數據,隨時掌握裝置的運行狀況。包括狀態(tài)監(jiān)控、性能監(jiān)控、功能監(jiān)控、安全監(jiān)控,以及故障監(jiān)控等等。將運行特定數據記錄在數據庫當中,并與控制規(guī)則庫中的事件參數進行比較,通過對運行過程的關鍵數據的監(jiān)控和分析,將問題反饋給AUV的使命規(guī)劃層。
2) 對出現的問題及時進行處理
對出現的問題(或使命)及時進行響應,能夠主動根據使命的需求為AUV控制器匹配控制參數,然后進行控制參數與控制算法相結合形成相應的控制規(guī)則。從而滿足使命規(guī)劃層對行為層進行控制規(guī)則的調度與切換,確保動力裝置的運行狀態(tài)保持最佳。
3) 自適應,自組織功能
當運行狀態(tài)發(fā)生了某一很大程度的變化,而規(guī)則庫中沒有與之相匹配的規(guī)則時,控制系統可以實時地進行尋優(yōu)或者是通過自學習對某些控制規(guī)則進行修正。之后規(guī)則庫將尋優(yōu)之后或修正后的控制參數重新組織并且編輯入庫,使得控制規(guī)則庫可以擴充規(guī)則數量。
4) 用戶可以添加整定好的規(guī)則入庫。
在完成控制規(guī)則庫的時候,可以咨詢某方面的專家,事先向控制規(guī)庫中添加已經整定好的控制規(guī)則和控制參數以豐富規(guī)則庫的規(guī)則容量,減少系統以后運行的開支。
考慮到控制規(guī)則庫在自主水下潛器結構里的重要性,這些主動性功能雖然表現形式各不相同,但都可采用主動數據庫所提供的“主動性”以統一的機制來實現。
3 AUV運動控制規(guī)則庫系統
自主水下潛器(AUV)運動控制系統是由事件(使命)驅動的,在控制系統中利用主動數據庫技術,采用事件驅動的規(guī)則庫,根據應用需要預先定義各種事件及其相應動作,允許不同的事件引發(fā)不同的動作。一個主動控制規(guī)則庫系統功能上由一個傳統數據庫系統和一個事件驅動的知識庫和相應的事件監(jiān)視器組成。
知識庫是一組由事件驅動的知識的集合,稱為“事件庫”。每一項知識表示在相應的事件發(fā)生時,如何來主動地執(zhí)行其中包含的由用戶預先設定的動作。事件監(jiān)視器是一個隨時監(jiān)視知識庫中的事件是否已經發(fā)生的監(jiān)視模塊,一旦監(jiān)視到某事件已經發(fā)生時就主動地觸發(fā)系統,按知識庫中指明的相應知識執(zhí)行其中預先設定的動作??梢姡R庫中知識表示形式的不同,將獲得各種不同的主動行為,在目前常采用事件驅動的“事件—條件—動作”規(guī)則 (ECA規(guī)則)表示這種知識。
1)ECA規(guī)則的設計
主動數據庫最常用的方法是將規(guī)則系統與數據庫技術相結合,以增強數據庫的主動功能。ECA規(guī)則的含義為:當某一特定事件發(fā)生的時候,系統將檢查規(guī)定的條件是否成立。如果這些條件滿足,系統會觸發(fā)相應的動作完成預先設定的工作。E——當事件發(fā)生時相應規(guī)則作出反應(可以是原子事件,也可以是一系列原子事件的復合);C——條件檢查事件發(fā)生時前后情況; A——動作描述是如果相關事件發(fā)生和條件滿足時通過規(guī)則執(zhí)行任務。主動控制規(guī)則庫工作原理如圖l所示。
2)規(guī)則模型
ECA規(guī)則描述事件、條件、動作以及它們之間的耦合方式。事件部分前面已經說明,(主要是原
子事件或者復合事件),條件一般是一組數據庫查詢或一組邏輯表達式,動作部分可以是一組數據庫操作或者用戶第一的特定操作。ECA規(guī)則的耦合方式有E—C耦合和C—A耦合,前者描述規(guī)則的條件何時求值,后者描述條件為真時何時執(zhí)行動作。這兩種耦合方式及其組合給ECA規(guī)則帶來了很大的靈活性,增強了規(guī)則的表達能力。事件驅動的“事件—條件—動作”有如下的一般方式:
RULE<規(guī)則名>[(<參數>……)]
WHEN(事件表達式)
IF<條件1> THEN<動作1>;
…………
IF<條件n> THEN<動作n>;(n 1)
END RULE[<規(guī)則名>]
[align=center]

圖1.主動控制規(guī)則庫工作原理圖[/align]
這些主動規(guī)則受系統中的一個事件監(jiān)視器的監(jiān)視控制,該事件監(jiān)視器主動的時刻監(jiān)視著事實庫。這樣,用戶可以通過設置各種不同的事件驅動規(guī)則,以一種統一的機制來實現諸多主動處理功能,從而滿足各種客觀的需求。
3)主動數據庫的實現
使用嵌入程序語言來實現系統主動功能,按傳統的方法設計一個接口把數據庫的操作嵌入到應用程序中。對該規(guī)則庫系統的操作是在主程序當中嵌入SQL語言來對數據庫進行操作。由于在系統運行程序與數據庫之間建立兩種語言的接口,而這是相對比較容易實現的。
4)事件監(jiān)視器的實現機制
實現主動數據庫系統的關鍵在于實現一種有效的事件監(jiān)視器。一方面它應有效地檢測出各種事件的發(fā)生,另一方面不能因為事件監(jiān)視器的加入運行而使原應用程序的執(zhí)行速度發(fā)生太大地變化。這往往需要軟硬件結合起來解決問題,特別當事件是一些中斷性質的事件時,必須有相應硬件的支持。下面提供幾種可供選擇的實現機制。
(1)在單處理器系統中,事件監(jiān)視器,不妨用在操作系統控制下的一個優(yōu)先級高的獨立進程來實現,以保證它能經常地運行,起到主動監(jiān)視各種事件發(fā)生的作用。在事件庫被分成塊兒時,應該用一個指針批示對哪個事件庫進行監(jiān)視運行。
(2)在多處理器系統中,它可以獨立分配一個處理器來完成,這時要解決多個處理器間的通信和同步問題。
(3)事件監(jiān)視器的另一種實現途徑是:在數據庫管理系統中當執(zhí)行到所有可能發(fā)生事件的地方或在預先設定的檢查點上都會產生一個中斷,使機器被迫切換到事件監(jiān)視器來工作,以便核實當時發(fā)生的事件是否已被用戶設置在事件庫中了。然后,就觸發(fā)執(zhí)行其后跟的規(guī)則或規(guī)則組,否則就返回繼續(xù)執(zhí)行。
以上幾種實現機制各有利弊,—般說,后一種軟硬件結合的途徑對于在單處理器上實現較簡單的系統可能是頗具吸引力的。專門分配一個處理器來實現事件監(jiān)視系統,自然對一些大型系統而言是比較理想的。
4 具體實現舉例
數據庫管理系統使用微軟公司的SQL Server,控制系統的主程序使用C++實現,對數據庫的操作使用ADO技術來實現。ADO(ActiveX數據對象)是Microsoft面向對象的數據庫訪問新技術,該技術基于COM組件,具有諸多優(yōu)點,如跨語言、跨平臺、跨操作系統等,適用于所有非Visual C++ OLE DB訪問。ADO是一個數據庫編程模塊,它允許OLE DB從多種語言中訪問,易于使用,速度快,內存支出少和磁盤遺跡小。有關ADO技術在很多資料當中都有相關介紹,這里就不詳細介紹了。
以自主水下潛器(AUV)定深PID多規(guī)則切變控制來舉例,實現示意圖如圖2所示。AUV做定深運動的時候會根據不同的使命及海況做不同姿態(tài)的定深運動,高速的時候通常使用升降舵就可以很容易的實現;低速的時候由于舵效不明顯,通常使用垂直槽道推進器下拉從而使AUV下潛;有的時候為了完成特定使命我們需要AUV做快速定深、常規(guī)定深或更復雜的定深運動等等,當遇到以上這些情況時AUV會通過事件監(jiān)視器來監(jiān)視決策層的使命事件以及海況等等參數,查詢控制規(guī)則庫并且檢索與事件匹配的PID定深控制規(guī)則或者控制參數,然后與對應控制算法進行函數封裝后傳遞給控制器執(zhí)行層進行AUV定深運動控制。PID控制對應的有三個屬性:Kp、Ki、Kd,這樣就可以實現一個控制算法可以選擇多種控制參數組,從而形成多種控制策略來滿足AUV定深運動控制對多種定深規(guī)則的切變換調用。當定深PID規(guī)則庫建起來的時候可以針對不同的定深規(guī)則對規(guī)則庫參數進行規(guī)則的添加、修改、刪除、查詢檢索等功能。
[align=center]

圖2. AUV定深PID控制舉例[/align]
5 結束語
主動性功能對各種過程控制系統是非常重要的。利用面向對象技術及AI技術實現,增加了規(guī)則的知識表達能力,使其表達復雜事件及復雜操作的能力更加強大,同時也提高了系統規(guī)則推理機的工作效率。因為很多控制系統要求其中的應用軟件、數據采集、控制反饋等具有高度的實時性、安全性、可靠性、容錯性和交互性。主動性功能雖然表現形式各不相同,但通過主動數據庫提供的主動機制可以以統一的機制來實現。本文在自主水下潛器(AUV)系統水下工作自主控制系統的設計中充分考慮系統的主動需求,利用主動數據庫技術實現AUV控制系統的主動功能。 規(guī)則庫中每條規(guī)則名稱都是專業(yè)術語,避免了產生規(guī)則名沖突,在檢索調用的時候速度很快、易于操作,從而滿足控制器對多控制規(guī)則的實時需求。避免了從前要編寫大量的不同的控制規(guī)則算法子程序進行調用,減少了整個系統的資源占用量。解決了從前控制規(guī)則單一的問題,使AUV控制系統更合理地實地在線控制,為現場作業(yè)提供良好的工作環(huán)境。
參考資料:
[1]薩師煊,王珊.數據庫系統概論(第三版).北京:高等教育出版社,2000.2
[2]周志達,吳鶴齡,林國璋,高峰.主動面向對象數據庫系統中主動規(guī)則的研究.北京理工大學學報,1998年12月,第38卷 第6期