田春軍
(江蘇自動化研究所, 江蘇 連云港 222061)
彈道導(dǎo)彈諸元準(zhǔn)備的主要任務(wù)是根據(jù)實(shí)際發(fā)射條件計算出一條由發(fā)射點(diǎn)到目標(biāo)點(diǎn)的標(biāo)準(zhǔn)彈道,并以該彈道為基準(zhǔn)計算出一套諸元參數(shù),裝訂于彈上,彈上相關(guān)系統(tǒng)以所裝訂的諸元參數(shù)為基準(zhǔn)實(shí)施導(dǎo)彈的飛行控制,確保導(dǎo)彈實(shí)際發(fā)射后能沿著選擇的彈道飛行,并以要求的精度命中目標(biāo)[1]。由于潛地導(dǎo)彈是以潛艇為平臺,水小機(jī)動發(fā)射,發(fā)射點(diǎn)具有不確定性[2],發(fā)射過程在水下運(yùn)動狀態(tài)下完成,因此相比于陸基彈道導(dǎo)彈發(fā)射點(diǎn)、目標(biāo)點(diǎn)基本確定的情況[2],潛地導(dǎo)彈的彈道計算要求快速完成,否則彈道計算的時間間隔將使得實(shí)際發(fā)射點(diǎn)偏離計算發(fā)射點(diǎn),而這種偏差可達(dá)數(shù)海里,嚴(yán)重影響導(dǎo)彈的落點(diǎn)精度。由此可見,縮短彈道計算時間,是彈道導(dǎo)彈從陸上發(fā)射發(fā)展到水下機(jī)動發(fā)射,必須解決的一項(xiàng)重要技術(shù)。目前,彈道導(dǎo)彈彈道快速計算是依據(jù)彈道的不同特點(diǎn),分段采取相應(yīng)的快速計算方法[3-8]實(shí)現(xiàn),本文給出的基于BP神經(jīng)網(wǎng)絡(luò)的彈道落點(diǎn)參數(shù)計算方法對給定的初始計算參數(shù)直接計算出落點(diǎn)參數(shù),避免了彈道的分段計算過程及彈道分段計算引起的誤差積累,并通過仿真計算驗(yàn)證了算法的有效性。
潛地導(dǎo)彈為一種大型飛行器,其空間運(yùn)動除了質(zhì)心的移動外,還有繞質(zhì)心的轉(zhuǎn)動,同時在主動段飛行過程中還受有制導(dǎo)控制系統(tǒng)的作用,因此其彈道運(yùn)動微分方程主要由質(zhì)心運(yùn)動方程、繞質(zhì)心運(yùn)動方程、姿態(tài)控制方程、關(guān)機(jī)方程和導(dǎo)引方程、姿態(tài)角聯(lián)系方程等組成[9-14],在考慮多種實(shí)際影響因素后,某型導(dǎo)彈的仿真模型包含了400多個變量,由100多個微分方程以及1 000多個代數(shù)方程組成[9-10],限于篇幅,僅列出質(zhì)心運(yùn)動和繞質(zhì)心運(yùn)動的動力學(xué)和運(yùn)動學(xué)矢量方程。
潛地導(dǎo)彈質(zhì)心運(yùn)動的動力學(xué)和運(yùn)動學(xué)矢量方程如式(1)所示:
(1)
潛地導(dǎo)彈繞質(zhì)心運(yùn)動的動力學(xué)和運(yùn)動學(xué)矢量方程如式(2)所示:
(2)
通常采用龍格-庫塔、Adams預(yù)報-校正法等數(shù)值積分迭代算法計算彈道運(yùn)動微分方程,在給定初始計算參數(shù)后,通過積分迭代計算,可求得落點(diǎn)參數(shù)。由于彈道運(yùn)動微分方程組成復(fù)雜,方程中的很多系數(shù)值是以圖表的方式給出,方程計算中將伴隨著大量的函數(shù)插值計算,且彈道運(yùn)動微分方程還是一個非線性的病態(tài)方程[11],彈道計算迭代次數(shù)多,計算時間長[5,13],不能滿足潛地導(dǎo)彈變發(fā)射點(diǎn)機(jī)動發(fā)射的要求,因此需要彈道的快速計算。
彈道運(yùn)動微分方程為變系數(shù)非齊次常微分方程,通過對彈道運(yùn)動微分方程的理論分析及計算驗(yàn)證可知,彈道運(yùn)動微分方程的初始計算參數(shù)與落點(diǎn)參數(shù)之間存在一一對應(yīng)的關(guān)系,若將彈道運(yùn)動微分方程視為一非線性系統(tǒng),則其建立了初始計算參數(shù)(輸入)與落點(diǎn)參數(shù)(輸出)之間的一一對應(yīng)的非線性映射關(guān)系。
BP神經(jīng)網(wǎng)絡(luò)是一種基于誤差反傳的多層前饋網(wǎng)絡(luò),是迄今為止應(yīng)用最為廣泛的網(wǎng)絡(luò),由輸入層、隱層和輸出層組成。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)簡單,只要給定足夠的隱層及隱節(jié)點(diǎn)數(shù),其就可以逼近任意的非線性映射關(guān)系[15-17];BP神經(jīng)網(wǎng)絡(luò)具有自適應(yīng)學(xué)習(xí)的優(yōu)點(diǎn),為網(wǎng)絡(luò)提供足夠的訓(xùn)練樣本供其學(xué)習(xí)和訓(xùn)練,便能完成由輸入到輸出的正確映射,識別出內(nèi)部蘊(yùn)含的規(guī)律;同時BP神經(jīng)網(wǎng)絡(luò)還具有容錯能力和泛化能力[18],網(wǎng)絡(luò)訓(xùn)練過程中若個別樣本帶有較大誤差或存在錯誤,不會影響網(wǎng)絡(luò)給出正確映射關(guān)系,當(dāng)向訓(xùn)練好的網(wǎng)絡(luò)輸入非樣本數(shù)據(jù)時,網(wǎng)絡(luò)能夠完成映射,給出正確的輸出結(jié)果。因此利用BP神經(jīng)網(wǎng)絡(luò)的非線性映射能力、自學(xué)習(xí)能力、容錯能力及泛化能力,為網(wǎng)絡(luò)提供足夠的訓(xùn)練樣本,可建立出滿足精度要求的彈道導(dǎo)彈落點(diǎn)參數(shù)快速計算的神經(jīng)網(wǎng)絡(luò)模型。
BP神經(jīng)網(wǎng)絡(luò)輸出變量選擇較為容易,通常是要實(shí)現(xiàn)的目標(biāo)。BP神經(jīng)網(wǎng)絡(luò)輸入變量一般選取對輸出影響大的變量,且各輸入變量之間不相關(guān)或相關(guān)性小。對于導(dǎo)彈落點(diǎn)參數(shù)計算這一具體問題而言,輸入變量的選取,可從兩方面進(jìn)行分析,一是從初始計算條件的變化對落點(diǎn)參數(shù)的影響程度進(jìn)行定性分析,選出對落點(diǎn)參數(shù)影響較大的變量;二是從彈道方程變量間的內(nèi)在關(guān)系進(jìn)行定性分析,選出在本質(zhì)上對落點(diǎn)參數(shù)有影響的變量,最后統(tǒng)籌考慮上述兩方面的結(jié)果,最終選出合適的輸入變量。
3.1.1初始計算條件對落點(diǎn)參數(shù)的影響分析
彈道運(yùn)動微分方程的輸入多達(dá)上百項(xiàng),在給出初始計算參數(shù)后,計算彈道運(yùn)動微分方程可求出落點(diǎn)經(jīng)緯度參數(shù)(λc,Bc)。雖然完整的輸入變量多達(dá)上百項(xiàng),但在BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練過程中,這些輸入變量的地位和作用是不平等的,有些初始輸入變量對落點(diǎn)參數(shù)有直接顯著影響,有些對落點(diǎn)參數(shù)產(chǎn)生間接影響,有些沒有影響。
由發(fā)射坐標(biāo)系[12]的定義并結(jié)合彈道運(yùn)動微分方程,可將初始計算參數(shù)對落點(diǎn)參數(shù)的影響,分為三類:一類為初始計算參數(shù)不隨發(fā)射點(diǎn)或落點(diǎn)的改變而改變,如發(fā)射點(diǎn)在發(fā)射坐標(biāo)系中的位置分量(x0,y0,z0),計算初始值均為0;俯仰、偏航、滾動3個姿態(tài)角分量初始值為固定取值φ=90°,ψ=0,γ=0,這些變量作為初始輸入是常量,在BP神經(jīng)網(wǎng)絡(luò)的逼近中認(rèn)為對落點(diǎn)沒有影響,這類變量不需考慮;二類為隨著發(fā)射點(diǎn)、目標(biāo)點(diǎn)的不同而改變,如發(fā)射點(diǎn)緯度B0,發(fā)射方位角A0,關(guān)機(jī)時間tk等,在BP神經(jīng)網(wǎng)絡(luò)逼近中需充分考慮;三類為一些特殊的初始計算條件,需結(jié)合具體的樣本設(shè)計進(jìn)行選擇,決定是否在BP神經(jīng)網(wǎng)絡(luò)的逼近中考慮,如發(fā)射點(diǎn)經(jīng)度λ0,由于彈道運(yùn)動微分方程在建模時所選地球模型為軸對稱的旋轉(zhuǎn)橢球體,對于一組確定的發(fā)射點(diǎn)和落點(diǎn),發(fā)射點(diǎn)經(jīng)度改變Δλ,落點(diǎn)經(jīng)度同樣的改變Δλ。
3.1.2變量內(nèi)在關(guān)系對落點(diǎn)參數(shù)的影響分析
對式(1)進(jìn)行如下分析[19]:
(3)
通常映射關(guān)系越復(fù)雜,所需樣本數(shù)據(jù)越多,樣本的選擇要有代表性和均衡性,針對所研究的問題,采用如下方式進(jìn)行樣本設(shè)計:
1) 由于地球?yàn)樾D(zhuǎn)橢球體,固定發(fā)射點(diǎn)經(jīng)度為λ0=0;
2) 發(fā)射方位角區(qū)間為[0,360°),間隔取5°;
3) 確定導(dǎo)彈發(fā)射緯度范圍[-70°,70°],發(fā)射點(diǎn)緯度取值間隔為10°;
4) 關(guān)機(jī)時間區(qū)間[237.0,367.0],取值間隔為5 s。
將以上4點(diǎn)進(jìn)行組合,為發(fā)射點(diǎn)樣本,通過彈道運(yùn)動微分方程計算生成落點(diǎn)樣本數(shù)據(jù),選取部分?jǐn)?shù)據(jù)作為測試樣本數(shù)據(jù),其他為訓(xùn)練樣本數(shù)據(jù)。
根據(jù)樣本數(shù)據(jù)的特點(diǎn),通常將樣本數(shù)據(jù)進(jìn)行歸一化處理,將樣本數(shù)據(jù)限制在[-1,1]區(qū)間內(nèi),采用下式:
(4)
式(4)中:xi為樣本數(shù)據(jù);xmin為樣本數(shù)據(jù)最小值;xmax為樣本數(shù)據(jù)最大值;xmid為樣本數(shù)據(jù)中間值。
按式(4)進(jìn)行歸一化后,處于中間值的樣本數(shù)據(jù)為零,樣本數(shù)據(jù)最大值和最小值分別為1和-1。
BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計主要是隱層數(shù)和隱節(jié)點(diǎn)數(shù)的設(shè)計。通常一個3層的BP神經(jīng)網(wǎng)絡(luò)已經(jīng)具有了非常強(qiáng)的逼近能力,因此僅設(shè)計一個隱層。確定隱節(jié)點(diǎn)數(shù)通常采用試湊法,即先設(shè)置較少的隱節(jié)點(diǎn)訓(xùn)練網(wǎng)絡(luò),然后逐漸增加隱節(jié)點(diǎn),用同一訓(xùn)練樣本訓(xùn)練,從中確定出網(wǎng)絡(luò)誤差最小時對應(yīng)的隱節(jié)點(diǎn)數(shù),經(jīng)過大量的仿真試驗(yàn),隱節(jié)點(diǎn)數(shù)確定為120。最終所確定的三層BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為3-120-2,即3輸入、120隱節(jié)點(diǎn)、2輸出。
標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)采用梯度下降算法,反向傳播計算梯度,但其存在自身的不足,樣本較多時訓(xùn)練時間長,易收斂于局部極小值等。目前已經(jīng)提出了很多改進(jìn)算法,如附加動量法、共軛梯度法、擬牛頓法、自適應(yīng)學(xué)習(xí)速率法、Levenberg-Marquardt方法等。多數(shù)情況下,建議使用Levenberg-Marquardt方法。
利用BP神經(jīng)網(wǎng)絡(luò)解決實(shí)際問題時,除了訓(xùn)練算法的選取很重要外,轉(zhuǎn)移函數(shù)的選取也很重要,主要有3種轉(zhuǎn)移函數(shù):單極性sigmoid函數(shù)、雙極性sigmoid函數(shù)、線性函數(shù)。
單極性sigmoid函數(shù):
(5)
雙極性sigmoid函:
(6)
線性函數(shù):
f(x)=x
(7)
隱層和輸出層的轉(zhuǎn)移函數(shù)對BP神經(jīng)網(wǎng)絡(luò)的預(yù)測精度有較大影響,通常隱層轉(zhuǎn)移函數(shù)選用單極性sigmoid函數(shù)或雙極性sigmoid函,輸出層轉(zhuǎn)移函數(shù)選用線性函數(shù)。
BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,最大訓(xùn)練次數(shù)epoch可根據(jù)網(wǎng)絡(luò)規(guī)模、樣本量等確定,經(jīng)仿真試驗(yàn),設(shè)定epoch數(shù)為1 600;網(wǎng)絡(luò)訓(xùn)練要求的精度goal為0;損失函數(shù)一般為均方差MSE,如下式:
(8)
圖1、圖2分別表示落點(diǎn)緯度、落點(diǎn)經(jīng)度差訓(xùn)練數(shù)據(jù)計算誤差,落點(diǎn)緯度、落點(diǎn)經(jīng)度差訓(xùn)練數(shù)據(jù)均為28 285組;圖3、圖4分別為落點(diǎn)緯度、落點(diǎn)經(jīng)度差測試數(shù)據(jù)計算誤差圖,落點(diǎn)緯度、落點(diǎn)經(jīng)度差測試數(shù)據(jù)均為875組。
圖1 落點(diǎn)緯度訓(xùn)練數(shù)據(jù)計算誤差直方圖
圖2 落點(diǎn)經(jīng)度差訓(xùn)練數(shù)據(jù)計算誤差直方圖
圖3 落點(diǎn)緯度測試數(shù)據(jù)計算誤差直方圖
圖4 落點(diǎn)經(jīng)度差測試數(shù)據(jù)計算誤差直方圖
由圖1~圖4計算誤差直方圖可知,BP神經(jīng)網(wǎng)絡(luò)對落點(diǎn)緯度的訓(xùn)練,約95%的訓(xùn)練樣本計算誤差落入?yún)^(qū)間(0,0.001°);BP神經(jīng)網(wǎng)絡(luò)對落點(diǎn)經(jīng)度差的訓(xùn)練,約96%的訓(xùn)練樣本計算誤差落入?yún)^(qū)間(0,0.001°);BP神經(jīng)網(wǎng)絡(luò)對落點(diǎn)緯度的測試,約87%的測試樣本計算誤差落入?yún)^(qū)間 (0,0.001°);BP神經(jīng)網(wǎng)絡(luò)對落點(diǎn)經(jīng)度差的測試,約81%的測試樣本計算誤差落入?yún)^(qū)間(0,0.001°),且全部訓(xùn)練、測試樣本計算誤差均未超過10-3的量級。因此BP神經(jīng)網(wǎng)絡(luò)正確識別出了所研究問題內(nèi)部蘊(yùn)含的規(guī)律,且所建立的落點(diǎn)參數(shù)計算模型具有非常好泛化能力,向落點(diǎn)參數(shù)計算模型輸入初始計算參數(shù)后,可給出滿足精度要求的落點(diǎn)參數(shù)。
表1為BP神經(jīng)網(wǎng)絡(luò)對落點(diǎn)緯度訓(xùn)練數(shù)據(jù)、測試數(shù)據(jù)誤差統(tǒng)計結(jié)果;表2為BP神經(jīng)網(wǎng)絡(luò)對落點(diǎn)經(jīng)度差訓(xùn)練數(shù)據(jù)、測試數(shù)據(jù)誤差統(tǒng)計結(jié)果。
表1 落點(diǎn)緯度誤差
表2 落點(diǎn)經(jīng)度差誤差
由仿真計算結(jié)果可知:基于BP神經(jīng)網(wǎng)絡(luò)的導(dǎo)彈落點(diǎn)參數(shù)計算方法計算誤差非常小,以地球平均半徑R=6 371 004.0 m進(jìn)行計算,落點(diǎn)緯度訓(xùn)練樣本均方根誤差為59.8 m,測試樣本均方根誤差為81.5 m;落點(diǎn)經(jīng)度差訓(xùn)練樣本均方根誤差為61.1 m,測試集均方根誤差為83.2 m,與數(shù)值積分迭代計算彈道微分方程相比較,計算精度相差不大,能夠滿足使用要求,但計算量很小,計算一組落點(diǎn)參數(shù)在PIII 500計算機(jī)上的計算時間小于0.01 s,因此所建立的計算模型有效。
本文基于BP神經(jīng)網(wǎng)絡(luò)的潛地導(dǎo)彈落點(diǎn)參數(shù)計算方法,對給定的初始計算參數(shù)可直接計算出落點(diǎn)參數(shù),仿真計算結(jié)果表明,計算精度較高,能夠滿足使用要求,由于彈道運(yùn)動微分方程不進(jìn)行數(shù)值積分迭代計算,極大的提高了落點(diǎn)參數(shù)的計算速度。本文算法可為實(shí)現(xiàn)潛地導(dǎo)彈水下變發(fā)射點(diǎn)機(jī)動發(fā)射提供技術(shù)支持。