周 怡,王俊雄
(上海交通大學(xué) 船舶海洋工程國(guó)家重點(diǎn)實(shí)驗(yàn)室,上海 200240)
自主式水下航行器(AUV)水動(dòng)力參數(shù)的辨識(shí)成為對(duì)其運(yùn)動(dòng)研究和運(yùn)動(dòng)控制器設(shè)計(jì)的關(guān)鍵所在[1]。在工程應(yīng)用中,對(duì)水動(dòng)力系數(shù)求取的主要方法有:經(jīng)驗(yàn)公式估算方法、數(shù)值模擬方法、模型試驗(yàn)方法以及基于實(shí)航數(shù)據(jù)的參數(shù)辨識(shí)方法。經(jīng)驗(yàn)公式估算方法具有較好的經(jīng)濟(jì)性和可行性,但其精確性難以保證。數(shù)值模擬方法大多采用流體計(jì)算(CFD)軟件,但計(jì)算量較大,且計(jì)算結(jié)果容易受到模型網(wǎng)格劃分質(zhì)量和邊界條件的影響[2];模型試驗(yàn)方法雖然對(duì)水動(dòng)力參數(shù)的求取精確度較高,但其成本較高,花費(fèi)時(shí)間較長(zhǎng),會(huì)不可避免的受到傳感器及操作誤差的影響[3];基于實(shí)航數(shù)據(jù)的參數(shù)系統(tǒng)辨識(shí)方法成本較低,能更好地反映航行器在真實(shí)環(huán)境中的水動(dòng)力參數(shù),適用性和精確性較好。
現(xiàn)階段的AUV水動(dòng)力參數(shù)系統(tǒng)辨識(shí)方法有很多,但大多數(shù)辨識(shí)所用到的數(shù)據(jù)來(lái)源或辨識(shí)方程為AUV的水平面運(yùn)動(dòng)或豎直平面運(yùn)動(dòng)甚至單自由度運(yùn)動(dòng)等,未考慮完整的六自由度運(yùn)動(dòng)方程。一些辨識(shí)方法在遇到數(shù)據(jù)摻雜噪聲時(shí)辨識(shí)結(jié)果較差,往往需要對(duì)數(shù)據(jù)預(yù)先進(jìn)行濾波消噪處理,加大了參數(shù)辨識(shí)的工作量。例如參數(shù)辨識(shí)中的牛頓—拉夫遜算法對(duì)數(shù)據(jù)初值極為敏感[4],也會(huì)導(dǎo)致辨識(shí)工作變得復(fù)雜。為完善或避免上述問(wèn)題,本文采用自適應(yīng)粒子群優(yōu)化算法和最小二乘[5-6]準(zhǔn)則相結(jié)合的方式對(duì)AUV水動(dòng)力參數(shù)進(jìn)行辨識(shí)。建立所需辨識(shí)的AUV六自由度動(dòng)力學(xué)方程。系統(tǒng)介紹自適應(yīng)粒子群優(yōu)化算法和最小二乘準(zhǔn)則?;谧赃m應(yīng)粒子群優(yōu)化算法和最小二乘準(zhǔn)則建立AUV水動(dòng)力參數(shù)的辨識(shí)方法。進(jìn)行AUV水動(dòng)力參數(shù)辨識(shí)的仿真計(jì)算。
對(duì)于AUV的水動(dòng)力參數(shù)辨識(shí),需要先建立AUV運(yùn)動(dòng)的數(shù)學(xué)模型。為描述AUV的運(yùn)動(dòng),采用如圖1所示的固定坐標(biāo)系E-ξηζ和運(yùn)動(dòng)坐標(biāo)系O-xyz[7]。
圖1 固定和運(yùn)動(dòng)坐標(biāo)系Fig.1 Fixed and moving coordinates
根據(jù)本文所辨識(shí)的AUV[8]具有外形左右、上下、前后對(duì)稱的結(jié)構(gòu)特征,此時(shí)運(yùn)動(dòng)坐標(biāo)系原點(diǎn)選為AUV重心,對(duì)AUV動(dòng)力學(xué)方程進(jìn)行系統(tǒng)辨識(shí),得到AUV六自由度運(yùn)動(dòng)動(dòng)力學(xué)方程如下式:
式中,各參數(shù)的意義如表1和表2所示。
表1 固定坐標(biāo)系主要運(yùn)動(dòng)參數(shù)定義Tab.1 Definition of main motion parameters in fixed coordinate system
表2 運(yùn)動(dòng)坐標(biāo)系主要運(yùn)動(dòng)參數(shù)定義Tab.2 Definition of main motion parameters in motion coordinate system
對(duì)于所給定的AUV來(lái)說(shuō),以式(1)為例,可變換形式如下式:
式(7)左側(cè)不包含辨識(shí)參數(shù),右側(cè)各組成部分均含有辨識(shí)參數(shù)。式(T)可寫成式(8),T滿足關(guān)系式(9)。
由式(8)可知,當(dāng)測(cè)量數(shù)據(jù)采樣點(diǎn)數(shù)大于等于所需辨識(shí)水動(dòng)力參數(shù)個(gè)數(shù)時(shí),即可利用方程關(guān)系解出水動(dòng)力參數(shù)。但式(8)涉及到測(cè)量參數(shù)的微分項(xiàng),高次項(xiàng)等,當(dāng)其存在噪聲引起誤差時(shí),即使該誤差很小,也會(huì)導(dǎo)致水動(dòng)力參數(shù)的求解出現(xiàn)病態(tài)結(jié)果,并且由式(1)~式(6)可知,水動(dòng)力參數(shù)之間存在耦合作用,很難直接用理論或?qū)嶒?yàn)的方法較為準(zhǔn)確的獲得全部參數(shù)。因此本文將AUV的水動(dòng)力參數(shù)辨識(shí)轉(zhuǎn)化為最優(yōu)化問(wèn)題,基于粒子群算法對(duì)復(fù)雜的非線性模型方程是否連續(xù)、可微等不做要求及其自身特點(diǎn),利用最小二乘法準(zhǔn)則和自適應(yīng)粒子群算法實(shí)現(xiàn)對(duì)該問(wèn)題的求解。
式(1)~式(6)一般形式如下:
由式(10)可知,當(dāng)輸入u(t)不變,時(shí)間t確定時(shí),x可看作關(guān)于水動(dòng)力系數(shù)θ 的函數(shù)。
因此,要想實(shí)現(xiàn)對(duì)水動(dòng)力參數(shù)的辨識(shí),可采用最小二乘準(zhǔn)則,其具體形式如下:
因此,AUV水動(dòng)力參數(shù)的辨識(shí)問(wèn)題可轉(zhuǎn)化為改變參數(shù) θ的數(shù)值,使式(11)的值達(dá)到最小的最優(yōu)化問(wèn)題。
粒子群優(yōu)化(PSO)算法是一種進(jìn)化計(jì)算方法,具有隨機(jī)性和繼承性的特點(diǎn)。它起源于對(duì)鳥類捕食行為的研究,最早由Eberhart博士和Kennedy博士發(fā)明[9-10]。粒子群算法的原理如下:
首先初始化一定量的隨機(jī)粒子,作為隨機(jī)解。假設(shè)搜索空間為d維,種群規(guī)模為M,第i個(gè)粒子的位置和速度分別為在每一次迭代中,利用適應(yīng)度函數(shù),得到粒子本身的最優(yōu)解,也就是個(gè)體極值,以及整個(gè)種群實(shí)時(shí)的最優(yōu)解,也就是全局最優(yōu)解。找到2個(gè)最優(yōu)值后,利用式(12)和式(13)實(shí)現(xiàn)對(duì)各個(gè)粒子速度和位置的更新。
其中,i=1,2,3···M,j表示粒子的第j維,pi,j代表粒子的個(gè)體極值,pg,j代表整個(gè)群體的最優(yōu)解。k為慣性權(quán)重,c1和c2為正的學(xué)習(xí)因子,r1和r2為粒子速度更新系數(shù)和位置更新系數(shù)[11],為0~1之間的隨機(jī)數(shù)。
粒子群算法[12-13]的計(jì)算性能很大程度上取決于算法的控制參數(shù),例如慣性權(quán)重、學(xué)習(xí)因子、粒子數(shù)、最大速度、適應(yīng)度計(jì)算公式等。
1)慣性權(quán)重
對(duì)于慣性權(quán)重而言,當(dāng)其數(shù)值較大時(shí),利于跳出局部極小點(diǎn),便于全局搜索[14],當(dāng)其數(shù)值較小時(shí),便于對(duì)當(dāng)前區(qū)域進(jìn)行精確局部搜索,利于算法收斂。充分考慮粒子群算法存在的早期容易陷于局部最優(yōu)解以及后期容易在全局最優(yōu)解附近產(chǎn)生振蕩的問(wèn)題,為平衡其全局搜索能力和局部改良能力,采用動(dòng)態(tài)慣性權(quán)重更新公式(14),實(shí)現(xiàn)慣性權(quán)重的自適應(yīng)變化。
式中:kmax,kmin分別表示k的最大值和最小值;f為粒子當(dāng)前位置的適應(yīng)度函數(shù)值,favg和fmin分別表示當(dāng)前所有粒子對(duì)應(yīng)適應(yīng)度函數(shù)值的平均值和最小值。
2)學(xué)習(xí)因子
學(xué)習(xí)因子c1和c2使粒子具有自我總結(jié)和向群體最優(yōu)位置學(xué)習(xí)的能力,從而向鄰域或是全局最優(yōu)位置靠近。
3)種群規(guī)模
種群規(guī)模的大小根據(jù)問(wèn)題的復(fù)雜程度進(jìn)行選擇,一般種群規(guī)模越大,粒子群算法的尋優(yōu)結(jié)果越好。
4)粒子范圍
在條件允許的情況下,可對(duì)粒子范圍進(jìn)行預(yù)估,以促進(jìn)粒子群算法的尋優(yōu)進(jìn)程。
5)最大速度
為了減少搜索空間的可能性,可根據(jù)粒子范圍設(shè)定粒子的速度范圍。
6)適應(yīng)度值
粒子群優(yōu)化算法的迭代過(guò)程中,粒子的位置和速度不斷更新,而適應(yīng)度值是確定粒子群優(yōu)化是否符合要求的判斷依據(jù)。
圖2為自適應(yīng)粒子群算法的流程圖。
本文設(shè)計(jì)的參數(shù)辨識(shí)算法思想是將粒子的位置意義定為待辨識(shí)的水動(dòng)力參數(shù)。首先,利用給定的水動(dòng)力參數(shù)求得理論運(yùn)動(dòng)參數(shù)值后疊加噪聲,選取其中的N個(gè)作為式(11)中的實(shí)際觀測(cè)數(shù)據(jù)通過(guò)前期對(duì)AUV水動(dòng)力參數(shù)的預(yù)估,為不失一般性,設(shè)定粒子范圍較大,各維度范圍為預(yù)估值的80%-120%,粒子速度更新的上限和下限為對(duì)應(yīng)粒子位置區(qū)間長(zhǎng)度的±20%。為加速水動(dòng)力參數(shù)的辨識(shí)和提高準(zhǔn)確性,慣性參數(shù)采用式(14)進(jìn)行更新,kmax和kmin分別取為0.9,0.3。在適應(yīng)度函數(shù)選取上,根據(jù)粒子的位置意義和最小二乘準(zhǔn)則中對(duì)AUV水動(dòng)力參數(shù)最優(yōu)化問(wèn)題的分析,可將式(11)作為適應(yīng)度函數(shù),以此來(lái)判斷粒子位置是否達(dá)到最優(yōu)。
根據(jù)圖2所顯示的流程,最小二乘準(zhǔn)則和自適應(yīng)粒子群算法在AUV水動(dòng)力參數(shù)辨識(shí)中的計(jì)算流程具體如下:
圖2 自適應(yīng)粒子群算法流程Fig.2 Flow of adaptive particle swarm optimization algorithm
1)隨機(jī)初始化各粒子,確定初始個(gè)體最優(yōu)和全局最優(yōu)
根據(jù)AUV水動(dòng)力參數(shù)為負(fù)的特點(diǎn),可設(shè)定初始化粒子位置為負(fù)數(shù),初始速度采用1以內(nèi)隨機(jī)數(shù)。然后利用隨機(jī)得到的粒子位置作為水動(dòng)力參數(shù)代入所建立的AUV模型中進(jìn)行仿真,仿真的其他條件設(shè)置同實(shí)際觀測(cè)數(shù)據(jù)獲取時(shí)的一致。選取仿真得到的AUV運(yùn)動(dòng)參數(shù)中對(duì)應(yīng)實(shí)際觀測(cè)參數(shù)時(shí)間點(diǎn)的參數(shù)作為xi(θ)i=1:N代入式(11)計(jì)算對(duì)應(yīng)粒子的適應(yīng)度值,將此時(shí)的適應(yīng)度值和粒子位置作為初始個(gè)體最優(yōu)值,并取所有適應(yīng)度值中的最小值和對(duì)應(yīng)粒子位置作為初始全局最優(yōu)值。
2)進(jìn)入迭代,更新慣性權(quán)重,更新個(gè)體最優(yōu)和全局最優(yōu)位置
每次迭代采用上一次迭代所獲取的各個(gè)粒子適應(yīng)度值(初次迭代采用步驟1中得到的數(shù)據(jù)),對(duì)式(12)中所需要用到的慣性權(quán)重依據(jù)式(14)進(jìn)行更新,然后根據(jù)式(12)和式(13)更新粒子的速度和位置,并用所設(shè)定的粒子范圍和速度范圍對(duì)更新后的數(shù)據(jù)進(jìn)行約束。每次迭代中,當(dāng)?shù)玫降趎個(gè)粒子更新后的速度和位置,將粒子位置代入AUV水動(dòng)力模型中進(jìn)行仿真計(jì)算,然后選取仿真得到的AUV運(yùn)動(dòng)參數(shù)中對(duì)應(yīng)實(shí)際觀測(cè)參數(shù)時(shí)間點(diǎn)的參數(shù)作為xi(θ)i=1:N代入式(11)計(jì)算其對(duì)應(yīng)的適應(yīng)度值,并將其同上一步迭代的粒子個(gè)體最優(yōu)適應(yīng)度、全局最優(yōu)適應(yīng)度大小進(jìn)行比較,其中的較小值及其對(duì)應(yīng)粒子位置作為粒子個(gè)體最優(yōu)值、全局最優(yōu)值,并將此時(shí)的全局最優(yōu)值代入第n+1個(gè)粒子的計(jì)算當(dāng)中,并以此循環(huán),直到將該步迭代中所有粒子計(jì)算完畢。
3)迭代指定步數(shù),輸出全局最優(yōu)位置
算法收斂準(zhǔn)則定為達(dá)到指定迭代次數(shù),然后輸出此時(shí)的全局最優(yōu)粒子位置,也就是所需辨識(shí)的AUV水動(dòng)力參數(shù)。
為檢驗(yàn)自適應(yīng)粒子群算法的可行性,采用模擬仿真進(jìn)行驗(yàn)證。
已知本文所研究的AUV的幾何參數(shù)及其水動(dòng)力參數(shù),為貼近AUV實(shí)際運(yùn)動(dòng)特性和確定所需辨識(shí)的水動(dòng)力參數(shù),采用系統(tǒng)辨識(shí)出的六自由度運(yùn)動(dòng)方程(1)~方程(6)作為其運(yùn)動(dòng)方程,在確定的初始狀態(tài)x0和已知的推進(jìn)輸入下,通過(guò)仿真的手段以 Δt=0.1s的時(shí)間間隔,測(cè)取觀測(cè)矢量,并疊加上高斯白噪聲 ε,以此作為實(shí)際觀測(cè)值。
根據(jù)辨識(shí)算法設(shè)計(jì),分別運(yùn)用粒子群算法和自適應(yīng)粒子群算法對(duì)水動(dòng)力系數(shù)進(jìn)行辨識(shí)??紤]AUV運(yùn)動(dòng)具有的強(qiáng)耦合、非線性、參數(shù)時(shí)變性等特點(diǎn),將采樣數(shù)據(jù)個(gè)數(shù)N定為100,粒子數(shù)取為50,c1=c2=2,設(shè)置迭代次數(shù)為200,基于該算法存在的隨機(jī)性特點(diǎn),2種方法分別獨(dú)立計(jì)算50次。自適應(yīng)粒子群算法慣性權(quán)重按照式(14)進(jìn)行實(shí)時(shí)更新,慣性權(quán)重最大最小分別取0.9、0.3,粒子群算法慣性權(quán)重采用定值0.5,其他計(jì)算參數(shù)設(shè)置相同。以方程(1)中的水動(dòng)力參數(shù)辨識(shí)為例,二者的辨識(shí)結(jié)果如表3所示。其中相對(duì)誤差的計(jì)算是|(辨識(shí)值-標(biāo)準(zhǔn)值)/標(biāo)準(zhǔn)值|×100%,辨識(shí)曲線如圖3所示。
表3 PSO和自適應(yīng)PSO辨識(shí)結(jié)果Tab.3 The identification results of PSO and Adaptive PSO
圖3 PSO與自適應(yīng)PSO辨識(shí)收斂曲線Fig.3 Identification convergence curves of PSO and adaptive PSO
由辨識(shí)結(jié)果對(duì)比以及圖3辨識(shí)收斂曲線可知,在其他參數(shù)設(shè)置相同的條件下,自適應(yīng)粒子群算法對(duì)AUV水動(dòng)力系數(shù)的辨識(shí)速度和精度均優(yōu)于粒子群算法。究其原因,自適應(yīng)粒子群算法中,慣性權(quán)重的自適應(yīng)設(shè)置使得各微粒的適應(yīng)度值趨于一致或者趨于局部最優(yōu)時(shí),慣性權(quán)重增加,而各微粒的適應(yīng)度值比較分散時(shí),慣性權(quán)重減小。同時(shí)對(duì)于適應(yīng)度值優(yōu)于平均適應(yīng)度值的微粒,其對(duì)應(yīng)的慣性權(quán)重因子較小,從而保護(hù)了該微粒。反之對(duì)于目標(biāo)適應(yīng)度值差于平均適應(yīng)度值的微粒,其對(duì)應(yīng)的慣性權(quán)重因子較大,使得該微粒向較好的搜索區(qū)域靠攏。相比于慣性權(quán)重為定值的粒子群算法,自適應(yīng)粒子群算法更好的平衡了全局搜索能力和局部改良能力,在保護(hù)適應(yīng)度值較小粒子的同時(shí),實(shí)現(xiàn)適應(yīng)度較大粒子向較好區(qū)域的搜索,提升收斂速度和精度。
此外,為檢驗(yàn)該方法對(duì)噪聲的敏感性,在不同數(shù)據(jù)觀測(cè)高斯白噪聲的標(biāo)準(zhǔn)差值和相同的算法參數(shù)設(shè)置下,依據(jù)設(shè)計(jì)的辨識(shí)算法實(shí)現(xiàn)對(duì)AUV水動(dòng)力參數(shù)的辨識(shí),采用辨識(shí)50次取平均值的方法對(duì)結(jié)果進(jìn)行修正。并將最終結(jié)果同仿真過(guò)程中的實(shí)際水動(dòng)力參數(shù)進(jìn)行比較。以式(1)中的水動(dòng)力參數(shù)辨識(shí)為例,其結(jié)果如表4所示。
表4 AUV水動(dòng)力參數(shù)辨識(shí)結(jié)果Tab.4 Identification results of hydrodynamic parameters
由計(jì)算流程以及表4結(jié)果可得到以下結(jié)論:
1)辨識(shí)過(guò)程自始至終采用的為AUV六自由度方程,充分保留了其運(yùn)動(dòng)方程非線性、參數(shù)時(shí)變性、強(qiáng)耦合等特點(diǎn),貼近實(shí)際,整體辨識(shí)結(jié)果較好,說(shuō)明自適應(yīng)粒子群算法的適用性較好。表4雖然只辨識(shí)了式(1)中所涉及到的AUV水動(dòng)力參數(shù),但該方法對(duì)于辨識(shí)參數(shù)的維度不敏感,因而對(duì)于其他水動(dòng)力參數(shù)的辨識(shí)可類似進(jìn)行。
2)當(dāng)實(shí)際觀測(cè)數(shù)據(jù)引入的噪聲標(biāo)準(zhǔn)差從1%~7%變化時(shí),AUV的水動(dòng)力參數(shù)辨識(shí)的相對(duì)誤差不超過(guò)3.27%,辨識(shí)結(jié)果較好,充分體現(xiàn)了自適應(yīng)粒子群算法在AUV水動(dòng)力參數(shù)辨識(shí)中對(duì)數(shù)據(jù)所摻雜噪聲敏感性較低的特點(diǎn);
3)辨識(shí)中并未對(duì)數(shù)據(jù)初值做特殊要求,可看出該方法對(duì)初值的敏感度較低,適應(yīng)性較好;
4)表4中不同噪聲水平下的AUV水動(dòng)力參數(shù)辨識(shí)中,所運(yùn)用的自適應(yīng)粒子群算法參數(shù)設(shè)置均相同,意在控制變量,突出考察該方法對(duì)不同噪聲的魯棒性。在實(shí)際情況下,可對(duì)自適應(yīng)粒子群算法中的參數(shù)進(jìn)行調(diào)整,以獲得更好的結(jié)果。
本文針對(duì)AUV水動(dòng)力參數(shù)辨識(shí)中所存在的一些問(wèn)題,提出自適應(yīng)粒子群算法和最小二乘準(zhǔn)則相結(jié)合的辨識(shí)方法,用該方法實(shí)現(xiàn)了對(duì)AUV水動(dòng)力參數(shù)的辨識(shí),并將其同粒子群算法的辨識(shí)結(jié)果進(jìn)行了比較,檢驗(yàn)了該方法對(duì)噪聲的敏感性。最終結(jié)果表明,該方法在AUV水動(dòng)力參數(shù)辨識(shí)中具有可行性、可靠性以及魯棒性,并且在辨識(shí)精度、收斂速度上均優(yōu)于粒子群算法。