方 磊 ,張 彪* ,陳 沖
(1.南京信息工程大學(xué)電子與信息工程學(xué)院,江蘇 南京 210044;2.南京大學(xué)電子科學(xué)與工程學(xué)院,江蘇 南京 210023)
隨著經(jīng)濟(jì)的發(fā)展,全球氣候變化日益加劇,自然氣象災(zāi)害威脅著人民的生活。因此,環(huán)境監(jiān)測、氣象預(yù)測和災(zāi)害預(yù)防變得至關(guān)重要[1]。對氣象數(shù)據(jù)進(jìn)行采集和有效分析,是天氣預(yù)報(bào)和氣候監(jiān)測的重要工作內(nèi)容,而數(shù)據(jù)采集是分析預(yù)測的前提[2]。近幾年,隨著多旋翼無人機(jī)技術(shù)的快速發(fā)展,如何利用多旋翼無人機(jī)高效采集高空氣象數(shù)據(jù)逐漸受到人們的關(guān)注。
現(xiàn)階段,利用多旋翼無人機(jī)進(jìn)行氣象數(shù)據(jù)采集主要有搭載自動(dòng)氣象站和下投式探空儀兩種方式,如文獻(xiàn)[3]中利用多旋翼無人機(jī)搭載自動(dòng)氣象站進(jìn)行數(shù)據(jù)采集,但在實(shí)際應(yīng)用中自動(dòng)氣象站相對于下投式探空儀更容易受到多旋翼無人機(jī)帶來的影響,不利于氣象數(shù)據(jù)的采集。如文獻(xiàn)[4]中利用無人機(jī)搭載下投式探空儀進(jìn)行海氣界面探測,但在數(shù)據(jù)接收和圖形顯示上,功能單一、圖形顯示效果差,并且在投射探空儀后無法有效觀測探空儀的運(yùn)動(dòng)狀態(tài)。LabVIEW 是一種圖形化編程軟件平臺(tái),具有數(shù)據(jù)采集、人機(jī)交互、圖形顯示和數(shù)據(jù)處理等多方面強(qiáng)大功能,并且可以生成獨(dú)立的可執(zhí)行程序和安裝程序,實(shí)現(xiàn)在多個(gè)沒有LabVIEW 軟件的PC 端進(jìn)行數(shù)據(jù)采集操作,從而大大提高采集效率和便捷性[5]。
由于上述原因,本文設(shè)計(jì)了一種可以利用多旋翼無人機(jī)搭載下投式探空儀,并通過LabVIEW 軟件實(shí)現(xiàn)集氣象數(shù)據(jù)采集、接收、顯示、預(yù)處理和存儲(chǔ)為一體的多功能氣象數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)不但能夠?qū)崟r(shí)顯示下投式探空儀的三維運(yùn)動(dòng)軌跡,而且通過一維卡爾曼濾波算法對氣象數(shù)據(jù)進(jìn)行了優(yōu)化,同時(shí)還能夠直觀地顯示出測量數(shù)據(jù)和濾波后數(shù)據(jù)的曲線變化。
氣象數(shù)據(jù)采集系統(tǒng)總體框架如圖1 所示,該系統(tǒng)主要由數(shù)據(jù)采集和數(shù)據(jù)處理兩部分構(gòu)成。數(shù)據(jù)采集部分主要包括無人機(jī)平臺(tái)和下投式探空儀,具體實(shí)現(xiàn)功能是:通過無人機(jī)操控員控制多旋翼無人機(jī)搭載探空儀到達(dá)指定位置并投射探空儀,完成對該區(qū)域的氣象數(shù)據(jù)采集任務(wù);數(shù)據(jù)處理部分是通過PC端進(jìn)行數(shù)據(jù)接收、預(yù)處理和儲(chǔ)存,具體實(shí)現(xiàn)功能是:控制軟件系統(tǒng)、接收采集數(shù)據(jù)、顯示下投式探空儀三維運(yùn)動(dòng)軌跡和進(jìn)行一維卡爾曼濾波及顯示。
圖1 氣象數(shù)據(jù)采集系統(tǒng)總體構(gòu)架
氣象數(shù)據(jù)采集要素主要包括溫度、濕度、氣壓、風(fēng)速、風(fēng)向、經(jīng)緯度和海拔高度,其中溫度、濕度、氣壓、經(jīng)緯度和海拔高度可直接通過傳感器采集得到;風(fēng)速風(fēng)向是利用GPS 采集到的位置信息結(jié)合相應(yīng)的數(shù)學(xué)公式間接計(jì)算得出[6]。
根據(jù)該系統(tǒng)對氣象數(shù)據(jù)采集要求,系統(tǒng)采用STM32F030CCT6 作為主控芯片。該芯片以Cortex-M0 為內(nèi)核,工作電壓在2.4 V~3.3 V 之間,含有2個(gè)SPI 和6 個(gè)UART 接口,能夠?yàn)樵撓到y(tǒng)提供多種存儲(chǔ)容量和引腳數(shù)組合。
下投式探空儀通過外接7.4 V 直流電源為整個(gè)電路供電。為滿足各個(gè)模塊的需求,本文設(shè)計(jì)一種降壓穩(wěn)壓電路。基于正向低壓降穩(wěn)壓器(AMS1117)的降壓穩(wěn)壓性能好的特點(diǎn),并通過加入電解電容和多電容濾波電路,實(shí)現(xiàn)對整個(gè)電路的降壓穩(wěn)壓的作用。根據(jù)電源電壓值,選擇容值150 μF,耐壓值15 V 的電解電容。降壓及穩(wěn)壓電路如圖2 所示。
圖2 降壓及穩(wěn)壓電路圖
濕度傳感器采用基于電容式相對濕度傳感器(HMC03M),利用該傳感器具有的加熱電阻器進(jìn)行溫度補(bǔ)償,可以實(shí)現(xiàn)在低響應(yīng)時(shí)間下仍能對溫度進(jìn)行優(yōu)化。本文通過降壓穩(wěn)壓電路為其提供穩(wěn)定的5 V工作電壓,并與主控芯片的PA8 接口相連進(jìn)行數(shù)據(jù)傳輸。
溫度和氣壓傳感器是一種基于MEMS 先進(jìn)技術(shù)[7]的高分辨率傳感器(MS5803-01BA),可以得到精確的24 位數(shù)字壓力值和溫度值。本文通過降壓穩(wěn)壓電路為其提供穩(wěn)定3 V 工作電壓,其中溫度傳感器的SDI、SDO、SCLK 和CS 接口分別與主控芯片的PB15、PB14、PB13 和PB12 接口相連,通過SPI 通信方式進(jìn)行數(shù)據(jù)傳輸;氣壓傳感器SDI、SDO、SCLK 和CS 接口分別與主控芯片的PA7、PB6、PB5 和PB4 接口相連,通過SPI 通信方式進(jìn)行數(shù)據(jù)傳輸。
BD-125 是一種GPS 和北斗相結(jié)合的高性能定位模塊,該模塊采用GPS+BDS+SBAS+QZSS+GALILEO 聯(lián)合定位模式,支持多種通信波特率,可以快速獲得探空儀在下降過程中的位置信息。本文通過降壓穩(wěn)壓電路為其提供穩(wěn)定5 V 工作電壓,通過UART 接口與主控芯片的PA2 和PA3 進(jìn)行數(shù)據(jù)傳輸。
為滿足遠(yuǎn)距離傳輸和較好的抗干擾性能,并且能夠適應(yīng)高低溫惡劣環(huán)境,該系統(tǒng)采用由億佰特公司出品的全新一代LoRa 射頻無線模塊。該模塊是基于SEMTECH 公司SX1268 射頻芯片,特有的LoRa 擴(kuò)頻技術(shù),通過接口轉(zhuǎn)換模塊與上位機(jī)進(jìn)行數(shù)據(jù)通信。該模塊由降壓穩(wěn)壓電路提供5 V 穩(wěn)定工作電壓,并通過UART 接口與主控芯片的PB10 和PB11 接口進(jìn)行數(shù)據(jù)傳輸。
為建立下投式探空儀三維運(yùn)動(dòng)軌跡,需要根據(jù)探空儀采集到的GPS 數(shù)據(jù)進(jìn)行坐標(biāo)轉(zhuǎn)換,將經(jīng)緯度和海拔高度轉(zhuǎn)換成站心坐標(biāo)系下的位置信息。
地心坐標(biāo)系使用WGS-84 坐標(biāo)系,即以地心為坐標(biāo)原點(diǎn),Z軸指向協(xié)議地球北極,X軸指向參考子午面與赤道面的交點(diǎn),Y軸與X軸、Z軸組成右手直角坐標(biāo)系。
站心坐標(biāo)系是以站心為坐標(biāo)原點(diǎn),X軸指向正北,Y軸指向正東,Z軸指向天頂并垂直于X軸和Y軸,組成的直角坐標(biāo)系,也稱東北天(East-North-Up,ENU)坐標(biāo)系。
地心坐標(biāo)轉(zhuǎn)空間直角坐標(biāo)[8]
空間直角坐標(biāo)轉(zhuǎn)站心坐標(biāo)[9]
式中:N是橢球的曲率半徑(單位:m),e是橢球偏心率,H是GPS 測得的海拔高度(單位:m),L是經(jīng)度,B是緯度,L0、B0是地心坐標(biāo)系下經(jīng)度、緯度的初始值,(X,Y,Z) 是空間直角坐標(biāo)系下的坐標(biāo)值,(X0,Y0,Z0)是空間直角坐標(biāo)系下的坐標(biāo)初始值,(a,b,c)是站心坐標(biāo)系下的坐標(biāo)值。
為克服下投式探空儀在氣象數(shù)據(jù)采集時(shí)受到的外部環(huán)境影響以及傳感器自身帶來的誤差,本文提出了一種一維卡爾曼濾波算法。該算法以最小均方誤差為估計(jì)的最佳準(zhǔn)則,根據(jù)前一時(shí)刻的狀態(tài)估計(jì)值和當(dāng)前時(shí)刻的觀測值來預(yù)測下一個(gè)值并不斷遞推下去,能夠?qū)鞲衅鞑杉降臄?shù)據(jù)進(jìn)行實(shí)時(shí)的更新和處理,是一種能夠去除噪聲還原真實(shí)數(shù)據(jù)的有效算法[10]。
一維卡爾曼濾波的系統(tǒng)狀態(tài)方程和觀測方程分別為:
式中:Xk為k時(shí)刻的系統(tǒng)狀態(tài),Zk為k時(shí)刻的觀測值;A為狀態(tài)轉(zhuǎn)移矩陣;H為測量系數(shù)參數(shù)矩陣。
為獲得濾波值Xk+1和Zk+1,根據(jù)卡爾曼濾波算法獲得以下五個(gè)遞推公式[11],分別為:
先驗(yàn)估計(jì)狀態(tài)變量
先驗(yàn)估計(jì)誤差協(xié)方差
卡爾曼增益
濾波方程
濾波誤差協(xié)方差
式中:是第k個(gè)過程的先驗(yàn)估計(jì)狀態(tài)變量,是第k個(gè)過程的先驗(yàn)估計(jì)誤差協(xié)方差,Q是過程激勵(lì)噪聲協(xié)方差,R是測量噪聲協(xié)方差,Kk是第k個(gè)過程的卡爾曼增益,Pk是第k個(gè)過程的濾波誤差協(xié)方差。
構(gòu)建一維卡爾曼濾波算法后,通過分析實(shí)驗(yàn)數(shù)據(jù)以及傳感器誤差,可以計(jì)算得到最優(yōu)的P和Q初始值。
探空儀通電后,初始化程序,之后開始讀取GPS數(shù)據(jù)、溫度數(shù)據(jù)、濕度數(shù)據(jù)和氣壓數(shù)據(jù)。然后根據(jù)GPS 讀取的數(shù)據(jù)計(jì)算風(fēng)速風(fēng)向,最后將所有氣象數(shù)據(jù)進(jìn)行編碼整合并通過無線數(shù)傳發(fā)送給上位機(jī)。在數(shù)據(jù)發(fā)送的過程中,程序需要判斷數(shù)據(jù)是否全部發(fā)送,如果發(fā)送完成,將重復(fù)上述流程;如果尚未完全發(fā)送,則繼續(xù)發(fā)送數(shù)據(jù)。探空儀程序流程如圖3所示。
圖3 探空儀程序流程圖
上位機(jī)是基于美國國家儀器(NI)公司LabVIEW開發(fā)平臺(tái),使用圖形化G 語言編寫出來的一種數(shù)據(jù)接收、顯示、預(yù)處理和存儲(chǔ)的界面顯示軟件[11]。為實(shí)現(xiàn)基于多旋翼無人機(jī)氣象數(shù)據(jù)采集系統(tǒng)多功能性要求,將軟件劃分為五個(gè)功能模塊,分別是系統(tǒng)控制模塊、數(shù)據(jù)采集模塊、LabVIEW 與MATLAB 混合編程、下投式探空儀三維運(yùn)動(dòng)軌跡顯示模塊和卡爾曼濾波顯示模塊。該系統(tǒng)軟件的界面圖如圖4 所示。
圖4 系統(tǒng)軟件界面圖
4.2.1 系統(tǒng)控制模塊
系統(tǒng)控制模塊是整個(gè)系統(tǒng)的控制中心,主要包括系統(tǒng)初始化、開始采集和退出系統(tǒng)三個(gè)部分。初始化主要功能是恢復(fù)系統(tǒng)默認(rèn)參數(shù),可以實(shí)現(xiàn)在多組氣象數(shù)據(jù)采集和不同場景下的系統(tǒng)參數(shù)設(shè)置;開始采集主要功能是在系統(tǒng)配置好通信方式和各個(gè)參數(shù)后,用以運(yùn)行系統(tǒng)開始對氣象數(shù)據(jù)的接收和處理;退出系統(tǒng)主要功能是完成氣象數(shù)據(jù)采集并退出系統(tǒng)軟件。
4.2.2 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊主要是實(shí)現(xiàn)數(shù)據(jù)的接收、顯示和存儲(chǔ)功能,主要包括串口配置、通信協(xié)議設(shè)置、數(shù)據(jù)顯示和存儲(chǔ)方式四個(gè)部分。軟件通過將配置好的串口程序與無線數(shù)傳相連,從而達(dá)到與下投式探空儀相通信,并通過ASCII 碼通信協(xié)議進(jìn)行數(shù)據(jù)傳輸。其中,串口波特率為9 600 bit/s,通信協(xié)議是以LDASPTH 為數(shù)據(jù)幀頭,以逗號為數(shù)據(jù)分割位,通過讀取不同位置的數(shù)據(jù)來實(shí)現(xiàn)數(shù)據(jù)的接收。并將接收到的數(shù)據(jù)以數(shù)字形式顯示出來和保存到電子表格中,以便隨時(shí)調(diào)用。數(shù)據(jù)采集模塊程序如圖5 所示。
圖5 數(shù)據(jù)采集模塊程序圖
4.2.3 LabVIEW 與MATLAB 混合編程
由于LabVIEW 軟件在數(shù)據(jù)運(yùn)算和函數(shù)編寫中存在不足,該系統(tǒng)結(jié)合MATLAB 強(qiáng)大的算法功能和數(shù)據(jù)處理功能,利用DLL 動(dòng)態(tài)鏈接庫技術(shù),將在MATLAB 中編寫的算法程序,調(diào)用到LabVIEW 中進(jìn)行封裝,使其在脫離MATLAB 軟件后仍能夠獨(dú)立運(yùn)行,實(shí)現(xiàn)算法運(yùn)算和數(shù)據(jù)處理的功能。
由于軟件系統(tǒng)存在的不兼容性問題,本文通過Visual Studio 2019 軟件實(shí)現(xiàn)了32 位LabVIEW 軟件調(diào)用64 位MATLAB 軟件生成的DLL 文件[13-16]。DLL 動(dòng)態(tài)鏈接庫技術(shù)實(shí)現(xiàn)混合編程的具體流程如圖6 所示。
圖6 LabVIEW 與MATLAB 混編流程圖
4.2.4 下投式探空儀三維運(yùn)動(dòng)軌跡顯示模塊
為滿足實(shí)時(shí)監(jiān)測下投式探空儀的運(yùn)動(dòng)狀態(tài),有利于了解系統(tǒng)采集數(shù)據(jù)時(shí)的運(yùn)行情況,該系統(tǒng)加入了三維運(yùn)動(dòng)軌跡顯示功能。利用LabVIEW 與MATLAB 混合編程,調(diào)用MATLAB 中的坐標(biāo)轉(zhuǎn)換公式,并通過調(diào)用局部變量將接收到的位置信息與算法相連,實(shí)現(xiàn)對下投式探空儀三維運(yùn)動(dòng)軌跡的實(shí)時(shí)顯示。在測量過程中隨時(shí)可以通過手動(dòng)操作來保存圖片,以便后面分析。下投式探空儀三維運(yùn)動(dòng)軌跡程序如圖7 所示。
圖7 下投式探空儀三維運(yùn)動(dòng)軌跡程序圖
4.2.5 一維卡爾曼濾波顯示模塊
為了能夠直觀顯示氣象數(shù)據(jù)在采集過程中的數(shù)據(jù)變化和濾波后的數(shù)據(jù)對比,利用LabVIEW 與MATLAB 混合編程,調(diào)用一維卡爾曼濾波公式。通過輸出不同傳感器測得的氣象數(shù)據(jù),設(shè)置數(shù)據(jù)初始值和卡爾曼濾波參數(shù),從而實(shí)現(xiàn)對各個(gè)氣象數(shù)據(jù)的一維卡爾曼濾波和波形顯示,并可以通過手動(dòng)操作保存圖片。一維卡爾曼濾波部分程序如圖8 所示。
圖8 一維卡爾曼濾波部分程序圖
為驗(yàn)證基于多旋翼無人機(jī)氣象數(shù)據(jù)采集系統(tǒng)的實(shí)用性,本系統(tǒng)于南京經(jīng)緯度坐標(biāo)為(118.646 5,32.201 99)的較為空曠的地方進(jìn)行實(shí)物測試實(shí)驗(yàn)。
該系統(tǒng)是以六旋翼無人機(jī)為載體,在其上方安裝自動(dòng)地面站,下方是一個(gè)可容納單個(gè)探空儀的投射裝置。測試時(shí),通過無人機(jī)操控員遙控?zé)o人機(jī)到達(dá)520 m 高空,并控制投射裝置釋放下投式探空儀,然后通過上位機(jī)實(shí)時(shí)監(jiān)測下投式探空儀的運(yùn)動(dòng)軌跡和氣象數(shù)據(jù)變化。實(shí)物測試如圖9 所示。
圖9 實(shí)物測試圖
系統(tǒng)測試前需要對系統(tǒng)參數(shù)進(jìn)行設(shè)定,具體參數(shù)配置如表1 所示。
表1 系統(tǒng)參數(shù)配置表
該系統(tǒng)通過實(shí)際測試能夠有效實(shí)現(xiàn)各個(gè)功能,并通過保存路徑可以查看氣象數(shù)據(jù)和圖片信息。根據(jù)系統(tǒng)保存的下投式探空儀三維運(yùn)動(dòng)軌跡如圖10(a)所示,通過圖片可以清晰地看出探空儀的三維運(yùn)動(dòng)軌跡和運(yùn)動(dòng)路程區(qū)間。圖片顯示由無人機(jī)搭載探空儀在站心位置起飛,在短時(shí)間內(nèi)到達(dá)520 m 高空并投射探空儀,探空儀在自身重力和風(fēng)力的影響進(jìn)行長時(shí)間的曲線運(yùn)動(dòng)。在測試過程中,可以看出風(fēng)向在投射出探空儀后基本上維持在一定范圍內(nèi)上下波動(dòng),而風(fēng)速有個(gè)先上升再穩(wěn)定后下降的過程。通過分析探空儀的移動(dòng)角度可以看出其移動(dòng)角度變化是先增大再穩(wěn)定后減小,跟通過風(fēng)速風(fēng)向分析的結(jié)果保持一致,證明該功能的可靠性和可行性。實(shí)物測試結(jié)果顯示如圖10所示。
圖10 實(shí)物測試結(jié)果顯示圖
通過實(shí)物測試,利用系統(tǒng)軟件將一維卡爾曼濾波前后的對比圖保存下來,如圖10(b)、10(c)、10(d)、10(e)、10(f)所示,通過波形圖可以清楚地看出探空儀在由無人機(jī)搭載時(shí)氣象數(shù)據(jù)變化和投射后的氣象數(shù)據(jù)變化。通過圖片顯示在無人機(jī)搭載探空儀時(shí),受到無人機(jī)帶來的影響使得風(fēng)速和風(fēng)向測量結(jié)果浮動(dòng)較大,而投射出去后探空儀采集到的數(shù)據(jù)較為穩(wěn)定。并且可以看出,該系統(tǒng)在應(yīng)用一維卡爾曼濾波后可以有效降低采集數(shù)據(jù)的波動(dòng),消除失真影響,達(dá)到優(yōu)化采集數(shù)據(jù),提高數(shù)據(jù)準(zhǔn)確性的效果。
利用多旋翼無人機(jī)的高機(jī)動(dòng)性和便攜性,通過下投式探空儀和多功能性上位機(jī)設(shè)計(jì)能夠有效完成氣象數(shù)據(jù)的采集、顯示、預(yù)處理和存儲(chǔ)功能,進(jìn)而提高現(xiàn)有多旋翼無人機(jī)在氣象數(shù)據(jù)采集方面的便捷性和高效性。該系統(tǒng)通過DLL 動(dòng)態(tài)鏈接庫技術(shù)和LabVIEW 具有的能夠生成獨(dú)立的可執(zhí)行程序和安裝程序的特性,可以有效實(shí)現(xiàn)在沒有LabVIEW 和MATLAB 的PC 端進(jìn)行獨(dú)立運(yùn)行,從而能夠應(yīng)對各種突發(fā)情況,完成氣象數(shù)據(jù)采集任務(wù)。