石良喜
(廣州計量檢測技術(shù)研究院,廣東廣州 510030)
溫度二次儀表在各行業(yè)中使用相當廣泛,隨著使用環(huán)境的改變,其內(nèi)部環(huán)境的溫度也會改變,導致溫度二次儀表內(nèi)部傳感器原件及集成電路板零位電壓產(chǎn)生漂移,從而產(chǎn)生溫度二次儀表的測量誤差,因此有必要進行溫度補償,減少測量誤差。本文選用數(shù)字傳感器DS18B20對二次儀表所處的環(huán)境溫度進行測量,運用人工神經(jīng)網(wǎng)絡(luò)與BP算法相結(jié)合,得出非線性溫度補償數(shù)據(jù)列表。利用MATLAB工具,對二次儀表的零位測量電壓的溫度漂移進行補償,通過模擬仿真,對比分析補償前后的測量結(jié)果,使用該方法,提高了溫度二次儀表的測量精度,減少了系統(tǒng)的測量誤差,對二次儀表的計量性能起著重要作用。
針對二次儀表的使用環(huán)境,二次儀表內(nèi)部環(huán)境溫度的測量,測試溫度為-40℃~80℃,在輸入為零的條件下,利用單片機模塊來采樣二次儀表的零位電壓值。零位電壓溫度特性的測量系統(tǒng)如圖1,ADC及DAC分別采用A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器,可以采用獨立的A/D及D/A芯片[1],本文中分別指單片機中的A/D和D/A模塊。
圖1 二次儀表零位電壓溫度特性測量系統(tǒng)框圖
硬件電路的設(shè)計,具體如圖2所示。這里主要選用數(shù)字溫度傳感器DS18B20與單片機89C51作為主元件,數(shù)字溫度傳感器DS18B20工作方式為外部電源供電方式,與單片機89C5的P1.7管腳相連;整個的硬件電路較簡單,只需要外接入一個4.7kΩ的電阻,即可實現(xiàn)二次儀表零位電壓溫度特性的測量。
圖2 零位電壓溫度特性測量電路連接圖
通過測試,得出零位電壓溫度特性曲線如圖3所示。
圖3 零位電壓溫度特性曲線圖
由圖3可知,該二次儀表的零位電壓溫度特性呈非線性,特性曲線規(guī)律性不明顯。通常采用的方法有硬件法和軟件法,但硬件法存在調(diào)試困難[2],補償?shù)男Ч幻黠@的缺點,一般采用軟件法尤其是人工智能法可以彌足這些不足[3]。
針對二次儀表的零位電壓溫度特性呈非線性,為了有利于輸入信號的數(shù)字處理,這里運用人工神經(jīng)網(wǎng)絡(luò),采用BP算法,利用BP神經(jīng)網(wǎng)絡(luò)的非線性擬合和泛化能力,可以有效地對二次儀表的零位電壓進行非線性補償。具體方案如圖4所示。
二次儀表在零輸入的條件下,即所檢測到的信號為零,X=0。利用DS182B20及信號調(diào)理電路,采用在不同溫度條件下傳感器的溫度特性,得到二次儀表的傳感器的溫度特性為
圖4 零位電壓溫度漂移補償框圖
Y(x,t)=Y(0,t);t=t1,t2,t3……,tn
利用采樣數(shù)據(jù)設(shè)計人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),編寫程序,訓練人工神經(jīng)網(wǎng)絡(luò),對二次儀表的溫度特性進行擬合,得到溫度范圍內(nèi)任意溫度下二次儀表零位電壓的溫度特性擬合數(shù)據(jù)[4]。訓練后的人工神經(jīng)網(wǎng)絡(luò)特性為T=f(t),t為任意值。由于人工神經(jīng)網(wǎng)絡(luò)具有非線性擬合能力和泛化能力,把任意溫度下傳感器零位下電壓的輸出作為人工神經(jīng)網(wǎng)絡(luò)的訓練目標值,經(jīng)過訓練以后,得到
T=f(t)=Y(0,t),t為任意值,即 T-Y=U(t)=0,從而傳感器的零位電壓得到補償。
根據(jù)圖4所示的補償系統(tǒng)框圖搭建二次儀表零位值的溫漂補償模塊,如圖5所示。圖5中,input3為補償前的傳感器輸出;display1為補償后的二次儀表的輸出值;display2為補償值;dis?play3為人工神經(jīng)網(wǎng)絡(luò)模塊的輸出。其中input2為20℃時的電平值,由二次儀表感溫部分產(chǎn)生的電壓作為基準電壓。
圖5 零位電壓溫度補償模塊框圖
本文中神經(jīng)網(wǎng)絡(luò)模塊為單輸入單輸出系統(tǒng),則輸入層和輸出層都只具有一個神經(jīng)元節(jié)點。神經(jīng)網(wǎng)絡(luò)模塊選用常見的雙層結(jié)構(gòu)[5],隱層節(jié)點數(shù)根據(jù)經(jīng)驗公式n=ni+n0+a=1+1+9=10;其中的n為隱層神經(jīng)元節(jié)點數(shù);ni為輸入層神經(jīng)元節(jié)點數(shù);n0為輸出層神經(jīng)元節(jié)點數(shù);a為[1,10]間的任意常數(shù)。
由于二次儀表的溫度特性測試范圍-40℃~80℃,則神經(jīng)網(wǎng)絡(luò)的輸入矩陣PR=[-40,80]。根據(jù)常用的方法選擇輸入層到隱層傳遞函數(shù)為tansing,隱層到輸出層的傳統(tǒng)函數(shù)為purelin,學習函數(shù)使用learned,性能函數(shù)為mse,學習速率n可取1。利用newff()函數(shù)初始化神經(jīng)網(wǎng)絡(luò)模塊的命令為 net=newff([-40,80],[10 1],…)。將傳感器溫度特性測量數(shù)據(jù)分別存入P、T兩個矩陣作為訓練數(shù)據(jù)[6],利用MATLAB中的神經(jīng)網(wǎng)絡(luò)訓練函數(shù)train()對初始化好的神經(jīng)網(wǎng)絡(luò)模塊進行訓練。train函數(shù)將默認使用變梯度反傳算法進行訓練[7]。訓練步數(shù)的選擇可由語句net.trainParam.epochs=500定義,該語句定義了一個500步的訓練步數(shù)。令訓練后的網(wǎng)絡(luò)名稱為net,便可以使用下面的語句對網(wǎng)絡(luò)進行訓練:[net,tr]=train(net,P,T,[],[])。
通過仿真可知,補償后的零位電壓值的溫度特性得到較大的改善,如圖6所示。
由圖3與圖6中的數(shù)據(jù)可計算出,在-40℃~80℃范圍內(nèi),零位電壓的溫度誤差由原來的26.83%降低到2.87%。如進行更深入的研究,學習速率能取到小于1的值,適當增加訓練步數(shù),可以進一步提高補償精度。此外,該方法也可應(yīng)用于其他計量器具的靈敏度溫度特性的補償,為其他計量器具中的電測部分提供一種較好的溫漂補償方法。
圖6 引入BP與神經(jīng)網(wǎng)絡(luò)補償后的零位電壓溫度特性曲線圖
[1]張克.溫度測控技術(shù)及應(yīng)用[M].北京:中國質(zhì)檢出版社,2011.
[2]朱家良.溫度顯示儀表及其校準[M].北京:中國計量出版社,2008.
[3]李鄧化.智能檢測技術(shù)及儀表[M].北京:科學出版社,2012.
[4]張德豐.MATLAB神經(jīng)網(wǎng)絡(luò)編程[M].北京:化學工業(yè)出版社,2011.
[5]張德豐.MATLAB神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計[M].北京:機械工業(yè)出版社,2012.
[6]董志成,任強.基于BP神經(jīng)網(wǎng)絡(luò)的減振器示功圖識別方法[J].機電工程,2012(08):929-931.
[7]MATLAB中文論壇.MATLAB神經(jīng)網(wǎng)絡(luò)30個案例分析[M].北京:北京航空航天大學出版社,2010.