包 濤,王 琦,周則興,陳 卓
(1.中國船舶科學研究中心,江蘇 無錫 214082;2.深海技術科學太湖實驗室,江蘇 無錫 214082)
無人水面艇(USV,unmanned surface vessel),也被稱為無人艇,是一種能夠在江河湖海等水域上進行自主航行的,可遂行預定的自主作業任務的水上平臺[1-2]。目前,無人艇在海洋勘探、水下探測、海洋監測、區域巡邏、科學調查等領域發揮了越來越重要的作用。無人艇機動性高、自主性好、環境適應性強,在軍事以及民用領域均有十分強大的應用潛力,因此近年來已成為全球智能海洋裝備研發領域的研究焦點之一[3-4],而其中航向控制的自適應和智能化則是無人艇實現其自主航行控制的關鍵。
無人艇在水域執行作業任務時,風、流、浪等水面環境經常對艇體產生擾動,同時其操縱運動模型又具有比較復雜的非線性特征,導致無人艇的艏搖等運動加劇,致使無人艇的任務載荷難以發揮作業能力,嚴重的甚至可能導致任務失敗,因此對無人艇航向的控制方法提出了比較高的要求。目前針對無人艇航向控制算法,學術界按照是否具有被控對象信息分為基于模型的控制技術和無模型控制技術。典型的基于模型的控制技術包括:滑膜控制[6]、魯棒控制[7]、最優控制[8]、反步控制[9]等,基于模型的控制技術其特征在于:航向控制率的構建過程中需要無人艇模型參數的參與,如反步控制方法,其是由無人艇運動數學模型反向推導設計得到航向控制率,當被控系統的模型可以被精確地數學化時,基于模型的控制方法可以達到良好的控制效果,如經典的倒立擺問題等,但是實際工程中被控系統經常具有復雜的非線性特征,同時存在大量的環境干擾,對于這些特征和干擾,常規方法難以建立準確的模型,不準確的數學模型將導致基于模型的控制方法效果下降甚至失效。常見的無模型控制技術主要包括:PID控制[10]、迭代學習控制[11]、無模型自適應控制[12]以及各種新興的智能控制方法[13-14]。PID控制是早期流行的控制技術,其不需要被控系統的模型參數,可以僅通過系統輸入輸出數據的比例、微分和積分操作,實現對被控系統的鎮定控制,但其控制效果較為粗略,在系統變動較大時需要重新調整控制參數;另一種無模型控制技術同樣不關注被控系統模型,僅使用系統輸入/輸出(I/O)數據,控制率的構建中不包括被控系統的任何參數,同時該方法因為包含對系統實時在線估計,因此在被控系統的模型參數不準確、較復雜或時常變動的情況下也具有較為優秀的控制效果。
20世紀末,北京交通大學的侯忠生開發了一種被稱為無模型自適應控制(MFAC,model free adaptive control)的方法[15],方法中提出了一種區別于其他同類方法的動態線性化方法,同時提出了偽偏導數的新定義,方法在被控系統的每個動態工作點處都建立一個與之等價的動態線性化數據模型,然后基于此等價的虛擬數據模型再設計相應的控制器并進行了理論分析,從而實現非線性系統的自適應控制。MFAC方法具有以下優勢:僅依賴被控系統實時量測的數據;不需要任何外在的測試信號或訓練過程;方法簡單、計算負擔小、易于實現且魯棒性強。
MFAC方法中的動態線性化方法有3種具體形式,分別為緊格式動態線性化(CFDL,compat form dynamic linearization)、偏格式動態線性化(PFDL,partial form dynamic linearization)和全格式動態線性化(FFDL,full form dynamic linearization),3種方法的計算量依次上升,對被控系統的控制效果也依次上升。考慮到控制系統的實時性要求,以及本文試驗對象有限的硬件條件,本文使用了偏格式動態線性化方法作為無模型自適應控制器的動態線性化方法,文章首先設計了虛擬輸出量以改進算法性能,同時利用改進細菌覓食算法對IMFAC算法的參數初始值進行預整定,最后在模擬的環境干擾下進行了半物理仿真試驗,同時建立了傳統控制方法,并與本文的IMFAC控制方法進行了效果對比,從而對算法的有效性進行了驗證。
本文設計的無人艇改進無模型自適應航向控制器在實船應用中無需獲取無人艇本身的模型參數信息,但是在控制器的半物理仿真測試以及最后的結果分析階段仍需要一種能近似反映無人艇狀態以及算法性能的驗證模型。因此下面介紹所使用的航向響應模型和干擾模型。
在船舶航向控制中,本文使用的是野本謙作教授提出的一階非線性響應模型[16]:
(1)
式中,r為首搖角速率;δ為舵角;T為追隨性時間常數;K為舵角增益;α為Norbbin系數,其具體數值可以由螺旋實驗確定;d為干擾;ψ為航向角。
為了在半物理仿真試驗中模擬無人艇在航行中受到的環境擾動,需要對式(1)的干擾項d做進一步分析。無人艇所受的環境擾動一般可以分成兩大類,一類是海風、海流對無人艇的擾動,另一類是海浪對無人艇的擾動。海風、海流對船舶的擾動通常在短時間內是一個恒定值,因此為了在合理范圍內簡化無人艇的干擾模型,使用定常值加隨機白噪聲的方式模擬無人艇收到的海風和流的干擾。對于海浪的干擾,根據文獻[17]的描述,可以利用式(2)建立起海浪對無人艇舵角的擾動關系,從而將海浪擾動加入無人艇航向操縱運動模型中。

