方 磊 ,張 彪* ,陳 沖
(1.南京信息工程大學電子與信息工程學院,江蘇 南京 210044;2.南京大學電子科學與工程學院,江蘇 南京 210023)
隨著經濟的發展,全球氣候變化日益加劇,自然氣象災害威脅著人民的生活。因此,環境監測、氣象預測和災害預防變得至關重要[1]。對氣象數據進行采集和有效分析,是天氣預報和氣候監測的重要工作內容,而數據采集是分析預測的前提[2]。近幾年,隨著多旋翼無人機技術的快速發展,如何利用多旋翼無人機高效采集高空氣象數據逐漸受到人們的關注。
現階段,利用多旋翼無人機進行氣象數據采集主要有搭載自動氣象站和下投式探空儀兩種方式,如文獻[3]中利用多旋翼無人機搭載自動氣象站進行數據采集,但在實際應用中自動氣象站相對于下投式探空儀更容易受到多旋翼無人機帶來的影響,不利于氣象數據的采集。如文獻[4]中利用無人機搭載下投式探空儀進行海氣界面探測,但在數據接收和圖形顯示上,功能單一、圖形顯示效果差,并且在投射探空儀后無法有效觀測探空儀的運動狀態。LabVIEW 是一種圖形化編程軟件平臺,具有數據采集、人機交互、圖形顯示和數據處理等多方面強大功能,并且可以生成獨立的可執行程序和安裝程序,實現在多個沒有LabVIEW 軟件的PC 端進行數據采集操作,從而大大提高采集效率和便捷性[5]。
由于上述原因,本文設計了一種可以利用多旋翼無人機搭載下投式探空儀,并通過LabVIEW 軟件實現集氣象數據采集、接收、顯示、預處理和存儲為一體的多功能氣象數據采集系統。該系統不但能夠實時顯示下投式探空儀的三維運動軌跡,而且通過一維卡爾曼濾波算法對氣象數據進行了優化,同時還能夠直觀地顯示出測量數據和濾波后數據的曲線變化。
氣象數據采集系統總體框架如圖1 所示,該系統主要由數據采集和數據處理兩部分構成。數據采集部分主要包括無人機平臺和下投式探空儀,具體實現功能是:通過無人機操控員控制多旋翼無人機搭載探空儀到達指定位置并投射探空儀,完成對該區域的氣象數據采集任務;數據處理部分是通過PC端進行數據接收、預處理和儲存,具體實現功能是:控制軟件系統、接收采集數據、顯示下投式探空儀三維運動軌跡和進行一維卡爾曼濾波及顯示。

圖1 氣象數據采集系統總體構架
氣象數據采集要素主要包括溫度、濕度、氣壓、風速、風向、經緯度和海拔高度,其中溫度、濕度、氣壓、經緯度和海拔高度可直接通過傳感器采集得到;風速風向是利用GPS 采集到的位置信息結合相應的數學公式間接計算得出[6]。
根據該系統對氣象數據采集要求,系統采用STM32F030CCT6 作為主控芯片。該芯片以Cortex-M0 為內核,工作電壓在2.4 V~3.3 V 之間,含有2個SPI 和6 個UART 接口,能夠為該系統提供多種存儲容量和引腳數組合。
下投式探空儀通過外接7.4 V 直流電源為整個電路供電。為滿足各個模塊的需求,本文設計一種降壓穩壓電路。基于正向低壓降穩壓器(AMS1117)的降壓穩壓性能好的特點,并通過加入電解電容和多電容濾波電路,實現對整個電路的降壓穩壓的作用。根據電源電壓值,選擇容值150 μF,耐壓值15 V 的電解電容。降壓及穩壓電路如圖2 所示。

圖2 降壓及穩壓電路圖
濕度傳感器采用基于電容式相對濕度傳感器(HMC03M),利用該傳感器具有的加熱電阻器進行溫度補償,可以實現在低響應時間下仍能對溫度進行優化。本文通過降壓穩壓電路為其提供穩定的5 V工作電壓,并與主控芯片的PA8 接口相連進行數據傳輸。
溫度和氣壓傳感器是一種基于MEMS 先進技術[7]的高分辨率傳感器(MS5803-01BA),可以得到精確的24 位數字壓力值和溫度值。本文通過降壓穩壓電路為其提供穩定3 V 工作電壓,其中溫度傳感器的SDI、SDO、SCLK 和CS 接口分別與主控芯片的PB15、PB14、PB13 和PB12 接口相連,通過SPI 通信方式進行數據傳輸;氣壓傳感器SDI、SDO、SCLK 和CS 接口分別與主控芯片的PA7、PB6、PB5 和PB4 接口相連,通過SPI 通信方式進行數據傳輸。
BD-125 是一種GPS 和北斗相結合的高性能定位模塊,該模塊采用GPS+BDS+SBAS+QZSS+GALILEO 聯合定位模式,支持多種通信波特率,可以快速獲得探空儀在下降過程中的位置信息。本文通過降壓穩壓電路為其提供穩定5 V 工作電壓,通過UART 接口與主控芯片的PA2 和PA3 進行數據傳輸。
為滿足遠距離傳輸和較好的抗干擾性能,并且能夠適應高低溫惡劣環境,該系統采用由億佰特公司出品的全新一代LoRa 射頻無線模塊。該模塊是基于SEMTECH 公司SX1268 射頻芯片,特有的LoRa 擴頻技術,通過接口轉換模塊與上位機進行數據通信。該模塊由降壓穩壓電路提供5 V 穩定工作電壓,并通過UART 接口與主控芯片的PB10 和PB11 接口進行數據傳輸。
為建立下投式探空儀三維運動軌跡,需要根據探空儀采集到的GPS 數據進行坐標轉換,將經緯度和海拔高度轉換成站心坐標系下的位置信息。
地心坐標系使用WGS-84 坐標系,即以地心為坐標原點,Z軸指向協議地球北極,X軸指向參考子午面與赤道面的交點,Y軸與X軸、Z軸組成右手直角坐標系。
站心坐標系是以站心為坐標原點,X軸指向正北,Y軸指向正東,Z軸指向天頂并垂直于X軸和Y軸,組成的直角坐標系,也稱東北天(East-North-Up,ENU)坐標系。
地心坐標轉空間直角坐標[8]

