徐桂林,黃 彥,孫振庭
(1.長(zhǎng)春氣象儀器研究所有限責(zé)任公司,長(zhǎng)春 130102;2.長(zhǎng)春希邁氣象科技股份有限公司,長(zhǎng)春 130102)
隨著電子技術(shù)、處理器技術(shù)和現(xiàn)場(chǎng)總線(xiàn)技術(shù)的發(fā)展,在工業(yè)現(xiàn)場(chǎng)的信號(hào)采集處理中,以微處理器為核心的智能傳感器應(yīng)用越來(lái)越廣泛。這類(lèi)傳感器不僅可以對(duì)現(xiàn)場(chǎng)量進(jìn)行采集與表征轉(zhuǎn)換,還具有很強(qiáng)的數(shù)據(jù)處理和通信能力,使在前端對(duì)一次元件進(jìn)行參數(shù)變換和非線(xiàn)性校正的構(gòu)想成為可能[1]。
目前,對(duì)傳感器非線(xiàn)性校正的方法有很多[2,3]。最常用的是查表法(分段線(xiàn)性插值方法),在量程內(nèi)將曲線(xiàn)分成很多段,每一段用直線(xiàn)代替曲線(xiàn),分段直線(xiàn)近似逼近曲線(xiàn),分的段數(shù)越多,近似精度越高。但同時(shí)占用的存儲(chǔ)空間也越大,查表時(shí)間隨之增長(zhǎng),因此該方法實(shí)時(shí)性不好,對(duì)于精度要求高的場(chǎng)合適用性較差。曲線(xiàn)擬合法是用n次多項(xiàng)式擬合傳感器反非線(xiàn)性曲線(xiàn),多項(xiàng)式系數(shù)一般采用LS算法及各種改進(jìn)的LS算法確定,求解過(guò)程可能因噪聲污染而無(wú)法求解出正確值[4,5]?;谏窠?jīng)網(wǎng)絡(luò)的非線(xiàn)性補(bǔ)償方法是近年發(fā)展起來(lái)的新型算法,利用傳感器檢測(cè)數(shù)據(jù)或標(biāo)準(zhǔn)分度表訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),得到傳感器逆模型,進(jìn)而使校正模型系統(tǒng)線(xiàn)性化,得到的網(wǎng)絡(luò)可按一般線(xiàn)性特性處理,具有較好的適應(yīng)性和較高的精度,但BP網(wǎng)絡(luò)也存在收斂速度慢、隱層節(jié)點(diǎn)數(shù)選擇困難和容易陷入局部最小等問(wèn)題[6]。
智能傳感器的一般結(jié)構(gòu)如圖1所示。主要由3部分組成,一次敏感元件完成待采集物理量的電信號(hào)表征,信號(hào)調(diào)理電路對(duì)信號(hào)進(jìn)行采集、濾波、放大及整形,A/D轉(zhuǎn)換電路完成數(shù)字量轉(zhuǎn)換,微處理器對(duì)A/D采集的數(shù)字信號(hào)進(jìn)行數(shù)字濾波、非線(xiàn)性處理和標(biāo)度變換,總線(xiàn)接口完成與上位計(jì)算機(jī)通信或其他網(wǎng)絡(luò)節(jié)點(diǎn)的信號(hào)傳輸[7]。由于一般的敏感元件均具有非線(xiàn)性特性,加之調(diào)理電路和預(yù)處理電路引入的誤差,會(huì)導(dǎo)致傳感器輸入-輸出呈現(xiàn)非線(xiàn)性,因此需要進(jìn)行非線(xiàn)性校正。
圖1 智能傳感器結(jié)構(gòu)原理
傳感器的非線(xiàn)性校正模型如圖2所示。設(shè)被測(cè)量x經(jīng)由一次敏感元件和A/D轉(zhuǎn)換器后給微處理器的輸出為u,可以描述為u=f(x),也可以認(rèn)為輸入輸出是一個(gè)函數(shù)關(guān)系。理想情況下u=kx,即輸入輸出為線(xiàn)性關(guān)系,但由于敏感元件的非線(xiàn)性特性,f(x)一般是一個(gè)非線(xiàn)性函數(shù)[8]。為此,可以在傳感器和A/D轉(zhuǎn)換后串聯(lián)一個(gè)校正環(huán)節(jié)F,若校正環(huán)節(jié)的函數(shù)F具有與f相反的變換特性,即F=f-1,則:
圖2 非線(xiàn)性校正模型
y=F(u)=F[f(x)]=f-1[f(x)]=x
(1)
校正后的輸出y與x成理想的線(xiàn)性關(guān)系。對(duì)敏感元件的非線(xiàn)性校正就是求取反非線(xiàn)性函數(shù)F。
通常F可近似表示為多項(xiàng)式形式:
F(u)=a0+a1u+a2u2+…+anun
(2)
式中:n為多項(xiàng)式階數(shù);a0…an為多項(xiàng)式系數(shù)。
函數(shù)鏈神經(jīng)網(wǎng)絡(luò)是一種引入非線(xiàn)性擴(kuò)展函數(shù)的單層網(wǎng)絡(luò),通過(guò)對(duì)輸入的函數(shù)進(jìn)行擴(kuò)展,將多層網(wǎng)絡(luò)壓縮成單層網(wǎng)絡(luò),使其具有很好的非線(xiàn)性映射能力,可避免BP網(wǎng)絡(luò)陷于局部最小的問(wèn)題[9,10]。對(duì)于反非線(xiàn)性函數(shù)F待定系數(shù)a0…an的求取可采用構(gòu)造函數(shù)鏈神經(jīng)網(wǎng)絡(luò)的方法來(lái)實(shí)現(xiàn),函數(shù)鏈神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖3所示。它能對(duì)輸入的1組樣本值進(jìn)行學(xué)習(xí),用學(xué)習(xí)迭代的方法對(duì)權(quán)值進(jìn)行修正,通過(guò)多次學(xué)習(xí),直至神經(jīng)網(wǎng)絡(luò)的輸出值的誤差均方值達(dá)到一個(gè)足夠小的值,此時(shí)學(xué)習(xí)結(jié)束。最后得到的權(quán)值即為要擬合的多項(xiàng)式的待定系數(shù)。
圖3 函數(shù)鏈神經(jīng)網(wǎng)絡(luò)
在具體應(yīng)用時(shí)首先要進(jìn)行傳感器標(biāo)定試驗(yàn),記錄下標(biāo)定點(diǎn)的傳感器數(shù)據(jù)及A/D轉(zhuǎn)換結(jié)果,在微處理器的軟件中實(shí)現(xiàn)函數(shù)鏈神經(jīng)網(wǎng)絡(luò)算法,把A/D轉(zhuǎn)換結(jié)果的標(biāo)定值作為輸入值,傳感器所測(cè)的物理量為輸出值,經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)得到要擬合曲線(xiàn)的系數(shù),從而生成反非線(xiàn)性曲線(xiàn)方程,使用時(shí)通過(guò)反非線(xiàn)性曲線(xiàn)方程補(bǔ)償傳感器非線(xiàn)性。
函數(shù)鏈神經(jīng)網(wǎng)絡(luò)非線(xiàn)性校正步驟如下:
1)敏感元件及調(diào)理電路試驗(yàn)標(biāo)定。在標(biāo)準(zhǔn)試驗(yàn)環(huán)境下,確定標(biāo)定點(diǎn)數(shù)目N,通過(guò)試驗(yàn)標(biāo)定實(shí)驗(yàn)數(shù)據(jù)得到N個(gè)標(biāo)定點(diǎn)的輸入、輸出值。
2)列出反非線(xiàn)性特性擬合方程:
(3)
一般情況下,三階多項(xiàng)式已能滿(mǎn)足精度要求,取n=3,則
(4)
式中:a0~a3為待定系數(shù)。
(5)
使估計(jì)誤差[ei(k)]的均方值足夠小,估計(jì)誤差為:
(6)
權(quán)值調(diào)節(jié)式為:
(7)
當(dāng)權(quán)值調(diào)節(jié)趨于穩(wěn)定時(shí),所得權(quán)值為:
Wj:W0,W1,W2,W3
即為多項(xiàng)式待定常數(shù)a0~a3:
a0=W0,a1=W1,a2=W2,a3=W3
以氣象科學(xué)中廣泛使用的Pt100鉑電阻溫敏元件為例進(jìn)行實(shí)驗(yàn)。0~200 ℃時(shí)Pt100熱電阻的標(biāo)定值如表1所示,其輸入-輸出特性存在著明顯的非線(xiàn)性。在氣象參數(shù)測(cè)量范圍內(nèi)可以使用式(8)近似描述其輸入輸出特性:
表1 Pt100鉑電阻在0~200 ℃時(shí)的標(biāo)定值
yi=W0+W1(x/xmax)+W2(x/xmax)2
(8)
根據(jù)上述校正方法,將Pt100電阻值的輸出作為神經(jīng)網(wǎng)絡(luò)的輸入xi,溫度值作為輸出yi,xmax取整數(shù)200,ui=xi/200。取n=2,賦連接權(quán)W0,W1,W2的初始值為(-1,1)之間的隨機(jī)數(shù),將Pt100的輸入輸出數(shù)據(jù)按順序加入神經(jīng)網(wǎng)絡(luò),用學(xué)習(xí)迭代方法對(duì)權(quán)值進(jìn)行修正,其中學(xué)習(xí)因子η取為變數(shù)(0.95~0.4)。迭代運(yùn)算后得到:W0=-244.8367,W1=467.7580,W2=43.5683。則Pt100鉑電阻的反非線(xiàn)性函數(shù)為:
yi=-244.8367+2.33879x+0.001089x2
由反非線(xiàn)性曲線(xiàn)計(jì)算得到的溫度值如表2所示??梢?jiàn)擬合值與標(biāo)定值非常接近,最大相對(duì)誤差不超過(guò)0.1%。
表2 計(jì)算值與標(biāo)定值比較表 ℃
對(duì)于具有微處理器的智能傳感器,可以根據(jù)文章提出的方法進(jìn)行傳感器出廠(chǎng)前的校準(zhǔn)標(biāo)定,以提高系統(tǒng)精度。如果考慮將一次敏感元件和前向數(shù)據(jù)采集通道作為一個(gè)整體,可以實(shí)現(xiàn)傳感器自標(biāo)定,也可以采用離線(xiàn)方式單獨(dú)標(biāo)定敏感元件。在Pt100熱電阻實(shí)驗(yàn)中,假定階數(shù)為3,忽略了高次項(xiàng),可能對(duì)其他類(lèi)型的一次敏感器件擬合精度不夠,可以通過(guò)適當(dāng)增加階數(shù)來(lái)提高精度。該方法的局限性在于靜態(tài)求取擬合參數(shù),沒(méi)有考慮傳感器工作過(guò)程中的溫漂和時(shí)漂影響,進(jìn)一步的改進(jìn)方向是在考慮傳感器運(yùn)行條件的前提下,實(shí)現(xiàn)在線(xiàn)非線(xiàn)性校正手段。