孫嘯天,曾慶軍,尚 樂,劉子豪,戴曉強
(江蘇科技大學 自動化學院,江蘇 鎮江 212000)
自主水下機器人(Autonomous Underwater Vehicle,AUV)被廣泛應用于復雜的海洋環境中,執行油氣開發、設備維護、地形考察等任務[1]。21 世紀以來,世界各國在海洋資源開發的競爭中愈發激烈,加強自主水下機器人的研究與開發因此具有重要的戰略意義。
在AUV 運動控制中,執行器扮演著至關重要的角色,主要包括推進器與舵。由于舵在方向控制上存在滯后性,因此使用側推代替舵來控制艏向,隨著搭載推進器數量增多,發生故障的概率隨之增加,例如推進器纏繞、變形、破損、卡住等故障。因此,對發生故障的推進器進行有效的容錯控制是保證AUV 穩定運行的必要條件。
近年來,AUV 推進器容錯控制的研究越來越深入[2],容錯控制方法可分為被動容錯控制與主動容錯控制[3,4]。被動容錯控制主要采用閉環控制系統應對一些特定故障[5];主動容錯控制則是在故障發生后基于故障信息有針對性的調節控制器參數,達到容錯控制效果[6]。
目前,自主水下機器人容錯控制的研究大多采用主動容錯控制方法。Wang 等[7]將容錯控制與動態控制器設計解耦,在控制分配過程中以分配誤差最小和控制成本最低為優化目標,采用非線性規劃解決容錯控制問題,既保證了推力最大化,又實現了航行最優效率。褚振忠等[8]使用神經網絡進行故障診斷,提出一種包含飽和因子的神經網絡權值調整法,在實現自主水下機器人容錯控制的同時,提升了推力分配的精度與穩定性。Guo 等[9]使用滑模容錯控制器,根據推進器故障調整控制器的輸出,實現快速有效的容錯控制,但AUV 屬于大慣性系統,在目標軌跡突變時會出現推進器推力飽和的現象,尤其在推進器發生部分故障導致推力不足時更為嚴重。
為此,本文引入權值矩陣,通過調節故障系數以達到重構推力模型的目的,有效避免了因推力飽和而導致系統失控的情況。針對AUV 作業過程中推進器存在的故障,建立自主水下機器人空間六自由度矢量模型,設計反步滑模運動控制器實現了運動控制與跟蹤功能。仿真結果表明,該方法能使AUV 的實際運動軌跡趨于期望軌跡,高效地實現了AUV 的精準運動跟蹤,當推進器出現故障時可在短時間內補償AUV 故障造成的推力損失,使AUV 回到期望路徑上繼續進行水下作業任務。
本文選用自主研發的“探海I 型”自主水下機器人,如圖1 所示。該AUV 搭載5 路推進器,其中1 號推進器為主推,2、3 號推進器為前后側推,4、5 號推進器為前后垂推,推進器分布如圖2所示[10]。

Fig.1 AUV physical object圖1 AUV實物

Fig.2 AUV thruster distribution圖2 AUV推進器分布
由于自主水下機器人搭載的推進器在安裝時左右對稱,因此推進器不具備控制橫搖的力矩。兩路垂推控制垂向、縱傾運動;兩路側推控制橫向、搖艏運動;主推控制縱向運動。本文假設推進器模型是線性的,推進器推力可表示為:
式中:D為螺旋槳直徑;n為螺旋槳轉速;t為推力減額系數(可忽略不計);KT為無因次推力系數。
設側推力矩為d1,垂推力矩為d2,推進器各推力數據為T1、T2、T3、T4、T5,前進推力、橫移推力、俯仰推力、水平力矩、垂直力矩分別如式(2)—式(6)所示。
為了便于描述自主水下機器人的動力學模型,通常會建立大地坐標系E-ξηζ和運動坐標系O-xyz,如圖3所示。