空間直角坐標轉站心坐標[9]

式中:N是橢球的曲率半徑(單位:m),e是橢球偏心率,H是GPS 測得的海拔高度(單位:m),L是經度,B是緯度,L0、B0是地心坐標系下經度、緯度的初始值,(X,Y,Z) 是空間直角坐標系下的坐標值,(X0,Y0,Z0)是空間直角坐標系下的坐標初始值,(a,b,c)是站心坐標系下的坐標值。
為克服下投式探空儀在氣象數據采集時受到的外部環境影響以及傳感器自身帶來的誤差,本文提出了一種一維卡爾曼濾波算法。該算法以最小均方誤差為估計的最佳準則,根據前一時刻的狀態估計值和當前時刻的觀測值來預測下一個值并不斷遞推下去,能夠對傳感器采集到的數據進行實時的更新和處理,是一種能夠去除噪聲還原真實數據的有效算法[10]。
一維卡爾曼濾波的系統狀態方程和觀測方程分別為:

式中:Xk為k時刻的系統狀態,Zk為k時刻的觀測值;A為狀態轉移矩陣;H為測量系數參數矩陣。
為獲得濾波值Xk+1和Zk+1,根據卡爾曼濾波算法獲得以下五個遞推公式[11],分別為:
先驗估計狀態變量

先驗估計誤差協方差

卡爾曼增益

濾波方程

濾波誤差協方差

式中:是第k個過程的先驗估計狀態變量,是第k個過程的先驗估計誤差協方差,Q是過程激勵噪聲協方差,R是測量噪聲協方差,Kk是第k個過程的卡爾曼增益,Pk是第k個過程的濾波誤差協方差。
構建一維卡爾曼濾波算法后,通過分析實驗數據以及傳感器誤差,可以計算得到最優的P和Q初始值。
探空儀通電后,初始化程序,之后開始讀取GPS數據、溫度數據、濕度數據和氣壓數據。然后根據GPS 讀取的數據計算風速風向,最后將所有氣象數據進行編碼整合并通過無線數傳發送給上位機。在數據發送的過程中,程序需要判斷數據是否全部發送,如果發送完成,將重復上述流程;如果尚未完全發送,則繼續發送數據。探空儀程序流程如圖3所示。

圖3 探空儀程序流程圖
上位機是基于美國國家儀器(NI)公司LabVIEW開發平臺,使用圖形化G 語言編寫出來的一種數據接收、顯示、預處理和存儲的界面顯示軟件[11]。為實現基于多旋翼無人機氣象數據采集系統多功能性要求,將軟件劃分為五個功能模塊,分別是系統控制模塊、數據采集模塊、LabVIEW 與MATLAB 混合編程、下投式探空儀三維運動軌跡顯示模塊和卡爾曼濾波顯示模塊。該系統軟件的界面圖如圖4 所示。

圖4 系統軟件界面圖
4.2.1 系統控制模塊
系統控制模塊是整個系統的控制中心,主要包括系統初始化、開始采集和退出系統三個部分。初始化主要功能是恢復系統默認參數,可以實現在多組氣象數據采集和不同場景下的系統參數設置;開始采集主要功能是在系統配置好通信方式和各個參數后,用以運行系統開始對氣象數據的接收和處理;退出系統主要功能是完成氣象數據采集并退出系統軟件。
4.2.2 數據采集模塊
數據采集模塊主要是實現數據的接收、顯示和存儲功能,主要包括串口配置、通信協議設置、數據顯示和存儲方式四個部分。軟件通過將配置好的串口程序與無線數傳相連,從而達到與下投式探空儀相通信,并通過ASCII 碼通信協議進行數據傳輸。其中,串口波特率為9 600 bit/s,通信協議是以LDASPTH 為數據幀頭,以逗號為數據分割位,通過讀取不同位置的數據來實現數據的接收。并將接收到的數據以數字形式顯示出來和保存到電子表格中,以便隨時調用。數據采集模塊程序如圖5 所示。

