彭海軍, 朱 敏, 魯照權(quán), 鄭國俊, 余 波
(合肥工業(yè)大學(xué) 電氣與自動化工程學(xué)院,安徽 合肥 230009)
電冰箱出廠前,需要讓其試運行幾十分鐘甚至數(shù)小時,同時檢測冷藏室、冷凍室、壓縮機進氣口、出氣口和環(huán)境溫度、壓縮機功率等參數(shù),以判斷電冰箱是否合格[1]。一條電冰箱檢測線少則使用數(shù)百只溫度傳感器,多則使用數(shù)千只溫度傳感器。為了準確測量溫度,曾經(jīng)采用熱電阻、AD590等模擬式溫度傳感器。由于模擬式溫度傳感器均需要檢測轉(zhuǎn)換電路與AD轉(zhuǎn)換器,使得電冰箱檢測線的制造與維護成本很高。DS18B20的問世給電冰箱檢測線數(shù)千點溫度檢測提供了極其方便的途徑。DS18B20直接輸出相應(yīng)溫度的數(shù)字量,無須轉(zhuǎn)換電路與AD轉(zhuǎn)換器,使用極其方便,已被電冰箱生產(chǎn)廠家廣泛采用。
DS18B20采用“1-Wire”接口,測量溫度范圍為-55~+125℃,最高溫度分辨率為0.062 5℃,在-10~+85℃范圍內(nèi),測量精度為±0.5℃。
電冰箱冷凍室的溫度會低于-20℃,壓縮機排氣口溫度可高達60℃左右,為了保證檢測線上數(shù)千只溫度傳感器測量偏差不大于±0.5℃,必須對DS18B20至少在-30~+60℃溫度范圍內(nèi)進行校驗篩選。為此,本文設(shè)計了一個DS18B20溫度傳感器校驗平臺。
溫度傳感器校驗平臺的系統(tǒng)框圖如圖1所示。系統(tǒng)以P89LPC935單片機為核心,Pt100測溫電路為校驗平臺提供標準溫度值。DS18B20為待測溫度傳感器,本系統(tǒng)一次可以檢測16只。繼電器接口用來控制酒精槽制冷、制熱工作,為傳感器模擬-30~+60℃范圍的工作溫度。顯示采用七段數(shù)碼管,顯示標準溫度、待測溫度傳感器的測量值、兩者偏差等數(shù)據(jù)。串口通信用于上位機顯示界面設(shè)計。通過按鍵實現(xiàn)系統(tǒng)的開始、停止、模式選擇等功能。
圖1 系統(tǒng)硬件設(shè)計框圖
DS18B20是單總線、數(shù)字式溫度傳感器,它有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性,它的操作協(xié)議主要包括:初始化時序、讀時序和寫時序。DS18B20測得的溫度值存儲在高速暫存RAM的前2個字節(jié)中。P89LPC935通過連續(xù)2次讀操作,可以獲得溫度值。首先讀取的是低位字節(jié)TL,接著是高位字節(jié)TH。DS18B20默認是12位溫度分辨率,前5位是符號位,用S表示。若溫度值為正,則S為0;若溫度值為負,則S為1,這時需要先對TH和TL求補。將2個字節(jié)合并,t′=(TH&0x07)×256+TL,t=0.062 5t′,t即為DS18B20測得溫度值[2]。
P89LPC935與DS18B20的接口如圖2所示。本系統(tǒng)需要一次校驗16只DS18B20,因單片機引腳有限,故采用16選1模擬電子開關(guān)CD4067進行溫度檢測通道切換。A、B、C、D為通道選擇端,INT為控制端。當(dāng)INT=1時,關(guān)閉所有通道。
圖2 單片機與DS18B20接口電路
標準溫度值是系統(tǒng)的參考溫度,各個待校驗的DS18B20測得的溫度值都需要和標準值進行比較,以決定是否合格,因此,標準溫度值的獲取至關(guān)重要。Pt100鉑電阻具有精度高、穩(wěn)定性好、性能可靠等特點。
在0~650℃范圍內(nèi),有
在-200~0℃范圍內(nèi),有
Rt=R0[1+At+Bt2+C(t-100)t3]。其中,R0=100Ω,為t=0℃ 時電阻值;A=3.968 47 × 10-3;B=- 5.847 × 10-7;C=-4.22×10-12。
Pt100是電阻式溫度傳感器,溫度變化引起電阻變化。將電阻的變化轉(zhuǎn)換成電壓信號,經(jīng)放大后,再將模擬電壓信號轉(zhuǎn)換成數(shù)字信號,由單片機換算成相應(yīng)的溫度。Pt100測溫電路采用恒流三線制接法,如圖3所示。
LM334為恒流源,外加二極管和電阻,就可以為Pt100提供恒定的電流,調(diào)節(jié)電位器R3,即可改變電流大小。當(dāng)溫度改變時,Pt100電阻改變,引起電壓變化。MC1403為基準電壓源,提供2.5V精密電壓,經(jīng)電位器分壓后送入運放作為調(diào)零信號。前端測得電壓值經(jīng)過運放OP07放大,送入A/D轉(zhuǎn)換器,轉(zhuǎn)換成數(shù)字信號后換算成溫度值,即可以實現(xiàn)溫度的測量[3-5]。
圖3 Pt100恒流三線制測溫原理圖
在Pt100測溫過程中,由于各種原因,測量結(jié)果和真實值之間總會存在一定的差異,即測量誤差,使得測量結(jié)果不能客觀地反映實際溫度。根據(jù)測量誤差的性質(zhì),可以將誤差分為系統(tǒng)誤差、隨機誤差和粗大誤差。由于Pt100測得的溫度為標準溫度值,因此,必須將它的誤差減少到最小,這就需要選擇合適的誤差分析和消除方法。
為消除系統(tǒng)誤差,采用恒流三線制溫度轉(zhuǎn)換電路,在測溫前必須調(diào)整好電路的零點和增益。零點包括運放的零點和溫度的零點。調(diào)運放的零點是指將J-Pt100的1號腳與B點短接時調(diào)節(jié)運放的調(diào)零電位器R5,使運放的輸出為零;調(diào)溫度的零點是指用標準電阻箱替代Pt100,將其阻值打在100Ω上,調(diào)節(jié)R3,使A點電壓為0.3V,即恒流源為3mA,再調(diào)節(jié)R5,使B點電壓也為0.3V,此時溫度顯示值為零;再將標準電阻箱打在123.24Ω上,調(diào)節(jié)電位器R10,使C點電壓為P89LPC935內(nèi)部AD參考電壓3.3V,溫度顯示值為60 ℃[6]。
由于Pt100的電阻與溫度之間并不是完全的線性關(guān)系,本文采用線性插值算法對非線性進行補償。在-30~60℃溫度范圍內(nèi),將Pt100的溫度與電阻之間的曲線分成3段,每段為線性關(guān)系,如(1)~(3)式所示。
當(dāng)-30℃≤t≤0℃時,
當(dāng)0℃<t≤30℃時,
當(dāng)30℃<t≤60℃時,
隨機誤差主要是由對測量值影響微小但卻互不相關(guān)的大量因素共同造成的,這些因素主要有溫度波動、噪聲干擾、電磁場微變、空氣擾動等。采用算術(shù)平均值法來消除隨機誤差[7-8]。
為消除粗大誤差,通常是采用去極值法,但是它有一個很大的缺點,就是當(dāng)測量數(shù)據(jù)中含有粗大誤差的個數(shù)多于2個時,就不再有效了?;诮y(tǒng)計理論的粗大誤差判定準則主要有3σ準則、格羅布斯準則、羅曼諾夫斯基準則和狄克松準則。本系統(tǒng)測量次數(shù)取15次,采用格羅布斯準則可以獲得較好的判定效果。先將測量數(shù)據(jù)按從小到大排序,格羅布斯臨界系數(shù)G(n,α)值為G0,分別計算出平均值、標準差σ、G1和Gn,其中
若G1≥Gn且G1≥G0,則x1含有粗大誤差,應(yīng)予以剔除;若Gn≥G1且Gn≥G0,則xn含有粗大誤差,應(yīng)予以剔除;若G1<G0且Gn<G0,則不存在粗大誤差。
圖4 應(yīng)用格羅布斯準則消除粗大誤差軟件流程
在相同條件下,Pt100測溫取15次,測量數(shù)據(jù)見表1所列。
當(dāng)利用去極值法消除粗大誤差時,在表1中,去掉9.88和12.71這2個值,再求剩下13個數(shù)據(jù)的算術(shù)平均值以消除隨機誤差,可得=10.21,此值即為Pt100溫度測量結(jié)果。
當(dāng)利用格羅布斯準則消除粗大誤差時,首先可以判定表1中第6個測量值x6=12.71含有粗大誤差,應(yīng)予以剔除。對剩下的14個數(shù)據(jù),可以判定第7個測量值x7=12.71含有粗大誤差,應(yīng)予以剔除。對剩下的13個數(shù)據(jù),可以判定這組數(shù)據(jù)已不含粗大誤差。再用算術(shù)平均值法消除隨機誤差,即=9.99,此值就為Pt100測量結(jié)果。
表1 Pt100溫度測量數(shù)據(jù)
在相同測量條件下,當(dāng)利用格羅布斯準則消除粗大誤差時,得到的Pt100測量結(jié)果為9.99℃,而利用去極值法時,得到的測量結(jié)果為10.21℃,此時實際溫度為10℃,由此可以得出,采用格羅布斯準則消除粗大誤差,與去極值法相比,更接近真值。
為方便使用,采用Visual C++6.0設(shè)計上位機顯示界面,用來顯示標準溫度值、各個待校驗DS18B20的溫度值以及和標準溫度的差值、最終校驗結(jié)果等[10-11]。上位機顯示界面和校驗結(jié)果如圖5所示。
圖5 上位機顯示界面設(shè)計
在-30~+60℃溫度范圍內(nèi),為了保證電冰箱檢測線上數(shù)千只溫度傳感器DS18B20的測量偏差均不大于±0.5℃,本文以P89LPC935為核心設(shè)計了DS18B20溫度傳感器校驗平臺,用Visual C++6.0設(shè)計了上位機校驗結(jié)果顯示界面,采用Pt100熱電阻作為標準溫度傳感器;為消除系統(tǒng)誤差,設(shè)計了恒流三線制溫度轉(zhuǎn)換電路,并采用線性插值算法對非線性進行補償;采用算術(shù)平均值法消除隨機誤差;分別采用格羅布斯準則和去極值法來消除粗大誤差,通過比較可得采用格羅布斯準則消除粗大誤差,要比去極值法更接近真值。實驗結(jié)果表明該校驗平臺設(shè)計合理、判斷準確、使用方便,經(jīng)篩選后的傳感器完全符合用戶的要求。
[1]曹國安,萬王杰,張 璽.電冰箱生產(chǎn)中的價值流分析及其改善[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2010,33(10):1471-1475.
[2]雷建龍.數(shù)字溫度傳感器DS18B20讀出數(shù)據(jù)錯誤分析[J].電子器件,2007,30(6):2183-2185.
[3]張志勇,辛長宇,朱玉龍,等.Pt100溫度傳感器非線性的補償 方 法 與 電 路 實 現(xiàn) [J].電 子 器 件,2007,30(6):2189-2191.
[4]王 龍.基于鉑電阻Pt100的高精度溫度測控系統(tǒng)設(shè)計[J].吉首大學(xué)學(xué)報:自然科學(xué)版,2009,30(3):70-73.
[5]Tong A.Improving the accuracy of temperature measurements[J].Sensor Review,2009,21(3):193-198.
[6]潘 雄,付宗堂,范曉明.一種處理系統(tǒng)誤差的新方法[J].儀器儀表學(xué)報,2007,28(4):630-634.
[7]費業(yè)泰.誤差理論與數(shù)據(jù)處理[M].北京:機械工業(yè)出版社,2005:12-24.
[8]Tao Chongde,Wang Guanglin,Shao Dongxiang.New method on rigidity measurement of precision elastic elements[J].Journal of Harbin Institute of Technology:New Series,1995,12(1):34-36.
[9]隋文濤,張 丹.測試數(shù)據(jù)中粗大誤差的判定技術(shù)及其軟件實現(xiàn)[J].電測及儀表,2006,43(11):61-63.
[10]龔建偉,熊光明.Visual C++/Turbo C串口通信編程實踐[M].北京:電子工業(yè)出版社,2007:44-85.
[11]王中訓(xùn),徐 超,王德法.基于VC++6.0的多串口通信方法[J].計算機應(yīng)用,2008,28(6):254-256.