0 引言
傳感器的非線性校正有多種方法,并且也都得到了不同程度的應(yīng)用。傳統(tǒng)的非線性傳感器線性化的方法是硬件補償,這種方法難以做到全程補償,而且補償硬件的漂移會影響整個系統(tǒng)的精度,因此可靠性不高、測量范圍有限、精度低?,F(xiàn)在國內(nèi)外研究人員研究了多種多項式擬合校正法,當(dāng)用直線擬合時,擬合精度較低,通常不能滿足要求;用高次曲線擬合又過于復(fù)雜,實現(xiàn)困難。近年來發(fā)展較多的是神經(jīng)網(wǎng)絡(luò)法,大都采用的是BP算法[1][2]。在理論上,含有隱含層的BP網(wǎng)絡(luò)能夠逼近任意的非線性函數(shù),這種方法適應(yīng)性強,精度也高。但是BP網(wǎng)絡(luò)結(jié)構(gòu)" title="網(wǎng)絡(luò)結(jié)構(gòu)">網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜、調(diào)節(jié)的權(quán)值" title="權(quán)值">權(quán)值多、學(xué)習(xí)速度慢、容易陷入局部最小。為此本文采用了一種基于函數(shù)鏈神經(jīng)網(wǎng)絡(luò)(FLANN)的傳感器線性校正方法,與BP算法相比,該結(jié)構(gòu)簡單明了。通過在振動筒式壓力傳感器的上仿真實驗證明,該方法簡單易行,效果理想。
1 振動筒式壓力傳感器
振動筒式傳感器是利用彈性元件的振動頻率隨被測力而變化實現(xiàn)測量的。振動筒是傳感器的敏感元件,當(dāng)被測壓力通過圓筒內(nèi)腔時,由于被測壓力的作用,沿軸向和徑向被張緊的振動筒的剛度發(fā)生變化,從而改變了振動筒的諧振頻率。頻率變化值對應(yīng)著壓力變化的大小,振動頻率f與被測壓力P的關(guān)系為: 式中,A—振動筒常數(shù),它與振動筒材料性質(zhì)和振動幾何尺寸有關(guān)[3]。振動筒式壓力傳感器工作
在不同的環(huán)境溫度條件下,隨著環(huán)境溫度的變化,其測量誤差也會不同。另外振動筒金屬材料的彈性模量也隨溫度變化而變化,溫度變化將會造成筒內(nèi)氣壓不穩(wěn)定。這些因素都直接影響著振動筒頻率變化與壓力大小的線性關(guān)系。在測量中等壓力時,其非線性一般在5-6%。所以在精度要求較高的場合,必須對振動筒式壓力傳感器進(jìn)行線性校正。
2 非線性校正原理
非線性校正的原理主要基于圖1所示的基本環(huán)節(jié),圖中輸出函數(shù)y主要由振動筒式壓力傳感器的特性決定。由于溫度等因素的影響,其線性度差,因此y和u是非線性關(guān)系。如果校正函數(shù)F具有與f相反的變換特性,即 p= F ( y ) = f ( u )-1,那么校正后的輸出p與輸入u就可以成為較理想的線性關(guān)系。所以問題的關(guān)鍵是如何確定校正函數(shù)F,在實際應(yīng)用中很難準(zhǔn)確求出該校正函數(shù)即其反函數(shù),為此引入了函數(shù)鏈神經(jīng)網(wǎng)絡(luò)算法" title="神經(jīng)網(wǎng)絡(luò)算法">神經(jīng)網(wǎng)絡(luò)算法。
由回歸分析法,可以知道函數(shù)F可以用下列多項式近似地表示:
式中:n為多項式的階數(shù),它越大式(1)就越接近真實的校正函數(shù)F,其校正結(jié)果也越精確。在實際中n越大,式(1)的an un項將會急劇減小,因此n也不必取得太大。當(dāng)n確定后,下面的問題就是如何確定各項的系數(shù),文中重點介紹了使用函數(shù)鏈神經(jīng)網(wǎng)絡(luò)法對各項系數(shù)的確定。
3 函數(shù)鏈神經(jīng)網(wǎng)絡(luò)的建模
采用函數(shù)鏈神經(jīng)網(wǎng)絡(luò)進(jìn)行振動筒式壓力傳感器校正的模型如圖2所示。
圖2 函數(shù)鏈神經(jīng)網(wǎng)絡(luò)模型圖
圖中:,為訓(xùn)練樣本的輸入元素它對應(yīng)式(1)中的1,u,u2,u3,…,un;Wj(j=0,1,2,…,n)為網(wǎng)絡(luò)的連接權(quán),它用來確定式(1)中的待定系數(shù)a0,a1,a2,…,a n;di為傳感器的標(biāo)定周期(頻率的倒數(shù))值。在該神經(jīng)網(wǎng)絡(luò)中,每個神經(jīng)元都采用線性函數(shù),因此函數(shù)鏈神經(jīng)網(wǎng)絡(luò)的輸出為:
(2)
式中:P(k)為第k步時,di的估計值,它與di比較,得到第k步的估計誤差:
(3)
然后根據(jù)式(4)調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)的連接權(quán)值:
(4)
式中:wj(k+1)為第k步時,第j個連接權(quán)值,是學(xué)習(xí)因子。在進(jìn)行神經(jīng)網(wǎng)絡(luò)算法之前,先通過振動筒標(biāo)定實驗獲得多組輸入輸出標(biāo)定值對(Xi,di),Xi為壓力值。標(biāo)定點要分布在整個測量范圍之內(nèi)。另外還要對Xi進(jìn)行歸一化到[-1,+1],即xi=Xi / Xmax,Xmax為Xi的最大絕對值。其整個算法過程如下:
(1) 確定函數(shù)鏈神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
(2) 網(wǎng)絡(luò)連接權(quán)值初始化,隨即設(shè)定wj,一般wj的初始值取[-1,1]之間的隨機數(shù)。
(3) 輸入訓(xùn)練數(shù)據(jù)樣本xi,di。
(4) 由式(2)計算P(k)
(5) 由式(3)計算誤差ei( k )。如果誤差滿足要求則轉(zhuǎn)到(7),否則繼續(xù)。
(6) 由式(4)修正wj(k),調(diào)節(jié)權(quán)值,返回(4)。
(7) 誤差ei( k )達(dá)到最小,學(xué)習(xí)過程結(jié)束。得到最終的權(quán)值w0,w1,…,wn。
學(xué)習(xí)過程中還要注意學(xué)習(xí)因子的取值,它的選擇會影響到迭代穩(wěn)定性和收斂速度" title="收斂速度">收斂速度。大則收斂速度快,但穩(wěn)定性不好;反之,則穩(wěn)定性好,但是收斂速度慢。
4振動筒壓力傳感器的非線性校正
對飛行器進(jìn)行氣壓檢測是航空部門必不可少的,氣壓的檢測一般都是采用的振動筒式壓力傳感器。表1是以某振動筒壓力傳感器對飛行器氣壓在溫度為20℃時的部分壓力標(biāo)定值,將它們歸一化后作為神經(jīng)網(wǎng)絡(luò)的輸入樣本數(shù)據(jù)。在訓(xùn)練時對應(yīng)某個溫度值就有相應(yīng)的25個樣本數(shù)據(jù),在訓(xùn)練中分別選取了溫度為-40℃、-20℃、-10℃、0℃、10℃、40℃、60℃等不同范圍進(jìn)行訓(xùn)練學(xué)習(xí)。
表1 傳感器在溫度20℃時的部分壓力標(biāo)定值數(shù)據(jù)
壓力mmHg |
172.295 |
197.183 |
203.625 |
210.804 |
218.798 |
227.800 |
232.745 |
237.481 |
周 期 |
2000 |
1000 |
800 |
600 |
400 |
200 |
100 |
10 |
在實驗過程采用較為流行的MATLAB軟件進(jìn)行仿真。初始化中,學(xué)習(xí)因子取值為1.1,誤差e取值0.00035,n=3。經(jīng)過多次迭代,不斷調(diào)節(jié)網(wǎng)絡(luò)的連接權(quán)值,最終求出權(quán)值,確定了式(1)中多項式的系數(shù)為:a0=237.6144,a1=-54.1649,a2=2.9464,a3=0.001129。所以該振動筒壓力傳感器的校正函數(shù)為:
(5)
表2傳感器在溫度20℃時的部分壓力計算值與標(biāo)定值的比較
壓力mmHg |
172.425 |
197.255 |
203.682 |
210.711 |
218.858 |
227.891 |
232.798 |
237.375 |
周 期 |
2000 |
1000 |
800 |
600 |
400 |
200 |
100 |
10 |
根據(jù)所得以上函數(shù),對-40℃~60℃范圍內(nèi)8個溫度點的標(biāo)定值和由方程式(5)所得的估計值進(jìn)行了比較。在表2中列出了溫度在20℃時的估計值,和表1比較可知該模型的精度較高。其最大相對誤差小于0.08%,完全可以滿足大多數(shù)工程允許的誤差,以實現(xiàn)壓力非線性校正。
5結(jié)論
使用函數(shù)鏈神經(jīng)網(wǎng)絡(luò)進(jìn)行振動筒式壓力傳感器非線性校正具有結(jié)構(gòu)簡單、自學(xué)習(xí)能力強、易于收斂、效果良好的特點。它的訓(xùn)練的確比BP算法容易,而且算法也簡單得多;是一種很好的非線性校正方法,它也可以完全用于其他類型傳感器的非線性校正。