(2)
式中,L為海浪波高;k1為有色噪聲比例系數;wgn為高斯白噪聲;G(s)為有色噪聲到波高的傳遞函數;N為無人艇首搖擾動力矩;αr為無人艇航向與海浪方向的夾角;C1、C2、ρ1為試驗確定的系數;Kr為比例系數,與船的尺寸、噸位等有關;V為無人艇速(m/s),δl為等效的干擾舵角。
無模型自適應控制(MFAC)器的構建核心在于對被控非線性系統的動態線性化改寫上,文獻[15]中列舉了針對多種被控系統的動態線性化方法,并且給出了嚴格的數學證明。
考慮到無人艇所受環境干擾較為復雜,且船舶動作具有一定的滯后性,以及未來可能應用的實船有限的硬件條件,本文基于偏格式動態線性化的無模型自適應(PFDL-MFAC)方法,將當前時刻的一個固定長度滑動時間窗口內的所有輸入變化量的影響都考慮進來,并針對無人艇航向控制,設計了虛擬輸出項以滿足無模型自適應控制假設條件,建立基于偏格式動態線性化方法的無模型自適應航向控制器。
對于一般的單輸入單輸出非線性離散系統:
y(k+1)=f(y(k),…,y(k-ny),u(k),
…,u(k-nu))
(3)
式中,u(k)∈R,y(k)∈R是系統在k時刻的輸出和輸入;ny,nu是未知的正整數。
當系統滿足假設1及2時如下。
假設1:f(…)關于第(ny+2)個變量到第(ny+L+1)個變量分別存在連續偏導數;
假設2:系統(3)滿足Lipschitz條件,即對任意k1≠k2,k1,k2≥0和UL(k1)≠UL(k2)有:
(4)
其中:y(ki+1)=f(y(ki),…,y(ki-ny),u(ki),…,u(ki-nu)),i=1,2;b>0是一個常數;UL(k)=[u(k),…,u(k-L+1)]T,L為輸入線性化長度常數。
系統(3)可表示為:
(5)

可以注意到,系統(1)的輸出ψ并不能滿足假設2,即當控制量遞增時,受控系統的輸出應當是不減的假設,因此設計系統虛擬輸出項[18]:
y(k)=ψ(k)+KZr(k)
(6)
式中,KZ是設定的常數。
此時,當KZ的值合適的話,隨著輸入的控制量的增加,KZr(k)也會隨之增加,以抵消ψ(k)下降對總輸出的影響,保證被控系統符合假設2。
結合設計的系統虛擬輸出項,被控系統的控制方案可設計為:
u(k)=u(k-1)+
(7)

(8)

在偏格式線性化的無模型自適應算法中,需要人工預先設定的參數有步長因子ρ1、ρ2、ρ3、η,權重因子λ、μ,輸入線性化長度常數L共7個,其中L的大小決定了算法的復雜度,一般不超過5,其余6個參數值的選取范圍較為寬大,人工選取較為費時且難以保證最優,本文使用改進的細菌覓食算法對改進無模型自適應算法的參數初值進行全局尋優,以加快改進無模型自適應算法的收斂速度,提高算法魯棒性。
細菌覓食算法(BFO,bacterial foraging optimistic)是一種較為新穎的群體智能優化算法,算法參考了一種細菌的覓食行為中的智能特征,創造出了該生物集群算法[18]。BFO算法對控制參數的選擇適應性高、算法自身具有較強抗干擾性,同時結構較為清晰簡潔,并且可以實現并行處理。
圖1是細菌覓食算法的基本操作流程圖,算法在工作時主要通過模擬細菌的下面幾種行為操作,依次是趨向性操作、聚集性操作、復制性操作和遷徙性操作。趨向性操作使“細菌”向優勢位置移動;聚集性操作使“細菌”集中于多個局部最優位置;復制性操作保證優勢位置的“細菌”數量增加,提高搜索效率;最后的遷徙性操作則保證了“細菌”不會陷入局部最優值。算法在進行計算時,需要優化的目標信息使用模擬細菌的位置信息表示,而目標是否符合優化需求則利用算法設置的適應度函數值的大小來測試。

