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