桑德一,高紹忠,陸巍巍,姚 剛
(1.海軍航空大學(xué),山東煙臺264001;2.91697部隊(duì),山東青島266002)
島礁上的氣象環(huán)境和陸地上不同,島礁上濕度大、鹽度高、太陽輻射強(qiáng),天氣復(fù)雜多變,這樣的自然環(huán)境勢必會影響到作戰(zhàn)指揮和武器效能的發(fā)揮。因此,實(shí)時掌握島礁戰(zhàn)場的氣象環(huán)境至關(guān)重要。
全球的軍事斗爭形勢復(fù)雜多變,戰(zhàn)爭模式已經(jīng)開始向信息化、局部化和智能化的方向發(fā)展[1-2]。在這樣的戰(zhàn)爭環(huán)境下,更快的傳輸速度,更方便的運(yùn)用形式,更高可靠性的戰(zhàn)場感知網(wǎng)絡(luò),更具體、更精確的戰(zhàn)場氣象環(huán)境數(shù)據(jù)成為打贏現(xiàn)代戰(zhàn)場的重要基礎(chǔ)和根本保障[3-4]。全球多國都投入大量資金和人力研究戰(zhàn)場數(shù)據(jù)的采集和遠(yuǎn)程感知系統(tǒng),其目的是實(shí)現(xiàn)對戰(zhàn)場環(huán)境的更好感知,讓戰(zhàn)場的數(shù)據(jù)迅速傳遞給指揮層,成為信息優(yōu)勢,指揮層依據(jù)戰(zhàn)場環(huán)境數(shù)據(jù)做出正確的指揮決策,從而形成作戰(zhàn)優(yōu)勢[5-7]。
虛擬儀器是以計(jì)算機(jī)為平臺,結(jié)合模塊化、高性能的采集、測量硬件來完成各種數(shù)據(jù)的采集、測量、處理和顯示的軟件技術(shù)[8-9]。虛擬儀器技術(shù)可以通過平臺編程進(jìn)行儀器的自主定義,包括界面、操作、顯示面板等。它可以充分調(diào)動計(jì)算機(jī)的運(yùn)算資源,統(tǒng)一標(biāo)準(zhǔn)的軟件、硬件也能滿足定時和同步的需求,讓原本硬件實(shí)現(xiàn)的功能軟件化、讓原本單一的方式靈活化[10-11]。
Labwindows/CVI 是美國虛擬儀器公司(National Instruments)出品的一款用于測量控制領(lǐng)域的計(jì)算機(jī)虛擬顯示儀器開發(fā)平臺[12]。此平臺以C語言為編程語言,集成了豐富的C語言庫函數(shù),其功能強(qiáng)大、操作便捷的特點(diǎn)使得該產(chǎn)品在測量控制領(lǐng)域有著廣泛的應(yīng)用[13-14]。
本文選用Labwindows/CVI 作為虛擬儀器開發(fā)平臺,設(shè)計(jì)了一套島礁戰(zhàn)場氣象環(huán)境遠(yuǎn)程感知軟件。可實(shí)時監(jiān)控島礁戰(zhàn)場的氣象環(huán)境信息,實(shí)現(xiàn)重要環(huán)境參數(shù)的趨勢預(yù)測,實(shí)現(xiàn)對戰(zhàn)場氣象遠(yuǎn)程感知系統(tǒng)的遠(yuǎn)程控制和設(shè)備狀態(tài)監(jiān)視。
島礁海洋環(huán)境和地理環(huán)境復(fù)雜,島礁不同地點(diǎn)的氣象數(shù)據(jù)會不相同。為此,可在島礁戰(zhàn)場的多個地點(diǎn)布置多套數(shù)據(jù)采集設(shè)備,進(jìn)行不同測點(diǎn)的氣象環(huán)境數(shù)據(jù)監(jiān)測。島礁戰(zhàn)場某測點(diǎn)的溫度是隨著晝夜交替周期性變化的,并且受空氣濕度、光照強(qiáng)度、風(fēng)速、降雨、周圍測點(diǎn)溫度等因素的影響,是典型的時間序列數(shù)據(jù)。
進(jìn)行時間序列數(shù)據(jù)預(yù)測的一個最有效的工具是循環(huán)神經(jīng)網(wǎng)絡(luò)模型(Recurrent Neural Network,RNN),它的隱含層節(jié)點(diǎn)狀態(tài)可以記憶任意長度的時間序列數(shù)據(jù)。這幾年,RNN 在圖像識別、語音識別、特征提取、分類和自然語言處理等方面取得了優(yōu)異的成績。但是RNN在處理時間序列時,對長時間間隔節(jié)點(diǎn)的計(jì)算存在梯度爆炸或梯度消失的問題,長短期記憶網(wǎng)絡(luò)(Longshort-Termmemory,LSTM)預(yù)測模型作為RNN的一個變種,與其他神經(jīng)網(wǎng)絡(luò)相比,RNN 的輸出層結(jié)果不僅與當(dāng)前輸入層有關(guān),而且與上一次迭代的隱含層結(jié)果有關(guān),這就相當(dāng)于讓時間序列有了一定的記憶功能。在進(jìn)行溫度預(yù)測時,LSTM 預(yù)測模型對溫度的變化趨勢比較敏感,對處理長時間間隔的時間序列節(jié)點(diǎn)比RNN效果好,使溫度預(yù)測精度有了很大提高。
訓(xùn)練神經(jīng)網(wǎng)絡(luò)的第一步是生成數(shù)據(jù)集,作為訓(xùn)練網(wǎng)絡(luò)的輸入。當(dāng)前測點(diǎn)某一段時間之后的溫度值與以下幾個參數(shù)有關(guān):當(dāng)前測點(diǎn)的當(dāng)前時刻溫度、臨近測點(diǎn)的當(dāng)前時刻溫度、當(dāng)前測點(diǎn)的風(fēng)速、當(dāng)前測點(diǎn)的濕度、當(dāng)前測點(diǎn)的光照強(qiáng)度、當(dāng)前測點(diǎn)的降水量。表1是溫度預(yù)測需用的變量名稱及相應(yīng)的符號表示。

