高 星,高 飛*,高 原,何澤源,程春陽,韓志賀
(1.北方自動控制技術(shù)研究所,太原 030006;2.解放軍31669 部隊(duì),哈爾濱 150036)
現(xiàn)代戰(zhàn)爭條件下,坦克、步兵戰(zhàn)車等地面突擊裝備在高速機(jī)動條件下的首發(fā)精確打擊能力至關(guān)重要,是確?!跋葦嘲l(fā)現(xiàn),先敵開火,先敵命中”的先決條件。裝備在高機(jī)動行駛過程中,車輛底盤的隨機(jī)振動會傳遞至火炮,引起炮口的隨機(jī)振動,火炮軸線與瞄線之間的旋變信號為非平穩(wěn)信號,從而影響火控系統(tǒng)的首發(fā)命中率,因此,需要對火炮炮口隨機(jī)振動開展研究,探索對炮口隨機(jī)振動誤差進(jìn)行補(bǔ)償?shù)募夹g(shù)手段。王欽釗等對坦克火控系統(tǒng)目前存在的不足和未來改進(jìn)方向進(jìn)行了研究[1],主要考慮了3 個方面對射擊精度的影響:射擊門誤差、火炮炮口振動誤差和解算距離誤差。宋泉良等提出一種優(yōu)化GM(1,1)模型對行進(jìn)間火炮炮口振動進(jìn)行了預(yù)測研究[2]。房樹虎等基于EMD 與LS-SVM 方法對火炮非平穩(wěn)序列進(jìn)行了預(yù)測,首先對非平穩(wěn)信號進(jìn)行EMD 分解,再進(jìn)行最小二乘法支持向量機(jī)分別預(yù)測,最后進(jìn)行非線性組合,得到火炮非平穩(wěn)序列的預(yù)測模型[3]。由此可知,根據(jù)歷史狀態(tài)信息對火炮炮口的振動規(guī)律作出預(yù)測,獲得火炮振動在車輛行駛過程中的位置信息,是進(jìn)行炮口隨機(jī)振動誤差補(bǔ)償?shù)闹匾夹g(shù)途徑。
火炮炮口振動預(yù)測問題作為時(shí)間序列預(yù)測問題,通過構(gòu)建算法逼近真實(shí)映射函數(shù),然后通過歷史數(shù)據(jù)未來進(jìn)行預(yù)測。常見的方法主要有兩類[4]:基于數(shù)理模型(貝葉斯,相空間重構(gòu)灰色模型等)和基于數(shù)據(jù)驅(qū)動(回歸,神經(jīng)網(wǎng)絡(luò),向量機(jī)和濾波器等)。文獻(xiàn)調(diào)研發(fā)現(xiàn)[5-11]:由于炮口振動信號具有非線性隨機(jī)性強(qiáng)的特點(diǎn),灰色度理論在預(yù)測時(shí)需要對數(shù)據(jù)進(jìn)行比較繁瑣的預(yù)處理;回歸方法對時(shí)間序列預(yù)測算法長期預(yù)測能力不足;目前被引入到時(shí)間序列預(yù)測的深度學(xué)習(xí)算法主要有深度置信網(wǎng)絡(luò)(DBN)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)兩種,CNN 適合處理多維時(shí)間序列預(yù)測問題,DBN 則更適合用于預(yù)測單維時(shí)間序列,并且具備優(yōu)異的短期預(yù)測性能。TAKAOMI 等將DBN 與ARIMA 算法結(jié)合并在CATS 時(shí)間序列和混沌時(shí)間序列上驗(yàn)證了該算法的優(yōu)良性能[10];ZHAO等提出的基于DBN 和RVM 的融合算法不僅提高了其長期預(yù)測性能,而且使預(yù)測結(jié)果具備了不確定度表達(dá)能力[11]。由于炮口振動數(shù)據(jù)具有持續(xù)時(shí)間短、為非平穩(wěn)時(shí)間序列的特點(diǎn),因此,DBN 方法更適用于解決火炮炮口隨機(jī)振動預(yù)測問題。
綜上所述,本文選取DBN 方法建立火炮炮口振動預(yù)測模型,并基于實(shí)測數(shù)據(jù)進(jìn)行仿真分析,為火控系統(tǒng)的炮口隨機(jī)振動補(bǔ)償提供理論依據(jù)和方法。
深度置信網(wǎng)絡(luò)的核心是自上而下堆疊而成的RBM(restricted boltzmann machine),每一個RBM 包括一個顯層和一個隱層,兩層間通過權(quán)重連接,典型結(jié)構(gòu)如圖1 所示,v代表可見層,h代表隱層。RBM 通過可見層接收來自前一個隱層數(shù)據(jù),并借助激活函數(shù)轉(zhuǎn)換輸入向量到隱含層,之后通過訓(xùn)練使得內(nèi)部能量函數(shù)達(dá)到最小,便對原始數(shù)據(jù)得到的特征提取。
圖1 RBM 典型結(jié)構(gòu)Fig. 1 Typical structure of RBM
圖2 DBN 訓(xùn)練結(jié)構(gòu)Fig. 2 Training structure of DBN
由能量函數(shù)可得配分函數(shù)為:
式中,v和h的求和代表模型的所有可能狀態(tài)。
當(dāng)v確定時(shí),h的條件概率可以表示為:
由式(6)可以看到,顯層確定時(shí),隱層的條件概率分布是乘積因子的形式。由于神經(jīng)元是二值函數(shù),一個單獨(dú)的神經(jīng)元開啟的概率為:
類似的,隱層確定時(shí),顯層開啟的概率為:
條件概率是標(biāo)準(zhǔn)的sigmoid 函數(shù)形式。這種訓(xùn)練的過程是通過產(chǎn)生和訓(xùn)練樣本相似的數(shù)據(jù)來實(shí)現(xiàn)的,訓(xùn)練的最終目標(biāo)是使訓(xùn)練后的網(wǎng)絡(luò)結(jié)構(gòu)能以最大的概率產(chǎn)生訓(xùn)練樣本。顯層概率對參數(shù)空間的導(dǎo)數(shù)表示為:
每一次的迭代會將顯層和隱層整體進(jìn)行更新。為得到無偏樣本,應(yīng)使模型初始化的狀態(tài)隨機(jī)化,采樣次數(shù)為n,n越大則結(jié)果越精確,但采樣過程耗時(shí)將增加,導(dǎo)致RBM 的訓(xùn)練效率低。為此,采用對比散度算法(contrastive divergence,CD),給出一個訓(xùn)練樣本作為模型的初始狀態(tài),從而提高迭代的效率。
深度置信網(wǎng)絡(luò)的訓(xùn)練過程是逐層進(jìn)行的,利用CD 算法訓(xùn)練第1 個RBM;將第1 個RBM 的隱層作為第2 個RBM 的顯層輸入,訓(xùn)練第2 個RBM;重復(fù)多次即可形成多層的DBN。整個DBN 的訓(xùn)練過程包含兩個階段:預(yù)訓(xùn)練階段和反向微調(diào)階段。預(yù)訓(xùn)練的過程是逐層的非監(jiān)督學(xué)習(xí)過程,把低層特征逐步匯聚成高層特征。預(yù)訓(xùn)練完成后,進(jìn)行監(jiān)督學(xué)習(xí),利用BP 算法對參數(shù)空間進(jìn)行調(diào)優(yōu),從而降低誤差。
基于DBN 的火炮炮口振動預(yù)測框架,首先由于神經(jīng)網(wǎng)絡(luò)輸入數(shù)據(jù)為多維數(shù)據(jù),應(yīng)根據(jù)炮口振動數(shù)據(jù)進(jìn)行引伸外推得到數(shù)據(jù)的重構(gòu)數(shù)據(jù)集,重構(gòu)的數(shù)據(jù)集能夠精準(zhǔn)反應(yīng)數(shù)據(jù)前后依存關(guān)系;其次,采用DBN 神經(jīng)網(wǎng)絡(luò)得到預(yù)測數(shù)學(xué)模型來表征提取的數(shù)據(jù)特征,需要強(qiáng)調(diào)的是,決定神經(jīng)網(wǎng)絡(luò)預(yù)測效能的因素較多,例如,時(shí)間序列輸入長度、隱層節(jié)點(diǎn)數(shù)目、深度結(jié)構(gòu)等,不同參數(shù)的DBN 網(wǎng)絡(luò)預(yù)測性能不盡相同,不當(dāng)?shù)膮?shù)選用會導(dǎo)致預(yù)測性模型不收斂、特征提取不充分、模型欠擬合以及訓(xùn)練時(shí)間激增等情況;最后對該模型的正確性進(jìn)行檢驗(yàn),實(shí)際應(yīng)用中還應(yīng)對預(yù)測結(jié)果進(jìn)行判斷,精準(zhǔn)的計(jì)算結(jié)果可以降低風(fēng)險(xiǎn),避免損失。綜上,可將火炮炮口振動預(yù)測框架細(xì)化如圖3 所示。
圖3 基于DBN 的火炮炮口振動預(yù)測框架Fig. 3 Prediction framework of muzzle vibration based on DBN
上述預(yù)測框架主要分成定義階段、預(yù)處理階段、訓(xùn)練階段、測試階段和評價(jià)階段5 部分:
1)定義階段:選取火炮耳軸傳感器的位置信息作為火炮振動特征進(jìn)行預(yù)測,炮口振動數(shù)據(jù)具有持續(xù)時(shí)間短,為非平穩(wěn)時(shí)間序列的特點(diǎn)。
2)預(yù)處理階段:對耳軸傳感器獲取的數(shù)據(jù)進(jìn)行降噪、奇異點(diǎn)清除等預(yù)處理,然后進(jìn)行數(shù)據(jù)歸一化,防止數(shù)據(jù)異常造成預(yù)測結(jié)果偏差過大。根據(jù)神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)選取規(guī)則將預(yù)處理后的數(shù)據(jù)分成訓(xùn)練集和測試集。
3)訓(xùn)練階段:根據(jù)DBN 算法,搭建預(yù)測模型,然后將訓(xùn)練數(shù)據(jù)輸入到預(yù)測模型進(jìn)行訓(xùn)練,直到滿足設(shè)定誤差最小值條件或者達(dá)到最大迭代次數(shù)時(shí)停止訓(xùn)練。
4)測試階段:通過步驟3)可以得到訓(xùn)練后的預(yù)測模型,將其作為預(yù)測模型輸出預(yù)測值,其中測試值的輸入采用步驟2)中的測試集。
5)評價(jià)階段:選取常用的數(shù)據(jù)評價(jià)指標(biāo),對預(yù)測結(jié)果進(jìn)行分析,得出所搭建的DBN 預(yù)測模型準(zhǔn)確度及適用性。
預(yù)測結(jié)果的好壞,取決于預(yù)測模型參數(shù)的選取。一般情況下,歷史數(shù)據(jù)量越多,反映的數(shù)據(jù)特征越明確,參考神經(jīng)網(wǎng)絡(luò)訓(xùn)練中常見標(biāo)準(zhǔn)序列數(shù)據(jù)集[11],對于季節(jié)性數(shù)據(jù)集序列長度通常為100~300,趨勢性數(shù)據(jù)集序列長度通常為400~600,具有隨機(jī)成分的數(shù)據(jù)集序列長度通常在900~1 000;神經(jīng)網(wǎng)絡(luò)中輸入節(jié)點(diǎn)數(shù)越多,模型獲得預(yù)測精度會越高,所需計(jì)算資源越多,但輸入節(jié)點(diǎn)過多也會出現(xiàn)預(yù)測性能極差或不收斂,本文選取相對較優(yōu)的輸入節(jié)點(diǎn)數(shù)和網(wǎng)絡(luò)層數(shù),具體的神經(jīng)網(wǎng)絡(luò)參數(shù)對預(yù)測效能的影響有待進(jìn)一步研究。實(shí)際應(yīng)用中常常采用將離線數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò),然后進(jìn)行在線采樣預(yù)測的方式進(jìn)行預(yù)測。由于火炮炮口振動信號具有一定隨機(jī)成分,本文選取1 000 個耳軸傳感器的輸出數(shù)據(jù)點(diǎn)。在預(yù)處理中,將奇異點(diǎn)剔除后,每4 個點(diǎn)作為歷史輸入值,即每4 個歷史輸入值會影響下一個時(shí)刻的輸出值。輸入節(jié)點(diǎn)數(shù)為4,共得到996 組數(shù)據(jù),前900 組數(shù)據(jù)點(diǎn)作為訓(xùn)練集,后96 組數(shù)據(jù)點(diǎn)做為測試集,采用5層深度置信網(wǎng)絡(luò),節(jié)點(diǎn)數(shù)分別為4-100-100-100-1,搭建DBN 網(wǎng)絡(luò)進(jìn)行預(yù)測。本文實(shí)驗(yàn)使用的計(jì)算資源為:CPU:Intel Pentium1.80 GHz,內(nèi)存:8 GB,開發(fā)環(huán)境為:Matlab2019b。
評價(jià)預(yù)測性能的指標(biāo)有很多,通過這些可量化的指標(biāo)更能反映預(yù)測結(jié)果的優(yōu)劣程度。本文選取3個常用指標(biāo):
平均相對誤差:
其中,n代表需要預(yù)測的數(shù)據(jù)長度,x(i)是真實(shí)值,x(i)是期望的預(yù)測值。MAE 能反映出預(yù)測數(shù)據(jù)誤差的實(shí)際情況;RMSE 能反映出測量的精確程度;MRE則反映測量結(jié)果偏離真值大小的程度。
根據(jù)搭建的DBN 網(wǎng)絡(luò),可以得出測試結(jié)果如圖4 所示,誤差如圖5 所示。
圖4 DBN 預(yù)測結(jié)果對比Fig. 4 Comparison of DBN prediction results
圖5 DBN 預(yù)測誤差Fig. 5 DBN prediction errors
對比典型的BP 神經(jīng)網(wǎng)絡(luò)算法,本文采用MATLAB 數(shù)據(jù)預(yù)測工具箱直接進(jìn)行預(yù)測,預(yù)測結(jié)果如圖6,圖7 所示,評價(jià)指標(biāo)的結(jié)果如下頁表1 所示。
表1 不同預(yù)測算法結(jié)果對比Table 1 Result comparison of different kinds of prediction algorithm
圖6 BP 預(yù)測結(jié)果對比Fig. 6 Comparison of BP prediction results
圖7 BP 預(yù)測誤差Fig. 7 BP prediction errors
結(jié)果表明,預(yù)測結(jié)果對比上,BP 算法在拐點(diǎn)處誤差較大,而且DBN 預(yù)測模型的評價(jià)結(jié)果優(yōu)于BP預(yù)測模型。DBN 網(wǎng)絡(luò)利用RBM 先進(jìn)行無監(jiān)督訓(xùn)練,使得模型能夠準(zhǔn)確學(xué)習(xí)到火炮振動信號的特征。而由于BP 算法采用一定范圍內(nèi)的隨機(jī)數(shù)初始化網(wǎng)絡(luò)參數(shù),通常從遠(yuǎn)離最優(yōu)區(qū)域的起始點(diǎn)開始學(xué)習(xí),使得普遍存在局部最小點(diǎn),預(yù)測效果會偏差較大。但相對計(jì)算資源和計(jì)算速度而言,BP 神經(jīng)網(wǎng)絡(luò)有很成熟的算法工具箱使用,DBN 神經(jīng)網(wǎng)絡(luò)則存在明顯劣勢。算例共用計(jì)算時(shí)間為4.03 s,即便可以采用優(yōu)化節(jié)點(diǎn)數(shù)量及層數(shù)來減少計(jì)算時(shí)間,在實(shí)際工程應(yīng)用中仍具有較大難度。綜上所述,對于火炮炮口振動數(shù)據(jù)預(yù)測,采用DBN 神經(jīng)網(wǎng)絡(luò)在預(yù)測精度上具有明顯優(yōu)越性,但所需的計(jì)算時(shí)間和計(jì)算資源更多,可采用離線訓(xùn)練網(wǎng)絡(luò)和在線采樣預(yù)測相結(jié)合的方式提高效率。
由于炮口振動數(shù)據(jù)具有持續(xù)時(shí)間短,為非平穩(wěn)時(shí)間序列的特點(diǎn),本文選取深度置信網(wǎng)絡(luò)構(gòu)建炮口振動信號預(yù)測模型,選取火炮耳軸傳感器的位置信息作為特征進(jìn)行預(yù)測,采用5 層深度置信網(wǎng)絡(luò)進(jìn)行預(yù)測。結(jié)果表明,深度置信網(wǎng)絡(luò)對炮口振動數(shù)據(jù)預(yù)測可以根據(jù)歷史數(shù)據(jù)提取更加豐富的數(shù)據(jù)特征,可以達(dá)到良好的精度,可有效提高火控系統(tǒng)精度。