<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的氣壓式高度計(jì)設(shè)計(jì)

          基于單片機(jī)的氣壓式高度計(jì)設(shè)計(jì)

          作者: 時(shí)間:2011-07-25 來源:網(wǎng)絡(luò) 收藏

          1.3 計(jì)的軟件件
          軟件流程如圖1所示,采用模塊化結(jié)構(gòu),方便調(diào)試。包括初始化子程序、采樣數(shù)據(jù)處理、A/D轉(zhuǎn)換子程序、壓力補(bǔ)償子程序、數(shù)據(jù)處理子程序、計(jì)算子程序、通信子程序、顯示子程序等部分組成。

          本文引用地址:http://www.ex-cimer.com/article/172606.htm

          b.JPG


          雖然測量范圍內(nèi)指示空速是大氣動(dòng)壓的單值函數(shù),但其函數(shù)關(guān)系式比較復(fù)雜,若由式(1)、(2)由直接計(jì)算,要使用浮點(diǎn)運(yùn)算,會(huì)占用較多的計(jì)算機(jī)資源。該選定線性插值方法來計(jì)算指示空速。用一個(gè)簡單易實(shí)現(xiàn)的線性函數(shù)代替原復(fù)雜函數(shù),即:y=yi+ki(x-xi)。式中:yi,xi,ki分別代表第i個(gè)插值點(diǎn)值、大氣靜壓值和插值線段的斜率。插值點(diǎn)的個(gè)數(shù)可由線性插值法的誤差公式確定:
          c.JPG
          式中:M=max(f(x));δ為計(jì)算精度。根據(jù)系統(tǒng)要求的計(jì)算精度δ,求出步長h=xi+1-xi,得出曲線插值的分段段數(shù)n=60。預(yù)先計(jì)算各插值點(diǎn)相應(yīng)的高度值、大氣靜壓值和插值線段的斜率,把校正點(diǎn)的數(shù)據(jù)求出,按照一定的規(guī)律構(gòu)成表格存放在的內(nèi)部ROM中。采集到的數(shù)據(jù),先與校正點(diǎn)的數(shù)據(jù)進(jìn)行比較找到數(shù)據(jù)所在的分段,然后將該分段對應(yīng)的yi,xi,ki代入分段插值公式中計(jì)算,即可解算出高度值。這樣可在保證精度的前提下提高采樣頻率。
          C8051F353內(nèi)部設(shè)有溫度傳感器,溫度傳感器系統(tǒng)由兩個(gè)溫度特性不同的二極管和兩個(gè)恒流源組成。兩個(gè)通道通過ADC的模擬多路選擇器連接到ADC的輸入端。溫度傳感器系統(tǒng),工作在差分方式。本文利用C8051F353單片機(jī)內(nèi)部的溫度傳感器對溫度進(jìn)行采樣,對傳感器的輸出進(jìn)行修正,以進(jìn)一步提高輸出精度。
          根據(jù)壓阻式壓力傳感器原理,所測壓力大小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)行曲線擬合。為使總誤差d.JPG最小,可用Q對a,b求偏導(dǎo)數(shù),令這兩個(gè)偏導(dǎo)數(shù)為零,則求解方程得出一定溫度對應(yīng)的系數(shù)(at,bt)。其中t=-10℃,0℃,10℃,…,50℃。壓力大小P與輸出電壓U關(guān)系為:
          f.JPG



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();