表1 溫度預(yù)測模型的變量說明Tab.1 Variable description of temperature prediction model
收集每個測點(diǎn)的以上數(shù)據(jù),并用這些數(shù)據(jù)生成每個測點(diǎn)的神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)集,進(jìn)行各個測點(diǎn)的溫度預(yù)測。以上數(shù)據(jù)采集的時間間隔為r,在時刻t,所有數(shù)據(jù)組成的向量用P( t )表示:

LSTM 網(wǎng)絡(luò)的輸入層是三維數(shù)據(jù)[samples,time_steps,features]。其中,samples 代表訓(xùn)練樣本的數(shù)量;time_steps 代表時間的步長,即與當(dāng)前數(shù)據(jù)有關(guān)的歷史輸入數(shù)據(jù);features代表特征值,即向量P( t )。
使用最近的R 個網(wǎng)絡(luò)狀態(tài)來預(yù)測K 時刻之后的測點(diǎn)溫度,參數(shù)設(shè)置為:time_steps=R,設(shè)預(yù)測時間K是數(shù)據(jù)采樣間隔r 的整數(shù)倍,即k=K/r(K=1,2,…) 。也就是說,根據(jù)時刻t 的溫度及其最近的R 個歷史溫度數(shù)據(jù),來預(yù)測時刻t+k 的測點(diǎn)溫度。若用fk表示待求解的模型,Tt+k表示t+k 時刻當(dāng)前測點(diǎn)的溫度,則預(yù)測行為可以表示為:

fk函數(shù)的輸入輸出數(shù)據(jù)對,構(gòu)成了溫度預(yù)測數(shù)據(jù)集的輸入和輸出。即,

構(gòu)成了一層神經(jīng)網(wǎng)絡(luò)的輸入輸出數(shù)據(jù)對。
LSTM 用3 個門限作用在RNN 的節(jié)點(diǎn)上,來控制歷史網(wǎng)絡(luò)的記憶狀態(tài)對當(dāng)前網(wǎng)絡(luò)計(jì)算結(jié)果的影響程度。圖1是LSTM的結(jié)構(gòu)示意圖。

