李光磊 臧濤 范鄒 韓冰
(1. 海軍駐九江地區(qū)軍事代表室,江西九江 332007; 2. 海軍蚌埠士官學(xué)校,安徽蚌埠 233012)
船舵無疑是艦船各個(gè)部件中最主要部件之一,隨著艦船控制舵的發(fā)展,船舵已經(jīng)由手動(dòng)操舵向自動(dòng)舵方向發(fā)展,自動(dòng)舵以其方便和實(shí)用越來越受到部隊(duì)的重視和應(yīng)用。理論上,只有預(yù)先掌握船舶運(yùn)動(dòng)規(guī)律的先驗(yàn)知識(shí),如船舶參數(shù)、噪聲參數(shù)等,才能設(shè)計(jì)出較理想的控制算法。
本文分別采用最小二乘法和遺傳算法對(duì)船舶運(yùn)動(dòng)參數(shù)進(jìn)行辨識(shí),針對(duì)對(duì)比仿真存在的問題,根據(jù)最小二乘法和間接模型參考自適應(yīng)法的特點(diǎn)提出一種基于兩種方法的混合算法[1]。實(shí)驗(yàn)表明混合算法克服了原有單一算法針對(duì)非線性系統(tǒng)參數(shù)辨識(shí)的固有缺陷,辨識(shí)效果大大改進(jìn),因此對(duì)船舶參數(shù)辨識(shí)具有重要意義。
要進(jìn)行船舶的辨識(shí)和控制算法的研究,首先都必須建立船舶操縱運(yùn)動(dòng)的數(shù)學(xué)模型。考慮到船舶運(yùn)動(dòng)控制參數(shù)應(yīng)盡可能少,同時(shí)兼顧船舶航行狀態(tài)的可觀測性,我們采用經(jīng)典的非線性KT方程作為出船舶數(shù)學(xué)模型。
船舶運(yùn)動(dòng)KT方程是連續(xù)的微分方程。為辨識(shí)該連續(xù)方程,要求提供角速度乃至航向角加速度的輸出值。但在工程實(shí)踐中,很難正確測定上述運(yùn)動(dòng)參數(shù),而且即使測定了航向角速度,它與航向測定值往往也不太匹配,同時(shí)航向的測定精度一般要求較高,故可用對(duì)航向角輸出值進(jìn)行數(shù)值微分的方法以提供上述運(yùn)動(dòng)參數(shù)[2]。
考慮一階非線性船舶運(yùn)動(dòng)方程:
將其離散化為:
考慮二階非線性船舶運(yùn)動(dòng)方程:
將其離散化為:
應(yīng)用最小二乘法辨識(shí)原理對(duì)非線性模型的參數(shù)辨識(shí)需要對(duì)非線性模型進(jìn)行一定的處理。現(xiàn)以二階非線性方程為例來說明其應(yīng)用原理[3]。
式(4)是經(jīng)過處理過的非線性離散方程。
取Y=Φθ
以上是基本最小二乘法在船舶運(yùn)動(dòng)方程中的應(yīng)用,因?yàn)榛咀钚《朔ň哂泄烙?jì)的有偏性,故可利用廣義最小二乘法對(duì)參數(shù)進(jìn)行估計(jì)。
遺傳算法來源于生物進(jìn)化中“適者生存”的思想。通過模擬自然界進(jìn)化中的自然選擇,基因重組以及基因突變來進(jìn)行自學(xué)習(xí)和尋優(yōu)?;具z傳算法有選擇、交叉和變異三個(gè)基本算子組成。具體過程如下:
(1)編碼并生成初始種群。遺傳算法不能直接處理解域中的數(shù)據(jù),因此需通過編碼將它們表示成遺傳空間的基因型數(shù)據(jù)串,本文采用串聯(lián)二進(jìn)制編碼。對(duì)于初始種群的個(gè)體,則是通過隨機(jī)方法產(chǎn)生。
(2)計(jì)算適應(yīng)度。適應(yīng)度是遺傳算法中的核心部分,它決定了種群中個(gè)體對(duì)所求解的問題的適合程度,在船舶運(yùn)動(dòng)方程中就是判定種群中變量即K、T是否符合方程。因此對(duì)適應(yīng)度的設(shè)計(jì)就至關(guān)重要。
在這里我們根據(jù)船舶運(yùn)動(dòng)方程的特點(diǎn),運(yùn)用殘差平方和對(duì)個(gè)體的適應(yīng)度進(jìn)行判定。下面以二階方程進(jìn)行說明。
對(duì)(4)進(jìn)行變形得:
(3)選擇、交叉和變異。采用基于線性排序的適應(yīng)度分配的方法來進(jìn)行選擇操作。
交叉是提高遺傳算法搜索能力的一個(gè)重要操作,在此我們采用離散重組的方法。由于自適應(yīng)遺傳算法在保持群體多樣性的同時(shí),也保證了算法的收斂性。
對(duì)交叉進(jìn)行自適應(yīng)的調(diào)整公式如下[4]:
其中:Pc1,Pc2分別為交叉概率的上限、下限;f1為要交叉的兩個(gè)個(gè)體中較大的適應(yīng)度;favg為每代群體的平均適應(yīng)度;fmax為群體中最大適應(yīng)度值。在此,我們選取Pc1=0.9,Pc2=0.6。
相應(yīng)地,我們對(duì)變異操作也進(jìn)行自適應(yīng)操作。
對(duì)變異進(jìn)行自適應(yīng)的調(diào)整公式如下[4]:
其中:Pm1,Pm2分別為變異概率的上限、下限;f2為要變異的兩個(gè)個(gè)體中較大的適應(yīng)度;favg為每代群體的平均適應(yīng)度;fmax為群體中最大適應(yīng)度值。在此,我們選取Pm1=0.1,Pm2=0.001。
(4)噪聲處理
眾所周知,在實(shí)際的船舶航行時(shí)采集的數(shù)據(jù)中噪聲是不能不考慮的一個(gè)重要因素,因此在實(shí)際數(shù)據(jù)運(yùn)算中就必須考慮對(duì)噪聲進(jìn)行處理。
在遺傳算法的適應(yīng)度函數(shù)中,我們選?。?)式的殘差平方和作為適應(yīng)度函數(shù),其矩陣表達(dá)形式為Y=Φθ。
其中:
殘差e(k)=Y-Φθ,但這一判定標(biāo)準(zhǔn)沒有考慮噪聲。然而實(shí)際中噪聲是不可避免的。為此我們需要對(duì)噪聲進(jìn)行處理。
遺傳算法是一種隨機(jī)搜索法。它無需求導(dǎo)、理論上能全局收斂的解非線性模型參數(shù)估計(jì)的方法。遺傳算法因其自身獨(dú)有的優(yōu)點(diǎn),因而在解決非線性模型參數(shù)估計(jì)方面有著很大的優(yōu)勢。最小二乘法在辨識(shí)的參數(shù)比較多時(shí),可能存在“參數(shù)相消”效應(yīng),即辨識(shí)所得的各參數(shù)同時(shí)偏離各自的真值,但只要它們和參數(shù)真值保持相同比值,同樣可以是誤差函數(shù)為最小。下面對(duì)非線性方程在數(shù)據(jù)無干擾情況下,應(yīng)用遺傳算法和最小二乘法進(jìn)行仿真對(duì)比,其中遺傳算法采用自適應(yīng)遺傳算法,即在基本遺傳算法基礎(chǔ)上加入交叉概率和變異概率自適應(yīng)機(jī)制。
本實(shí)驗(yàn)使用的數(shù)據(jù)是根據(jù)大連海事大學(xué)的試驗(yàn)船“育龍”號(hào)的仿真結(jié)果進(jìn)行的數(shù)據(jù)模擬[5]。K=0.478,T=216,α=30;除此之外,還對(duì)參數(shù)進(jìn)行另外設(shè)定以檢驗(yàn)辨識(shí)方法的優(yōu)劣。對(duì)比實(shí)驗(yàn)數(shù)據(jù)見表1、2。
表1 最小二乘法實(shí)驗(yàn)數(shù)據(jù)記錄表
表2 遺傳算法實(shí)驗(yàn)數(shù)據(jù)記錄表
對(duì)比試驗(yàn)數(shù)據(jù)見表3、4。
表3 最小二乘法實(shí)驗(yàn)數(shù)據(jù)記錄表
表4 遺傳算法實(shí)驗(yàn)數(shù)據(jù)記錄表
在K=0.07,T=25,α=3這一組數(shù)據(jù)中出現(xiàn)可參數(shù)相消現(xiàn)象。以上說明最小二乘法與遺傳算法在辨識(shí)非線性系統(tǒng)且參數(shù)較多時(shí),均存在著參數(shù)相消現(xiàn)象。最小二乘法仿真圖見圖 1,遺傳算法K值進(jìn)化過程見圖 2。因此用這兩種方法不能可靠辨識(shí)出二階非線性方程的參數(shù)值。
圖1 廣義最小二乘法仿真圖
圖2 遺傳算法K值進(jìn)化過程
二階非線性方程的Simlink仿真圖如3所示。
我們知道間接模型參考自適應(yīng)法具有很強(qiáng)的局部搜索能力,但它易于陷入局部最優(yōu)解,且對(duì)初值的設(shè)定要求比較高,因此本文將介紹一種混合算法。由上面結(jié)果表明,最小二乘法與遺傳算法在辨識(shí)低階非線性模型能夠大體辨識(shí)出參數(shù)的值,我們將根據(jù)其中一種算法辨識(shí)的參數(shù)作為初值,然后根據(jù)間接模型參考自適應(yīng)法進(jìn)行局部搜索。最小二乘法與遺傳算法辨識(shí)的參數(shù)區(qū)別不大,但考慮到運(yùn)算速度,我們將采用最小二乘法辨識(shí)參數(shù)的初值。
考慮野本一階方程:
圖3 二階非線性方程的Simlink仿真
其中:r為航向變化率,δ為舵角,a=-1/T'<0,b=K'/T'>0,由間接模型參考自適應(yīng)法的數(shù)學(xué)原理,設(shè)定P=1,自適應(yīng)參數(shù)為:
其中:e=rm-r,r為采集的實(shí)際數(shù)據(jù);rm是推算的航向變化率,其表達(dá)式為:
其中h為采樣時(shí)間。由于所要求取的參數(shù)a,b都很重要,因此權(quán)重系數(shù)設(shè)定為γ1=γ2=100。
用以上方法不斷修改am,bm使其接近于真實(shí)值a,b。
下面編程實(shí)現(xiàn)船舶在無干擾下的數(shù)據(jù)生成,其中船長L=150 m,船速U=8 m/s,a=-0.6,b=0.2,K=0.01778,T=31.25,舵角信號(hào)為 3×sin(0.05×t)。試驗(yàn)是在采樣時(shí)間為0.5 s、1 s、2 s三種情況下對(duì)參數(shù)進(jìn)行辨識(shí)。實(shí)驗(yàn)數(shù)據(jù)記錄見表 5。其中最小二乘法采用廣義最小二乘法。
表5 實(shí)驗(yàn)數(shù)據(jù)記錄表
圖4是混合算法仿真示意圖。
圖4 混合算法仿真示意圖
由于在無干擾情況下混合算法辨識(shí)結(jié)果較好,故表6將考慮有噪聲干擾情況下混合算法的辨識(shí)結(jié)果。其余數(shù)據(jù)與無干擾情況下的相同,當(dāng)在圖3的干擾模型中的白噪聲能量設(shè)為0.01時(shí)。
表6 實(shí)驗(yàn)數(shù)據(jù)記錄表
當(dāng)在圖3的干擾模型中的白噪聲能量設(shè)為1時(shí)的實(shí)驗(yàn)數(shù)據(jù)記錄見表7。
表7 實(shí)驗(yàn)數(shù)據(jù)記錄表
由以上實(shí)驗(yàn)結(jié)果表明改進(jìn)后的混合算法在船舶運(yùn)行良好狀態(tài)下對(duì)采樣時(shí)間的要求不是很高,而對(duì)一般辨識(shí)參數(shù)要求對(duì)不同船型進(jìn)行合適的采樣時(shí)間的設(shè)定。由于我們常常無法準(zhǔn)確地合理劃分船型大小,因此,本方法對(duì)實(shí)際參數(shù)辨識(shí)意義重大。
本文首先根據(jù)最小二乘法和遺傳算法的基本原理對(duì)船舶運(yùn)動(dòng)方程的參數(shù)辨識(shí)進(jìn)行了仿真實(shí)驗(yàn),通過對(duì)比試驗(yàn)結(jié)果可知,遺傳算法能夠較準(zhǔn)確地辨識(shí)參數(shù)較少的低階非線性方程,而在辨識(shí)參數(shù)較多的二階非線性方程時(shí)出現(xiàn)了辨識(shí)參數(shù)相消的現(xiàn)象,不能夠準(zhǔn)確辨識(shí)出參數(shù)的真實(shí)值。結(jié)合上述現(xiàn)象,設(shè)計(jì)出一種基于最小二乘法和間接模型參考自適應(yīng)法的混合算法,該算法對(duì)原有的單一算法進(jìn)行了優(yōu)化,仿真結(jié)果令人滿意,為較好地解決非線性系統(tǒng)的辨識(shí)問題提供了一條有效途徑。
[1] 韓冰. 艦船航行參數(shù)辨識(shí)的方法研究與實(shí)現(xiàn)[D]. 武漢:海軍工程大學(xué), 2008.
[2] 辛元?dú)W, 俞勝芬. 關(guān)于K—T方程類的辨識(shí)方法研究——自回歸模型的辨識(shí)[J]. 中國航海,1983,13(2):28-43.
[3] 李言俊, 張科. 系統(tǒng)辨識(shí)理論及應(yīng)用[M]. 北京: 國防工業(yè)出版社, 2003,50-76.
[4] 王小平, 曹立明. 遺傳算法-理論、應(yīng)用與軟件實(shí)現(xiàn)[M]. 西安: 西安交通大學(xué)出版社, 2002: 73-74.
[5] 李鐵三, 楊鹽生, 鄭云峰. 不完全驅(qū)動(dòng)船舶非線性控制[J]. 交通運(yùn)輸工程學(xué)報(bào), 2003, 3(4):39-43.