陳為星, 劉為國
(安徽理工大學 電氣與信息工程學院,安徽 淮南 232001)
現代超聲波風速儀[1]是目前實際農業及工業科學領域較為實用的新型儀器,不僅設計結構簡單,堅固耐用,且有著較高的測量精度,對于自然風中的陣風脈動的高頻成分測量準確[2]。在理論上,測量風速范圍無上限量,這就使得超聲波風速儀有著廣泛的應用前景。目前,超聲波測量風速主要有2種方法:時間差測量法[3],主要是測量超聲波發射到接收間的時間或頻率差;另外一種方法是相位測量法,其原理為觀察順風與逆風時測得的超聲波波形相位差計算風矢量信息[4]。溫度濕度等信息會對風速測量結果產生一定影響,同時考慮到超聲波在介質中的衰減情況,本文設計了一種基于STM32的超聲波風速風向測量系統,由靈活可編程的A/D通道進行信息的采集,具有溫度濕度補償裝置和RS—485信息通信功能。
由于一維風速風向模型無法測量風向的信息,因此,系統用二維風速風向測量模型,可以很好地模擬自然風的實際情況,對風矢量進行二維方向分解,再分別測量二維方向上的風速風向信息,極坐標模型表示如圖1所示。

圖1 極坐標模型
采用4個垂直水平放置的收發一體超聲波探頭,相對探頭間距離固定,4者呈正方形放置。如圖2模型所示。假設實際風向如圖中所示,則將其在極坐標中進行分解,主要在南北方向和西東方向上存在分矢量。當探頭以200 kHz頻率發射超聲波時,分別測得各方向順風和逆風時傳播時間為t12,t21,t34,t43,其中t21,t34為順風時間,t12,t43為逆風時間。

圖2 二維超聲波模型
如上圖設風速西東方向上為vWE,南北方向為vSH,探頭間距離為d,則由一維風速測量公式得
(1)
由矢量勾股定理合成實際風為
(2)
求得方向角β為
(3)
可計算出風向的數值,在第一象限時為arccosβ,在第二象限為π-arccosβ,第三象限為π+arccosβ,第四象限為2π-arccosβ。
系統選用STM32F103為核心,處理來自風速儀的傳輸數據和與上位機的通信,該單片機最高工作頻率可達72 MHz,512 kB的FLASH,支持RS—485通信,內部自帶一路數字溫濕度傳感器接口,具有處理速度快,成本低,精度高的特點。本系統的設計框圖如圖3所示。

圖3 系統設計框圖
系統框圖中電源模塊提供所需電能,STM32發送起始信號啟動風速風向儀工作,風速風向儀探頭測得的結果選擇電流形式傳輸。為了便于單片機進行A/D處理,設計了I/V轉換電路,低通濾波電路、峰值檢測電路將最終信號送達單片機I/O口。STM32內部計數器捕捉峰值信號,將計算結果加上溫度電路補償顯示在液晶顯示屏上。RS—485模塊負責探頭和STM32、上位機通信,方便在上位機上設置和監控探頭。
本系統選擇FC—09G型風速風向儀,利用時差法測量風速風向。全數字化信號檢測,高精度,可自動加熱除冰雪,同時進行風速、風向和聲學溫度的實時測量。風速風向測量信號選擇4~20 mA電流模擬方式輸出,0.01 m/s的分辨率;工作電壓為24 V;風速測量范圍0~60 m/s,精度是±0.2 m/s(≤10m/s)、±2 % (>10 m/s);風向測量范圍0°~360°,精度是±1°;聲學溫度測量范圍-40~60 ℃,精度±2°。同時自帶數字濾波技術,抗電磁干擾能力更強。風速風向儀底部有一個8腳防水插頭,用以通過屏蔽電纜線連接外部電源和通信接口。通過串行連接單片機,且可以全雙工模式輸出,8腳插頭引腳分別為RXD-,TXD-,NC,RXD+,TXD+,AGND,DC-和DC+。FC—09G Monitor軟件為用于設置與監視超聲波風速儀的上位軟件,該軟件可以用于監測FC—09G風速風向儀的數據,并記錄于計算機硬盤上。
為了得到較小的紋波24 V電壓供FC—09G風速風向儀使用,系統設計了專門的電源電路,并在此基礎上進一步降壓成5 V為STM32提供工作所需電壓,具體電路如圖4所示。首先由變壓器降壓得到20 V的交流電,再整流為直流電,LM7824芯片可以將直流電進行穩壓除波紋得到風速風向儀需要的穩壓源,再經過LM2576S芯片得到單片機的工作電壓,電路中的IN5822起防擊穿保護作用,電感器L1可以進一步減小電路中涌動電流的沖擊干擾。

