甘躍鵬,伍友利,王康健,陳 鞭,管 軍
(1.空軍工程大學 航空工程學院, 西安 710038; 2.江蘇科技大學, 江蘇 鎮(zhèn)江 212100)
為了降低無控炸彈落點的散布范圍進而實現(xiàn)對目標的精準打擊,需要準確的炸彈氣動參數(shù)。在進行炸彈打靶試驗過程中,利用各種儀器設(shè)備采集炸彈實際飛行數(shù)據(jù),在實際測得的數(shù)據(jù)中提取炸彈的氣動參數(shù),比實驗室和計算所獲得的參數(shù)更能代表炸彈真實的運動狀態(tài)。炸彈彈道的穩(wěn)定性取決與炸彈的氣動參數(shù),炸彈氣動參數(shù)辨識技術(shù)是飛行器氣動參數(shù)辨識中的一個關(guān)鍵分支,為了提高無控炸彈的命中精度、減少彈藥使用量,需要進行炸彈氣動參數(shù)辨識的方法研究。
近年來,氣動參數(shù)辨識誕生了很多方法,發(fā)展十分迅速,目前較為經(jīng)典的方法是最小二乘法、極大似然法、Kalman濾波法以及最近興起的某些智能算法。崔乃剛等將一階高斯馬爾科夫過程描述作為氣動參數(shù)誤差模型,并增廣到狀態(tài)方程中,根據(jù)獲得帶有測量誤差的慣導信息,對氣動參數(shù)進行估計。王正熙等采用卡爾曼濾波對四旋翼無人機的氣動參數(shù)進行在線估計,計算相應(yīng)比例因子,對轉(zhuǎn)速進行補償,提高無人機的高度和航向的控制性能。趙述龍等設(shè)計了一套CIFER的辨識工具,對具有不確定因素較大的氣動參數(shù)進行頻域辨識。李金晟等基于極大似然準則,采用神經(jīng)網(wǎng)絡(luò)-牛頓法,對無控旋轉(zhuǎn)彈丸的飛行狀態(tài)數(shù)據(jù)進行處理,提取出其零升阻力系數(shù)。韓建福等提出一種雙BP神經(jīng)網(wǎng)絡(luò)對撲翼飛行器的氣動參數(shù)進行辨識。
極限學習算法是一種熱門的神經(jīng)網(wǎng)絡(luò)算法,由于其學習速度快、泛化能力強等優(yōu)點被廣泛應(yīng)用。嚴侃等基于最小二乘原理,通過求解隱含層輸出矩陣的Moor-Penrose廣義逆矩陣,精確辨識彈丸阻力系數(shù)。張夢蝶等提出用改進的貝葉斯優(yōu)化算法,解決傳統(tǒng)核極限學習機算法參數(shù)優(yōu)化困難的問題。但由于極限學習算法隨機產(chǎn)生的輸入權(quán)重和隱含層神經(jīng)元容易引發(fā)預測結(jié)果發(fā)散,為此研究者進行了大量的相關(guān)研究。
本文利用遺傳算法優(yōu)化極限學習機算法中隱含層神經(jīng)元個數(shù)、輸入層到隱含層的權(quán)值個數(shù)以及隱含層到輸出層的權(quán)值個數(shù),解決了預測結(jié)果容易發(fā)散的問題,并且使用遺傳算法也克服了一般優(yōu)化算法容易產(chǎn)生的陷入局部最優(yōu)的問題,進一步使用這種遺傳算法優(yōu)化的極限學習機對某型無控炸彈的氣動參數(shù)進行了辨識,并與傳統(tǒng)極限學習機辨識的結(jié)果進行了比較。將遺傳算法優(yōu)化的極限學習機應(yīng)用到某型無控炸彈的氣動參數(shù)辨識。
炸彈彈道模型使用修正質(zhì)點彈道模型(簡稱4D模型),此模型是在地面坐標系中,具體方程組如下:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
炸彈相對于空氣的速度為:
(9)
動力平衡角的直接計算公式為:
(10)
(11)
(12)
(13)
式(10)—式(13)中的相關(guān)參數(shù)可以由下面的式(14)—式(22)計算得到。
(14)
(15)
(16)
(17)
(18)
(19)
=-
(20)
=
(21)
=-
(22)
極限學習算法可以看為一種只有一層隱含層的前向傳播神經(jīng)網(wǎng)絡(luò),和其他神經(jīng)網(wǎng)絡(luò)一樣,可以分為訓練階段和預測階段。與經(jīng)典的神經(jīng)網(wǎng)絡(luò)不同的是,極限學習算法是隨機生成輸入權(quán)重值和隱含層神經(jīng)元閾值。這兩者之間是獨立的并且不需要調(diào)整,其結(jié)構(gòu)如圖1所示。
圖1 極限學習算法結(jié)構(gòu)示意圖Fig.1 Structure diagram of ELM
給定組訓練樣本(,)∈×,其中是維輸入向量,是維目標向量。隱含層含有個神經(jīng)元,(,,)是極限學習算法的激活函數(shù),其輸出為:
(23)
式(23)中:(,)分別為輸入的權(quán)重值和隱含層神經(jīng)元閾值;為連接第個隱含層神經(jīng)元和輸出神經(jīng)元的權(quán)重向量??梢詫⑹?23)變化為矩陣的形式,即:
=
(24)
其中
(25)
(26)
(27)
式(27)中,是的Moore-Penrose廣義逆矩陣。
極限學習算法可以主要歸納為以下3個步驟:
1確定隱含層神經(jīng)元個數(shù),隨機設(shè)定輸入層和隱含層的連接權(quán)重和閾值(,);
2將一個無限可微的函數(shù)作為隱含層神經(jīng)元的激活函數(shù)(,,),計算隱含層輸出矩陣;
遺傳算法(GA)起源于對生物系統(tǒng)進行計算機模擬,是一種對自然界生物進化機制進行模仿的隨機全局搜索和優(yōu)化方法。GA算法可以高效、并行地進行全局搜索,并在搜索過程中可以自動獲取和累積相關(guān)搜索空間的知識,并自適應(yīng)地控制搜索過程來求出最優(yōu)解。
遺傳算法的一般步驟可以歸結(jié)于以下5個步驟:
1初始隨機產(chǎn)生種群。
2依據(jù)策略判斷個體適應(yīng)度,如果能夠符合優(yōu)化準則,輸出最優(yōu)個體和最佳解,結(jié)束。否則進行下一步工作。
3根據(jù)適應(yīng)度選擇其父母,適應(yīng)度高的被選中概率就大,反之選擇概率就小。
4將成為父母的個體,根據(jù)一定的方法用他們的染色體交叉,產(chǎn)生后代。
5對后代染色體進行變異操作,再進行交叉、變異的操作產(chǎn)生新的種群,然后回到步驟2,開始循環(huán),直至產(chǎn)生最優(yōu)解。
遺傳算法計算流程如圖2所示。
圖2 遺傳算法計算流程框圖Fig.2 The flow chart of genetic algorithm(GA)
標準大氣條件下使用4階龍格庫塔法(積分步長0.01)求解4D模型,本文基于分段辨識的思想提取氣動參數(shù),將彈道數(shù)據(jù)劃分為若干區(qū)間。由于每一個小區(qū)間內(nèi)速度變化很小,因此可以把區(qū)間內(nèi)的氣動系數(shù)視為常數(shù)。得到8 000組彈道數(shù)據(jù),表1為初始設(shè)置。
表1 彈道初始設(shè)置Table 1 Ballistic initial setting
得到的數(shù)據(jù)包括炸彈飛行速度、姿態(tài)、位置等,為了提高算法的精度,消除不同量綱間的影響,需要對其進行歸一化處理。歸一化處理公式為:
(28)
選取其中7 000組數(shù)據(jù)作為訓練集,1 000組數(shù)據(jù)作為測試集。
ELM模型結(jié)構(gòu)設(shè)置
ELM初始需設(shè)置的參數(shù)為:輸入層節(jié)點個數(shù)、隱含層神經(jīng)元數(shù)、輸出層節(jié)點個數(shù)和激活函數(shù)。
2) 隱含層神經(jīng)元。神經(jīng)網(wǎng)絡(luò)通過我們設(shè)置的隱含層層數(shù)將這些不同的樣本特征映射到一個維空間中,隱含層神經(jīng)元決定了神經(jīng)網(wǎng)絡(luò)的訓練時間和預測的準確程度,因此設(shè)置的神經(jīng)元個數(shù)需合理,設(shè)置不合理,會導致訓練時間長或預測不準確的問題產(chǎn)生,而ELM是設(shè)置隱含層神經(jīng)元個數(shù)之后不再更改,因此設(shè)置神經(jīng)元個數(shù)十分重要。
3) 輸出節(jié)點數(shù)。本文中采用修正質(zhì)點彈道方程,需辨識的氣動參數(shù)如表2所示。
表2 辨識氣動參數(shù)名稱及函數(shù)名Table 2 Name of aerodynamic parameter and function to be identified
4) 激活函數(shù)。激活函數(shù)的目的是將非線性特性加入到ELM中。Sigmoid函數(shù)是一個S型曲線,由于其單調(diào)遞增同時其反函數(shù)也是單調(diào)遞增的特性,Sigmoid函數(shù)通常被用作神經(jīng)網(wǎng)絡(luò)的閾值函數(shù)。本文中選取Sigmoid函數(shù)作為極限學習機的激活函數(shù)。
GAELM算法步驟及流程
GA-ELM算法步驟如下。
1將染色體種群編碼進行初始化,提取出極限學習機的輸入層權(quán)值和隱含層閾值元素,并計算其染色體長度。之后隨機初始化染色體。
2設(shè)置適應(yīng)度函數(shù)。利用ELM對樣本的輸出誤差作為適應(yīng)度函數(shù),計算初始種群中分體的適應(yīng)度函數(shù),計算初始種群中的個體適應(yīng)度。
3進行選擇、交叉、變異操作。采用輪盤賭選擇時,對于適應(yīng)度函數(shù),由于取得是均方誤差,在進化過程中,均方誤差減小,因此,輪盤賭設(shè)置時,適應(yīng)度函數(shù)需取其倒數(shù),從而選擇“適應(yīng)度大”的個體。
4計算子代個體的適應(yīng)度,并與父代個體合并,留下適應(yīng)度較好的個體,構(gòu)成新的子代種群。
5反復迭代步驟3和步驟4,直至達到最大設(shè)定值。
6輸出最優(yōu)的染色體信息。對適應(yīng)度最好的染色體進行解碼,并將解碼后得到的權(quán)值和閾值賦給預測使用的ELM。
7以最優(yōu)的權(quán)值和閾值初始化ELM的參數(shù),獲得最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)。最后測試網(wǎng)絡(luò)的預測精度。
GA-ELM算法計算流程如圖3所示。
圖3 GA-ELM算法計算流程框圖Fig.3 GA-ELM algorithm flow chart
使用ELM和GA-ELM 2種方法辨識氣動參數(shù),具體見圖4—圖10。圖中橫坐標為馬赫數(shù),縱坐標為待辨識的氣動參數(shù),紅色曲線為參考值曲線,黃色曲線為使用ELM的預測值曲線,藍色曲線為使用GA-ELM的預測值曲線。由于測試集樣本過大,導致參考值曲線和GA-ELM的預測值曲線部分重合,小圖窗中是圖中部分放大,可以觀察到GA算法,可以有效提高ELM算法的辨識精度。
圖4 辨識結(jié)果曲線Fig.4 Identification result
圖5 辨識結(jié)果曲線Fig.5 Identification result
圖6 Cx0辨識結(jié)果曲線Fig.6 Cx0 Identification result
圖7 辨識結(jié)果曲線Fig.7 Identification result
圖8 辨識結(jié)果曲線Fig.8 Identification result
圖9 辨識結(jié)果曲線Fig.9 Identification result
圖10 Cx2辨識結(jié)果曲線Fig.10 Cx2 Identification result
圖4—圖10中還給出了2種算法辨識氣動參數(shù)的均方差(MSE),MSE體現(xiàn)其辨識精度,MSE的數(shù)量級越小,辨識精度越高;反之,辨識精度越低。從圖4—圖10可知,加入遺傳算法后的極限學習機算法辨識精度更高,預測值和真實值幾近相同,而未加入GA算法的ELM算法,其辨識精度低,預測值和真實值差距較大。GA算法優(yōu)化產(chǎn)生ELM的輸入權(quán)重及閾值,可以使得輸入權(quán)重和閾值包括更多的樣本信息,提高其辨識精度。
本文應(yīng)用GA算法優(yōu)化ELM算法,改善了ELM 算法的尋優(yōu)精度,GA-ELM算法的尋優(yōu)精度明顯提升,但由于GA算法是全局搜索算法,計算時間較長,因此,加入GA算法后導致GA-ELM算法辨識氣動參數(shù)的時間增長。根據(jù)仿真試驗可得到以下結(jié)論:
1) GA-ELM算法可以實現(xiàn)炸彈的氣動參數(shù)辨識。
2) GA算法迭代尋優(yōu)產(chǎn)生ELM的輸入權(quán)重和隱含層神經(jīng)元閾值,可以有效提高模型辨識精度。
3) 雖然GA-ELM算法提高了辨識精度,但計算辨識炸彈氣動參數(shù)的速度較慢,對實際工程應(yīng)用還有一定差距,還需對辨識速度優(yōu)化。