1.引言
無人機(jī)的高度測(cè)量傳統(tǒng)上一直采用靜壓傳感器作為感知手段,,通過其壓差膜盒對(duì)大氣靜壓的感應(yīng),,將大氣壓力轉(zhuǎn)化為模擬信號(hào)輸出,從而計(jì)算出實(shí)際的高度值[1],。由于大氣壓力的變化除了與高度變化緊密聯(lián)系外,,與本地的實(shí)際溫度也密切相關(guān),,但是大部分靜壓傳感器在設(shè)計(jì)時(shí)并未考慮到實(shí)際溫度對(duì)大氣壓力的影響,這就造成了實(shí)際輸出靜壓值與真實(shí)值之間的大幅度偏差,,從而影響了高度的精確計(jì)算[2],。
本文針對(duì)上述不足,提出了使用帶有溫度補(bǔ)償和校準(zhǔn)系數(shù)的高靈敏度靜壓傳感器MS5534B作為無人機(jī)高度測(cè)量的傳感器件,,同時(shí)考慮到無人機(jī)飛控處理器運(yùn)算能力不足的實(shí)際情況,,提出一種分段擬合曲線的線性算法,以較高的精度實(shí)現(xiàn)了無人機(jī)的高度計(jì)算,。
2.系統(tǒng)硬件設(shè)計(jì)
2.1MS5534B的特性
MS5534B是一種低電壓,、低功耗、高精度的測(cè)壓力模塊,,其中包含一個(gè)壓阻式壓力傳感器和一個(gè)15bit的ADC集成模塊,,具有數(shù)字輸出功能,它可以提供16位的氣壓和溫度數(shù)字信息,,壓力測(cè)量范圍10~1100mbar,,分辨率為0.1mbar。另外,,傳感器有六個(gè)軟件校準(zhǔn)系數(shù),,壓力絕對(duì)精度為+/-1.5mbar,相對(duì)精度為+/-0.5mbar,,并且不需再接其他外圍模塊,,接口簡(jiǎn)單,電路連接方便,。該模塊尺寸很小,,平面尺寸為9mmX9mm,厚度僅為3.7mm,,可以在-40°C到+125°C環(huán)境中應(yīng)用[3],。模塊的內(nèi)部結(jié)構(gòu)圖如圖1所示。
2.2系統(tǒng)組成及接口連接
基于MS5534B的高度傳感器系統(tǒng)主要有兩部分組成:(1)MS5534B氣壓數(shù)據(jù)采集單元,;(2)ARM7微處理器單元,。MS5534B的主要功能就是把壓阻壓力傳感器測(cè)得的未經(jīng)補(bǔ)償?shù)臍鈮耗M電壓輸出量轉(zhuǎn)化為16位數(shù)字的絕對(duì)氣壓值D1,同時(shí)輸出16位的絕對(duì)溫度值D2,。在飛控系統(tǒng)中采用了32位微處理器內(nèi)核的ARM7,,由于其快速的運(yùn)算速度和豐富的外圍接口資源,所以將MS5534B直接通過標(biāo)準(zhǔn)的SPI接口與其相連,,簡(jiǎn)化了電路設(shè)計(jì),,提高了實(shí)時(shí)性。
ARM7微處理器與氣壓傳感器間的通信通過標(biāo)準(zhǔn)SPI接口完成[4]。DOUT,、DIN分別是數(shù)字輸出,、輸入引腳,SCLK為串行數(shù)據(jù)時(shí)鐘,,MCLK為主頻32.768kHZ的系統(tǒng)時(shí)鐘,,由微處理器提供。MS5534B數(shù)字輸出的參考電壓是3V供電電壓,,外接的4.7uF鉭電容應(yīng)盡量靠近MS5534B,,以保證數(shù)據(jù)轉(zhuǎn)換時(shí)的供電穩(wěn)定和轉(zhuǎn)換精度。模塊實(shí)物和引腳分布圖如圖2所示,。
3.系統(tǒng)軟件設(shè)計(jì)
3.1系統(tǒng)軟件設(shè)計(jì)流程
每個(gè)MS5534B在出廠時(shí)都有一個(gè)針對(duì)模塊特有的四個(gè)Word校準(zhǔn)數(shù)據(jù),,儲(chǔ)存在64位的PROM中。ARM7微處理器在初始化以后通過串口從MS5534B中讀出Word1~Word4,,然后運(yùn)用邏輯移位操作方式轉(zhuǎn)化為6個(gè)校準(zhǔn)補(bǔ)償系數(shù)C1~C6。ARM7微處理器從MS5534B不斷讀取絕對(duì)氣壓值D1和溫度值D2,,然后結(jié)合校準(zhǔn)補(bǔ)償系數(shù)計(jì)算求得相對(duì)氣壓值P,,判斷其是否在有效范圍內(nèi),對(duì)有效值進(jìn)行低通濾波處理,,最后按折線法轉(zhuǎn)化為海拔高度值,。將高度值通過與飛控系統(tǒng)相連接的無線數(shù)據(jù)傳輸模塊實(shí)時(shí)傳輸?shù)降孛嬲荆瑢?shí)時(shí)掌握飛機(jī)的飛行高度,,對(duì)出現(xiàn)的意外情況可以及時(shí)處理[5],。基于MS5534B的高度測(cè)量系統(tǒng)的軟件流程圖3如下所示,。
3.2折線線性擬合法將氣壓值轉(zhuǎn)化為高度值
在實(shí)際應(yīng)用中,,大氣壓力與海拔高度的關(guān)系是非線性的[6],傳統(tǒng)的方法是將氣壓值與對(duì)應(yīng)的高度值做成數(shù)據(jù)表,,運(yùn)用查表的方式,,如果精確到1m,則需要上萬個(gè)數(shù)據(jù),,需要龐大的存儲(chǔ)空間,,且耗時(shí)較大,另外由于飛控系統(tǒng)中微處理器對(duì)大量浮點(diǎn)運(yùn)算的能力不是很強(qiáng),,并且飛控系統(tǒng)對(duì)實(shí)時(shí)性要求很高,,為了節(jié)省寶貴的存儲(chǔ)空間,所以本系統(tǒng)設(shè)計(jì)運(yùn)用折線法進(jìn)行線性擬合[7],。折線線性擬合法的基本思想就是將被逼近的函數(shù)曲線根據(jù)變化情況分成多個(gè)間隔區(qū)域值,,為了提高精度及縮短運(yùn)算時(shí)間,各間隔域值內(nèi)可根據(jù)精度要求,采用不同的斜率線性線段表示曲線線段,。擬合原理誤差分析如圖4所示,。
根據(jù)大量實(shí)驗(yàn)數(shù)據(jù)和理論推導(dǎo)得擬合公式(1)
其中,alti表示海拔高度(0.1m),,pres表示氣壓值(mbar),,j,i表示折線間隔系數(shù),。在不同的i,,j取值范圍內(nèi),大氣壓向高度轉(zhuǎn)化時(shí)是線性的,,提高了轉(zhuǎn)化的時(shí)間,,誤差是周期性的,且在一個(gè)小的范圍內(nèi),。將正常的工作高度范圍內(nèi)分成不同的多段,,會(huì)得到不同的高精度值。i,,j的一種分段列表,,如表1所示。
根據(jù)以上表格數(shù)據(jù),,運(yùn)用Matlab對(duì)大氣壓向高度轉(zhuǎn)化方程所得曲線圖進(jìn)行擬合[8],擬合效果非常好,,仿真結(jié)果如下圖5所示。
為了進(jìn)一步提高精度,,可以采用非等距分段法,,根據(jù)函數(shù)曲線形狀的變化率的大小來修正間隔點(diǎn)間的距離。曲率變化大的部分,,距離取小一點(diǎn),,而在曲線較平緩區(qū)域距離取大一點(diǎn)。
圖6為在海拔-700m~8000m時(shí),,運(yùn)用Matlab仿真折線擬合法所得海拔高度與我國(guó)標(biāo)準(zhǔn)大氣壓對(duì)照高度誤差示意圖,,在-700m~8000m時(shí)最大高度誤差為+/-5m,而在-100~1000m時(shí)的誤差在+/-3m以內(nèi),,適合小型無人機(jī)的高度需求,。
4.結(jié)論
在自行研制的無人機(jī)自動(dòng)駕駛儀上,應(yīng)用了上述的基于MS5534B的氣壓高度測(cè)量系統(tǒng),,在實(shí)際多次飛行任務(wù)中測(cè)試的效果良好,,定位高度準(zhǔn)確。本文針對(duì)小型無人機(jī)自動(dòng)駕駛儀微處理器浮點(diǎn)運(yùn)算能力不強(qiáng),,實(shí)時(shí)性要求高的特點(diǎn),,提出折線線性擬合的方法,減少了大量浮點(diǎn)運(yùn)算,提高了運(yùn)算效率,,節(jié)省了寶貴的RAM存儲(chǔ)空間,,適合于小型無人機(jī)的自動(dòng)駕駛儀中。