(內(nèi)蒙古民族幼兒師范高等??茖W(xué)校,內(nèi)蒙古自治區(qū) 鄂爾多斯 017000)
電解角度傳感器具有良好的耐用性,因此在包括工業(yè)機(jī)械臂在內(nèi)的多個(gè)領(lǐng)域得到廣泛的應(yīng)用[1]。眾所周知,傳感器精度是決定系統(tǒng)控制精度的主要因素,因此提高角度傳感器的輸出精度具有重要的現(xiàn)實(shí)意義。由于設(shè)計(jì)因素和材料因素的原因,電解角度傳感器在不同環(huán)境溫度下會出現(xiàn)誤差,尤其在高層戶外的環(huán)境,這種誤差效果更為凸顯。為此,提出一種提高角度傳感器輸出精度的解決方法。該方法首先使用SG算法[2]對原始傳感信號進(jìn)行預(yù)過濾處理,隨后使用BP神經(jīng)網(wǎng)絡(luò)[3]對包含對角度傳感器信號和環(huán)境溫度傳感信號多階數(shù)輸出信號進(jìn)行誤差估計(jì),最終達(dá)到抵消溫度誤差、提高傳感角度的目標(biāo)。
角度傳感器廣泛應(yīng)用于天線定位、航空電子、坡度或傾斜監(jiān)測和車輛姿態(tài)監(jiān)測等領(lǐng)域。為保證角度傳感器的工作可靠性,本文選用電解角度傳感器。電解角度傳感器結(jié)構(gòu)獨(dú)特,適用于窄角和寬角范圍的測量,同時(shí)又保持了緊湊的尺寸和較高的精度,且具有成本低、批量生產(chǎn)可能、功耗低、重復(fù)性好和可靠性好等優(yōu)點(diǎn)。電解角度傳感器的工作原理如圖1所示。傳感器的主體是用各向異性KOH蝕刻法制備的填充導(dǎo)電電解質(zhì)的大體積硅腔,并采用頂部玻璃薄片密封[4]。當(dāng)角度傳感器水平時(shí),正極和負(fù)極均浸入電解液中,相對于普通電極,正極和負(fù)極之間產(chǎn)生平衡的電阻信號輸出。當(dāng)傳感器傾斜時(shí),電極的浸入表面積會發(fā)生變化,一個(gè)電極的浸入面積增加,另一個(gè)電極的浸入面積減小。電阻的不平衡比與傾角成正比,因此通過測量電阻即可得出傾角。
圖1 電解角度傳感器的工作原理
作為局部多項(xiàng)式回歸方法 SG濾波算法是通過最小二乘解[5]可以得到給定數(shù)據(jù)窗大小(2L+1)的優(yōu)化曲線擬合多項(xiàng)式,因此,SG濾波器可以作為一個(gè)信號平滑算法[6]。假設(shè)a(k)是一組采樣數(shù)據(jù)樣本序列。每一個(gè)數(shù)據(jù)點(diǎn)(如k=0)周圍有一組(2L+1)個(gè)樣本,形成一個(gè)擬合多項(xiàng)式,表示為[7]
fi=a0+a1i+a2i2+…+apip=
(1)
SG算法通過將待處理數(shù)據(jù)中某一連續(xù)的數(shù)據(jù)點(diǎn)選用相應(yīng)的擬合階次進(jìn)行最小二乘法多項(xiàng)式擬合,進(jìn)而將擬合得到的曲線在數(shù)據(jù)中心點(diǎn)處的取值作為濾波后的數(shù)據(jù)值,并依此對其他待處理數(shù)據(jù)重復(fù)此過程。從而達(dá)到對所有數(shù)據(jù)進(jìn)行濾波的目的。SG算法的具體濾波過程如下。
設(shè)x(n)中的一組數(shù)據(jù)為x(i),i=-M,…,0,…,M。通過構(gòu)造一個(gè)p階多項(xiàng)式fi來擬合x(i)。
(2)
ak(k=0,…,N)為擬合系數(shù);N為多項(xiàng)式階數(shù)。得到fi的目的是使如式(2)所示的誤差項(xiàng)最小化。
(3)
(4)
通過確定多項(xiàng)式階數(shù)N即可求出Fr和Sk+r。將其代入式(4)中則可計(jì)算求出擬合系數(shù)a0,a1和ap,從而確定擬合多項(xiàng)式fi。最后通過擬合多項(xiàng)式fi對輸入的采樣信號進(jìn)行平滑計(jì)算從而求出濾波后的輸出采樣數(shù)據(jù)序列。
本文使用SG算法對傳感器的采樣數(shù)字信號進(jìn)行濾波計(jì)算。當(dāng)SG算法參數(shù)M=15且P=3 時(shí),濾波前后的采樣數(shù)據(jù)序列如圖2所示。由圖2可以看出,SG算法有效地減少傳感器輸出信號的擬合誤差,為建立神經(jīng)網(wǎng)絡(luò)模型提供足夠準(zhǔn)確的傳感數(shù)據(jù)。
圖2 傾角傳感器濾波預(yù)處理后誤差對比
由于傳感器的導(dǎo)電電解質(zhì)和正負(fù)電極在環(huán)境溫度變化下會導(dǎo)致電阻率出現(xiàn)不同程度的變化,從而影響角度傳感器的輸出信號的精度[8],因此使用BP神經(jīng)網(wǎng)絡(luò)對輸出信號所包含的角度信息進(jìn)行糾正,以抵消環(huán)境溫度對輸出角度信號的干擾。所建立的3層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。為了實(shí)現(xiàn)從傳感器輸入信號和環(huán)境溫度值到輸出角度信號的復(fù)雜非線性映射,分別選擇非線性tansig函數(shù)和線性purelin函數(shù)作為隱藏層和輸出層的傳遞函數(shù)[9]。
圖3 三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
設(shè)角度傳感器的采樣值序列為θ,其采樣時(shí)間為10 s;t為采樣通道總數(shù),該信號已經(jīng)被SG過濾算法處理;aj為第j個(gè)溫度傳感器的采樣值序列,采樣時(shí)間為10 s;k為采樣通道總數(shù)。即
(5)
通過m階非線性模型估計(jì)輸出角度
(6)
(7)
(8)
從式(7)和圖3可以看出,輸入神經(jīng)元的數(shù)量溫度采集通道的數(shù)量和角度傳感器的數(shù)量有關(guān)。輸出層有3個(gè)神經(jīng)元,代表3個(gè)方向的角度。中間層神經(jīng)元數(shù)目n不確定。輸入層和中間層神經(jīng)元的數(shù)目對關(guān)節(jié)角估計(jì)的精度都有很大的影響,因此將根據(jù)網(wǎng)絡(luò)性能選擇合適的神經(jīng)元數(shù)量。
一旦建立了網(wǎng)絡(luò)的精確結(jié)構(gòu),那么最重要的事情之一就是訓(xùn)練網(wǎng)絡(luò)的權(quán)值和閾值。經(jīng)過數(shù)據(jù)采集和預(yù)處理,利用處理后的角度傳感信號和溫度傳感信號構(gòu)造輸入矩陣,利用處理后的3個(gè)維度的角度向量構(gòu)造目標(biāo)矩陣。所有的數(shù)據(jù)點(diǎn)也被劃分為2個(gè)部分:訓(xùn)練和驗(yàn)證。在所有的實(shí)驗(yàn)中,每個(gè)實(shí)驗(yàn)提取20 s的信號,10 s用于訓(xùn)練,另外10 s用于驗(yàn)證。最陡下降反向傳播是一種最基本的反向傳播算法,其最大的缺點(diǎn)是在整個(gè)網(wǎng)絡(luò)訓(xùn)練過程中學(xué)習(xí)速率保持不變,因此算法的實(shí)際性能對學(xué)習(xí)速率的正確選擇非常敏感。一旦沒有正確選擇學(xué)習(xí)速率,可能會出現(xiàn)2個(gè)問題:當(dāng)學(xué)習(xí)速率過大時(shí),訓(xùn)練過程可能會發(fā)生振蕩,變得不穩(wěn)定;另一個(gè)問題是訓(xùn)練過程非常緩慢,網(wǎng)絡(luò)收斂需要很長時(shí)間。事實(shí)上,由于最優(yōu)學(xué)習(xí)速率隨迭代次數(shù)的變化而變化,對于一定的網(wǎng)絡(luò),并沒有固定的最優(yōu)學(xué)習(xí)速率。針對最陡下降反向傳播算法的不足,提出了一些改進(jìn)算法。動量變學(xué)習(xí)速率BP算法(GDX)是改進(jìn)的BP算法之一,也是本研究中使用的算法。
BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)定如表1所示。為了提高訓(xùn)練效率,本文對輸入數(shù)據(jù)進(jìn)行歸一化處理,使得所有的輸入數(shù)據(jù)取值區(qū)間限定在[0~1]之間。歸一化計(jì)算
(9)
yi為歸一化后數(shù)值;xi為原始數(shù)值;xmin為最小輸入數(shù)值;xmax為最大輸入數(shù)值。
表1 神經(jīng)網(wǎng)絡(luò)參數(shù)表
如上所述,如果模型階數(shù)和隱層神經(jīng)元數(shù)目選擇不當(dāng),角度估計(jì)誤差會很大,因此需要在算法驗(yàn)證前首先在MATLAB環(huán)境下進(jìn)行仿真實(shí)驗(yàn)以確定模型階數(shù)和神經(jīng)元數(shù)量。實(shí)驗(yàn)所用的網(wǎng)絡(luò)模型為
net=newff(min max(traininput),[20,3],
{‘tansig’,‘purelin’},‘trainlm’)
(10)
net為目標(biāo)BP神經(jīng)網(wǎng)絡(luò)模型;newff為在MATLAB 7.0中生成的BP神經(jīng)網(wǎng)絡(luò)函數(shù);minmax()用以求解輸入樣本參數(shù)的最小值和最大值;[20,3]中“20”代表中間隱含層的神經(jīng)元個(gè)數(shù),“3”代表輸出層神經(jīng)元個(gè)數(shù);{‘tansig’,‘purelin’}分別表示輸入層到隱含層和隱含層到輸出層的傳遞函數(shù);‘trainlm’為本研究所設(shè)計(jì)的訓(xùn)練函數(shù)。
在模型階數(shù)和隱層神經(jīng)元數(shù)發(fā)生變化的設(shè)置下,進(jìn)行4次反復(fù)試驗(yàn),得出的角度平均估計(jì)均方根誤差變化如圖4所示。對圖4進(jìn)行分析可知模型階數(shù)(即輸入通道)并不是越多越好,冗余的采集數(shù)據(jù)會引起網(wǎng)絡(luò)振蕩。從圖4a可以看出,選擇模型階數(shù)為20時(shí),隱藏層神經(jīng)元的最優(yōu)數(shù)量為20,輸入向量長度為60。由圖4b可知,當(dāng)隱藏層神經(jīng)元數(shù)量為20時(shí),最優(yōu)模型階數(shù)為20。由此可知最優(yōu)的模型階數(shù)和隱藏層均為20。
圖4 當(dāng)隱層神經(jīng)元數(shù)目和模型階數(shù)m變化時(shí),角度估計(jì)均方根誤差
在溫度精確的實(shí)驗(yàn)環(huán)境下將18個(gè)角度傳感器固定在三軸轉(zhuǎn)臺上進(jìn)行算法驗(yàn)證實(shí)驗(yàn),同時(shí)在實(shí)驗(yàn)環(huán)境中設(shè)置2個(gè)溫度傳感器。轉(zhuǎn)臺的角度值作為算法輸出的角度值的標(biāo)準(zhǔn)參照數(shù)值。實(shí)驗(yàn)共采集160組傳感數(shù)據(jù),每組數(shù)據(jù)包括10個(gè)角度傳感數(shù)據(jù)和10個(gè)溫度數(shù)據(jù)。然后使用SG算法對采集的傳感數(shù)據(jù)序列進(jìn)行平滑濾波處理。最后將處理后的傳感數(shù)據(jù)分為2組:124組訓(xùn)練數(shù)據(jù)和36組測試數(shù)據(jù)。
訓(xùn)練過程中的BP神經(jīng)網(wǎng)絡(luò)的誤差收斂曲線如圖5所示。由圖5可知,在完成165次迭代時(shí),BP神經(jīng)網(wǎng)絡(luò)的輸出誤差降至0.000 099,顯示出了令人滿意的收斂速度。
圖5 神經(jīng)網(wǎng)絡(luò)誤差收斂曲線
使用測試數(shù)據(jù)對經(jīng)過訓(xùn)練的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行測試的結(jié)果如表2所示。表2中真實(shí)值和擬合值均為3個(gè)方向角度的平均值。表中“組合模型”是采用完成訓(xùn)練的BP神經(jīng)網(wǎng)絡(luò)對經(jīng)過SG算法處理的36組傳感數(shù)據(jù)進(jìn)行擬合的相對誤差;“原始數(shù)據(jù)”為采集的原始角度傳感數(shù)據(jù)的平均值;“SG算法”是對原始傳感數(shù)據(jù)進(jìn)行濾波后的平均值。對這3列數(shù)據(jù)進(jìn)行分析能夠得出以下結(jié)果:經(jīng)過結(jié)合SG算法和BP神經(jīng)網(wǎng)絡(luò)組合模型處理后的傳感數(shù)據(jù)具有最小的擬合誤差。
表2 檢驗(yàn)樣本數(shù)據(jù)誤差比較
本文針對角度傳感器在實(shí)際使用中容易收到環(huán)境溫度干擾出現(xiàn)誤差的問題,提出采用SG算法和BP神經(jīng)網(wǎng)絡(luò)組合算法進(jìn)行信號處理以降低誤差干擾的解決思路。該方法是首先使用SG算法對傳感信號進(jìn)行平滑規(guī)律,然后使用BP神經(jīng)網(wǎng)絡(luò)對傳感信號進(jìn)行擬合估計(jì)。實(shí)驗(yàn)結(jié)果表明,在選擇合適的傳感數(shù)據(jù)采集通道數(shù)量和建立最優(yōu)的BP神經(jīng)網(wǎng)絡(luò)規(guī)模的前提下,該方法輸出的傳感數(shù)據(jù)能夠有效抵消環(huán)境溫度的干擾。