桑德一,高紹忠,陸巍巍,姚 剛
(1.海軍航空大學,山東煙臺264001;2.91697部隊,山東青島266002)
島礁上的氣象環(huán)境和陸地上不同,島礁上濕度大、鹽度高、太陽輻射強,天氣復雜多變,這樣的自然環(huán)境勢必會影響到作戰(zhàn)指揮和武器效能的發(fā)揮。因此,實時掌握島礁戰(zhàn)場的氣象環(huán)境至關重要。
全球的軍事斗爭形勢復雜多變,戰(zhàn)爭模式已經(jīng)開始向信息化、局部化和智能化的方向發(fā)展[1-2]。在這樣的戰(zhàn)爭環(huán)境下,更快的傳輸速度,更方便的運用形式,更高可靠性的戰(zhàn)場感知網(wǎng)絡,更具體、更精確的戰(zhàn)場氣象環(huán)境數(shù)據(jù)成為打贏現(xiàn)代戰(zhàn)場的重要基礎和根本保障[3-4]。全球多國都投入大量資金和人力研究戰(zhàn)場數(shù)據(jù)的采集和遠程感知系統(tǒng),其目的是實現(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]。
虛擬儀器是以計算機為平臺,結合模塊化、高性能的采集、測量硬件來完成各種數(shù)據(jù)的采集、測量、處理和顯示的軟件技術[8-9]。虛擬儀器技術可以通過平臺編程進行儀器的自主定義,包括界面、操作、顯示面板等。它可以充分調動計算機的運算資源,統(tǒng)一標準的軟件、硬件也能滿足定時和同步的需求,讓原本硬件實現(xiàn)的功能軟件化、讓原本單一的方式靈活化[10-11]。
Labwindows/CVI 是美國虛擬儀器公司(National Instruments)出品的一款用于測量控制領域的計算機虛擬顯示儀器開發(fā)平臺[12]。此平臺以C語言為編程語言,集成了豐富的C語言庫函數(shù),其功能強大、操作便捷的特點使得該產(chǎn)品在測量控制領域有著廣泛的應用[13-14]。
本文選用Labwindows/CVI 作為虛擬儀器開發(fā)平臺,設計了一套島礁戰(zhàn)場氣象環(huán)境遠程感知軟件??蓪崟r監(jiān)控島礁戰(zhàn)場的氣象環(huán)境信息,實現(xiàn)重要環(huán)境參數(shù)的趨勢預測,實現(xiàn)對戰(zhàn)場氣象遠程感知系統(tǒng)的遠程控制和設備狀態(tài)監(jiān)視。
島礁海洋環(huán)境和地理環(huán)境復雜,島礁不同地點的氣象數(shù)據(jù)會不相同。為此,可在島礁戰(zhàn)場的多個地點布置多套數(shù)據(jù)采集設備,進行不同測點的氣象環(huán)境數(shù)據(jù)監(jiān)測。島礁戰(zhàn)場某測點的溫度是隨著晝夜交替周期性變化的,并且受空氣濕度、光照強度、風速、降雨、周圍測點溫度等因素的影響,是典型的時間序列數(shù)據(jù)。
進行時間序列數(shù)據(jù)預測的一個最有效的工具是循環(huán)神經(jīng)網(wǎng)絡模型(Recurrent Neural Network,RNN),它的隱含層節(jié)點狀態(tài)可以記憶任意長度的時間序列數(shù)據(jù)。這幾年,RNN 在圖像識別、語音識別、特征提取、分類和自然語言處理等方面取得了優(yōu)異的成績。但是RNN在處理時間序列時,對長時間間隔節(jié)點的計算存在梯度爆炸或梯度消失的問題,長短期記憶網(wǎng)絡(Longshort-Termmemory,LSTM)預測模型作為RNN的一個變種,與其他神經(jīng)網(wǎng)絡相比,RNN 的輸出層結果不僅與當前輸入層有關,而且與上一次迭代的隱含層結果有關,這就相當于讓時間序列有了一定的記憶功能。在進行溫度預測時,LSTM 預測模型對溫度的變化趨勢比較敏感,對處理長時間間隔的時間序列節(jié)點比RNN效果好,使溫度預測精度有了很大提高。
訓練神經(jīng)網(wǎng)絡的第一步是生成數(shù)據(jù)集,作為訓練網(wǎng)絡的輸入。當前測點某一段時間之后的溫度值與以下幾個參數(shù)有關:當前測點的當前時刻溫度、臨近測點的當前時刻溫度、當前測點的風速、當前測點的濕度、當前測點的光照強度、當前測點的降水量。表1是溫度預測需用的變量名稱及相應的符號表示。
表1 溫度預測模型的變量說明Tab.1 Variable description of temperature prediction model
收集每個測點的以上數(shù)據(jù),并用這些數(shù)據(jù)生成每個測點的神經(jīng)網(wǎng)絡數(shù)據(jù)集,進行各個測點的溫度預測。以上數(shù)據(jù)采集的時間間隔為r,在時刻t,所有數(shù)據(jù)組成的向量用P( t )表示:
LSTM 網(wǎng)絡的輸入層是三維數(shù)據(jù)[samples,time_steps,features]。其中,samples 代表訓練樣本的數(shù)量;time_steps 代表時間的步長,即與當前數(shù)據(jù)有關的歷史輸入數(shù)據(jù);features代表特征值,即向量P( t )。
使用最近的R 個網(wǎng)絡狀態(tài)來預測K 時刻之后的測點溫度,參數(shù)設置為:time_steps=R,設預測時間K是數(shù)據(jù)采樣間隔r 的整數(shù)倍,即k=K/r(K=1,2,…) 。也就是說,根據(jù)時刻t 的溫度及其最近的R 個歷史溫度數(shù)據(jù),來預測時刻t+k 的測點溫度。若用fk表示待求解的模型,Tt+k表示t+k 時刻當前測點的溫度,則預測行為可以表示為:
fk函數(shù)的輸入輸出數(shù)據(jù)對,構成了溫度預測數(shù)據(jù)集的輸入和輸出。即,
構成了一層神經(jīng)網(wǎng)絡的輸入輸出數(shù)據(jù)對。
LSTM 用3 個門限作用在RNN 的節(jié)點上,來控制歷史網(wǎng)絡的記憶狀態(tài)對當前網(wǎng)絡計算結果的影響程度。圖1是LSTM的結構示意圖。
圖1 LSTM的結構示意Fig.1 LSTM structure diagram
圖1中,3個小圓圈表示添加的3個門限;Xn和Yn表示一次輸入輸出數(shù)據(jù)對,U、V 、W 表示權重,hn表示隱含層的狀態(tài),hn不僅與Xn有關,而且與前R 個隱含層輸出有關。
3 個門限作用分別為:漸隱門限(forget gate)控制有多少個歷史隱含層狀態(tài)hn-1影響當前時刻hn;輸入門限(input gate)控制有多少個當前時刻的輸入值Xn保存到隱含層狀態(tài)hn;輸出門限(output gate)控制有多少個隱含層狀態(tài)hn輸出到當前時刻的輸出值Yn。
3 個控制門限組成了LSTM 神經(jīng)網(wǎng)絡的基本單元。圖2 是LSTM 神經(jīng)網(wǎng)絡一個基本單元的結構,其中,hn代表當前單元狀態(tài),fn代表漸隱門限,in代表輸入門限,on表示輸出門限。
圖2 LSTM神經(jīng)網(wǎng)絡的基本結構Fig.2 Basic structure of LSTM neural network
當前單元輸出:
當前單元狀態(tài):
漸隱門限fn可表示為:
輸入門限in可表示為:
輸出門限on可表示為:
其中,δ 代表sigmoid 函數(shù),該函數(shù)作用在3 個門限上,δ 的輸出是[0 ,1] ,它控制相應的信息是否應該通過本級網(wǎng)絡,1 表示讓所有信息通過,0 表示不允許信息通過。而tanh 函數(shù)作用在了當前狀態(tài)和輸出。W 代表權重,例如,Wi,x表示輸入門限對應的上一狀態(tài)的輸出信息的權重,b 代表偏置。
采集了1 號測點從06:00 到18:00 共12 h 的氣象數(shù)據(jù)(包括多個測點的溫濕度、風速、光照、降水等數(shù)據(jù)),數(shù)據(jù)采集間隔是60 s。用06:00到12:00的數(shù)據(jù)對LSTM 網(wǎng)絡模型進行訓練,用12:00 到18:00 的數(shù)據(jù)進行測試和修正。LSTM 預測模型的參數(shù)設置為:R=60,K=1 800 s,即根據(jù)前一小時的歷史數(shù)據(jù)預測距離當前時刻30 min 以后的溫度值。
圖3是1號測點的30 min 溫度預測結果(從12:00到18:00的溫度值)。紅線代表實測溫度,黑線代表預測溫度。從圖3 中可以看出,預測結果與實測結果保持一致,經(jīng)計算,該預測模型的最大誤差為0.25℃,RMSE值為0.036。LSTM預測算法能夠精確地預測1號測點的30 min 溫度。
經(jīng)過多次不同參數(shù)的運行試驗,當K 取值越小時,預測結果越精確,即越近時刻的溫度越容易預測。但R 的取值并不是越大或越小越好,而是有一個最優(yōu)值,且這個值與溫度的變化劇烈程度有關,當溫度變化緩慢時,R 越大預測結果越精確,反之,當溫度變化快時,R 越大,預測結果越不準確。
圖3 溫度預測結果驗證Fig.3 Verification of temperature prediction results
軟件運行環(huán)境是監(jiān)控室的工控機系統(tǒng),用于島礁戰(zhàn)場氣象環(huán)境的實時感知,須完成氣象數(shù)據(jù)的實時采集、數(shù)據(jù)可視化、重要參數(shù)趨勢預測、歷史數(shù)據(jù)查詢、遠程控制和設備狀態(tài)監(jiān)視等功能。為此,設計了6 個功能模塊,分別是人機交互模塊、數(shù)據(jù)可視化模塊、TCP 通信模塊、數(shù)據(jù)采集與處理模塊、狀態(tài)反饋模塊和終端控制模塊。
軟件的功能設計圖如圖4所示。
1)人機交互模塊。實現(xiàn)整套系統(tǒng)與指揮人員的交互,指揮人員能通過操作界面對軟件的各種功能進行選擇,戰(zhàn)場氣象環(huán)境數(shù)據(jù)采集模塊通過此模塊接受指揮人員的控制。
2)數(shù)據(jù)可視化模塊。主要功能是以多種形式展示戰(zhàn)場氣象環(huán)境的各類數(shù)據(jù),指揮人員既可以查看不同測點的各類環(huán)境數(shù)據(jù),又可以查看同類環(huán)境數(shù)據(jù)在整個島礁戰(zhàn)場的全局信息。
圖4 軟件模塊設計Fig.4 Software function design diagram
3)TCP 通信模塊。主要功能是以TCP/IP 協(xié)議完成工控機與采集終端的通信,保證數(shù)據(jù)和控制指令的有效傳輸。
4)數(shù)據(jù)采集與處理模塊。主要功能是獲取通信模塊送來的環(huán)境數(shù)據(jù),實現(xiàn)數(shù)據(jù)格式轉換、降噪處理、數(shù)據(jù)存儲等數(shù)據(jù)處理功能。
5)狀態(tài)反饋模塊。主要功能是把采集終端的狀態(tài)信息回傳給上位機,以便指揮員了解裝備情況。
6)終端控制模塊。主要功能是實現(xiàn)工控機對采集終端的控制,完成設備開關機、設備初始化、設備自檢、開始或停止氣象數(shù)據(jù)采集等設備控制任務。
為了實現(xiàn)對島礁戰(zhàn)場氣象環(huán)境的實時感知和預測,軟件的各個模塊之間須要并行執(zhí)行。將軟件進程設計為主線程和多個子線程協(xié)同運行,主線程完成人機交互,子線程包括TCP 通信子線程、數(shù)據(jù)采集子線程、數(shù)據(jù)處理子線程、數(shù)據(jù)顯示子線程。各個線程的執(zhí)行有控制調用和數(shù)據(jù)傳遞關系。軟件的線程間的調用關系如圖5所示。
圖5 軟件線程控制圖Fig.5 Software thread control diagram
CVI 環(huán)境下的多線程設計主要包括創(chuàng)建線程、設置線程標志和釋放線程3個步驟:
1)創(chuàng)建線程函數(shù)用于創(chuàng)建一個新線程:CmtScheduleThreadPoolFunction();
2)在創(chuàng)建線程時,設置線程標志。設置線程標志的目的是區(qū)分不同的線程,便于對線程進行控制。
3)釋放線程。當線程內函數(shù)功能執(zhí)行完畢后應當及時釋放線程。釋放線程由“等待線程函數(shù)執(zhí)行完畢”和“釋放線程”2個函數(shù)完成,2個函數(shù)如下所示:
CmtWaitForThreadPoolFunctionCompletion();CmtReleaseThreadPoolFunctionID()。
本文提出的LSTM 溫度預測模型,可精確地實現(xiàn)各測點30 min 級溫度的預測,開發(fā)的島礁戰(zhàn)場氣象環(huán)境數(shù)據(jù)遠程感知軟件,可完成島礁戰(zhàn)場氣象環(huán)境數(shù)據(jù)采集、終端控制、數(shù)據(jù)可視化、數(shù)據(jù)預測、數(shù)據(jù)存儲等任務,是實現(xiàn)戰(zhàn)場環(huán)境遠程控制監(jiān)視的自動化、信息化、智能化的現(xiàn)代戰(zhàn)場感知系統(tǒng)的重要組成部分。