圖5 數據采集模塊程序圖
4.2.3 LabVIEW 與MATLAB 混合編程
由于LabVIEW 軟件在數據運算和函數編寫中存在不足,該系統結合MATLAB 強大的算法功能和數據處理功能,利用DLL 動態鏈接庫技術,將在MATLAB 中編寫的算法程序,調用到LabVIEW 中進行封裝,使其在脫離MATLAB 軟件后仍能夠獨立運行,實現算法運算和數據處理的功能。
由于軟件系統存在的不兼容性問題,本文通過Visual Studio 2019 軟件實現了32 位LabVIEW 軟件調用64 位MATLAB 軟件生成的DLL 文件[13-16]。DLL 動態鏈接庫技術實現混合編程的具體流程如圖6 所示。

圖6 LabVIEW 與MATLAB 混編流程圖
4.2.4 下投式探空儀三維運動軌跡顯示模塊
為滿足實時監測下投式探空儀的運動狀態,有利于了解系統采集數據時的運行情況,該系統加入了三維運動軌跡顯示功能。利用LabVIEW 與MATLAB 混合編程,調用MATLAB 中的坐標轉換公式,并通過調用局部變量將接收到的位置信息與算法相連,實現對下投式探空儀三維運動軌跡的實時顯示。在測量過程中隨時可以通過手動操作來保存圖片,以便后面分析。下投式探空儀三維運動軌跡程序如圖7 所示。

圖7 下投式探空儀三維運動軌跡程序圖
4.2.5 一維卡爾曼濾波顯示模塊
為了能夠直觀顯示氣象數據在采集過程中的數據變化和濾波后的數據對比,利用LabVIEW 與MATLAB 混合編程,調用一維卡爾曼濾波公式。通過輸出不同傳感器測得的氣象數據,設置數據初始值和卡爾曼濾波參數,從而實現對各個氣象數據的一維卡爾曼濾波和波形顯示,并可以通過手動操作保存圖片。一維卡爾曼濾波部分程序如圖8 所示。

圖8 一維卡爾曼濾波部分程序圖
為驗證基于多旋翼無人機氣象數據采集系統的實用性,本系統于南京經緯度坐標為(118.646 5,32.201 99)的較為空曠的地方進行實物測試實驗。
該系統是以六旋翼無人機為載體,在其上方安裝自動地面站,下方是一個可容納單個探空儀的投射裝置。測試時,通過無人機操控員遙控無人機到達520 m 高空,并控制投射裝置釋放下投式探空儀,然后通過上位機實時監測下投式探空儀的運動軌跡和氣象數據變化。實物測試如圖9 所示。

圖9 實物測試圖
系統測試前需要對系統參數進行設定,具體參數配置如表1 所示。

表1 系統參數配置表
該系統通過實際測試能夠有效實現各個功能,并通過保存路徑可以查看氣象數據和圖片信息。根據系統保存的下投式探空儀三維運動軌跡如圖10(a)所示,通過圖片可以清晰地看出探空儀的三維運動軌跡和運動路程區間。圖片顯示由無人機搭載探空儀在站心位置起飛,在短時間內到達520 m 高空并投射探空儀,探空儀在自身重力和風力的影響進行長時間的曲線運動。在測試過程中,可以看出風向在投射出探空儀后基本上維持在一定范圍內上下波動,而風速有個先上升再穩定后下降的過程。通過分析探空儀的移動角度可以看出其移動角度變化是先增大再穩定后減小,跟通過風速風向分析的結果保持一致,證明該功能的可靠性和可行性。實物測試結果顯示如圖10所示。

圖10 實物測試結果顯示圖
通過實物測試,利用系統軟件將一維卡爾曼濾波前后的對比圖保存下來,如圖10(b)、10(c)、10(d)、10(e)、10(f)所示,通過波形圖可以清楚地看出探空儀在由無人機搭載時氣象數據變化和投射后的氣象數據變化。通過圖片顯示在無人機搭載探空儀時,受到無人機帶來的影響使得風速和風向測量結果浮動較大,而投射出去后探空儀采集到的數據較為穩定。并且可以看出,該系統在應用一維卡爾曼濾波后可以有效降低采集數據的波動,消除失真影響,達到優化采集數據,提高數據準確性的效果。
利用多旋翼無人機的高機動性和便攜性,通過下投式探空儀和多功能性上位機設計能夠有效完成氣象數據的采集、顯示、預處理和存儲功能,進而提高現有多旋翼無人機在氣象數據采集方面的便捷性和高效性。該系統通過DLL 動態鏈接庫技術和LabVIEW 具有的能夠生成獨立的可執行程序和安裝程序的特性,可以有效實現在沒有LabVIEW 和MATLAB 的PC 端進行獨立運行,從而能夠應對各種突發情況,完成氣象數據采集任務。