圖1 LSTM的結(jié)構(gòu)示意Fig.1 LSTM structure diagram
圖1中,3個小圓圈表示添加的3個門限;Xn和Yn表示一次輸入輸出數(shù)據(jù)對,U、V 、W 表示權(quán)重,hn表示隱含層的狀態(tài),hn不僅與Xn有關(guān),而且與前R 個隱含層輸出有關(guān)。
3 個門限作用分別為:漸隱門限(forget gate)控制有多少個歷史隱含層狀態(tài)hn-1影響當(dāng)前時刻hn;輸入門限(input gate)控制有多少個當(dāng)前時刻的輸入值Xn保存到隱含層狀態(tài)hn;輸出門限(output gate)控制有多少個隱含層狀態(tài)hn輸出到當(dāng)前時刻的輸出值Yn。
3 個控制門限組成了LSTM 神經(jīng)網(wǎng)絡(luò)的基本單元。圖2 是LSTM 神經(jīng)網(wǎng)絡(luò)一個基本單元的結(jié)構(gòu),其中,hn代表當(dāng)前單元狀態(tài),fn代表漸隱門限,in代表輸入門限,on表示輸出門限。

圖2 LSTM神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)Fig.2 Basic structure of LSTM neural network
當(dāng)前單元輸出:

當(dāng)前單元狀態(tài):

漸隱門限fn可表示為:

輸入門限in可表示為:

輸出門限on可表示為:

其中,δ 代表sigmoid 函數(shù),該函數(shù)作用在3 個門限上,δ 的輸出是[0 ,1] ,它控制相應(yīng)的信息是否應(yīng)該通過本級網(wǎng)絡(luò),1 表示讓所有信息通過,0 表示不允許信息通過。而tanh 函數(shù)作用在了當(dāng)前狀態(tài)和輸出。W 代表權(quán)重,例如,Wi,x表示輸入門限對應(yīng)的上一狀態(tài)的輸出信息的權(quán)重,b 代表偏置。
采集了1 號測點(diǎn)從06:00 到18:00 共12 h 的氣象數(shù)據(jù)(包括多個測點(diǎn)的溫濕度、風(fēng)速、光照、降水等數(shù)據(jù)),數(shù)據(jù)采集間隔是60 s。用06:00到12:00的數(shù)據(jù)對LSTM 網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,用12:00 到18:00 的數(shù)據(jù)進(jìn)行測試和修正。LSTM 預(yù)測模型的參數(shù)設(shè)置為:R=60,K=1 800 s,即根據(jù)前一小時的歷史數(shù)據(jù)預(yù)測距離當(dāng)前時刻30 min 以后的溫度值。
圖3是1號測點(diǎn)的30 min 溫度預(yù)測結(jié)果(從12:00到18:00的溫度值)。紅線代表實(shí)測溫度,黑線代表預(yù)測溫度。從圖3 中可以看出,預(yù)測結(jié)果與實(shí)測結(jié)果保持一致,經(jīng)計(jì)算,該預(yù)測模型的最大誤差為0.25℃,RMSE值為0.036。LSTM預(yù)測算法能夠精確地預(yù)測1號測點(diǎn)的30 min 溫度。
經(jīng)過多次不同參數(shù)的運(yùn)行試驗(yàn),當(dāng)K 取值越小時,預(yù)測結(jié)果越精確,即越近時刻的溫度越容易預(yù)測。但R 的取值并不是越大或越小越好,而是有一個最優(yōu)值,且這個值與溫度的變化劇烈程度有關(guān),當(dāng)溫度變化緩慢時,R 越大預(yù)測結(jié)果越精確,反之,當(dāng)溫度變化快時,R 越大,預(yù)測結(jié)果越不準(zhǔn)確。