Fig.3 AUV motion and geodetic coordinate system圖3 AUV運動與大地坐標系
假設AUV 為對稱的剛體,質量為常數。在慣性坐標系下建立六自由度空間動力學模型為:
式中:v=[uvwpqr]T為定義在運動坐標系中的速度與角速度向量,分量分別對應縱向速度、橫向速度、浮沉速度、橫滾角速度、縱傾角速度與航向角速度;η=[xyzφθφ]T為定義在慣性坐標系中的位置與姿態向量,姿態分量分別對應橫傾角、縱傾角及航向角;J(η)為坐標轉換矩陣;M為包含附加質量的慣性力矩陣;C(v)為向心力及科氏力矩陣;D(v)為水動力阻尼力矩陣;g(η)為恢復力和力矩向量;τ為作用在機器人本體上6 個自由度的控制力與力矩,也稱為控制輸入[11]。
將AUV 的浮心作為動坐標系原點,經過長期理論研究與工程實踐得到以下方程:
式中:m為AUV 的質量;xG、yG、zG為AUV 重心的坐標;Ix、Iy、Iz為AUV 在3個坐標軸上的轉動慣量。
本文忽略AUV 六自由度模型中的水平面分量,對其進一步簡化得Z 軸方向浮潛方程(yg=0)、Y 軸方向縱傾(=0),如式(9)、式(10)所示。
式中:Fi為高斯白噪聲;均為水動力參數;為多元矩陣函數G中相應分量的一階偏導數;為多元矩陣函數G中的二階混合偏導數;Zg、Mg為重力;Zprop、Mprop分別為z軸的推力與y軸的力矩。
假設AUV 深度不發生變化,只改變航向與航跡,在w=0、p=0、q=0 的條件下,AUV 水平面運動學方程可進行簡化,X軸方向進退(yg=0)、Y軸方向平移(yg=0)、Z軸方向轉艏(yg=0),如式(11)—式(13)所示。
向AUV 下達運動控制指令后,要求AUV 跟蹤期望姿態ηd,但由于系統運作于水下時,面臨著外部未知干擾等不確定因素,將增加自主水下機器人姿態控制系統的復雜性。因此,針對這些不確定因素,反步滑??刂破髂芨鶕刂葡到y誤差,在線更新系統參數,以適應自身動態和外界擾動的變化[12]。
首先,定義姿態跟蹤誤差。
選取第一個Lyapunov 函數為:
對式(15)求導得:
將式(17)代入式(16)得:
將式(7)代入式(17)并求導得:
選取第二個Lyapunov 函數為:
對式(20)求導,并將式(18)、α代入得:
為了使V2負定,采用等數趨近律得到控制輸入。
式中:Λ、K2>0均為對角常數矩陣。
將式(22)代入式(21)得:
由式(23)可知,系統跟蹤誤差漸近穩定,反步法在設計控制器的同時實時更新自適應律,極大提升了系統的暫態性能,使其具有良好的無超調跟蹤性能,可高效實現自主水下機器人的路徑跟蹤功能。
雖然通過上述步驟可獲得反步滑模控制器輸出控制率τ,但自主研發的“探海I型”自主水下機器人裝載有五路推進器,因此需要將控制率按照一定的原則進行分配。由于該系統在艏向運動存在冗余,因此通過兩路側推同時進行控制,即本文在分配推力時優先考慮艏向角,保證自主水下機器人的航向與目標點一致;參照控制量二范數最小原則,取控制量二范數的函數作為推力分配的評價函數,即J=‖T‖2。
設自主水下機器人控制器輸出的期望控制力(力矩)為τ∈Rm,自主水下機器人推進器控制量為T∈Rn,推進器分部矩陣為B∈Rm*n,則控制率為:
由于水下環境復雜,AUV 在進行水下作業時易出現推進器故障等情況,因此設計一種基于推力分配的主動容錯控制器重新分配推力,以抵消推進器故障造成的影響。
設定推進器最大推力的故障系數為si,當推進器處于正常狀態時si=1;當推進器出現部分故障時0 <si<1;當推進器出現完全故障時si=0。
式中:Bw=W-1BT(BW-1BT)-1為推進器分部矩陣B的偽逆矩陣。
因此,故障狀態下推力分配的結果為:
為驗證本文所提出的自主水下機器人推進器容錯控制方法的有效性,使用Matlab 軟件進行仿真環境下的驗證,關于自主研發的“探海I 型”自主水下機器人的水動力參數如表1所示。