圖1 細菌覓食算法基本步驟
趨向性操作的改進:
算法中的虛擬細菌在趨向操作中將會模擬真實細菌覓食時的旋轉和游動的運動,具體利用數學公式描述為式(9)。
(9)
式中,θi(j,k,l)表示第i個細菌在第j次趨向操作,第k次復制操作,和第l次驅散操作時細菌所在的位置;C(i)為細菌的游動步長;Δ(i)為細菌在搜索空間內的任意方向上的一個隨機向量。
圖2闡述了本文對趨向操作中的游動步驟的改進后計算流程。在游動運動步驟中,原始算法中的細菌在游動后進行適應度值的判斷,當適應度值的結果優于上一位置的結果時細菌將繼續游動,否則細菌停止游動操作。原始算法的游動步驟會使因游動而產生適應度值下降的細菌保留低適應度值的位置,這使算法的模擬細菌在每次趨向操作后都產生了大量適應度值劣于之前的細菌個體,大大降低算法的收斂速度。為了解決這種操作漏洞,本文對游動步驟進行了改造,借助文獻[20]提出的細菌智能探針,研究人員站在觀察者視角,對所有進行游動步驟的細菌預計算未來位置的適應度值,當計算結果的值對比當前位置更具有優勢時,細菌將保留當前游動操作指令,并向目標位置游動,反之細菌將不前進。這種改進可以保證每一個模擬細菌前進的方向都是越來越優勢的位置,不會出現逆向優化的情況,同時遷徙性操作也保證了算法不會陷入局部最優值。經過測試,該方法在不改變算法計算量的前提下,大大提高了算法的收斂速度。
(10)

圖2 改進的游動操作流程
結合改進細菌覓食算法和改進無模型自適應算法,本文提出了一種抗干擾的無人艇航向自適應控制器,控制器的整體結構如圖3所示。

圖3 無人艇抗干擾航向自適應控制器
整個無人艇抗干擾航向自適應控制器按照以下流程運行:首先,自適應控制器將接收無人艇自主導航系統提供的期望航向角與當前無人艇的實時航向角,將這些數據作為改進無模型自適應控制器(IMFAC)的數據輸入,無模型自適應控制器的7個初始控制參數由改進細菌覓食算法利用與被實驗船相同類型的已知船的仿真模型在虛擬仿真系統中全局尋優得到(在整個控制過程中,初始參數的尋優僅僅需要運行一次,后續控制參數將由IMFAC算法自行自適應調整,預尋優的目的是為了加快算法的收斂速度,降低人工調參工作量),同時設計虛擬輸出項以滿足IMFAC控制器的假設條件2,IMFAC控制器利用控制率式(10)輸出控制量即無人艇的舵角控制量,無人艇收到舵角控制指令后動作舵角執行機構,最終無人艇在風浪流干擾的環境下產生姿態和運動的變化,通過導航系統的實時測量航向角后再反饋回控制器的輸入端,從而反復迭代,完成無人艇的航向控制。
控制器的完整控制方案如式(10):
其中,λ>0,μ>0,η∈(0,2],ρi∈(0,1],i=1,2,…,L,ε為一個足夠小的正數。
算法初始參數值利用改進細菌覓食算法得到,算法的適應度函數為:

ω4ts+ω5ψover
(12)
式中,e(t)為系統偏差;Δψ(t)=ψ(t)-ψ(t-1);ψ(t)為航向輸出;ts為調整時間;ψover為絕對超調量;ω1-5為權值;Δu(t)為舵角控制量變化量。
式(12)中各項權值的大小可以影響被優化系統的各方面屬性,通過調整ω1-5的大小能夠使細菌覓食算法對系統調整速度、超調量、舵角調整速度等系統屬性針對性優化,權值越大,代表對該項優化目標越關心,權值越小,代表對該項優化項越漠視。優秀的權值選取將能夠達到對被優化系統的理想優化效果。
為了驗證本文提出的IMFAC方法較傳統方法更具有效性和優越性,在半物理仿真實驗室中設計了有環境干擾的半物理仿真試驗,試驗中運動執行機構(包括雙噴水推進)、無人艇控制系統(包括工控機、運動控制器、電源管理器等)均為真實設備。試驗中,軟件仿真系統負責模擬無人艇在水面上的運動學和動力學響應以及有干擾的環境對艇的航向控制產生的擾動;真實執行機構負責動力系統的執行和反饋;真實控制機構則負責算法的執行。半物理仿真試驗能夠最大程度減少實船試驗的危險性和不確定性,并且可以多次重復實驗,提高了算法驗證效率,圖4為無人艇真實物理設備圖。