圖4 電源電路
為了便于STM32的輸入計算,設計了I/V轉換電路,將測得的4~20 mA電流信號轉換為電壓信號,再經過低通濾波整理,濾除電路中的干擾成分,主要是高頻和低頻信號[5]。峰值檢測電路檢測出信號的包絡曲線,傳送單片機A/D口采集。
選用了RCV420高精密芯片進行I/V的轉換,該芯片可以將4~20 mA的環路電流變換成0~5 V的電壓,具有很可靠的性能和很低的成本。內部含有精密運放和電阻網絡,在不需要外部調整的情況下,可以獲得86 dB的共模抑制比和40 V的共模電壓輸入。在全量程范圍內輸入阻抗僅有1.5 V的壓降,對環路電流具有很好的變換能力,總誤差小于±1 %。芯片所需電壓在圖4的基礎上利用LM46002進行降壓可得,不再具體給出。
為了保證輸入到單片機的信號以400 Hz為主,同時濾除其他的高頻雜波。設計了400 Hz的低通巴特沃斯濾波器加強對信號的干擾處理,保證了有用信號頻率最大限度平坦,高頻信號波則逐漸下降為零。具體電路如圖5所示。電路中的自動開關器用于400 Hz的切斷頻率,可以通過改變頻率的比例值來擴大。

圖5 低通巴特沃斯濾波器
為獲得超聲波準確傳播時間,對獲得的濾波后信號進行峰值檢測,其關鍵是準確判斷出接收信號的到達時間。通常采用的方法有高速計算器計數求包絡峰值[6],利用兩者峰值差值求解,為了避免數據在計算及存儲方面的消耗時間可能對系統測量結果造成誤差,以及峰值出現平緩難以檢測情況,本文采用峰值檢測電路處理后的波形重心法[7],保證了較高的準確性及抗干擾能力。峰值檢測電路如圖6所示,用于得到接收信號的包絡線,通過STM32的A/D口進行數據的采集,利用中位值濾波算法進行求解,增加結果的準確性。檢測電路先對波形進行了半波整流,再由低通濾波器濾除高次諧波成分。

圖6 峰值檢測電路
通過峰值檢測電路處理后,進行放大,可以得到圖7所示的處理波形。可知,電路處理效果較好,峰值兩側基本呈對稱,單片機對包絡波形的峰值區進行取值計算作為峰值。

圖7 峰值檢測處理放大波形
實際測量時,超聲波傳播速度受溫度影響較大[5,8],傳播速度數值差異較大。為了提高測量精度,設計了溫度補償電路[9,10]。已知超聲波傳播速度與絕對溫度T的關系為c=331.45+0.607T。
溫度補償電路采用DS18B20芯片,工作電壓5 V,同時通過軟件編程設置,滿足系統設計需求。
為了便于同上位機的通信處理,設計了RS—485串行半雙工通信接口,利用SP3485芯片進行數據的收發控制,同時充分利用系統中FC—09G風速風向儀的通信功能,通過RS—485與上位機連接,在上位機上使用專門軟件Monitor設置風速風向儀。
系統軟件程序設計主要包括主程序、溫度采集程序、數值計算程序、中斷程序等。
系統首先由單片機發出工作開始信號,啟動風速風向儀開始超聲波的發射與接收工作,同時啟動A/D采集程序和中斷定時功能,一旦接收數據即開始數值計算和中值濾波處理,溫度采集程序提供誤差補償,最后將計算結果顯示在液晶顯示屏上。程序處理流程如圖8所示。

圖8 系統主流程
為了保證實驗中數據采集的準確性,需要對該系統的準確性進行前期校準以改正設計中可能存在的誤差。考慮該系統工作環境及相關因素,本次系統風速校準環境為:溫度為23.5 ℃,濕度48 %RH,大氣壓強1 007.0 hPa;風向校準環境為:溫度23.2 ℃,濕度49 %RH,大氣壓強1 007.0 hPa。表1、表2分別為風速、風向實驗校準結果。

表1 風速實驗校準 m/s

表2 風向校準結果
本文敘述了基于STM32為核心的風速風向儀設計,選擇自主激發接收一體的風速風向儀,電流傳輸模式使得采集信號可以進行遠距離的精準傳輸,較高的單片機采樣頻率保證了采樣的準確性與及時性,精密電路設計及芯片選擇較好地處理保存測量信息,同時也給軟件設計帶來簡化。為了更好地增加測量的準確性,還需要進一步對電路產生的延遲進行進一步研究。