基于BP神經(jīng)網(wǎng)絡(luò)的一種傳感器溫度補(bǔ)償方法
掃描二維碼
隨時隨地手機(jī)看文章
摘要:簡單介紹了硅壓阻式傳感器溫度誤差產(chǎn)生的原因及其特點(diǎn),提出了一種利用BP神經(jīng)網(wǎng)絡(luò)對其溫度誤差及非線性誤差進(jìn)行補(bǔ)償?shù)姆椒?。根?jù)傳感器溫度誤差的特點(diǎn)設(shè)計(jì)了一個多層的BP神經(jīng)網(wǎng)絡(luò),其中傳感器測試電路中四臂電橋的橋路電壓和未經(jīng)補(bǔ)償?shù)膫鞲衅鞯妮敵鲎鳛樯窠?jīng)網(wǎng)絡(luò)的兩個輸入。利用MatLab對該網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到了網(wǎng)絡(luò)的權(quán)值和閥值。經(jīng)過試驗(yàn)證明,該網(wǎng)絡(luò)能夠有效的補(bǔ)償傳感器的溫度非線性誤差,在-40~60℃范圍內(nèi),使溫度誤差從原來的5.4%降到了0.2%。
關(guān)鍵詞:溫度補(bǔ)償;硅壓阻式;傳感器;BP神經(jīng)網(wǎng)絡(luò);電橋
傳感器特別是硅壓阻式傳感器的溫度誤差在其總誤差中占有很大的比重,溫度補(bǔ)償?shù)暮脡闹苯佑绊懼鴤鞲衅鞯目偩?。溫度誤差的補(bǔ)償方法有很多種,其中軟件補(bǔ)償是一種較常見的方法。由于傳感器的溫度誤差是一種非線性誤差,即各個溫度點(diǎn)的補(bǔ)償系數(shù)也應(yīng)該呈非線性,這給補(bǔ)償帶來了一定的困難。常常采用的方法是選取幾個溫度點(diǎn),求得補(bǔ)償系數(shù),其它溫度點(diǎn)的補(bǔ)償系數(shù)通過線性插值得到,這種方法實(shí)質(zhì)上是一種將補(bǔ)償系數(shù)分段線性化來擬合補(bǔ)償系數(shù)的非線性曲線的方法。因此,要做到較高的補(bǔ)償精度比較困難。而BP神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的曲線擬合能力,可以利用BP網(wǎng)絡(luò)對傳感器輸出值進(jìn)行處理,得到去除了溫度誤差的理想輸出值。但是,單單從傳感器的輸出很難判斷哪些是由輸入壓力所引起的輸出,哪些是由于溫度誤差所帶來的輸出。所以,向BP網(wǎng)絡(luò)引入一個反映溫度變化的參數(shù)至關(guān)重要。而傳感器橋路電壓可以滿足條件。因此,利用傳感器的橋路電壓和未經(jīng)溫度補(bǔ)償?shù)膫鞲衅鬏敵鲆黄鹱鳛樯窠?jīng)網(wǎng)絡(luò)的輸入。試驗(yàn)證明,構(gòu)建的BP神經(jīng)網(wǎng)絡(luò)能夠使傳感器的溫度誤差得到大大降低,使得傳感器在-40~60℃溫度范圍內(nèi),非線性溫度誤差降低到0.2%。
1 BP神經(jīng)網(wǎng)絡(luò)硅壓阻式傳感器溫度補(bǔ)償
1.1 硅壓阻式傳感器的溫度誤差
硅壓阻式傳感器是用半導(dǎo)體材料制成的,而半導(dǎo)體材料對溫度很敏感。因此,硅壓阻式傳感器的溫度誤差較大,并且其溫度誤差具有以下特點(diǎn):首先,在相同壓力下硅壓阻式傳感器的溫度誤差比其他材料傳感器的要大;其次,它的溫度誤差是非線性的;再次,在進(jìn)行溫度補(bǔ)償?shù)倪^程中,很難區(qū)分溫度誤差引起的輸出量的變化和壓力變化引起的輸出量的變化;此外,硅壓阻傳感器的溫度誤差有很大的分散性,甚至由同一制造商提供的同一型號傳感器的誤差幅度彼此之間也會有輕微的差異。這些特點(diǎn)給硅壓阻式傳感器的溫度誤差補(bǔ)償帶來了一定的困難。鑒于硅壓阻傳感器溫度誤差的特點(diǎn),要對它進(jìn)行補(bǔ)償,首先必須找到一個能夠反映溫度變化的參量,這可以從傳感器的測量電路中獲得。
硅壓阻式傳感器的測量電路,由應(yīng)變計(jì)組成的四臂電橋組成,如圖1所示,四臂電橋中的4個電阻的阻值不僅會隨壓力的變化而變化,還會隨溫度的升高而增大。
假設(shè)溫度為t0時,Rt=R2=R3=R4=R0,當(dāng)溫度、壓力發(fā)生變化時,各電阻阻值可以用式(1)、(2)表示:
從式(4)可得,橋路電壓Vb與壓力產(chǎn)生的應(yīng)變沒有關(guān)系,僅與溫度引起的附加應(yīng)變有關(guān)。因此,可以利用它作為反映溫度變化的參數(shù),而不需另外增加一個溫度傳感器,這樣做的好處是,直接利用壓力傳感器本身元件敏感溫度的變化,從而避免由于外加溫度傳感器而導(dǎo)致測量溫度和壓阻傳感器應(yīng)變片實(shí)際溫度存在差異給補(bǔ)償帶來誤差,提高了補(bǔ)償?shù)木?,同時也節(jié)約了成本,簡化了電路。
硅壓阻式傳感器雖然存在著很大的溫度誤差,但是在溫度不變的情況下,傳感器的輸出呈現(xiàn)出很好的線性度和重復(fù)性,這就為用BP神經(jīng)網(wǎng)絡(luò)對它進(jìn)行溫度補(bǔ)償提供了必要的條件。
1.2 BP神經(jīng)網(wǎng)絡(luò)算法
1986年Rumelhart,Hinton和Willians完整而簡明地提出一種ANN的誤差反相傳播訓(xùn)練算法(簡稱BP算法)。目前,在人工神經(jīng)網(wǎng)絡(luò)的實(shí)際應(yīng)用中,絕大部分的神經(jīng)網(wǎng)絡(luò)模型是采用BP網(wǎng)絡(luò)和它的變形形式,它也是前向網(wǎng)絡(luò)的核心部分,并體現(xiàn)了人工神經(jīng)網(wǎng)絡(luò)最精華的部分。
BP神經(jīng)網(wǎng)絡(luò)由輸入層、輸出層和多層隱含層組成,只要隱含層中有足夠數(shù)量的神經(jīng)元,它就可以用來逼近幾乎任何一個函數(shù)。事實(shí)上,研究已表明,兩層網(wǎng)絡(luò)在其隱含層中使用S形傳輸函數(shù),在輸出層中使用線性傳輸函數(shù),就幾乎可以以任意精度逼近任何函數(shù)。三層BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖如圖2所示,任意層的BP神經(jīng)網(wǎng)絡(luò)具有類似的結(jié)構(gòu)。
在多層網(wǎng)絡(luò)中,某一層的輸出成為下一層的輸入。描述此操作的等式為:
這里,M是網(wǎng)絡(luò)的層數(shù)。多層網(wǎng)絡(luò)的BP算法是LMS(Least Mean Square,最小均方)算法的推廣。算法的輸入是一個網(wǎng)絡(luò)正確行為的樣本集合:
這里pQ是網(wǎng)絡(luò)的輸入,tQ是對應(yīng)的目標(biāo)輸出。每輸入一個樣本,便將網(wǎng)絡(luò)輸出與目標(biāo)輸出相比較。算法將調(diào)整網(wǎng)絡(luò)參數(shù)以使均方誤差最小化。每一步對參數(shù)的調(diào)節(jié)見式(7)(8)。
式(6)為均方誤差的期望。這里,均方誤差的期望值被第k次迭代的均方誤差所代替。
這里α是學(xué)習(xí)速度。
1. 3 BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建和訓(xùn)練
用BP神經(jīng)網(wǎng)絡(luò)對硅壓阻式傳感器進(jìn)行溫度補(bǔ)償?shù)脑韴D如圖3所示,在MatLab中創(chuàng)建的是一個1-10-2-1的BP網(wǎng)絡(luò)。
用BP神經(jīng)網(wǎng)絡(luò)對硅壓阻式傳感器實(shí)現(xiàn)溫度補(bǔ)償分成兩部分,如圖3所示。其中,P表示輸入的壓力;y表示未經(jīng)溫度補(bǔ)償?shù)膫鞲衅鬏敵?;Vb表示傳感器測量電路的橋路電壓;y'表示經(jīng)過溫度補(bǔ)償?shù)膫鞲衅鬏敵觥?br />
BP神經(jīng)網(wǎng)絡(luò)隱層由Log-Simoid層和線性層兩層組成。也就是說隱層的函數(shù)分別為:
傳感器未經(jīng)溫度補(bǔ)償?shù)妮敵鲭妷簓和測量電路中的橋路電壓Vb作為神經(jīng)網(wǎng)絡(luò)的兩個輸入?yún)?shù),經(jīng)過該網(wǎng)絡(luò)后將得到除去了溫度誤差的輸出結(jié)果。
表1所示分別為-40、-20、0、20、40℃下測定的傳感器橋路電壓、2 MPa時傳感器輸出,100 MPa滿量程輸出。鑒于0 MPa較難獲得,則可以將2 MPa作為最小壓力。硅壓阻式傳感器在一定溫度下具有很好的線性度,因此各溫度下根據(jù)兩個壓力點(diǎn)的輸出很容易推算出20、40、60、80 MPa輸入壓力時的電壓輸出值。
選取常溫20℃時的傳感器輸出作為目標(biāo)值。這樣就可以形成30個樣本點(diǎn),可以用式(10)表示。
其中Xi為輸入樣本,可以表示為(yi,Vbi),yi為-40、-20、0、20、40℃溫度下測得的未進(jìn)行溫度補(bǔ)償?shù)膫鞲衅鬏敵?;Vbi為yi相應(yīng)的電橋橋路電壓值;yi’為目標(biāo)值,即與yi相同壓力下在20℃所測得的傳感器輸出,該壓力下的補(bǔ)償后的目標(biāo)輸出值。
采用L—M算法用MatLab對樣本進(jìn)行訓(xùn)練。得到值、閾值,訓(xùn)練過程如圖4所示。
分別測量-40~60℃,2~100 MPa傳感器輸出和相應(yīng)溫度下的最小壓力下的Vb值,將傳感器輸出經(jīng)過BP神經(jīng)網(wǎng)絡(luò)進(jìn)行溫度補(bǔ)償后得到的結(jié)果如表2所示。
2 結(jié)論
硅壓阻式傳感器經(jīng)過BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償后,溫度誤差得到了大大的降低,在-40~60℃范圍內(nèi),溫度誤差由原來的5.4%降到了0.2%,并且這個方法對其他類型的傳感器的溫度補(bǔ)償同樣適用,也可以應(yīng)用于一些傳感器輸出的非線性校正。