圖3 溫度預(yù)測結(jié)果驗(yàn)證Fig.3 Verification of temperature prediction results
軟件運(yùn)行環(huán)境是監(jiān)控室的工控機(jī)系統(tǒng),用于島礁戰(zhàn)場氣象環(huán)境的實(shí)時感知,須完成氣象數(shù)據(jù)的實(shí)時采集、數(shù)據(jù)可視化、重要參數(shù)趨勢預(yù)測、歷史數(shù)據(jù)查詢、遠(yuǎn)程控制和設(shè)備狀態(tài)監(jiān)視等功能。為此,設(shè)計(jì)了6 個功能模塊,分別是人機(jī)交互模塊、數(shù)據(jù)可視化模塊、TCP 通信模塊、數(shù)據(jù)采集與處理模塊、狀態(tài)反饋模塊和終端控制模塊。
軟件的功能設(shè)計(jì)圖如圖4所示。
1)人機(jī)交互模塊。實(shí)現(xiàn)整套系統(tǒng)與指揮人員的交互,指揮人員能通過操作界面對軟件的各種功能進(jìn)行選擇,戰(zhàn)場氣象環(huán)境數(shù)據(jù)采集模塊通過此模塊接受指揮人員的控制。
2)數(shù)據(jù)可視化模塊。主要功能是以多種形式展示戰(zhàn)場氣象環(huán)境的各類數(shù)據(jù),指揮人員既可以查看不同測點(diǎn)的各類環(huán)境數(shù)據(jù),又可以查看同類環(huán)境數(shù)據(jù)在整個島礁戰(zhàn)場的全局信息。

圖4 軟件模塊設(shè)計(jì)Fig.4 Software function design diagram
3)TCP 通信模塊。主要功能是以TCP/IP 協(xié)議完成工控機(jī)與采集終端的通信,保證數(shù)據(jù)和控制指令的有效傳輸。
4)數(shù)據(jù)采集與處理模塊。主要功能是獲取通信模塊送來的環(huán)境數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)格式轉(zhuǎn)換、降噪處理、數(shù)據(jù)存儲等數(shù)據(jù)處理功能。
5)狀態(tài)反饋模塊。主要功能是把采集終端的狀態(tài)信息回傳給上位機(jī),以便指揮員了解裝備情況。
6)終端控制模塊。主要功能是實(shí)現(xiàn)工控機(jī)對采集終端的控制,完成設(shè)備開關(guān)機(jī)、設(shè)備初始化、設(shè)備自檢、開始或停止氣象數(shù)據(jù)采集等設(shè)備控制任務(wù)。
為了實(shí)現(xiàn)對島礁戰(zhàn)場氣象環(huán)境的實(shí)時感知和預(yù)測,軟件的各個模塊之間須要并行執(zhí)行。將軟件進(jìn)程設(shè)計(jì)為主線程和多個子線程協(xié)同運(yùn)行,主線程完成人機(jī)交互,子線程包括TCP 通信子線程、數(shù)據(jù)采集子線程、數(shù)據(jù)處理子線程、數(shù)據(jù)顯示子線程。各個線程的執(zhí)行有控制調(diào)用和數(shù)據(jù)傳遞關(guān)系。軟件的線程間的調(diào)用關(guān)系如圖5所示。

圖5 軟件線程控制圖Fig.5 Software thread control diagram
CVI 環(huán)境下的多線程設(shè)計(jì)主要包括創(chuàng)建線程、設(shè)置線程標(biāo)志和釋放線程3個步驟:
1)創(chuàng)建線程函數(shù)用于創(chuàng)建一個新線程:CmtScheduleThreadPoolFunction();
2)在創(chuàng)建線程時,設(shè)置線程標(biāo)志。設(shè)置線程標(biāo)志的目的是區(qū)分不同的線程,便于對線程進(jìn)行控制。
3)釋放線程。當(dāng)線程內(nèi)函數(shù)功能執(zhí)行完畢后應(yīng)當(dāng)及時釋放線程。釋放線程由“等待線程函數(shù)執(zhí)行完畢”和“釋放線程”2個函數(shù)完成,2個函數(shù)如下所示:
CmtWaitForThreadPoolFunctionCompletion();CmtReleaseThreadPoolFunctionID()。
本文提出的LSTM 溫度預(yù)測模型,可精確地實(shí)現(xiàn)各測點(diǎn)30 min 級溫度的預(yù)測,開發(fā)的島礁戰(zhàn)場氣象環(huán)境數(shù)據(jù)遠(yuǎn)程感知軟件,可完成島礁戰(zhàn)場氣象環(huán)境數(shù)據(jù)采集、終端控制、數(shù)據(jù)可視化、數(shù)據(jù)預(yù)測、數(shù)據(jù)存儲等任務(wù),是實(shí)現(xiàn)戰(zhàn)場環(huán)境遠(yuǎn)程控制監(jiān)視的自動化、信息化、智能化的現(xiàn)代戰(zhàn)場感知系統(tǒng)的重要組成部分。