中心議題:
- 介紹利用徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)和智能溫度傳感器DS18B20改善傳感器精度的新方法
- 通過大量的樣本數(shù)據(jù)訓(xùn)練構(gòu)建雙輸入單輸出網(wǎng)絡(luò)模型
- 采用改進(jìn)的算法實(shí)現(xiàn)傳感器高精度溫度補(bǔ)償
解決方案:
- 采用DS18B20智能溫度傳感器和RBF神經(jīng)網(wǎng)絡(luò)相結(jié)合的溫度補(bǔ)償新方法
- 在DS1820中將低八位用補(bǔ)碼表示,第九位以符號擴(kuò)展形式擴(kuò)展至其它七位
- 引入DS18B20作輔助測量傳感器
一般工業(yè)測控現(xiàn)場的環(huán)境溫度變化急劇,傳感器大多數(shù)都對溫度有一定的敏感度,這樣就會使傳感器的零點(diǎn)和靈敏度發(fā)生變化,從而造成輸出值隨環(huán)境溫度的變化而變化,導(dǎo)致測量出現(xiàn)附加誤差,因此溫度補(bǔ)償問題一直是工業(yè)測控系統(tǒng)中的關(guān)鍵環(huán)節(jié)[1]。本文采用DS18B20智能溫度傳感器和RBF神經(jīng)網(wǎng)絡(luò)相結(jié)合的溫度補(bǔ)償新方法來實(shí)現(xiàn)傳感器高精度溫度補(bǔ)償。本文介紹的方法將DS18B20測量值作為溫度補(bǔ)償輸入,將傳感器本身的測量值作為另一輸入,用RBF神經(jīng)網(wǎng)絡(luò)構(gòu)成雙輸入單輸出的補(bǔ)償模型,輸出即為補(bǔ)償后的測量值。RBF神經(jīng)網(wǎng)絡(luò)主要用于傳感器的數(shù)據(jù)處理,以改善傳感器測量精度。
DS18B20數(shù)字溫度傳感器測溫原理
a.DS18B20的特性
DS18B20是美國DALLAS公司繼DS1820之后推出的增強(qiáng)型單總線數(shù)字溫度傳感器,它在測溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較DS1820有了很大的改進(jìn),這給用戶帶來了更方便的使用和更令人滿意的效果。其特點(diǎn)如下:
(1)單線接口:僅需一根口線與單片機(jī)連接;
(2)由總線提供電源,也可用數(shù)據(jù)線供電,電壓范圍:3.0~5.5V;
(3)測溫范圍為:-55~+125℃,在-10~+85 ℃時(shí),精度為0.5℃;
(4)可編程的分辨率為9~12位,對應(yīng)的分辨率為0.5~0.0625℃;
(5)用戶可編程的溫度報(bào)警設(shè)置;
(6)12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字量。
b.DS1820引腳功能說明
DS1820的PR-35封裝形式見圖1,其外表看起來像三極管。另外還有8腳SOIC封裝形式,只用3、4和5腳,其余為空腳或不需連接引腳。不過最常見的形式是PR-35封裝,其引腳說明如表1所示。
c.DS1820溫度數(shù)據(jù)格式
在DS1820中,轉(zhuǎn)換溫度值是以9位二進(jìn)制形式表示的,而輸出溫度則是以16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供。采用的辦法是將低八位用補(bǔ)碼表示,第九位以符號擴(kuò)展形式擴(kuò)展至其它七位。具體溫度表示格式見表2。
在實(shí)際應(yīng)用中,測量溫度往往在0°C以上,此時(shí)可只取16位二進(jìn)制溫度輸出的低8位,即1個(gè)字節(jié),這樣將使計(jì)算和編程工作更為便利。
c.DS18B20的測溫原理
DS18B20的測溫原理為:內(nèi)部計(jì)數(shù)器對一個(gè)受溫度影響的振蕩器的脈沖計(jì)數(shù),低溫時(shí)振蕩器的脈沖可以通過門電路,而當(dāng)?shù)竭_(dá)某一設(shè)置高溫時(shí),振蕩器的脈沖無法通過門電路。計(jì)數(shù)器設(shè)置為-55℃時(shí)的值,如果計(jì)數(shù)器到達(dá)0之前門電路未關(guān)閉,則溫度寄存器的值將增加,這表示當(dāng)前溫度高于-55℃。同時(shí),計(jì)數(shù)器復(fù)位在當(dāng)前溫度值上,電路對振蕩器的溫度系數(shù)進(jìn)行補(bǔ)償,計(jì)數(shù)器重新開始計(jì)數(shù)直到回零。如果門電路仍然未關(guān)閉,則重復(fù)以上過程。溫度轉(zhuǎn)換所需時(shí)間不超過750ms,得到的溫度值的位數(shù)因分辨率不同而不同[2]。DS18B20同AT89C52單片機(jī)的接口電路如圖2所示。這種接口方式只需占用單片機(jī)一根口線,與智能儀器或智能測控系統(tǒng)中的其它單片機(jī)或DSP的接口也可采用類似的方式。
RBF神經(jīng)網(wǎng)絡(luò)及學(xué)習(xí)算法
RBF神經(jīng)網(wǎng)絡(luò)即徑向基函數(shù)(Radial Basis Function)神經(jīng)網(wǎng)絡(luò)[3~4],其結(jié)構(gòu)如圖3所示。它很容易擴(kuò)展到多輸出節(jié)點(diǎn)的情形,在此只考慮一個(gè)輸出變量Y的情況。RBFNN包括一個(gè)輸入層、一個(gè)隱含層和一個(gè)輸出層的最簡模式。隱含層由一組徑向基函數(shù)構(gòu)成,與每個(gè)隱含層節(jié)點(diǎn)相關(guān)的參數(shù)向量為Ci(即中心)和σi(即寬度)。徑向基函數(shù)有多種形式,一般取高斯函數(shù)[5]。具體如下:
上式中,m是隱含層結(jié)點(diǎn)數(shù);||•||是歐幾里德范數(shù);X,Ci∈Rn, ωi是第i個(gè)基函數(shù)與輸出結(jié)點(diǎn)的連接權(quán)值(i=1,2,...,m)。
RBF神經(jīng)網(wǎng)絡(luò)是一種性能良好的前向網(wǎng)絡(luò),它具有最佳逼近性能,在結(jié)構(gòu)上具有輸出—權(quán)值線性關(guān)系、訓(xùn)練方法快速易行、不存在局部最優(yōu)問題的特點(diǎn)。該網(wǎng)絡(luò)的學(xué)習(xí)算法有很多種,本文將帶遺忘因子的梯度下降法應(yīng)用于RBF神經(jīng)網(wǎng)絡(luò)的參數(shù)調(diào)整[6],即在考慮當(dāng)前時(shí)刻(k時(shí)刻)的網(wǎng)絡(luò)狀態(tài)的變化時(shí),將前一個(gè)時(shí)刻(k-1時(shí)刻)的網(wǎng)絡(luò)參數(shù)變化也包括進(jìn)去。其具體算法如下:
其中,J為誤差函數(shù),Y(k)代表希望的輸出,Y(W,k)為網(wǎng)絡(luò)的實(shí)際輸出,W是網(wǎng)絡(luò)的所有權(quán)值組成的向量。
隱層—輸出層連接權(quán)值矩陣的調(diào)整算法為:
隱層中心值矩陣的調(diào)整算法為:
隱層標(biāo)準(zhǔn)偏差矩陣的調(diào)整算法為:
其中,μ(k)為學(xué)習(xí)率,α(k)為動量因子,也稱為遺忘因子,又稱動量項(xiàng)或阻尼項(xiàng)。將其稱為遺忘因子可從對于新舊信息的學(xué)習(xí)與遺忘的角度來理解;稱為動量項(xiàng)或阻尼項(xiàng)是因?yàn)樵诰W(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練中,此項(xiàng)相當(dāng)于阻尼力,當(dāng)訓(xùn)練誤差迅速增大時(shí),它使網(wǎng)絡(luò)發(fā)散得越來越慢??傊?,它使網(wǎng)絡(luò)的變化趨于穩(wěn)定,有利于網(wǎng)絡(luò)的收斂。
測試方法及推廣應(yīng)用分析
實(shí)驗(yàn)中以測量壓力為例,采用Honeywell的24PCGFA1G型壓力傳感器。將傳感器測量值和DS18B20的輸出值作為網(wǎng)絡(luò)輸入層節(jié)點(diǎn)的輸入,與其對應(yīng)的壓力是網(wǎng)絡(luò)輸出層節(jié)點(diǎn)的輸出。采用的RBF神經(jīng)網(wǎng)絡(luò)為三層網(wǎng)絡(luò)結(jié)構(gòu),其中,輸入層有2個(gè)節(jié)點(diǎn),隱含層有8個(gè)節(jié)點(diǎn),輸出層有1個(gè)節(jié)點(diǎn)?;谏弦还?jié)中提到的網(wǎng)絡(luò)參數(shù)調(diào)整算法,通過調(diào)整RBF網(wǎng)絡(luò)中的可調(diào)參數(shù)(隱層節(jié)點(diǎn)數(shù)、學(xué)習(xí)速率、遺忘因子和網(wǎng)絡(luò)權(quán)值、隱層標(biāo)準(zhǔn)偏差等)進(jìn)行網(wǎng)絡(luò)的訓(xùn)練和測試,并采用均方根(RMS)計(jì)算其訓(xùn)練精度和測試精度。共采集樣本數(shù)據(jù)120組,其中72組作為網(wǎng)絡(luò)訓(xùn)練樣本,48組作為網(wǎng)絡(luò)測試樣本,在環(huán)境溫度變化范圍為-5℃~75℃時(shí),最佳RBF的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練精度為0.048%,測試精度為0.062%。同時(shí)基于獲得的實(shí)驗(yàn)數(shù)據(jù),采用最小二乘擬合方法建立的數(shù)學(xué)模型,其擬合精度為0.170%;用單片機(jī)直接預(yù)存線性插值補(bǔ)償?shù)姆椒?,測試精度為0.280%。
對于其它參數(shù)的檢測,如流量、濃度或溫度本身,也可采用增加溫度或其它輔助傳感器來實(shí)現(xiàn)補(bǔ)償?shù)姆椒?。對于同時(shí)存在溫、濕度漂移的測量場合,可以采用溫濕度一體化傳感器進(jìn)行補(bǔ)償。在本文圖3所示的神經(jīng)網(wǎng)絡(luò)中增加一個(gè)X3輸入代表濕度,只是會增加具體計(jì)算的復(fù)雜性。
DS18B20測溫已普遍應(yīng)用,且有著價(jià)格低廉、同基于單片機(jī)的智能儀器或測控系統(tǒng)接口簡單的突出優(yōu)點(diǎn),本文將其引入作輔助測量傳感器,在傳感器溫度補(bǔ)償領(lǐng)域是一種有益的嘗試。RBF網(wǎng)絡(luò)是一種性能良好的前向網(wǎng)絡(luò),它不僅有全局逼近性質(zhì),而且具有最佳逼近性能。將帶遺忘因子的梯度下降算法應(yīng)用于RBF神經(jīng)網(wǎng)絡(luò)的參數(shù)調(diào)整,該算法具有良好的非線性映射能力、自學(xué)習(xí)和泛化能力,魯棒性好、收斂較快,特別適用于傳感器數(shù)學(xué)模型的建立。論文采用軟硬件相結(jié)合的方法實(shí)現(xiàn)了高精度的溫度補(bǔ)償。與最小二乘擬合方法及線性插值補(bǔ)償方法相比,其精度提高了2~5倍。