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