引言
不論是傳統工藝制作的經典傳感器,還是半導體工藝制作的現代傳感器,都存在交叉敏感。交叉敏感是引起單傳感器系統不穩定的主要因素,表現為傳感器標稱的目標參量恒定不變,而其它非目標參量變化時,該傳感器的輸出值發生變化。幾乎所有的傳感器都存在對溫度的交叉敏感且不僅僅是一個交叉敏感量。以壓力傳感器為例,其標稱的目標參量——壓力恒定,而傳感器的環境溫度T或供電電壓U/電流I變化時,其輸出電壓值發生變化,表明壓力傳感器存在對環境溫度T及供電電壓U/電流I兩個非目標參量的交叉敏感。存在交叉敏感的傳感器系統性能不穩定,準確性差,為了解決這一問題,可采用多傳感器模型法技術來改善傳感器系統性能。其基本思路是:當主測參量為x1的傳感器存在干擾量x2時,若欲消除干擾量x2的影響,則需監測該干擾參量x2,從而建立測量x1與x2的多(2個)傳感器系統;若欲消除n個干擾量的影響,則需測量n+1個參量的多(n+1個)傳感器系統。
人工神經網絡具有較強的非線性映射能力、較好的學習和容錯能力,在函數逼近、預測、信號處理、控制系統領域中得到廣泛的應用。徑向基(RBF)神經網絡是一種典型的性能良好的三層前饋局部人工神經網絡,具有較快的訓練速度和非線性能力,能以任意精度全局逼迫一個非線性函數,使其在很多領域得到廣泛應用。本文采用RBF神經網絡,監測干擾量溫度T的溫度傳感器的輸出電壓為UT,監測干擾量恒流源供電電流I的電流傳感器的輸出電壓UI,改善壓阻式壓力傳感器(JCY-201)的溫度穩定性與恒流源供電電流的穩定性,構建的三傳感器數據融合智能系統框圖如圖1所示。
圖1 三傳感器數據融合智能系統框圖
徑向基(RBF)神經網絡
徑向基神經網絡包含三層,即輸入層、徑向基隱層和線性層。
RBF神經網絡模型
RBF神經網絡的神經元作用函數采用高斯型函數,高斯型函數的數學表達式如式1:
式1
高斯函數的輸出為1和0.5所對應的輸入之間的差值稱為函數的分散度(spread),明顯地,對應于式1的分散度為0.833。
RBF網絡的神經元的總輸入是權值矩陣的行向量與輸入向量的向量距與偏置值的乘積,其數學表達式為式2:
式2
其中:ni為網絡隱層第i個神經元的總輸入;bi為第i個神經元的偏置值; 為隱層權值矩陣的第i個行向量的第j個元素;pji是第i個輸入向量的j時刻輸入值。
RBF神經網絡的輸出層通常是純線性神經元,只是其隱層神經元是稱之為radbas型的神經元。RBF神經網絡模型如圖2所示。
圖2 徑向基神經網絡模型
RBF神經網絡訓練
由高斯函數的表達式可知,其輸出最大值為1,當輸入向量與權值向量的向量距減小時,神經元的輸出增大。偏置b用來調節高斯函數對輸入的靈敏度,b的絕對值越大,神經元對輸入越靈敏,也就是說,神經元的響應函數曲線越“寬”,即高斯函數的輸出為0.5時的兩個總輸入之差的絕對值最大。對于b的取值,一般由訓練樣本的樣本距和樣本的范圍決定,b的取值大于兩個相鄰樣本點的最大距離,而小于任意兩個樣本的最大距離。例如,對于一個單輸入單輸出的RBF神經網絡,輸入的樣本為{-6,-4,0,2,4,7},那么b的取值應大于4而小于13。
表1 學習樣本的各物理量取值
表2 檢驗樣本的各物理量取值
RBF神經網絡中,其隱層神經元的數量可以說是由樣本點的數量來決定的,有多少個輸入樣本,就有多少個隱層神經元。對于每個隱層神經元的輸入,其輸出滿足下列條件:(1)若是其對應的樣本點,我們也稱其為該神經元的特征輸入點,那么其對應的輸出應趨于1;(2)對于非樣本點輸入,輸入與特征輸入的點距離越遠,則神經元的輸出越小。因此,RBF神經網絡的輸入權值是由樣本決定的,而與期望輸出并沒有太大關系。
在輸入權值、隱層神經元的偏置b全部確定好之后,隱層的輸出也就確定了。由于RBF神經網絡的輸出層神經元的響應函數是純線性函數,因此,在選定輸出層神經元之后,隱層與輸出層之間的神經元連接權值可以由式3確定:
其中: 為輸出層第i個神經元與隱層第j個神經元的連接權值;bi為輸出層第i個神經元的偏置值;aj為隱層第j個神經元的輸出向量;T為理想輸出矩陣。求解式3,即可得到輸出層與隱層的連接權值。
三維標定實驗
為了訓練RBF神經網絡,確定網絡的各權值和偏置的具體數值,使得網絡的輸出值與標定值之間能夠達到誤差精度的要求且具有一定的推廣能力,各標定點的數量應能滿足神經網絡訓練的要求。為了全量程范圍內全面檢驗融合后穩定性的改善效果,實際上共標定個標定點,選其中7組不同溫度的標定點(共252組數據)作為神經網絡的學習(訓練)樣本,其余的3組不同溫度的標定點(共108組數據)作為網絡的檢驗樣本。
學習樣本各標定點的具體數值見表3。
表3 RBF神經網絡用JCY-201型壓力傳感器三維標定實驗數據——學習樣本
檢驗樣本各標定點的具體數值見表4。
表4 RBF神經網絡用JCY-201型壓力傳感器 三維標定實驗數據——檢驗樣本
注:UI為電流傳感器輸出電壓,UT為溫度傳感器輸出電壓,UP為壓力傳感器輸出電壓,表4同。
RBF神經網絡Matlab源程序
RBF神經網絡Matlab源程序如下:
clc
clear
close all %程序開始前,清屏,清除其它變量
%輸入原始數據,每一列為一個變量,行數為樣本的個數。原始標定數據的輸入,可以將數據直接輸入至程序中,也可以將數據先輸入至文件,然后在程序中讀入數據文件。數據中的P、Ut、Ui、Up均為維列向量,
為標定數據點的個數
raw_data=[P Ut Ui Up]; %學習(訓練)樣本
data_test=[P_test Ut_test Ui_test Up_test]; %測試樣本
%根據原始數據制作學習(訓練)樣本與測試樣本,學習樣本與測試樣本的數據格式相同
P=raw_data(: , 1); Ui=raw_data(: , 2); Ut=raw_data(: , 3); Up=raw_data(: , 4);
P_test=data_test(: , 1); Ui=data_test(: , 2); Ut=data_test(: , 3); Up=data_test(: , 4);
P1= ; [Up Ui Ut] %學習樣本輸入
T1= ; P' %學習樣本期望輸出
P2= ;[Up_test Ui _test Ut_t est]' %測試樣本輸入
T2=P_test' ; %測試樣本輸出
%將輸入數據進行歸一化
[PN1,Minp,maxp,TN1,mint,maxt]=premnmx(P1,T1);
PN2=tramnmx(P2,minp,maxp);
TN2=tramnmx(T2,mint,maxt);
%訓練
switch 2
case 1 %神經元數是訓練樣本個數
spread=0.1; %此值越大,覆蓋的函數數值就越大(默認為1)
net=newrbe(PN1,TN1,spread);
case 2 %神經元數逐步增加,最多就是訓練樣本個數
goal=1e-8; %訓練誤差的平方和(默認為0)
spread=0.1; %此值越大,需要的神經元就越少(默認為1)
MN=size(PN1,2); %最大神經元數(默認為訓練樣本個數)
DF=2; %顯示間隔(默認為25)
net=newrb(PN1,TN1,goal,spread,MN,DF);
case 3
spread=0.1; %此值越大,需要的神經元就越少(默認為1)
net=newgrnn(PN1,TN1,spread);
end
%測試
YN1=sim(net,PN1); %學習(訓練)樣本實際輸出
YN2=sim(net,PN2); %測試樣本實際輸出
MSE1=mean((TN1-YN1).ˆ2 %學習(訓練)樣本實際輸出的均方誤差
%n1=length(TN1);%e1=sum((TN1-YN1).ˆ2/n1
%e1與MSE1相等
MSETD1=std((TN1-YN1).ˆ2
MSE2=mean((TN2-YN2).ˆ2 %測試樣本實際輸出均方誤差
%n2=length(TN2);%e2=sum((TN2-YN2).ˆ2/n2
%e2與MSE2相等
MSETD2=std((TN2-YN2).ˆ2
%反歸一化
Y1=postmnmx (YN1,mint,maxt)' %將歸一化的學習(訓練)輸出數據恢復為原始數據
E1=Y1-P %學習(訓練)輸出數據與標定值之間的偏差
Y2=postmnmx (YN2,mint,maxt)' %將歸一化的測試輸出數據恢復為原始數據
E2=Y2-P_test %測試輸出數據與標定值之間的偏差
max(E2)
min(E2)
采用經過數據歸一化處理的程序
神經網絡采用Matlab中的newrb()函數,neurons=252。學習樣本經RBF神經網絡訓練后的輸出值與相應的壓力標定值之間的最大誤差絕對值為1.0396e-011,均方誤差MSE1=5.6613e-023,均方誤差的標準差MSETD1=2.4666e-022。這里省略學習樣本的預測輸出表。可見,采用RBF神經網絡對學習樣本的輸出已經消除了壓力傳感器的交叉敏感影響(在誤差允許的范圍內)。
檢驗樣本經RBF神經網絡的輸出值與相應的壓力標定值之間最大偏差絕對值為max=0.0113,均方誤差MSE2=3.8568e-005,均方誤差的標準差MSETD2=2.1727e-004。輸出樣本的詳細情況見表5(只列出部分數據)。
數據融合效果評價
降低溫度與電源波動兩個干擾量的影響,傳感器系統穩定性的改善程度分別用融合前后的零位、靈敏度溫度系數以及電流影響系數來評價。
由于學習(訓練)樣本的網絡輸出值與標定值之間的偏差很小(均小于1.0e-011),如果根據這些數據來計算融合后的效果,可以認為已經完全消除交叉敏感。通過表5可知,本例中檢驗樣本的網絡輸出值與標定值之間的偏差與學習樣本的偏差相比,偏差較大,故按檢驗樣本計算出數值來評價數據融合效果。
表5 輸出樣本
注:表中T表示工作溫度,I表示工作電流,P表示壓力標定值,表示壓力計算值,偏差
,單位都是V。
融合前:滿量程輸出值UFS=4.928V,當溫度的變化范圍為=39℃(由25℃至64℃),電流由6mA至11mA,變動
時,零點值的最大變化范圍
=0.356V(由0.328V至-0.028V),滿量程輸出值由4.928V下降到2.710V,輸出變化范圍
=-2.218V。
(1)零位溫度系數
(2)靈敏度溫度系數
(3)電流影響系數
利用檢驗樣本計算的融合后的零位溫度系數、靈敏度溫度系數以及電流影響系數如下:
在=39℃,
變化范圍內,零點融合計算值的最大偏差
=0.0113MPa;滿量程壓力PFS=0.5MPa,其融合計算值的最大偏差量
=0.0007MPa,則有
將融合前和RBF神經網絡融合后的各參數列于表6中。
表6 融合前和RBF神經網絡融合后的各參數
從表6可見,經RBF神經網絡融合后,零位溫度系數降低到融合前的1/3,靈敏度溫度系數降低約3個數量級,電流影響系數降低約2個數量級
結束語
由于半導體的特性參數易受溫度、電流的影響而變化,壓阻式傳感器將會產生很大的零位溫度漂移、靈敏度溫度漂移和電流影響漂移,這是壓阻式傳感器最大的弱點。因此,研究改善壓阻式壓力傳感器的溫度穩定性與恒流源供電電流的穩定性,在生產實踐中很有意義。采用RBF神經網絡法,設計了抗兩個干擾量影響的智能化軟件模塊,對壓阻式壓力傳感器穩定性進行改善,取得了很好的效果。該方法簡單易行,精度較高,將壓阻式壓力傳感器輸出精度控制在0.01%以內。