對於較大型的載人載具風險過高或根本無法嘗試的應用,例如北極地帶探索、水下建橋與管線檢測及水產養殖自動化,自主水下載具(autonomous underwater vehicles;AUV)是適合機動操縱的工具。本文敘述瑞典皇家理工學院(KTH)的團隊研究採取控制策略,如何讓AUV以最低的能源消耗自主運行完成時間更長、複雜度更高的任務。
自主水下載具(AUV)如同空中的飛行器,在許多對於較大型的載人載具風險過高或根本無法嘗試的應用會是比較適合的選擇。這類應用包括北極地帶探索、水下建橋與管線檢測、以及水產養殖自動化,通常會需要AUV行駛一定的距離來抵達目標位置。一旦到達目標位置,載具可能還會需要執行敏捷的機動操縱,或是水下機動運行(hydrobatics),來捕捉圖片、影片、和其他重要的資料。
有幾項因素讓這類AUV控制演算法的開發變得複雜。在這些最關鍵的挑戰之中,無線電訊號在水中的衰減使得AUV在深海遠距運行時無法可靠地接收GPS或通訊訊號。由於缺乏通訊,更顯現AUV自主運行能力的重要性。
在瑞典皇家理工學院(KTH Royal Institute of Technology;KTH)的團隊研究控制策略,讓AUV能夠以最低的能源消耗完成時間更長、複雜度更高的任務。我們使用MATLAB和Simulink提供以模型為基礎的設計流程(Model-Based Design),模擬、優化和實現我們開發的控制演算法。經由這種方法可以先透過模擬快速地開發及評估演算法,然後在機動運行的AUV SAM(圖1)上面進行演算法的現場測試—並且提高研究的速度。
圖1 : SAM AUV(上)和其3D圖示(下)。SAM是由瑞典皇家理工學院的海洋機器人中心所設計。 |
|
AUV設計的工程權衡
當被設計來就地懸停(hover)的AUV通常會搭載多個推進器,使得AUV體積龐大,也因此無法輕易負擔長距離的航行。另一方面,雖然細長型的AUV可以航行更遠,但受限它們的形狀且推進器裝載數量不足,使這些AUV到達目標位置時更難懸停,或者讓攝影機和其他感測器朝向有意觀測的物體。
SAM為「小型經濟型海洋機器人(Small and Affordable Maritime robot)」的簡稱,在瑞典皇家理工學院的瑞典海洋機器人中心(Swedish Maritime Robotics Centre;SMaRC)開發,它考量到距離和操縱性之間的權衡。SAM長1.4公尺,重量大約15公斤,只要一位操作人員就可以輕鬆駕馭,而且價格相對低廉,因此為包含數台AUV的多載具操作帶來可能性。
為了讓SAM維持體積小、重量輕,我們為它裝配較小的電池組及有限數量的感測器。SAM的單一推進器裡面裝配了兩組反向旋轉的螺旋槳以及額外的微調子系統(trim subsystems),透過裝配來改變其浮力和重心位置,因此SAM雖然敏捷,致動力卻不足。它需要我們團隊開發的先進控制系統來執行精確的操縱,以及有效利用載具上的感測器,而這些控制系統的開發也伴隨著模擬速度和逼真度之間的工程權衡。
計算流體動態雖然有助於高度精確的流體流動模擬,僅僅是執行我們其中一個控制器演算法的測試,卻需要花費好幾天的計算才能夠完成。相較起來,在Simulink的載具動作模擬可以近乎即時地執行,而且對於定性行為建模提供充足的精確度,讓我們能夠在真正到AUV上進行測試之前,以模擬快速地驗證及優化控制概念。
建立AUV模型
AUV的建模是一項複雜的任務,因為流體動力學會隨著流動條件而改變。舉例來說,當水流猛烈時,位於高角度的衝擊力道和低角度衝擊力道大不相同。為了考量這類複雜性,我們個別建立AUV元件的流體動力模型,並且採取經常使用在空氣動力學建模的技巧—元件組合法(component build-up method)將這些模型組合在一起。
對於外部元件(或濕元件),像是AUV的外殼和噴嘴,我們使用現有的最佳資料來建立流體動力特性模型。我們以查找表的形式將這些資料包含於Simulink模型之中,其中有許多種資料來源。舉例來說,對於低角度的衝擊,使用從CFD模擬的資料。對於高角度,則使用以USAF穩定性和控制DATCOM公式為基礎的MATLAB腳本。最後,對於AUV的旋翼,則使用來自XFOIL的資料,那是一個計算了螺旋槳的空氣動力學的軟體封包,我們依水的密度和黏性來將其進行調整。
我們的Simulink模型也包含內部元件,像是可變浮力系統(variable buoyancy system;VBS)、用於橫向重心(transverse center of gravity;TCG)修整的旋轉配重、以及可以前後移動用於縱向重心(longitudinal center of gravity;LCG)修整的質量。在Simscape裡面建立這些子系統的質量和致動器模型,Simscape可以更輕鬆地將各種元件組裝到更大的受控體模型架構(圖2)。
圖2 : 模擬架構,包含Simulink受控體內的元件和致動器的子模型。 |
|
控制器建模與模擬
當我們有了準確反映AUV動態和行為的受控體模型,就可以開始在Simulink使用Control System Toolbox來進行控制器的建模和模擬。
早期的控制系統包含一組比例積分微分(proportional-integral-derivate;PID)控制器,從加速規、羅盤、深度計和其他載具上的感測器取得輸入資料,每一個控制器都關連到單一自由度。最近,我們開始評估模型預測控制(model predictive control;MPC)方法,包含線性、線性時變和非線性MPC,以及線性二次調節器(linear-quadratic regulator;LQR)的設計。
我們連結控制器模型與受控體模型對特定的液壓操縱進行封閉迴圈模擬,這些動作的複雜程度各不相同,從簡單地保持特定位置到執行水平和垂直平面的緊密循環操縱(圖3)。這些控制器使用範圍,使用的控制器範圍從簡單的腳本序列到以優化為基礎的技術,例如LQR和MPC等。
模擬一向是開發和實現有效控制策略的工具。例如,在一種情況下,我們希望AUV執行一個倒立擺動的操縱,其中牽涉到載具向後俯衝、保持垂直方向,然後向上移動直到其前端露出水面。如果我們僅限於使用AUV本身來進行試驗,要為此操縱找到有效的控制策略將極其困難。然而透過模擬,我們就可以快速嘗試各種MPC設計和PID控制器組合,並且在MATLAB產生模擬結果的詳細圖表(圖4)來查看了解哪一種方法表現最佳。
程式碼生成與驗證
在透過模擬找出一個看來有效的控制策略以後,我們按照兩條途徑之一準備在AUV上進行測試。在某些情況下,我們只需根據Simulink控制器模型撰寫控制程式碼。或者我們使用Simulink Coder直接從模型產生C程式碼,並且使用ROS Toolbox將程式碼作為獨立的機器人作業系統(Robot Operating System;ROS)節點部署到AUV上。
當我們在AUV上測試控制器時(通常會是在貯水池或海上進行現場測試的期間),我們會將載具的性能表現和行為與模擬結果進行比較。我們一致發現,從定性角度來看,AUV在現場測試中的行為在質量上與模擬行為相似(圖5)。
圖5 : AUV現場測試時序圖(左)與對應的模擬圖(右)。 |
|
當前和未來研究
在執行水下機動運行操縱時,AUV處於一個需要精確控制的操作模式。而AUV的第二種操作模式(適用於在開放水域長距離行駛)優先考慮路徑跟隨和能耗最小化,而不是精確定位。考慮到這兩種操作模式,我們目前正在研究更先進的策略,以便在不同的控制器之間進行適應性切換。
我們的團隊還使用建模和模擬來評估AUV本身的潛在增強功能。舉例來說,我們的一位同事在AUV受控體模型的前端加了一個夾具。雖然我們還沒有夾具的實際硬體,但她使用模擬來協助設計LQR控制器,該控制器可以對使用夾具時的脈衝負載和可能遇到的其他干擾做出良好回應。我們還在探索使用安裝在 AUV 側面的類似夾具,讓載具能夠鎖定一個或更多個相同的 AUV,並且開始作為一個多主體系統運作。
(本文由鈦思科技提供;作者Ivan Stenius為瑞典皇家理工學院工程力學系副教授暨瑞典海事機器人中心(SMaRC)首席研究員,Sriharsha Bhat為瑞典皇家理工學院博士生)