圖4 無人艇真實物理設備圖

圖5 IMFAC參數預整定的結果
試驗中,用于驗證IMFAC算法效果的無人艇操縱模型以及模擬3級海況浪干擾模型參數如表1所示。

表1 無人艇操縱運動模型及干擾參數設置
在虛擬仿真系統中進行參數預整定的改進細菌覓食算法初始參數值如表2所示。

表2 BFO算法參數設置
表中,Nc為算法趨化操作次數;Ns為趨化操作運動最大步數;Nre為復制操作次數;Ned為驅散操作次數;S為細菌個數;ω1-5為適應度函數權值;Km為類似船型舵角增益;Tm為類似船型追隨性時間常數。
半物理仿真試驗采用以下二種航向控制工況進行驗證:
1)階躍航向控制,規定目標航向角30°,初始航向角為0°;
2)方形航向控制,每間隔30 s改變一次航向角,初始航向角為0°,階躍梯度為30°,-30°,0°,航向的改變幅度為30°,60°,30°;
利用改進細菌覓食算法對IMFAC參數預整定的結果如圖 5所示。在以上二種工況下分別與傳統PID控制進行對比,二種工況下設定航向、PID航向和IMFAC航向的變化情況,以及真實航向與目標航向的誤差情況的仿真結果如圖 6和圖 7所示。
通過改進細菌覓食算法對IMFAC的參數預整定,得出參數初始設定值:λ=0.773;η=1.573;KZ=5.376;μ=5.769;ρ1=0.413;ρ2=0.904;ρ3=0.173。經過人工手動調節尋優,PID參數調整為KP=0.8;Kd=1.2;Ki=0。
圖6為無人艇30°階躍航向控制仿真圖,在模擬3級海況干擾的仿真環境下,IMFAC算法最終調整時間為10 s,穩定段最終航向誤差趨于零;對比項手動優化后的PID控制的無人艇則經過約10 s達到期望值,但穩定后由于海浪、海流的干擾具有較大誤差約1~2°,誤差難以趨向于零。可以發現,IMFAC算法在控制速度上可以達到經過人工調參的PID算法的水平,而在干擾環境下,PID算法效果則明顯不如IMFAC算法的效果,無法有效消除風浪流等環境干擾對無人艇航向控制的影響,IMFAC算法則具備將環境干擾充分抑制的效果。

圖6 無人艇30°階躍航向控制對比

圖7 無人艇方形航向控制對比
圖 7為無人艇±30°方形航向控制仿真圖,在模擬3級海況干擾的仿真環境下,IMFAC算法與PID算法最終調整時間均為10 s左右,對比項手動優化后的PID控制,IMFAC算法具有更小的超調量,且穩定段最終航向誤差可以趨于零,PID算法則在穩定段由于海浪、海流的干擾具有更大的誤差,難以趨向于零。同時還可以發現,PID算法在大范圍調整航向角時,效果將變得越來越差,究其原因是PID算法人工調參時只能針對一種工況調參,無法兼顧多種情況,而IMFAC算法則沒有該問題,其在線偽偏導數估計的能力保證了它可以自適應多種工況,從而在多種工況下保持其工作性能。
特別需要強調指出的是,仿真試驗中PID的參數值是通過人工大量手動調參得到的最優化參數結果,調節過程費時費力,且由于干擾的存在最終控制效果較差;而本文提出的IMFAC算法的參數則可以自主獲得,無需人工調參,且算法對環境干擾有明顯的抑制效果,能夠實現多種工況下的無人艇航向最優控制。
針對無人艇在航向控制中易受風浪流等環境干擾,導致控制效果下降的問題,本文提出了一種結合細菌覓食算法的改進無模型自適應控制算法,首先設計虛擬輸出量改進基于偏格式動態線性化無模型自適應控制算法,同時利用改進細菌覓食算法對IMFAC算法的參數初始值進行預整定,最后在模擬的環境干擾下進行了半物理仿真試驗,同時建立了傳統控制方法,并與本文的IMFAC控制方法進行了效果對比,從而對算法的有效性進行了驗證。本文研究結果表明:
1)改進的細菌覓食算法能夠大大縮短改進無模式自適應控制算法的參數初始值的尋找時間,提高算法效果;
2)基于偏格式動態線性化(PFDL)的改進無模式自適應算法(IMFAC)具有較強的抗干擾性能和較強的收斂性,能夠保證系統誤差快速準確地收斂到零;
3)本文提出的無人艇抗干擾航向自適應控制器在具有一定環境干擾的情況下相較于PID算法更具優勢,主要體現在本文提出的算法對于不同工況的控制效果更加穩定;在控制后期的穩定段,具有更小的跟蹤誤差。