Table 1 AUV hydrodynamic parameters表1 AUV水動力參數
仿真過程中參數設定如下:AUV 三維跟蹤初始位置為(10,150,0);水下六邊形的六個目標點坐標分別為:一號點(160,90,3)、二號點(210,95,3)、三號點(240,55,3)、四號點(210,15,3)、五號點(160,10,3)、六號點(130,50,3)。圖4 中;實線為推進器運行狀態正常時,基于反步滑??刂频穆窂礁櫱€;虛線為期望的路徑跟蹤曲線。由此可見,該控制器能高效實現自主水下機器人的路徑跟蹤功能。

Fig.4 Hexagonal path tracking graph based on backstepping sliding mode control圖4 基于反步滑??刂频乃铝呅温窂礁檲D
3.2.1 故障情況1
推進器初始時刻運行正常,250 s 時前側推發生部分故障,推力減少了80%,控制器參數設定為:K1=diɑg(10,10,10),K2=diɑg(5.5,10.5,2.5),仿真結果如圖5所示。圖5 中,實線為基于推力分配的容錯控制路徑跟蹤曲線;虛線為期望的路徑跟蹤曲線,*實線為無容錯控制的路徑跟蹤曲線。表2 為發生故障情況1 后期望路徑與實際路徑的誤差距離,采樣間隔為80 s。

Table 2 Error distance of fault condition I表2 故障情況1誤差距離

Fig.5 Curve diagram of fault condition 1圖5 故障情況1曲線圖
由圖5、表2 可知,當AUV 發生故障后,故障軌跡的跟蹤誤差開始發散,無法完成預先設定好的路徑跟蹤任務。為此,本文采用基于推力分配的容錯控制方法,當前側推發生故障時,將故障系數設為s2=0.2,故障引起的跟蹤誤差逐漸收斂,最終完成預先設定好的路徑跟蹤任務。
3.2.1 故障情況2
推進器初始時刻運行正常,150 s 時前側推發生部分故障,推進器推力減少30%;350 s時后側推發生部分故障,推進器推力減少80%,仿真結果如圖6所示。由此可見,當AUV 推進器發生故障時若不及時處理,將無法完成預先設定好的路徑跟蹤任務。

Fig.6 Curve diagram of fault condition 2圖6 故障情況2曲線圖
為此,本文采用基于推力分配的容錯控制方法,當前側推發生故障時,將故障系數設為s2=0.7;當后側推發生部分故障時,將故障系數設為s3=0.2。表3 為發生故障情況2 后期望路徑與實際路徑的誤差距離,采樣間隔為80 s。由此可知,在結合容錯控制方法的情況下,即使推進器發生故障,依然能保證跟蹤誤差收斂的穩定性,及時調整推進器輸出以實現期望路徑跟蹤,最終完成預先設定好的任務。

Table 3 Error distance of fault condition II表3 故障情況2誤差距離
綜上,仿真結果證明了基于推力分配的自主水下機器人推進器容錯控制新方法的有效性。
本文針對AUV 作業過程中存在的推進器故障問題,提出一種基于推力分配的容錯控制新方法。仿真結果表明,反步滑??刂品椒苁笰UV 的實際運動軌跡趨于期望軌跡運行,高效地實現了AUV 的精準運動跟蹤。
當推進器發生故障時,該方法能使AUV 在短時間內補償故障造成的推力損失,使AUV 重新回到期望路徑,繼續進行水下作業任務。然而本文在設計水動力模型時,采用的都是符合高斯分布的白噪聲,但在實際水下環境中,噪聲特性極為復雜,只有進一步深入研究,才能提升AUV 在復雜水下環境的可靠性。