<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 用單片機軟件實(shí)現傳感器溫度誤差補償

用單片機軟件實(shí)現傳感器溫度誤差補償

——
作者:徐 軍 (江蘇省淮海工貿學(xué)?;窗?23001) 時(shí)間:2007-01-26 來(lái)源:《現代電子技術(shù)》 收藏

1 引言

本文引用地址:http://dyxdggzs.com/article/21004.htm

對高精度傳感器,溫度誤差已成為提高其性能的嚴重障礙,特別是在環(huán)境溫度變化較大的應用場(chǎng)合更是如此。依靠傳感器本身附加一些簡(jiǎn)單的硬件補償措施是很困難的,目前對于一傳感器測量系統已大量引入了單片機,實(shí)現自動(dòng)檢測和控制。因此用單片機自身的特點(diǎn),利用軟件來(lái)解決傳感器溫度誤差難題是一條有效途徑。

在一單片機傳感器測量系統中,要解決傳感器溫度誤差補償問(wèn)題,首先要測出傳感器點(diǎn)的溫度,該溫度信號作為多路采樣開(kāi)關(guān)采集信號的一路送入單片機。測溫元件通常是安裝在傳感器內靠近敏感元件的地方,用來(lái)測量傳感器點(diǎn)的環(huán)境溫度,測溫元件的輸出經(jīng)放大及a/d轉換送到單片機,單片機通過(guò)并行接口接收溫度數據,并暫存溫度數據。信號采樣結束,單片機運行溫度誤差補償程序,對傳感器信號的溫度誤差進(jìn)行補償。對多個(gè)傳感器,可用多個(gè)測溫元件,常用的測溫元件有半導體熱敏電阻、ad950測溫管、pn結二極管等。原理框圖如圖1。

2 建立溫度誤差的數學(xué)模型

溫度變化給傳感器實(shí)際測量帶來(lái)誤差,表現在傳感器的輸入輸出特性曲線(xiàn)上產(chǎn)生非線(xiàn)性變化。為解決這樣問(wèn)題,必須使問(wèn)題簡(jiǎn)單化,找出它們間的關(guān)系,建立對應的數學(xué)模型。

傳感器特性曲線(xiàn)y=f(x),如圖2所示。

我們可以把該曲線(xiàn)按一定要求分成若干段,在此設分成n段,然后把相鄰兩段點(diǎn)之間的曲線(xiàn)用直線(xiàn)近似,這樣可以利用線(xiàn)性方法求出輸入值x所對應的輸出值,這就是線(xiàn)性插值法。設輸入值在(xi, xi+1)之間,則其對應的輸出值y可由下式求得:
從上式可知,只要n取得足夠大就可獲得良好的精度。

若傳感器的輸入和輸出之間的特性曲線(xiàn)的斜率變化很大,采用線(xiàn)性插值法,誤差就很大,這時(shí)可采用二次曲線(xiàn)插值法,即通過(guò)曲線(xiàn)上3個(gè)點(diǎn)a(x0、y0),b(x1、y1),c(x2、y2)做一拋物線(xiàn),用此曲線(xiàn)代替原來(lái)的曲線(xiàn),如圖3所示。曲線(xiàn)方程為一元二次方程,一般形式為:

y=k0+k1x+k2x2

式中k0,k1,k2為待定系數,可用曲線(xiàn)y=f(x)的3個(gè)點(diǎn)a,b,c的二元一次方程組求解,這就需要解聯(lián)立方程組,計算較復雜,列出的程序也較復雜,因此可以用另外一種型式:

由此可見(jiàn),利用3個(gè)已知點(diǎn)a,b,c的數值求出系數m0,m1,m2后,存放在相應的內存單元,然后根據某點(diǎn)的x值代入式(1)即可求出被測值y。

以上是對傳感器建立溫度誤差的數學(xué)模型,用此模型可實(shí)現傳感器溫度補償。

3 實(shí)現溫度誤差補償的方法

首先給定k個(gè)溫度值(t0,t1,t2,…,tk-1),測出每個(gè)溫度點(diǎn)上傳感器靜態(tài)特性曲線(xiàn)在u 軸上的截距(u0,u1,…,uk),每個(gè)溫度點(diǎn)上傳感器特性曲線(xiàn)的數據要精確,必要時(shí)應在恒溫箱內進(jìn)行,這需要較大的工作量,如圖4所示。

圖中y為被測物理量,u為輸出電壓,利用最小二乘法曲線(xiàn)擬合求出截距u的多項式:
將b0,b1,b2,…,bk和計算上式的子程序送入內存,溫度值t0,t1,…,tk-1和傳感器對應的輸出電壓值u0,u1,…, uk-1按順序分配方式存入內存,構成一個(gè)線(xiàn)性表,采集數據時(shí),cpu按線(xiàn)性查找對應溫度的電壓值u,并按下式計算對應的被測物理量y:

y =(u-u) tgα

式中u是溫度直線(xiàn)在坐標上的截距,可用線(xiàn)性插值由輸入的t求得,α是溫度直線(xiàn)與縱坐標軸u的夾角。

按圖5流程編制補償程序,并作為子程序與監控程序一并使用,以便采集數據時(shí)按流程圖自動(dòng)溫度補償。

對溫度特性曲線(xiàn)斜率變化大的傳感器,一般采用分段線(xiàn)性插值法,在不同溫度t(i=1,2,…,k)下測出下列數值:
式中: yij—溫度ti時(shí)第j次輸入傳感器的被測物理量;

uij—溫度ti時(shí)第j次測得的傳感器輸出電壓。

用擬合法求出各溫度上的傳感器靜態(tài)輸出輸出特性的擬合多項式:

將b0,b1,b2,…,bk和以上多項式的計算程序寫(xiě)入內存,數據采集過(guò)程按圖6流程圖進(jìn)行溫度補償,即由輸入t和u查找和計算y值,采用的分段線(xiàn)性插值方法,只要k足夠大,其誤差就足夠小。

4 結語(yǔ)

用單片機的軟件實(shí)現傳感器溫度誤差補償,是一種簡(jiǎn)便、有效的方法。它可以大大提高傳感器的測量精度,降低測量系統電路的復雜程度,提高可靠性,降低成本。特別是如硅阻、應變片、電容式等傳感器受溫度影響大,使用該方法可以提高它們測量精度。目前單片機廣泛使用在自動(dòng)檢測儀表中,使用該方法實(shí)現傳感器溫度誤差補償,是一條行之有效的途徑。




關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>