摘 要: 采用硅壓阻式壓力傳感器,以ATmega88PA為控制器設計了氣壓高度計。內嵌全溫度范圍的曲面擬合算法進行溫度補償及線性化處理,解決了壓力傳感器的溫漂和非線性問題,并用海拔高度與氣壓的關系計算高度。測量結果通過RS-485接口發送給上位機。測試結果表明,該氣壓高度計壓力測量誤差優于0.50‰,分辨率為0.01 hPa,線性度為0.999 9;標準大氣環境下高度測量誤差為0.16 m,線性度為0.999 8。該氣壓高度計具有質量小、功耗低、精度高、工作可靠等優點。
關鍵詞: 硅壓阻式氣壓傳感器;氣壓高度計;曲面擬合;溫度補償
0 引言
氣壓高度計是一種通過敏感大氣壓力來指示飛行器飛行高度的儀表,氣壓高度作為飛行器的基本飛行狀態參數,是保障其飛行控制系統正常工作、維持飛行安全的重要參數,對充分發揮飛行器性能、減少能量消耗以及順利完成各種飛行動作都具有十分重要的意義。傳統的氣壓高度計不能滿足微小型飛行器的操控要求,主要原因在于其結構復雜,體積龐大,測量精度低,功耗大[1]。隨著MEMS技術水平和集成電路工藝的迅猛發展,促使半導體集成電路和壓阻式氣壓傳感器實現高度集成化,具備接口簡單、體積小、穩定性高、動態響應快、精度和靈敏度高等優點,這些都將大大提高系統的綜合性能,簡化系統的結構。
1 系統硬件設計
氣壓高度計硬件系統包括微型控制器(MCU)、電源、硅壓阻式氣壓敏感元件、溫度傳感器、串口通信、A/D轉換器等部分,如圖1所示。系統工作時,氣壓敏感元件將大氣壓力轉換為相應的電壓信號,溫度傳感器同樣輸出溫度的模擬電壓信號,兩者分別經A/D轉換器的兩個通道轉換為數字量;然后在MCU中進行補償運算處理;得到的氣壓和高度數據通過RS-485(232)接口輸出。
1.1 微型控器ATmega88PA
氣壓高度計采用Atmel公司的ATmega88PA芯片為MCU,它是先進的精簡指令集(RISC)結構,具有很高的代碼執行效率,高達1 MIPS/MHz的數據吞吐率。最主要的是片內配置了只需2個時鐘周期的硬件乘法器,這為系統算法實現中大量使用的乘法運算提供了方便,從而大大提高氣壓計系統的響應特性。此外,芯片中還含有擦寫壽命高達10 000次的8 KB片內可編程Flash;512 B的E2PROM,為程序運算中所需大量系數的存儲提供了充足的空間。
1.2 氣壓敏感元件和溫度傳感器
氣壓高度計采用MEAS(Measurement Specialties Inc)公司生產的硅壓阻式壓力傳感器,其內部主要結構及管腳如圖2所示。其量程范圍為0~15 psi(即0~103 425 Pa),溫度補償范圍為-20℃~+85℃;在 1.5 mA電流激勵下,滿量程輸出值為100 mV;另外,存在 ±0.1%的非線性誤差和±0.5%的溫度誤差。
溫度傳感器選用MAX873,它具有靈敏度高、功耗低等優點,工作電源電壓范圍為4.5~18 V,靜態電流為280 μA,在-40℃~85℃溫度范圍內具有極好的線性輸出(約4×10-6/℃),靈敏度為2 mV/℃;MAX873還能同時為A/D轉換器提供低溫漂的2.5 V基準電壓,其溫度漂移系數為7 ppm/℃。
1.3 A/D轉換器
為滿足氣壓高度計在500~1 100 hPa測量范圍內分辨率能達1 Pa的要求,兼顧計算過程中的舍入誤差,所需A/D轉換器至少為20位;為消除壓力轉換通道與溫度轉換通道之間的非線性問題,再考慮到經濟性,因此選用德州儀器公司生產的雙通道24位?駐-∑型高精度A/D轉換器ADS1242,其輸入通道前端集成了可編程模擬放大器,輸入范圍較寬。內部50 Hz陷波器在15 Hz數據輸出模式下的共模抑制比可達120 dB,特別適合緩變小信號的精確測量。使用內部的校準系統,可消除系統通道的失調和增益誤差。采用串行SPI總線接口,可以在外部電平邊沿中斷方式或查詢方式下工作。
1.4 通信接口設計
氣壓高度計對外的通信接口可選RS-485或RS-232接口,本機采用RS-485接口形式,硬件電路選用MAX3471EUA芯片將信號電平轉換為RS-485電平。它采用平衡發送和差分接收方式來實現通信。在發送端TXD將串行口的TTL電平信號轉換成差分信號A、B兩路輸出,經傳輸后在接收端將差分信號還原成TTL電平信號。最大傳輸距離可以達3 000 m;最多可連接128個驅動器和收發器,接收器最低靈敏度達±200 mV;最大傳輸速率達10 Mb/s[2]。MAX3471EUA芯片的結構和引腳非常簡單,其內部含有一個驅動器和接收器。RO和DI端分別為接收器的輸出和驅動器的輸入端,與單片機連接時只需分別與單片機的RxD和TxD相連即可,如圖3所示。A端和B端分別為接收和發送的差分信號端并且要在這兩端之間加匹配電阻,其典型值為54 。當A引腳的電平比B引腳高2~6 V時,表示發送的數據為1;當A引腳的電平比B引腳低2~6 V時,表示發送的數據為0。因此,RS-485總線具有較強的抗共模干擾的能力。
2 軟件設計
2.1 主程序設計
軟件設計的基本要求是可靠性高、執行效率高。氣壓高度計的系統軟件設計采用模塊化的設計思想,采用匯編語言在AVRStudio編譯環境下編寫。
軟件功能模塊主要包括:初始化、啟動A/D轉換壓力和溫度、數字濾波計算、溫度補償計算、高度換算、RS-485通信等子程序。初始化的對象包括堆棧的設置、中斷的設置、A/D轉換器的設置及串行接口UART的初始化設置;系統初始化完成后即啟動A/D轉換器采集壓力和溫度的原始碼數據,為提高系統的抗干擾能力,對采集到的數據采用復合加權平均值濾波算法得到平滑數據[3];溫度補償計算是根據存儲在E2PROM中的補償系數實現對壓力數據的修正,主要解決由于溫度變化引起的傳感器零點漂移和靈敏度漂移的問題,得到真實的壓力值。經補償算法處理后的實際壓力和當前溫度再送入高度換算子程序進行高度換算。最后,壓力與高度數據通過串行接口輸出;在主程序執行過程中能隨時響應串口中斷,接收并執行上位機指令。主程序流程圖如圖4所示。
2.2 硅壓阻式壓力傳感器的溫漂和溫度補償
硅壓阻式壓力傳感器的溫漂主要是指傳感器的零點溫度漂移和靈敏度溫度漂移,它們的存在大大增加了傳感器的測量誤差,限制了其使用范圍。造成硅壓阻式傳感器測量誤差的因素主要包括:結構尺寸誤差、幾何非線性誤差、晶向選擇誤差、電橋阻值誤差、橋臂電阻分布位置誤差、電阻摻雜濃度誤差、壓阻系數溫度特性、封裝熱應力和反向漏電流等。傳感器的誤差是上述諸多因素綜合的結果[4]。此外,包括氣壓高度計硬件電路所使用的每個集成電路都具有其特定的溫度特性,所使用的各個分立元件也都具有各自的溫度特性,這些都將影響氣壓高度計整機的輸出。
對氣壓高度計樣機的氣壓測量試驗結果表明,其輸出的壓力數據都表現為隨溫度升高而逐漸變大的變化規律,所以必須采用溫度補償算法來提高硅壓阻式壓力傳感器的一致性和穩定性[5]。
使用溫度參數對壓力數據的非線性修正(即溫度補償)由單片機軟件算法完成。根據標準壓力(P)與從模數轉換采集得到的壓力原始碼(Pm)和溫度原始碼(Tm)的關系,令:
P=f(Pm,Tm)(1)
對式(1)在任意一點(Pm0,Tm0)做二元函數的泰勒級數展開,根據測量精度的要求保留至二次項即可,得到壓力補償算法:
f(Pm,Tm)=k00+k10Pm+k01Tm+k20Pm2+k11PmTm+k02Tm2+k21Pm2Tm+k12TmPm2+k22Pm2Tm2(2)
其中,系數k00、k10、k01、k20、k11、k02、k21、k12、k22的確定需通過試驗采集Pm、Tm和P的數據。通過高低溫試驗箱來實現溫度變化,預先編制采集程序用于采集壓力原始碼Pm和溫度原始碼Tm。在-40℃~60℃的溫度范圍內,每間隔一定的度數作為一個溫度點,當溫度穩定后,標準壓力P在500~1 100 hPa范圍內每間隔一定壓力調整一次,則可得到若干個數據點,如表1所示的標定數據。通過對式(2)的擬合計算獲得各項的系數如表2所示。編寫單片機軟件時,表2中的9個系數被保存在單片機的E2PROM中,測量時只要將Pm和溫度Tm代入式(2),就可得到正確的壓力數據。
2.3 氣壓-高度的轉換原理
根據《國際標準ISO2533-標準大氣》,在0~11 km高度范圍內若忽略重力加速度的影響,氣壓高度與相應的大氣壓力之間存在如下關系[6]:
其中,T0=288.15 K(15℃),為標準海平面的溫度;?茁=0.006 5 K/m,為空氣溫度隨高度變化而變化的遞減率(即溫度梯度);P0=101.342 kPa,是標準海平面大氣壓;R=287.052 78 m2/(K·s2),是空氣氣體常數;g0=9.806 65 m/s2,為標準海平面的重力加速度。
把上述標準大氣數據帶入式(3),得到:
計算時,只要將經過溫度補償的實際壓力帶入式(4)即可,但該氣壓高度計算公式相對比較復雜,含乘、除及指數運算,計算量較大,將會占用CPU較多的內存資源,降低程序的執行效率,降低系統的實時性。實際算法的實現是采用了線性插值的方法來簡化計算,從而減輕了處理器的負擔。
3 試驗測試與結果分析
3.1 壓力循環測試試驗
壓力的循環試驗所用高低溫試驗箱型號為C340-70PRO,試驗箱的溫度調節范圍為-40℃~+60℃;濕度設定為55%RH;壓力標準器(型號:CPC 6000)壓力調節范圍為400~1 100 hPa。實驗室環境溫度為20℃。對氣壓高度計在25℃條件下進行壓力循環試驗,測試數據取用上、下兩個行程反復3次的平均值,如表3所示。
在表3的壓力循環測試數據中,平均偏差為0.06 hPa,最大引用誤差發生在500 hPa測試點上,為0.30‰。把反復3次循環過程的共6組測試數據用MATLAB軟件線性擬合得到傳感器輸入與輸出特性關系曲線如圖5所示,其線性度為0.999 9。壓力的輸入-輸出關系表現出優良的線性特性。
3.2 氣壓高度計高度測量試驗
以宿遷學院圖書館大樓的一樓地面為基準平面,用氣壓高度計測量每層地面到基準平面的相對高度,如此反復測量5次,得到的測量高度Hm與實際高度Hr的測試曲線如圖6所示,平均標準偏差為0.16 m,線性度為0.999 8。由此可見,基于硅壓阻式壓力傳感器的氣壓高度計輔以數字濾波、全溫區溫度補償等算法具有很高的測量精度,軟件算法補償方法的運用極大地簡化了硬件電路的結構,有效減小了系統的噪聲干擾,提高了測量精度。
4 結論
采用OEM硅壓阻式壓力傳感器為氣壓敏感器件,以高性能單片機為處理器研制的氣壓高度計結合數字運算處理技術和全溫區溫度補償技術很好地解決了硅壓阻式壓力傳感器的溫漂問題,實現了高度測量,其中壓力參數測量誤差小于0.50‰,分辨率達到0.01 hPa,線性度達到0.999 9;雖然壓力的溫漂得以修正,但由于測量環境因素的影響和計算公式簡化處理帶來的誤差,造成高度測量結果0.16 m的誤差和0.999 8的線性度。綜合上述測試結果,該氣壓高度計具有較高的精度和較強的抗干擾能力,且體積小、重量輕、功耗低,適用于微型飛行器飛行參數的測量,具有廣泛的應用前景。
參考文獻
[1] 史利劍.無人駕駛飛機大氣數據計算機系統的研究[D].西安:西北工業大學,2001.
[2] 李長詩,張黎.新型瓦斯監測系統硬件設計[J].煤礦機械,2012,33(8):235-236.
[3] 李超,嚴家明,劉松林.基于ARM的無人機真空速測量系統設計[J].電子技術應用,2013,38(10):23-25.
[4] Zhang Wentao, Li Fang, Liu Yuliang. FBG pressure sensor based on the double shell cylinder with temperature compensation[J]. Measurement,2009,42(3):408-411.
[5] 高磊,馬英輝,劉祎,等.硅壓阻式高精度數字氣壓計設計[J].工礦自動化,2013,39(12):21-25.
[6] 樊尚春,呂俊芳,張慶榮,等.航空測試系統[M].北京:北京航空航天大學出版社,2005.