基于單片機(jī)的氣壓式高度計(jì)設(shè)計(jì)
1.3 高度計(jì)的軟件件設(shè)計(jì)
軟件設(shè)計(jì)流程如圖1所示,采用模塊化結(jié)構(gòu),方便調(diào)試。包括初始化子程序、采樣數(shù)據(jù)處理、A/D轉(zhuǎn)換子程序、壓力補(bǔ)償子程序、數(shù)據(jù)處理子程序、高度計(jì)算子程序、通信子程序、顯示子程序等部分組成。本文引用地址:http://m.butianyuan.cn/article/172606.htm
雖然測(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è)通道通過(guò)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ù)。首先,通過(guò)多次采樣定標(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)系為:
評(píng)論