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