陳慧穎
摘 要 壓力傳感器是一種較為常用的傳感器件,由于自身的非線性特點(diǎn)以及外界因素的影響,傳感器的輸出結(jié)果容易產(chǎn)生誤差,其中溫度的影響最大,因此,對(duì)傳感器的溫度補(bǔ)償就顯得尤為重要。文章對(duì)目前常用的溫度補(bǔ)償方法進(jìn)行了分析,在此基礎(chǔ)上,提出了一種新的溫度補(bǔ)償方法,并對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行了改進(jìn),從研究結(jié)果來(lái)看,該方法有效提高了傳感器的穩(wěn)定性及精度。
關(guān)鍵詞 壓力傳感器;溫度漂移;溫度補(bǔ)償
中圖分類號(hào):TP212 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)10-0038-02
壓力傳感器的輸出結(jié)果精度容易受到多種因素的影響,其中,唯獨(dú)是影響傳感器輸出精度的最主要因素。目前,國(guó)內(nèi)經(jīng)常使用硬件補(bǔ)償和軟件補(bǔ)償兩類方法對(duì)壓力傳感器進(jìn)行溫度補(bǔ)償。硬件補(bǔ)償方法調(diào)試難度較高、精度低、通用性也較差,在實(shí)際工程中應(yīng)用時(shí),難以去得較好的效果;而軟件補(bǔ)償方法有效彌補(bǔ)了硬件補(bǔ)償?shù)娜秉c(diǎn),其中BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償在實(shí)際工程中運(yùn)用十分廣泛,但是典型BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償法雖然精確度高,但是整個(gè)流程過(guò)于復(fù)雜、整個(gè)過(guò)程耗時(shí)較長(zhǎng),因此,本文提出了一種基于主成分分析的BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償方法,希望對(duì)提高補(bǔ)償效率和準(zhǔn)確性起到一定的作用。
1 典型BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償原理分析
BP神經(jīng)網(wǎng)絡(luò)是目前研究中應(yīng)用范圍最廣的神經(jīng)網(wǎng)絡(luò)模型之一,BP神經(jīng)網(wǎng)絡(luò)術(shù)語(yǔ)單向傳輸網(wǎng)絡(luò)結(jié)構(gòu),整個(gè)信息傳輸?shù)倪^(guò)程呈現(xiàn)出高度的非線性特點(diǎn)。典型的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括輸入層、隱含層和輸出層3層結(jié)構(gòu)。通常情況下BP神經(jīng)網(wǎng)絡(luò)只有這3層結(jié)構(gòu),這主要是由于單隱層的BP神經(jīng)網(wǎng)絡(luò)既可以完成從任意n維到m維的映射。其典型結(jié)構(gòu)如下圖所示。
BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型
BP算法設(shè)計(jì)到了信息的正向傳播以及誤差的反向傳播,信息首先從輸入層傳入,然后經(jīng)過(guò)隱含層的處理傳入輸出層,最終輸出的信息可以用下面的形式進(jìn)行表示:
其中:、分別代表了隱含層及輸出層的權(quán)值;
n0、n1分別對(duì)應(yīng)了輸入節(jié)點(diǎn)數(shù)及隱含層節(jié)點(diǎn)數(shù)。
輸出層神經(jīng)元的激勵(lì)函數(shù)f1通常呈現(xiàn)出線性特點(diǎn);而隱含層神經(jīng)元的激勵(lì)函數(shù)f2通常采用如下所示的形式在(0,1)的S型函數(shù)中進(jìn)行輸出:
由于BP神經(jīng)網(wǎng)絡(luò)隱含層采用的傳遞函數(shù)為對(duì)數(shù)S型曲線,其輸出范圍在(0,1)之間。為了避免節(jié)點(diǎn)在短時(shí)間之內(nèi)飽和而無(wú)法繼續(xù)進(jìn)行訓(xùn)練,需要在訓(xùn)練開始之前利用下面公式對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)處理:
,
其中:Ui、Pi均為訓(xùn)練數(shù)據(jù)的標(biāo)定值;Uimin、Uimax分別表示輸出電壓的標(biāo)定極值(最小和最大);Pimin、Pimax分別表示壓力的標(biāo)定極值(最小和最大)。
當(dāng)目標(biāo)矢量為T,信息通過(guò)正向傳遞,可以得到誤差函數(shù),具體如下所示:
如果輸出結(jié)果無(wú)法達(dá)到要求的誤差范圍,則返回誤差信號(hào)并按照一定的權(quán)值對(duì)公式中的各層權(quán)值進(jìn)行修正,直到輸出結(jié)果達(dá)到期望值。
在利用典型BP神經(jīng)網(wǎng)絡(luò)進(jìn)行壓力傳感器溫度補(bǔ)償?shù)倪^(guò)程中,算法過(guò)于復(fù)雜,而且非常耗時(shí),因此,需要對(duì)其進(jìn)行改進(jìn),以提高補(bǔ)償效率。
2 BP神經(jīng)網(wǎng)絡(luò)法的改進(jìn)
2.1 改進(jìn)原理
基于典型的BP神經(jīng)網(wǎng)絡(luò),利用以下方法進(jìn)行改進(jìn)。
1)利用小波神經(jīng)網(wǎng)絡(luò)的思想對(duì)神經(jīng)元的激勵(lì)函數(shù)進(jìn)行改進(jìn),從而實(shí)現(xiàn)小波特性與BP神經(jīng)網(wǎng)絡(luò)自學(xué)功能的充分結(jié)合,提高激勵(lì)函數(shù)的逼近能力。以Morlet函數(shù)作為小波函數(shù)的母函數(shù),可以降低不同層面神經(jīng)元之間的影響,提高網(wǎng)絡(luò)的收斂速度。以Morlet函數(shù)作母函數(shù)的小波函數(shù)屬于幅值小波,其信號(hào)中包含了復(fù)值和相關(guān)信息,改進(jìn)后的函數(shù)具體如下所示:
在本次研究中,我們選取了R個(gè)輸入樣本和N個(gè)輸出節(jié)點(diǎn),則可以利用下面的公式對(duì)第l個(gè)樣本的第n個(gè)節(jié)點(diǎn)的輸入進(jìn)行表示:
其中:K表示神經(jīng)網(wǎng)絡(luò)隱含層的單元數(shù)量;M表示神經(jīng)網(wǎng)絡(luò)輸入層的單元數(shù)量;ωn,k表示神經(jīng)網(wǎng)絡(luò)隱含層第k單元與輸出層第n單元的連接權(quán)值;ak-小波伸縮因子;bk-平移因子;Sl(xm)—輸入信號(hào)。
2)在計(jì)算過(guò)程中通過(guò),附加動(dòng)量法的應(yīng)用可以有效改實(shí)現(xiàn)梯度方向的平滑過(guò)渡,使得計(jì)算結(jié)果更具穩(wěn)定性。該方法以BP法為基礎(chǔ)對(duì)權(quán)值進(jìn)行調(diào)節(jié),具體公式如下:
其中:t表示樣本的訓(xùn)練次數(shù);η表示學(xué)習(xí)速率;σ表示動(dòng)量因子;σΔωki(t)表示附加動(dòng)量項(xiàng),它能夠有效降低不同神經(jīng)元之間的影響,提高網(wǎng)絡(luò)的收斂速度。
2.2 主成分BP神經(jīng)網(wǎng)絡(luò)算法的實(shí)現(xiàn)
步驟1:按照典型BP神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)預(yù)處理方法對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)處理。
步驟2:利用主成分分析法對(duì)預(yù)處理后的樣本數(shù)據(jù)進(jìn)行分析,降低輸入向量之間的影響,使各個(gè)輸入變量的協(xié)同方差趨于統(tǒng)一,從而使各權(quán)值具有相同的收斂速度,并以此確定神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點(diǎn)。
步驟3:對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化,并對(duì)其中的部分關(guān)鍵變量進(jìn)行設(shè)置。
步驟4:為神經(jīng)網(wǎng)絡(luò)選取一組學(xué)習(xí)樣本,以輸入節(jié)點(diǎn)作為網(wǎng)絡(luò)的輸入向量,并輸入期望fn,l,n=1,2,…,N;l=1,2,…,R。
步驟5:利用輸入的網(wǎng)絡(luò)參數(shù)計(jì)算網(wǎng)絡(luò)的實(shí)時(shí)輸出能力,當(dāng)輸出誤差在允許范圍之內(nèi)時(shí),停止訓(xùn)練;而當(dāng)輸出誤差超過(guò)允許范圍 ,則將誤差信息進(jìn)行反向傳播,使權(quán)值沿誤差函數(shù)的負(fù)梯度方向發(fā)生變化,然后利用梯度下降法計(jì)算出變化后的網(wǎng)絡(luò)參數(shù),然后再重復(fù)進(jìn)行第4步的操作。
步驟6:BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練合格之后,對(duì)其進(jìn)行樣本補(bǔ)償。
步驟7:對(duì)補(bǔ)償后的樣本進(jìn)行反標(biāo)準(zhǔn)化處理,然后與實(shí)測(cè)數(shù)據(jù)進(jìn)行誤差比較,判斷出網(wǎng)絡(luò)改進(jìn)之后的變化。
2.3 壓力傳感器溫度補(bǔ)償
根據(jù)前文提供的BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)步驟,可以利用Matlab編程語(yǔ)言來(lái)實(shí)現(xiàn)。在實(shí)現(xiàn)該算法之后,我們通過(guò)在壓力傳感器量程范圍內(nèi)確定n個(gè)壓力標(biāo)定點(diǎn),同時(shí)確定m個(gè)溫度標(biāo)定點(diǎn)。標(biāo)準(zhǔn)值發(fā)生器會(huì)根據(jù)每個(gè)標(biāo)定點(diǎn)的信息產(chǎn)生對(duì)應(yīng)的標(biāo)定輸入值。然后輸入樣本數(shù)據(jù),樣本數(shù)據(jù)按照目標(biāo)值要求的±20%范圍進(jìn)行選擇,然后以誤差目標(biāo)小于10-3進(jìn)行訓(xùn)練,當(dāng)達(dá)到誤差目標(biāo)之后,網(wǎng)絡(luò)的收斂速度得到有效的提升。
3 結(jié)論
通過(guò)研究結(jié)果發(fā)現(xiàn),利用主成分分析法對(duì)信息進(jìn)行補(bǔ)償之后,再利用BP神經(jīng)網(wǎng)絡(luò)對(duì)這些信息進(jìn)行訓(xùn)練,其學(xué)習(xí)速度相對(duì)直接利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練更高。同時(shí),通過(guò)改進(jìn)典型的BP神經(jīng)網(wǎng)絡(luò),利用小波函數(shù)作為激勵(lì)函數(shù),并應(yīng)用動(dòng)量附加發(fā)對(duì)網(wǎng)絡(luò)敏感性進(jìn)行控制,可以有效避免網(wǎng)絡(luò)發(fā)生局部極小問(wèn)題。通過(guò)基于主成分的BP神經(jīng)網(wǎng)絡(luò)溫度補(bǔ)償方法可以使壓力傳感器受環(huán)境溫度變化而發(fā)生的誤差問(wèn)題得到高效、精確的解決。
參考文獻(xiàn)
[1]董九英.多傳感器數(shù)據(jù)融合的主成分方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(33):111-113.
[2]章慧.基于BP神經(jīng)網(wǎng)絡(luò)的壓力傳感器數(shù)據(jù)融合[J].湖南工程學(xué)院學(xué)報(bào),2011,21(1):55-58.endprint
摘 要 壓力傳感器是一種較為常用的傳感器件,由于自身的非線性特點(diǎn)以及外界因素的影響,傳感器的輸出結(jié)果容易產(chǎn)生誤差,其中溫度的影響最大,因此,對(duì)傳感器的溫度補(bǔ)償就顯得尤為重要。文章對(duì)目前常用的溫度補(bǔ)償方法進(jìn)行了分析,在此基礎(chǔ)上,提出了一種新的溫度補(bǔ)償方法,并對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行了改進(jìn),從研究結(jié)果來(lái)看,該方法有效提高了傳感器的穩(wěn)定性及精度。
關(guān)鍵詞 壓力傳感器;溫度漂移;溫度補(bǔ)償
中圖分類號(hào):TP212 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)10-0038-02
壓力傳感器的輸出結(jié)果精度容易受到多種因素的影響,其中,唯獨(dú)是影響傳感器輸出精度的最主要因素。目前,國(guó)內(nèi)經(jīng)常使用硬件補(bǔ)償和軟件補(bǔ)償兩類方法對(duì)壓力傳感器進(jìn)行溫度補(bǔ)償。硬件補(bǔ)償方法調(diào)試難度較高、精度低、通用性也較差,在實(shí)際工程中應(yīng)用時(shí),難以去得較好的效果;而軟件補(bǔ)償方法有效彌補(bǔ)了硬件補(bǔ)償?shù)娜秉c(diǎn),其中BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償在實(shí)際工程中運(yùn)用十分廣泛,但是典型BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償法雖然精確度高,但是整個(gè)流程過(guò)于復(fù)雜、整個(gè)過(guò)程耗時(shí)較長(zhǎng),因此,本文提出了一種基于主成分分析的BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償方法,希望對(duì)提高補(bǔ)償效率和準(zhǔn)確性起到一定的作用。
1 典型BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償原理分析
BP神經(jīng)網(wǎng)絡(luò)是目前研究中應(yīng)用范圍最廣的神經(jīng)網(wǎng)絡(luò)模型之一,BP神經(jīng)網(wǎng)絡(luò)術(shù)語(yǔ)單向傳輸網(wǎng)絡(luò)結(jié)構(gòu),整個(gè)信息傳輸?shù)倪^(guò)程呈現(xiàn)出高度的非線性特點(diǎn)。典型的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括輸入層、隱含層和輸出層3層結(jié)構(gòu)。通常情況下BP神經(jīng)網(wǎng)絡(luò)只有這3層結(jié)構(gòu),這主要是由于單隱層的BP神經(jīng)網(wǎng)絡(luò)既可以完成從任意n維到m維的映射。其典型結(jié)構(gòu)如下圖所示。
BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型
BP算法設(shè)計(jì)到了信息的正向傳播以及誤差的反向傳播,信息首先從輸入層傳入,然后經(jīng)過(guò)隱含層的處理傳入輸出層,最終輸出的信息可以用下面的形式進(jìn)行表示:
其中:、分別代表了隱含層及輸出層的權(quán)值;
n0、n1分別對(duì)應(yīng)了輸入節(jié)點(diǎn)數(shù)及隱含層節(jié)點(diǎn)數(shù)。
輸出層神經(jīng)元的激勵(lì)函數(shù)f1通常呈現(xiàn)出線性特點(diǎn);而隱含層神經(jīng)元的激勵(lì)函數(shù)f2通常采用如下所示的形式在(0,1)的S型函數(shù)中進(jìn)行輸出:
由于BP神經(jīng)網(wǎng)絡(luò)隱含層采用的傳遞函數(shù)為對(duì)數(shù)S型曲線,其輸出范圍在(0,1)之間。為了避免節(jié)點(diǎn)在短時(shí)間之內(nèi)飽和而無(wú)法繼續(xù)進(jìn)行訓(xùn)練,需要在訓(xùn)練開始之前利用下面公式對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)處理:
,
其中:Ui、Pi均為訓(xùn)練數(shù)據(jù)的標(biāo)定值;Uimin、Uimax分別表示輸出電壓的標(biāo)定極值(最小和最大);Pimin、Pimax分別表示壓力的標(biāo)定極值(最小和最大)。
當(dāng)目標(biāo)矢量為T,信息通過(guò)正向傳遞,可以得到誤差函數(shù),具體如下所示:
如果輸出結(jié)果無(wú)法達(dá)到要求的誤差范圍,則返回誤差信號(hào)并按照一定的權(quán)值對(duì)公式中的各層權(quán)值進(jìn)行修正,直到輸出結(jié)果達(dá)到期望值。
在利用典型BP神經(jīng)網(wǎng)絡(luò)進(jìn)行壓力傳感器溫度補(bǔ)償?shù)倪^(guò)程中,算法過(guò)于復(fù)雜,而且非常耗時(shí),因此,需要對(duì)其進(jìn)行改進(jìn),以提高補(bǔ)償效率。
2 BP神經(jīng)網(wǎng)絡(luò)法的改進(jìn)
2.1 改進(jìn)原理
基于典型的BP神經(jīng)網(wǎng)絡(luò),利用以下方法進(jìn)行改進(jìn)。
1)利用小波神經(jīng)網(wǎng)絡(luò)的思想對(duì)神經(jīng)元的激勵(lì)函數(shù)進(jìn)行改進(jìn),從而實(shí)現(xiàn)小波特性與BP神經(jīng)網(wǎng)絡(luò)自學(xué)功能的充分結(jié)合,提高激勵(lì)函數(shù)的逼近能力。以Morlet函數(shù)作為小波函數(shù)的母函數(shù),可以降低不同層面神經(jīng)元之間的影響,提高網(wǎng)絡(luò)的收斂速度。以Morlet函數(shù)作母函數(shù)的小波函數(shù)屬于幅值小波,其信號(hào)中包含了復(fù)值和相關(guān)信息,改進(jìn)后的函數(shù)具體如下所示:
在本次研究中,我們選取了R個(gè)輸入樣本和N個(gè)輸出節(jié)點(diǎn),則可以利用下面的公式對(duì)第l個(gè)樣本的第n個(gè)節(jié)點(diǎn)的輸入進(jìn)行表示:
其中:K表示神經(jīng)網(wǎng)絡(luò)隱含層的單元數(shù)量;M表示神經(jīng)網(wǎng)絡(luò)輸入層的單元數(shù)量;ωn,k表示神經(jīng)網(wǎng)絡(luò)隱含層第k單元與輸出層第n單元的連接權(quán)值;ak-小波伸縮因子;bk-平移因子;Sl(xm)—輸入信號(hào)。
2)在計(jì)算過(guò)程中通過(guò),附加動(dòng)量法的應(yīng)用可以有效改實(shí)現(xiàn)梯度方向的平滑過(guò)渡,使得計(jì)算結(jié)果更具穩(wěn)定性。該方法以BP法為基礎(chǔ)對(duì)權(quán)值進(jìn)行調(diào)節(jié),具體公式如下:
其中:t表示樣本的訓(xùn)練次數(shù);η表示學(xué)習(xí)速率;σ表示動(dòng)量因子;σΔωki(t)表示附加動(dòng)量項(xiàng),它能夠有效降低不同神經(jīng)元之間的影響,提高網(wǎng)絡(luò)的收斂速度。
2.2 主成分BP神經(jīng)網(wǎng)絡(luò)算法的實(shí)現(xiàn)
步驟1:按照典型BP神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)預(yù)處理方法對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)處理。
步驟2:利用主成分分析法對(duì)預(yù)處理后的樣本數(shù)據(jù)進(jìn)行分析,降低輸入向量之間的影響,使各個(gè)輸入變量的協(xié)同方差趨于統(tǒng)一,從而使各權(quán)值具有相同的收斂速度,并以此確定神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點(diǎn)。
步驟3:對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化,并對(duì)其中的部分關(guān)鍵變量進(jìn)行設(shè)置。
步驟4:為神經(jīng)網(wǎng)絡(luò)選取一組學(xué)習(xí)樣本,以輸入節(jié)點(diǎn)作為網(wǎng)絡(luò)的輸入向量,并輸入期望fn,l,n=1,2,…,N;l=1,2,…,R。
步驟5:利用輸入的網(wǎng)絡(luò)參數(shù)計(jì)算網(wǎng)絡(luò)的實(shí)時(shí)輸出能力,當(dāng)輸出誤差在允許范圍之內(nèi)時(shí),停止訓(xùn)練;而當(dāng)輸出誤差超過(guò)允許范圍 ,則將誤差信息進(jìn)行反向傳播,使權(quán)值沿誤差函數(shù)的負(fù)梯度方向發(fā)生變化,然后利用梯度下降法計(jì)算出變化后的網(wǎng)絡(luò)參數(shù),然后再重復(fù)進(jìn)行第4步的操作。
步驟6:BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練合格之后,對(duì)其進(jìn)行樣本補(bǔ)償。
步驟7:對(duì)補(bǔ)償后的樣本進(jìn)行反標(biāo)準(zhǔn)化處理,然后與實(shí)測(cè)數(shù)據(jù)進(jìn)行誤差比較,判斷出網(wǎng)絡(luò)改進(jìn)之后的變化。
2.3 壓力傳感器溫度補(bǔ)償
根據(jù)前文提供的BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)步驟,可以利用Matlab編程語(yǔ)言來(lái)實(shí)現(xiàn)。在實(shí)現(xiàn)該算法之后,我們通過(guò)在壓力傳感器量程范圍內(nèi)確定n個(gè)壓力標(biāo)定點(diǎn),同時(shí)確定m個(gè)溫度標(biāo)定點(diǎn)。標(biāo)準(zhǔn)值發(fā)生器會(huì)根據(jù)每個(gè)標(biāo)定點(diǎn)的信息產(chǎn)生對(duì)應(yīng)的標(biāo)定輸入值。然后輸入樣本數(shù)據(jù),樣本數(shù)據(jù)按照目標(biāo)值要求的±20%范圍進(jìn)行選擇,然后以誤差目標(biāo)小于10-3進(jìn)行訓(xùn)練,當(dāng)達(dá)到誤差目標(biāo)之后,網(wǎng)絡(luò)的收斂速度得到有效的提升。
3 結(jié)論
通過(guò)研究結(jié)果發(fā)現(xiàn),利用主成分分析法對(duì)信息進(jìn)行補(bǔ)償之后,再利用BP神經(jīng)網(wǎng)絡(luò)對(duì)這些信息進(jìn)行訓(xùn)練,其學(xué)習(xí)速度相對(duì)直接利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練更高。同時(shí),通過(guò)改進(jìn)典型的BP神經(jīng)網(wǎng)絡(luò),利用小波函數(shù)作為激勵(lì)函數(shù),并應(yīng)用動(dòng)量附加發(fā)對(duì)網(wǎng)絡(luò)敏感性進(jìn)行控制,可以有效避免網(wǎng)絡(luò)發(fā)生局部極小問(wèn)題。通過(guò)基于主成分的BP神經(jīng)網(wǎng)絡(luò)溫度補(bǔ)償方法可以使壓力傳感器受環(huán)境溫度變化而發(fā)生的誤差問(wèn)題得到高效、精確的解決。
參考文獻(xiàn)
[1]董九英.多傳感器數(shù)據(jù)融合的主成分方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(33):111-113.
[2]章慧.基于BP神經(jīng)網(wǎng)絡(luò)的壓力傳感器數(shù)據(jù)融合[J].湖南工程學(xué)院學(xué)報(bào),2011,21(1):55-58.endprint
摘 要 壓力傳感器是一種較為常用的傳感器件,由于自身的非線性特點(diǎn)以及外界因素的影響,傳感器的輸出結(jié)果容易產(chǎn)生誤差,其中溫度的影響最大,因此,對(duì)傳感器的溫度補(bǔ)償就顯得尤為重要。文章對(duì)目前常用的溫度補(bǔ)償方法進(jìn)行了分析,在此基礎(chǔ)上,提出了一種新的溫度補(bǔ)償方法,并對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行了改進(jìn),從研究結(jié)果來(lái)看,該方法有效提高了傳感器的穩(wěn)定性及精度。
關(guān)鍵詞 壓力傳感器;溫度漂移;溫度補(bǔ)償
中圖分類號(hào):TP212 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)10-0038-02
壓力傳感器的輸出結(jié)果精度容易受到多種因素的影響,其中,唯獨(dú)是影響傳感器輸出精度的最主要因素。目前,國(guó)內(nèi)經(jīng)常使用硬件補(bǔ)償和軟件補(bǔ)償兩類方法對(duì)壓力傳感器進(jìn)行溫度補(bǔ)償。硬件補(bǔ)償方法調(diào)試難度較高、精度低、通用性也較差,在實(shí)際工程中應(yīng)用時(shí),難以去得較好的效果;而軟件補(bǔ)償方法有效彌補(bǔ)了硬件補(bǔ)償?shù)娜秉c(diǎn),其中BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償在實(shí)際工程中運(yùn)用十分廣泛,但是典型BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償法雖然精確度高,但是整個(gè)流程過(guò)于復(fù)雜、整個(gè)過(guò)程耗時(shí)較長(zhǎng),因此,本文提出了一種基于主成分分析的BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償方法,希望對(duì)提高補(bǔ)償效率和準(zhǔn)確性起到一定的作用。
1 典型BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償原理分析
BP神經(jīng)網(wǎng)絡(luò)是目前研究中應(yīng)用范圍最廣的神經(jīng)網(wǎng)絡(luò)模型之一,BP神經(jīng)網(wǎng)絡(luò)術(shù)語(yǔ)單向傳輸網(wǎng)絡(luò)結(jié)構(gòu),整個(gè)信息傳輸?shù)倪^(guò)程呈現(xiàn)出高度的非線性特點(diǎn)。典型的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括輸入層、隱含層和輸出層3層結(jié)構(gòu)。通常情況下BP神經(jīng)網(wǎng)絡(luò)只有這3層結(jié)構(gòu),這主要是由于單隱層的BP神經(jīng)網(wǎng)絡(luò)既可以完成從任意n維到m維的映射。其典型結(jié)構(gòu)如下圖所示。
BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型
BP算法設(shè)計(jì)到了信息的正向傳播以及誤差的反向傳播,信息首先從輸入層傳入,然后經(jīng)過(guò)隱含層的處理傳入輸出層,最終輸出的信息可以用下面的形式進(jìn)行表示:
其中:、分別代表了隱含層及輸出層的權(quán)值;
n0、n1分別對(duì)應(yīng)了輸入節(jié)點(diǎn)數(shù)及隱含層節(jié)點(diǎn)數(shù)。
輸出層神經(jīng)元的激勵(lì)函數(shù)f1通常呈現(xiàn)出線性特點(diǎn);而隱含層神經(jīng)元的激勵(lì)函數(shù)f2通常采用如下所示的形式在(0,1)的S型函數(shù)中進(jìn)行輸出:
由于BP神經(jīng)網(wǎng)絡(luò)隱含層采用的傳遞函數(shù)為對(duì)數(shù)S型曲線,其輸出范圍在(0,1)之間。為了避免節(jié)點(diǎn)在短時(shí)間之內(nèi)飽和而無(wú)法繼續(xù)進(jìn)行訓(xùn)練,需要在訓(xùn)練開始之前利用下面公式對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)處理:
,
其中:Ui、Pi均為訓(xùn)練數(shù)據(jù)的標(biāo)定值;Uimin、Uimax分別表示輸出電壓的標(biāo)定極值(最小和最大);Pimin、Pimax分別表示壓力的標(biāo)定極值(最小和最大)。
當(dāng)目標(biāo)矢量為T,信息通過(guò)正向傳遞,可以得到誤差函數(shù),具體如下所示:
如果輸出結(jié)果無(wú)法達(dá)到要求的誤差范圍,則返回誤差信號(hào)并按照一定的權(quán)值對(duì)公式中的各層權(quán)值進(jìn)行修正,直到輸出結(jié)果達(dá)到期望值。
在利用典型BP神經(jīng)網(wǎng)絡(luò)進(jìn)行壓力傳感器溫度補(bǔ)償?shù)倪^(guò)程中,算法過(guò)于復(fù)雜,而且非常耗時(shí),因此,需要對(duì)其進(jìn)行改進(jìn),以提高補(bǔ)償效率。
2 BP神經(jīng)網(wǎng)絡(luò)法的改進(jìn)
2.1 改進(jìn)原理
基于典型的BP神經(jīng)網(wǎng)絡(luò),利用以下方法進(jìn)行改進(jìn)。
1)利用小波神經(jīng)網(wǎng)絡(luò)的思想對(duì)神經(jīng)元的激勵(lì)函數(shù)進(jìn)行改進(jìn),從而實(shí)現(xiàn)小波特性與BP神經(jīng)網(wǎng)絡(luò)自學(xué)功能的充分結(jié)合,提高激勵(lì)函數(shù)的逼近能力。以Morlet函數(shù)作為小波函數(shù)的母函數(shù),可以降低不同層面神經(jīng)元之間的影響,提高網(wǎng)絡(luò)的收斂速度。以Morlet函數(shù)作母函數(shù)的小波函數(shù)屬于幅值小波,其信號(hào)中包含了復(fù)值和相關(guān)信息,改進(jìn)后的函數(shù)具體如下所示:
在本次研究中,我們選取了R個(gè)輸入樣本和N個(gè)輸出節(jié)點(diǎn),則可以利用下面的公式對(duì)第l個(gè)樣本的第n個(gè)節(jié)點(diǎn)的輸入進(jìn)行表示:
其中:K表示神經(jīng)網(wǎng)絡(luò)隱含層的單元數(shù)量;M表示神經(jīng)網(wǎng)絡(luò)輸入層的單元數(shù)量;ωn,k表示神經(jīng)網(wǎng)絡(luò)隱含層第k單元與輸出層第n單元的連接權(quán)值;ak-小波伸縮因子;bk-平移因子;Sl(xm)—輸入信號(hào)。
2)在計(jì)算過(guò)程中通過(guò),附加動(dòng)量法的應(yīng)用可以有效改實(shí)現(xiàn)梯度方向的平滑過(guò)渡,使得計(jì)算結(jié)果更具穩(wěn)定性。該方法以BP法為基礎(chǔ)對(duì)權(quán)值進(jìn)行調(diào)節(jié),具體公式如下:
其中:t表示樣本的訓(xùn)練次數(shù);η表示學(xué)習(xí)速率;σ表示動(dòng)量因子;σΔωki(t)表示附加動(dòng)量項(xiàng),它能夠有效降低不同神經(jīng)元之間的影響,提高網(wǎng)絡(luò)的收斂速度。
2.2 主成分BP神經(jīng)網(wǎng)絡(luò)算法的實(shí)現(xiàn)
步驟1:按照典型BP神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)預(yù)處理方法對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)處理。
步驟2:利用主成分分析法對(duì)預(yù)處理后的樣本數(shù)據(jù)進(jìn)行分析,降低輸入向量之間的影響,使各個(gè)輸入變量的協(xié)同方差趨于統(tǒng)一,從而使各權(quán)值具有相同的收斂速度,并以此確定神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點(diǎn)。
步驟3:對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化,并對(duì)其中的部分關(guān)鍵變量進(jìn)行設(shè)置。
步驟4:為神經(jīng)網(wǎng)絡(luò)選取一組學(xué)習(xí)樣本,以輸入節(jié)點(diǎn)作為網(wǎng)絡(luò)的輸入向量,并輸入期望fn,l,n=1,2,…,N;l=1,2,…,R。
步驟5:利用輸入的網(wǎng)絡(luò)參數(shù)計(jì)算網(wǎng)絡(luò)的實(shí)時(shí)輸出能力,當(dāng)輸出誤差在允許范圍之內(nèi)時(shí),停止訓(xùn)練;而當(dāng)輸出誤差超過(guò)允許范圍 ,則將誤差信息進(jìn)行反向傳播,使權(quán)值沿誤差函數(shù)的負(fù)梯度方向發(fā)生變化,然后利用梯度下降法計(jì)算出變化后的網(wǎng)絡(luò)參數(shù),然后再重復(fù)進(jìn)行第4步的操作。
步驟6:BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練合格之后,對(duì)其進(jìn)行樣本補(bǔ)償。
步驟7:對(duì)補(bǔ)償后的樣本進(jìn)行反標(biāo)準(zhǔn)化處理,然后與實(shí)測(cè)數(shù)據(jù)進(jìn)行誤差比較,判斷出網(wǎng)絡(luò)改進(jìn)之后的變化。
2.3 壓力傳感器溫度補(bǔ)償
根據(jù)前文提供的BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)步驟,可以利用Matlab編程語(yǔ)言來(lái)實(shí)現(xiàn)。在實(shí)現(xiàn)該算法之后,我們通過(guò)在壓力傳感器量程范圍內(nèi)確定n個(gè)壓力標(biāo)定點(diǎn),同時(shí)確定m個(gè)溫度標(biāo)定點(diǎn)。標(biāo)準(zhǔn)值發(fā)生器會(huì)根據(jù)每個(gè)標(biāo)定點(diǎn)的信息產(chǎn)生對(duì)應(yīng)的標(biāo)定輸入值。然后輸入樣本數(shù)據(jù),樣本數(shù)據(jù)按照目標(biāo)值要求的±20%范圍進(jìn)行選擇,然后以誤差目標(biāo)小于10-3進(jìn)行訓(xùn)練,當(dāng)達(dá)到誤差目標(biāo)之后,網(wǎng)絡(luò)的收斂速度得到有效的提升。
3 結(jié)論
通過(guò)研究結(jié)果發(fā)現(xiàn),利用主成分分析法對(duì)信息進(jìn)行補(bǔ)償之后,再利用BP神經(jīng)網(wǎng)絡(luò)對(duì)這些信息進(jìn)行訓(xùn)練,其學(xué)習(xí)速度相對(duì)直接利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練更高。同時(shí),通過(guò)改進(jìn)典型的BP神經(jīng)網(wǎng)絡(luò),利用小波函數(shù)作為激勵(lì)函數(shù),并應(yīng)用動(dòng)量附加發(fā)對(duì)網(wǎng)絡(luò)敏感性進(jìn)行控制,可以有效避免網(wǎng)絡(luò)發(fā)生局部極小問(wèn)題。通過(guò)基于主成分的BP神經(jīng)網(wǎng)絡(luò)溫度補(bǔ)償方法可以使壓力傳感器受環(huán)境溫度變化而發(fā)生的誤差問(wèn)題得到高效、精確的解決。
參考文獻(xiàn)
[1]董九英.多傳感器數(shù)據(jù)融合的主成分方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(33):111-113.
[2]章慧.基于BP神經(jīng)網(wǎng)絡(luò)的壓力傳感器數(shù)據(jù)融合[J].湖南工程學(xué)院學(xué)報(bào),2011,21(1):55-58.endprint