張煒靈,蔡 烽,王 驍
(海軍大連艦艇學(xué)院, 遼寧 大連 116018)
自從野本謙作提出利用Z形試驗(yàn)求取操縱響應(yīng)KT指數(shù)的方法之后,KT方程在船舶操縱建模中得到廣泛應(yīng)用。隨著計(jì)算機(jī)的發(fā)展,為提升系統(tǒng)辨識(shí)率,對(duì)KT指數(shù)的辨識(shí)從最原始的作圖法逐步演變。[1]鄭文龍等[2]通過(guò)自然回歸離散模型的最小二乘法建立一階和二階非線性KT連續(xù)模型;張彬等[3]利用分步辨識(shí)的方法對(duì)一階和二階非線性KT方程的參數(shù)進(jìn)行辨識(shí);SERGE等[4]采用經(jīng)典的遺傳算法結(jié)合自航模試驗(yàn)辨識(shí)船舶運(yùn)動(dòng)模型的水動(dòng)力導(dǎo)數(shù);YIN等[5]運(yùn)用偏最小二乘法辨識(shí)整體型船舶操縱運(yùn)動(dòng)數(shù)學(xué)模型水動(dòng)力導(dǎo)數(shù);謝朔等[6-7]利用新息最小二乘法和卡爾曼濾波辨識(shí)KT方程參數(shù)。
就目前而言,幾乎所有的系統(tǒng)辨識(shí)方法的目標(biāo)函數(shù)都為式(1)和式(2),是基于微分形式的誤差平方和。該目標(biāo)函數(shù)雖然表面上可使數(shù)據(jù)與模型相匹配,但本質(zhì)上簡(jiǎn)單地將角速度、角加速度和角加加速度作為獨(dú)立變量代入,忽略了相互之間的關(guān)聯(lián),其處理顯然不夠完善。
(1)
(2)
本文在研究KT操縱響應(yīng)模型的基礎(chǔ)上,求解在連續(xù)線性操舵情況下一階和二階操縱響應(yīng)解析模型。直接利用航向角數(shù)據(jù)構(gòu)建目標(biāo)函數(shù),采用基于格雷碼和精英選擇的遺傳算法進(jìn)行非線性尋優(yōu)。通過(guò)與最小二乘法相比較,證明本文提出的算法能在“理論上最優(yōu)”的基礎(chǔ)上將航向角平均偏差降低約40%。為加快辨識(shí)效率,在辨識(shí)過(guò)程中調(diào)整航向角的時(shí)間步長(zhǎng),進(jìn)行多次辨識(shí)驗(yàn)證,說(shuō)明該方法只需要小樣本數(shù)據(jù)就可進(jìn)行高效準(zhǔn)確的辨識(shí),極大地提升辨識(shí)效率。
在實(shí)際操縱過(guò)程中,假設(shè)舵角是線性變化的,即某次操縱過(guò)程中舵角變化率恒定。
操舵情況示意見(jiàn)圖1。假設(shè)操舵的時(shí)間向量為ti(i=1,2,…),對(duì)應(yīng)的舵角值為δi(i=1,2,…),則對(duì)于t∈[ti,ti+1),有
(3)
圖1 操舵情況示意
一階KT操縱響應(yīng)方程[8]為
(4)
將其適當(dāng)變化為
(5)
φ(t)=F2(t)-F2(ti)+Ni-1+φ0,t∈[ti,ti+1)
(6)
(7)
(8)
(9)
(10)
式(6)~式(10)中:N0=0,M0=0。
二階KT操縱響應(yīng)方程為
(11)
將其適當(dāng)變化為
(12)
(13)
(14)
對(duì)r進(jìn)行分步積分后,即可得航向角為
φ(t)=F3(t)-F3(ti)+Li-1+φ0,t∈[ti,ti+1)
(15)
(16)
(17)
式(15)~式(17)中:L0=0。
對(duì)于某次試驗(yàn)而言,操作過(guò)程已確定,即ti(i=1,2,…)和對(duì)應(yīng)的δi(i=1,2,…)都已確定。根據(jù)給出的操縱響應(yīng)解析模型為
φ1(t)=F2(t)-F2(ti)+Ni-1+φ0
(18)
φ2(t)=F3(t)-F3(ti)+Li-1+φ0
(19)
式(18)和式(19)中:φ1(t)為一階解析模型;φ2(t)為二階解析模型。
在給定ti和δi之后,需再確定KT指數(shù),航向角就能被確定。將解析模型改寫(xiě)成關(guān)于KT指數(shù)的函數(shù)為
(20)
(21)
利用解析的航向數(shù)據(jù)和試驗(yàn)數(shù)據(jù)的誤差平方和作為KT指數(shù)優(yōu)化的評(píng)價(jià)依據(jù),為將其與輪盤(pán)賭相結(jié)合,實(shí)現(xiàn)偏差越小,適應(yīng)度越強(qiáng),個(gè)體選擇的概率越大的目標(biāo),將偏差的倒數(shù)作為優(yōu)化的目標(biāo)函數(shù),優(yōu)化目標(biāo)越大越好。
(22)
(23)
格雷碼的一位等位基因變化只會(huì)引起十進(jìn)制的微小變化,使遺傳算法的交叉變異操作的尋優(yōu)效率大大提升。為既方便染色體的交叉變異操作,又能提高遺傳算法的尋優(yōu)效率,采用格雷碼的編碼方式。[9]
假設(shè)有一個(gè)二進(jìn)制編碼為
B=bmbm-1…b2b1
(24)
式(24)對(duì)應(yīng)的格雷碼為
G=gmgm-1…g2g1
(25)
格雷碼和二進(jìn)制碼轉(zhuǎn)換為
(26)
式(26)中:“⊕”為異或運(yùn)算。
在辨識(shí)過(guò)程中,每個(gè)參數(shù)的編碼長(zhǎng)度為l,每組參數(shù)的基因組合拼接成1條染色體,其編碼長(zhǎng)度為
L=n·l
(27)
式(27)中:n為需要優(yōu)化的參數(shù)數(shù)量。
由于各參數(shù)的取值范圍各不相同,為能準(zhǔn)確辨識(shí),根據(jù)艦船的基本情況,設(shè)定合理的取值范圍[a,b]。在解碼時(shí),先將格雷碼解碼成二進(jìn)制編碼,在二進(jìn)制編碼轉(zhuǎn)換成十進(jìn)制編碼時(shí),進(jìn)行伸縮變換,將值域控制在各參數(shù)的取值范圍內(nèi),即
(28)
(29)
式(28)和式(29)中:x為從二進(jìn)制轉(zhuǎn)換成的十進(jìn)制形式參數(shù);x′為經(jīng)過(guò)伸縮變換后的十進(jìn)制參數(shù);A和B為x的下限和上限;a和b為x′的下限和上限。
用比例算子對(duì)種群進(jìn)行選擇并對(duì)當(dāng)代最優(yōu)個(gè)體進(jìn)行精英保留。首先,將上一代最優(yōu)個(gè)體計(jì)入當(dāng)代個(gè)體中,計(jì)算每一個(gè)體的適應(yīng)度,再標(biāo)記此時(shí)的最優(yōu)個(gè)體,同時(shí)剔除當(dāng)代適應(yīng)度最低的個(gè)體,以維持種群數(shù)量。按照個(gè)體占種群總體適應(yīng)度的比例進(jìn)行歸一化,將其作為個(gè)體選擇復(fù)制到下一代的概率。
在進(jìn)行交叉和變異時(shí),對(duì)指定參數(shù)的染色體區(qū)域進(jìn)行操作,不同的參數(shù)之間不進(jìn)行交叉和變異操作,其中:交叉概率為pc;變異概率為pm。
在進(jìn)行辨識(shí)時(shí),種群數(shù)量M=50,交叉概率pc=0.4,變異概率pm=0.01,編碼長(zhǎng)度為l=15。從二進(jìn)制轉(zhuǎn)換為十進(jìn)制的范圍為0~(215-1)。
1) 一階辨識(shí)時(shí)回轉(zhuǎn)性指數(shù)K設(shè)為0~0.1;應(yīng)舵性指數(shù)T設(shè)為0~20;壓舵舵角δ0設(shè)為-2~2。
2) 二階辨識(shí)時(shí)K為0~0.1;T1設(shè)為0~20;T2設(shè)為0~10;T3設(shè)為0~10;壓舵舵角δ0設(shè)為-2~2;時(shí)間步長(zhǎng)設(shè)為1 s;遺傳代數(shù)設(shè)置為200代。
在長(zhǎng)山群島西南海域?qū)δ撑炦M(jìn)行多次Z形試驗(yàn),以其中一次10°/10°Z形試驗(yàn)為數(shù)據(jù)基礎(chǔ),進(jìn)行操縱性KT指數(shù)辨識(shí)。試驗(yàn)的操舵t和對(duì)應(yīng)δ為
(30)
隨機(jī)生成數(shù)量為50的初始種群,種群對(duì)應(yīng)的參數(shù)代入到解析模型中進(jìn)行仿真,對(duì)應(yīng)50條隨機(jī)的航向角曲線,見(jiàn)圖2和圖3。
經(jīng)過(guò)遺傳算法的優(yōu)化,種群進(jìn)化200代之后,曲線幾乎集中在同一區(qū)域,表明種群的適應(yīng)性已到達(dá)最優(yōu)。航向角曲線見(jiàn)圖4和圖5。
圖4和圖5在一定程度上說(shuō)明了辨識(shí)結(jié)果的收斂性,200代種群的適應(yīng)性已普遍很高。辨識(shí)過(guò)程的收斂情況見(jiàn)圖6和圖7。
一階辨識(shí)得到的最優(yōu)參數(shù)為:K=0.075 9;T=17.487 8;δ0=-0.772 3;航向角平均偏差為0.491 1°,最大偏差為1.289 5°。二階辨識(shí)得到的最優(yōu)參數(shù)為:K=0.072 2;T1=14.398 2;T2=4.067 1;T3=2.115 5;δ0=-0.784 9;航向角平均偏差為0.424 8°;最大偏差為1.180 9°。最優(yōu)航向角曲線見(jiàn)圖8和圖9。
圖6 一階辨識(shí)優(yōu)化趨勢(shì) 圖7 二階辨識(shí)優(yōu)化趨勢(shì)
圖8 一階最優(yōu)航向角曲線 圖9 二階最優(yōu)航向角曲線
利用最小二乘法對(duì)式(1)和式(2)進(jìn)行參數(shù)辨識(shí)。將最小二乘法的辨識(shí)結(jié)果與本文的辨識(shí)結(jié)果相比較,結(jié)果見(jiàn)表1。本文的辨識(shí)方法能有效降低航向角的最大偏差,并將平均偏差縮小約40%,有效提高辨識(shí)的準(zhǔn)確性。同時(shí),由于在辨識(shí)之前已設(shè)置參數(shù)的值域范圍,在實(shí)數(shù)域中進(jìn)行尋優(yōu),能有效避免最小二乘估計(jì)時(shí)出現(xiàn)參數(shù)為復(fù)數(shù)和負(fù)數(shù)的情況。
表1 辨識(shí)結(jié)果和偏差比較表
在提出以上基于解析模型的辨識(shí)方法之后,只要在辨識(shí)過(guò)程中仿真的航向角數(shù)據(jù)與試驗(yàn)的航向角數(shù)據(jù)對(duì)應(yīng)的時(shí)刻是相同的,目標(biāo)函數(shù)內(nèi)所含的航向角數(shù)據(jù)在理論上可取任意值,即在辨識(shí)過(guò)程中完全可幾秒取1個(gè)數(shù)據(jù),甚至幾十秒取1個(gè)數(shù)據(jù)進(jìn)行辨識(shí)。步長(zhǎng)為30 s的初始曲線和優(yōu)化后的曲線見(jiàn)圖10和圖11。
基于以上試驗(yàn)數(shù)據(jù),取不同的時(shí)間步長(zhǎng)進(jìn)行多次辨識(shí),以最終辨識(shí)得到的KT指數(shù)對(duì)應(yīng)的航向角平均偏差作為辨識(shí)好壞的衡量標(biāo)準(zhǔn),見(jiàn)表2。航向角均差隨時(shí)間步長(zhǎng)的變化趨勢(shì)見(jiàn)圖12。
表2 不同樣本數(shù)量辨識(shí)的偏差情況
圖12 航向角偏差趨勢(shì)
由表2和圖12可知:辨識(shí)的時(shí)間步長(zhǎng)減小到約50 s后,即當(dāng)辨識(shí)數(shù)據(jù)樣本大于等于6個(gè)之后,辨識(shí)得到的KT指數(shù)對(duì)應(yīng)的航向角平均偏差逐漸開(kāi)始收斂。當(dāng)時(shí)間步長(zhǎng)縮小到30 s,即數(shù)據(jù)樣本增加到10個(gè)之后,樣本數(shù)量增加并不能大幅度提高辨識(shí)精度。在利用該方法進(jìn)行辨識(shí)時(shí),時(shí)間步長(zhǎng)只需取30 s,即只需要10個(gè)航向角數(shù)據(jù)點(diǎn)就能得到理想的效果,且其結(jié)果明顯優(yōu)于最小二乘法。
考慮到在試驗(yàn)過(guò)程中各種數(shù)據(jù)都存在一定的誤差,這些誤差最終都會(huì)通過(guò)辨識(shí)過(guò)程傳遞到KT指數(shù)。為衡量最終辨識(shí)得到的KT指數(shù)的可靠程度,引入不確定度的概念定量分析KT指數(shù)的數(shù)據(jù)質(zhì)量。
5.1.1航向角不確定度
參照艦船陀螺羅經(jīng)的設(shè)備指標(biāo)說(shuō)明書(shū),在動(dòng)基座羅經(jīng)狀態(tài)下,勻速直航航向偏差εφ1≤±0.8°×secφ。艦船所處維度為38°50′,主羅經(jīng)的偏差εφ1≤±1.027 0°。主羅經(jīng)傳遞到分羅經(jīng)的傳遞偏差εφ2≤0.2°。假設(shè)這2種偏差在偏差極限內(nèi)服從正態(tài)分布,根據(jù)國(guó)標(biāo)中不確定度計(jì)算原理[10]:主羅經(jīng)的標(biāo)準(zhǔn)不確定度μφ1=0.342 3°,自由度νφ1=50;傳遞偏差引起的不確定度μφ2=0.066 7°,自由度νφ2=50。航向角的合成不確定度為
(31)
根據(jù)韋爾奇-薩特思韋特公式計(jì)算得到航向角的有效不確定度的自由度為
(32)
航向角數(shù)據(jù)的有效不確定度對(duì)應(yīng)的有效自由度取νφ=50。
5.1.2 舵角不確定度
自動(dòng)操舵儀的操舵盤(pán)最小讀數(shù)為1.0°,讀數(shù)偏差εδ1≤±0.5°。自動(dòng)舵的靈敏度為0.5°,由其引起的操舵舵角的偏差εδ2≤±0.5°。假設(shè)讀數(shù)偏差服從均勻分布,靈敏度偏差服從正態(tài)分布,則根據(jù)不確定度計(jì)算原理,讀數(shù)偏差引起的標(biāo)準(zhǔn)不確定度為μδ1=0.288 7°,自由度為νδ1=12;靈敏度偏差引起的標(biāo)準(zhǔn)不確定為μδ2=0.166 7°,自由度為νδ2=50。δ的合成不確定度為
(33)
由式(33)計(jì)算得到舵角的有效不確定度的自由度為
(34)
δ的有效不確定度對(duì)應(yīng)的有效自由度取νδ=20。
將基于解析解辨識(shí)一階操縱性KT指數(shù)的過(guò)程也看成函數(shù),即
[K,T]=f1(φ1,…,φm,δ1,…,δn)
(35)
[K,T1,T2,T3]=f2(φ1,…,φm,δ1,…,δn)
(36)
根據(jù)國(guó)標(biāo)中的不確定度傳遞原理[10],將航向角數(shù)據(jù)的不確定度和舵角數(shù)據(jù)的不確定度代入基于解析模型辨識(shí)一階和二階KT指數(shù)的過(guò)程中,得到KT指數(shù)的標(biāo)準(zhǔn)不確定度見(jiàn)表3。
表3 KT指數(shù)不確定度結(jié)果
由于本文提出的辨識(shí)方法只用到航向角數(shù)據(jù),少量的航向角數(shù)據(jù)的變化雖然會(huì)引起目標(biāo)函數(shù)值的變化,但對(duì)其最優(yōu)參數(shù)的影響很小。相比所有誤差都會(huì)被計(jì)算在內(nèi)的最小二乘法,利用提出的辨識(shí)方法能有效降低辨識(shí)得到的KT指數(shù)的不確定度。由于該辨識(shí)方法得到的T2和T3的數(shù)值相對(duì)較大,其相對(duì)不確定度明顯下降。在樣本存在一定不確定度的前提下,有效證明了該辨識(shí)方法的可靠性。