孫 超,吳修廣
(浙江省水利河口研究院,浙江 杭州 310020)
液位測量有接觸式和非接觸式2種,如接觸式的浮子型及壓力型,非接觸式的微波雷達法、激光法和超聲波法等。其中接觸式測量在使用中會干擾液位變化,產生較大誤差[1]。非接觸式測量的微波雷達法技術難度大、成本高,激光法精度高但易受干擾。超聲波液位測量具有結構簡單、成本低、不受光線、煙霧干擾等優(yōu)勢[2]。但目前的超聲波液位測量裝置存在精度較低(2.0 mm左右)、測量數(shù)據(jù)不穩(wěn)定的問題,限制了它的應用。
本文基于STM32單片機,采用高精度的超聲波傳感器,配合24位ADC,實現(xiàn)120.0 ~ 1 000.0 mm量程范圍內0.1 mm精度的超聲波液位測量。
超聲波測距的原理見圖1。
圖 1 超聲波測距原理圖
利用已知超聲波在空氣中傳播速度v,超聲波換能器垂直向液面發(fā)射超聲波,聲波在水面與氣體的分界面發(fā)生反射,并回傳至換能器,記錄傳播時間t,即可得到換能器到液面的直接距離L = 0.5vt,繼而得到實際的液面高度[3]:
1.2.1 溫 度
超聲波的聲速與溫度有關,一般經驗公式為v = 331.5 +0.607t,t為攝氏溫度,℃。在超聲波傳感器實際應用中,應根據(jù)環(huán)境溫度的變化進行補償,否則將有比較大的誤差。本系統(tǒng)使用的傳感器內部已經進行溫度補償。
1.2.2 單片機計時量化
從式(1)還可以看到,液位測量的誤差和時間t的測量誤差有關,而t的測量誤差取決于單片機系統(tǒng)計時量化帶來的誤差[4]。
如果要求誤差0.1 mm,假設C = 344 m/s(20 ℃)時,對應的Δt為:
本系統(tǒng)采用STM32F103C8T6單片機,主頻為72 MHz,其計時量化時間為0.013 μs,遠小于式(3)要求的時間,故其產生的誤差可以忽略不計。
ST公司的STM32F103C8T6是一款基于ARM Cortex - M內核的32位的微控制器,程序存儲器容量是64 KB,RAM容量是20 KB,工作電壓2.0 ~ 3.6 VDC,具有37個GPIO及復用的1個SPI硬件接口、1個I2C接口、3個USART接口、1個USB接口等。
1.2.3 AD采樣位數(shù)
超聲波傳感器輸出為4 ~ 20 mA,經過轉換為0.0 ~ 5.0 VDC,而測量要求是量程0.0 ~ 1 000.0 mm,精度達到0.1 mm,則可以計算出系統(tǒng)電壓的最小分辨率需要至少為:
而以2.5 VDC為基準參考電壓且單端輸入時18位AD的最小分辨率為:
可見采用18位AD采樣芯片就可以滿足系統(tǒng)精度要求。綜合考慮芯片價格、外圍電路復雜程度、通道數(shù)、采樣速率較高時AD有效位數(shù)減少等因素,本系統(tǒng)采用TI公司的24位采樣芯片ADS1256。
ADS1256是具有8通道極低噪聲的24位Δ - Σ型模數(shù)轉換器,其最高采樣頻率30 kSPS,采用SPI接口。模擬工作電壓5.0 VDC,數(shù)字工作電壓1.8 ~ 3.6 VDC。
1.2.4 基準參考電壓
基準參考電壓是AD轉換的依據(jù),其精度和穩(wěn)定性決定系統(tǒng)的精度和穩(wěn)定性。本系統(tǒng)采用ADR431B芯片產生2.5 VDC基準電壓。AD公司的ADR431B是具有3.5 μVp-p噪聲、3 ppm/℃溫漂的高精度基準參考電壓芯片。
1.2.5 超聲波傳感器
超聲波傳感器是一種可以把電信號和聲能相互轉換的裝置,可以分為電動式、電磁式、磁滯式和壓電式。經過對比各種超聲波傳感器的性能,本系統(tǒng)選擇德國Microsonic公司的壓電式超聲波傳感器pico+100/WK/I,主要性能指標:檢測范圍為120 ~ 1 000 mm;盲區(qū)120 mm;換能器頻率200 kHz;工作電壓10 ~ 30 VDC;最高分辨率0.069 mm;輸出 4 ~ 20 mA。
1.2.6 電流轉電壓電路
超聲波傳感器的輸出信號是4 ~ 20 mA電流,需要轉換為0.0 ~ 5.0 VDC電壓才能被ADC采樣。轉換電路的精度同樣決定系統(tǒng)的精度,本系統(tǒng)采用以OPA4227芯片為核心的運放運算電路作為轉換電路。
OPA4227芯片是TI公司的4通道高精度低噪聲運算放大器,主要性能指標:典型噪聲90 nVp-p;輸入失調電壓±10 μV;工作電壓 ±2.5 ~ ±18.0 V。
該芯片需要的正負雙極性電壓由芯片ICL7660提供。ICL7660是Maxim公司的小功率雙極性電源轉換器,只需外接一個10 μF的電容就可以將1.5 ~ 12.0 VDC范圍內輸入的正電壓轉換為相應的負電壓。
硬件系統(tǒng)整體結構見圖2。
圖 2 硬件系統(tǒng)整體結構圖
硬件系統(tǒng)分為3部分:第一部分是電源,先通過開關電源將220.0 V交流電轉為12.0,5.0,3.3 V的直流電分給供給超聲波傳感器、電流轉電壓電路、ADS1256模塊、MAX485模塊和STM32單片機模塊。另外添加ADR431,以提供基準電壓給ADS1256。第二部分是數(shù)據(jù)收集,超聲波傳感器將測量數(shù)據(jù)通過4 ~ 20 mA的電流信號傳輸給電流轉電壓電路,該電路將可讀的電壓信號發(fā)送給24位精度的ADS1256模塊,再通過SPI將數(shù)字信號發(fā)送給STM32單片機。第三部分是信號的處理以及發(fā)送顯示,STM32單片機將得到的數(shù)字信號處理后通過串口轉485模塊,發(fā)送給PC顯示。
4 mA輸入仿真結果見圖3;20 mA輸入仿真結果見圖4。
圖 3 4 mA輸入仿真結果圖
圖 4 20 mA輸入仿真結果圖
使用電流轉電壓電路中的4個OPA4227PA組成的減法器、加法器和放大器,將電流信號轉化為可讀的電壓信號。
軟件系統(tǒng)流程見圖5。
圖 5 系統(tǒng)軟件流程圖
使用珠江水利委員會生產的高精度光柵式水位儀(0.01 mm絕對精度)測量水位高度,PC端查看系統(tǒng)傳回的電壓值(見圖6)。
圖 6 率定及驗證示意圖
根據(jù)率定結果(見圖7),當H = 100 cm時得到電壓與水位的關系:
圖 7 電壓-水位關系圖
使用高精度水位儀做標準,與液位計實測結果對比(見圖8)。
驗證結果見圖8,誤差范圍在0.2%以內,絕對誤差小于0.1 mm。
圖8 驗證結果圖
本文分析了高精度超聲波液位計的誤差原理,給出詳細的設計方案,最終實現(xiàn)120.0 ~ 1 000.0 mm量程范圍內0.1 mm精度的超聲波液位設計。