1 高度測(cè)量系統(tǒng)的設(shè)計(jì)
大氣壓力在數(shù)值上等于所在海拔高度往上直到大氣上界整個(gè)空氣柱的重量,因此理想情況下,,大氣壓力與海拔高度具有一一對(duì)應(yīng)的關(guān)系,。在海平面附近,海拔高度每升高100 m,,氣壓下降大約0.7 kPa,。由于空氣具有可壓縮性,大氣壓力與海拔高度具有非線性關(guān)系,。
高度和氣壓之間的函數(shù)關(guān)系較為復(fù)雜,。如果照搬氣壓公式來(lái)制作電路,電路將變得十分復(fù)雜,,現(xiàn)實(shí)起來(lái)非常困難,。因此,設(shè)計(jì)該高度計(jì)時(shí),,可以將高度按區(qū)段劃分,,分別進(jìn)行數(shù)據(jù)的解算。
1.1 氣壓高度計(jì)設(shè)計(jì)的理論基礎(chǔ)
氣壓與高程的關(guān)系模型:H=T0/L×(P/P0)∧(1/(N-1))(近似公式),。以標(biāo)準(zhǔn)海平面為基準(zhǔn):T0=288.15K,;P0=101.325kPa;N=5.2558 8,;L=-0.006 5℃/m,,通過計(jì)算結(jié)果可見表1。從表中數(shù)據(jù)可以看出,,傳感器的漂移等引起的誤差對(duì)高端和低端的影響是不同的,。為提高測(cè)量精度,設(shè)計(jì)時(shí)要考慮這一點(diǎn),。根據(jù)氣壓公式可以得出0~6 000 m量程內(nèi)的壓力變化范圍在47.18~101.325 kPa,。據(jù)此可確定硅壓阻式傳感器量程。為充分利用傳感器的精度,,選擇硅壓阻式傳感器量程要盡量接近測(cè)量范圍,。
1.2 高度計(jì)的硬件設(shè)計(jì)
硬件結(jié)構(gòu)由微型硅壓阻式傳感器、單片機(jī),、A/D轉(zhuǎn)換,、精密參考電壓、顯示驅(qū)動(dòng)模塊,、串口通信模塊,、電源模塊等幾部分組成。元器件選取主要考慮設(shè)計(jì)精度和體積功耗,,并留有一定的余量,。
1.2.1 單片機(jī)
數(shù)據(jù)處理要求體積小功耗低,,內(nèi)部帶有16位ADC和溫度傳感器,。此處選用C8051F353型單片機(jī),,是美國(guó)Silicon Labs公司最新推出的一款混合信號(hào)片上系統(tǒng)型單片機(jī)芯片,可以工作在-40~+85℃溫度范圍,,28引腳LQFP封裝,,帶有最大放大倍數(shù)128的可編程增益放大器(PGA)。非常適用于多路模擬數(shù)據(jù)采集系統(tǒng),。
1.2.2 壓阻式傳感器
氣壓傳感器在氣壓計(jì)中占據(jù)核心位置,。設(shè)計(jì)時(shí)可根據(jù)測(cè)量精度、測(cè)量范圍,、溫度補(bǔ)償,、測(cè)量絕對(duì)氣壓值等幾個(gè)性能指標(biāo)來(lái)選取氣壓傳感器。選用傳感器量程要盡量與測(cè)量的范圍相符,,以利于同樣的精度條件下減小誤差,。傳感器選用體積較小的飛思卡爾公司的MPX2100D型絕壓傳感器,量程為100~0 kPa,。線性度為±0.25%FS,。滿量程輸出為40 mV(10 V供電)。它用單個(gè)由離子注入工藝形成并經(jīng)激光修整的X型電阻代替一般用4個(gè)電阻構(gòu)成的惠斯登電橋,,避免了由4個(gè)電阻的不匹配而引起的誤差,。
1.2.3 ADC芯片
根據(jù)量程和分辨率選擇A/D轉(zhuǎn)換器位數(shù)和精度。ADC芯片的位數(shù)N根據(jù)公式N≥log2(1+Umax/Umin)計(jì)算(式中:Umax為ADC芯片的滿度輸入電壓,;Umin為ADC芯片最小能分辨出的電壓),,為達(dá)到1 m以上的氣壓高度分辨率,A/D轉(zhuǎn)換器的位數(shù)要在15位以上,。為簡(jiǎn)化電路,,縮小體積,這里A/D轉(zhuǎn)換器采用C8051F353自帶的16位ADC0,。參考電壓使用單片機(jī)內(nèi)部自帶的2.5 V基準(zhǔn),。通過將寄存器ADCOMD中的ADOEN位置“1”和將寄存器ADCOCF中的ADOVREF位清“0”來(lái)使能內(nèi)部電壓基準(zhǔn)。使用時(shí)應(yīng)在VREF和AGND之間接入0.1μF和4.7μF的旁路電容,。
1.2.4 顯示通信電路
由于使用4個(gè)單個(gè)LED進(jìn)行顯示的連線比較復(fù)雜,,同時(shí)單片機(jī)的端口驅(qū)動(dòng)能力也難以保證,此處選用專門的驅(qū)動(dòng)芯片,。顯示驅(qū)動(dòng)選用可編程8位SPI串行LED接口的MAX7219,。串口通信電路主要用來(lái)實(shí)現(xiàn)該系統(tǒng)與上位計(jì)算機(jī)的通信,利用C8051F353型單片機(jī)的UART串口總線通過SP3 232芯片的電平轉(zhuǎn)換與上位計(jì)算機(jī)進(jìn)行通信,。工作于9 600 b/s,,1個(gè)起始位,,8個(gè)數(shù)據(jù)位,1個(gè)停止位,,奇校驗(yàn),。
1.2.5 電源與抗干擾設(shè)計(jì)
使用了低壓差穩(wěn)壓器LM1117A分別為微處理器和為其余電路供電。采用了基準(zhǔn)電壓源MAX6350來(lái)穩(wěn)定對(duì)壓力傳感器的供電,,以保證傳感器輸出的穩(wěn)定性,。將基準(zhǔn)電壓分壓后作為C8051F353型單片機(jī)的電壓參考。PCB板設(shè)計(jì)時(shí)每個(gè)芯片有電源退耦電路,。模擬數(shù)字分開布線,。為了避免傳感器產(chǎn)生的信號(hào)在進(jìn)入A/D采樣前發(fā)生失真并減少傳感器的功耗,在ADC的輸入端連接了濾波器,,降低噪聲并作為緩沖器隔離前后級(jí),,避免其他電路對(duì)ADC采樣的影響。儀器采用干電池供電不存在電源或電網(wǎng)干擾問題,。但現(xiàn)場(chǎng)使用不可避免地會(huì)受到自然放電干擾和其他電氣設(shè)備的放電干擾,。為不增加過多的硬件屏蔽措施,設(shè)計(jì)采用軟件采用了采用了改進(jìn)的平均值濾波算法,。
1.3 高度計(jì)的軟件件設(shè)計(jì)
軟件設(shè)計(jì)流程如圖1所示,,采用模塊化結(jié)構(gòu),方便調(diào)試,。包括初始化子程序,、采樣數(shù)據(jù)處理、A/D轉(zhuǎn)換子程序,、壓力補(bǔ)償子程序,、數(shù)據(jù)處理子程序、高度計(jì)算子程序,、通信子程序,、顯示子程序等部分組成。
雖然測(cè)量范圍內(nèi)指示空速是大氣動(dòng)壓的單值函數(shù),,但其函數(shù)關(guān)系式比較復(fù)雜,,若由式(1)、(2)由單片機(jī)直接計(jì)算,,要使用浮點(diǎn)運(yùn)算,,會(huì)占用較多的計(jì)算機(jī)資源。該設(shè)計(jì)選定線性插值方法來(lái)計(jì)算指示空速,。用一個(gè)簡(jiǎn)單易實(shí)現(xiàn)的線性函數(shù)代替原復(fù)雜函數(shù),,即:y=yi+ki(x-xi)。式中:yi,,xi,,ki分別代表第i個(gè)插值點(diǎn)氣壓高度值,、大氣靜壓值和插值線段的斜率。插值點(diǎn)的個(gè)數(shù)可由線性插值法的誤差公式確定:
式中:M=max(f"(x)),;δ為計(jì)算精度,。根據(jù)系統(tǒng)要求的計(jì)算精度δ,求出步長(zhǎng)h=xi+1-xi,,得出曲線插值的分段段數(shù)n=60,。預(yù)先計(jì)算各插值點(diǎn)相應(yīng)的氣壓高度值,、大氣靜壓值和插值線段的斜率,,把校正點(diǎn)的數(shù)據(jù)求出,按照一定的規(guī)律構(gòu)成表格存放在單片機(jī)的內(nèi)部ROM中,。采集到的數(shù)據(jù),,先與校正點(diǎn)的數(shù)據(jù)進(jìn)行比較找到數(shù)據(jù)所在的分段,然后將該分段對(duì)應(yīng)的yi,,xi,,ki代入分段插值公式中計(jì)算,即可解算出氣壓高度值,。這樣可在保證精度的前提下提高采樣頻率,。
C8051F353單片機(jī)內(nèi)部設(shè)有溫度傳感器,溫度傳感器系統(tǒng)由兩個(gè)溫度特性不同的二極管和兩個(gè)恒流源組成,。兩個(gè)通道通過ADC的模擬多路選擇器連接到ADC的輸入端,。溫度傳感器系統(tǒng),工作在差分方式,。本文利用C8051F353單片機(jī)內(nèi)部的溫度傳感器對(duì)溫度進(jìn)行采樣,,對(duì)傳感器的輸出進(jìn)行修正,以進(jìn)一步提高輸出精度,。
根據(jù)壓阻式壓力傳感器原理,,所測(cè)壓力大小P與傳感器輸出電壓U是線性關(guān)系。即兩個(gè)參數(shù)關(guān)系為:P=aU+b,。由于傳感器的零位和靈敏度會(huì)隨溫度漂移,,因此系數(shù)a,b也會(huì)隨溫度變化而變化,,即系數(shù)a,,b是溫度的函數(shù)。首先,,通過多次采樣定標(biāo),,由標(biāo)準(zhǔn)壓力源提供分組標(biāo)準(zhǔn)壓力,記錄一定溫度下傳感器的輸出電壓值,,即多組(Pi,,Ui),,i=0,1,,2,,…,n,,然后利用最小二乘法進(jìn)行曲線擬合,。為使總誤差最小,可用Q對(duì)a,,b求偏導(dǎo)數(shù),,令這兩個(gè)偏導(dǎo)數(shù)為零,則求解方程得出一定溫度對(duì)應(yīng)的系數(shù)(at,,bt),。其中t=-10℃,0℃,,10℃,,…,50℃,。壓力大小P與輸出電壓U關(guān)系為:
然后再通過牛頓插值法,,根據(jù)溫度傳感器提供的溫度參數(shù)t,對(duì)壓力P與電壓U關(guān)系式進(jìn)行插值修正,。由插值多項(xiàng)式:
根據(jù)一定溫度修正后壓力P與電壓U的關(guān)系式,,可以由所測(cè)電壓U計(jì)算出實(shí)際壓力值P。
2 實(shí)驗(yàn)結(jié)果和誤差分析
由于傳感器的最大誤差在測(cè)量值的最高端,,如果此段的誤差滿足設(shè)計(jì)要求,,其他分段即可滿足要求。結(jié)果如表2所示,。由于仿真階段排除了可能出現(xiàn)的軟硬件錯(cuò)誤,,在后繼的PCB制版及總體調(diào)試中非常順利。實(shí)際電路中由于存在電磁干擾和溫度漂移,,整體誤差比仿真略大,,對(duì)于誤差最大來(lái)源的傳感器,已對(duì)其進(jìn)行了單獨(dú)的校正和補(bǔ)償,,最終該測(cè)量系統(tǒng)在-300~+6 000 m的高度范圍內(nèi)誤差小于1m,。
對(duì)于海拔高度,系統(tǒng)測(cè)量誤差主要來(lái)自傳感器,、放大電路和轉(zhuǎn)換器三項(xiàng)誤差,,用均方根法可表示為:
要降低系統(tǒng)誤差,就要分別降低這三項(xiàng)誤差,。其中放大器電路的誤差,,主要由放大電路中所用電阻的精度,、集成運(yùn)算放大器的性能和電路的結(jié)構(gòu)決定。設(shè)計(jì)和調(diào)校好的放大電路可以使該項(xiàng)誤差很小,,基本可以忽略,。ADC誤差主要是其積分非線性誤差、微分非線性誤差,、偏移誤差,、滿量程誤差和偏移溫度系數(shù)誤差。現(xiàn)代放大電路的誤差和ADC誤差遠(yuǎn)小于傳感器的誤差,。所以系統(tǒng)的誤差主要決定于傳感器的誤差,。如要進(jìn)一步提高測(cè)量精度,可以換用更高精度的傳感器,。
3 結(jié)語(yǔ)
該高度計(jì)避免了機(jī)械部件帶來(lái)的機(jī)械誤差,,充分利用了C8051F353單片機(jī)內(nèi)部資源。具有體積小,、精度高和智能化誤差補(bǔ)償?shù)忍攸c(diǎn),特別適合在小型飛行器上使用,。具有很好的實(shí)用性,,適用于需要實(shí)時(shí)高度信息的場(chǎng)合,可以完成載體上多種高度參數(shù)的實(shí)時(shí)測(cè)量和顯示,,內(nèi)有串口通信模塊,,不僅可顯示本機(jī)測(cè)量值,也可通過串口發(fā)送給大氣數(shù)據(jù)計(jì)算機(jī),,實(shí)現(xiàn)數(shù)據(jù)的記錄和監(jiān)測(cè),。有廣泛的應(yīng)用前景。