劉鳳偉 時(shí)慧晶 劉春枚
(昆明船舶設(shè)備試驗(yàn)研究中心 昆明 650051)
某水下試驗(yàn)裝置是一種可以升降、旋轉(zhuǎn)、平移的大型試驗(yàn)設(shè)施,主要用于測(cè)試、驗(yàn)證聲吶或其他水聲設(shè)備聲學(xué)工作性能指標(biāo)的重要裝置。水聽器是水下航行體或其他水聲裝置重要的敏感元件,主要用于水下物體的精確探測(cè)[1]。根據(jù)試驗(yàn)?zāi)康模瑢⑺曆b置通過夾具安裝至水下試驗(yàn)裝置。水下試驗(yàn)裝置依據(jù)預(yù)先設(shè)定的水深將被測(cè)試驗(yàn)件浸入水中,再根據(jù)相關(guān)要求旋轉(zhuǎn)不同的角度和平移控制,達(dá)到試驗(yàn)?zāi)康摹?/p>
光電編碼器具有高精度、高分辨力、輸出穩(wěn)定等優(yōu)點(diǎn),廣泛應(yīng)用于儀表測(cè)量、現(xiàn)代軍事、信號(hào)檢測(cè)、生物工程、工業(yè)自動(dòng)化和航空航天航海等精密檢測(cè)與控制系統(tǒng)領(lǐng)域[2]。試驗(yàn)裝置的旋轉(zhuǎn)角度通過安裝好的光電編碼器測(cè)定,反饋給上位計(jì)算機(jī),通過上位計(jì)算機(jī)閉環(huán)控制試驗(yàn)裝置的旋轉(zhuǎn)角度。
光電傳感器的測(cè)量誤差具有分布非線性特點(diǎn),包括被測(cè)件的機(jī)械安裝誤差、試驗(yàn)裝置的系統(tǒng)誤差、角度傳感器彈性元件疲勞、運(yùn)動(dòng)機(jī)件磨損及腐蝕等,長期使用時(shí),為保證其測(cè)量精度還必須定期進(jìn)行校準(zhǔn)[2]。本文提出一種基于BP神經(jīng)網(wǎng)絡(luò)的水下試驗(yàn)裝置角度誤差補(bǔ)償方法,采用水下試驗(yàn)裝置試驗(yàn)時(shí)的工作數(shù)據(jù)作為訓(xùn)練樣本對(duì)BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和學(xué)習(xí),得到模型的結(jié)構(gòu)參數(shù),補(bǔ)償精度高,收斂速度快,能夠克服光電編碼器安裝、環(huán)境等因素對(duì)試驗(yàn)裝置定位角度精度的影響,大大提高了水下試驗(yàn)裝置的定位精度。同時(shí),采用BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償之后,系統(tǒng)還具有網(wǎng)絡(luò)結(jié)構(gòu)簡單、自學(xué)習(xí),易于標(biāo)定操作等優(yōu)點(diǎn),在試驗(yàn)裝置長期投入運(yùn)行后,可借助于配套的高精度計(jì)量校準(zhǔn)設(shè)備,得到訓(xùn)練樣本,重新對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練和學(xué)習(xí),可以長期有效地使用。
光電編碼器安裝于水下試驗(yàn)裝置的旋轉(zhuǎn)軸上,通過機(jī)械傳動(dòng)將試驗(yàn)設(shè)施的旋轉(zhuǎn)運(yùn)動(dòng)轉(zhuǎn)換為光電編碼器的輸入軸,經(jīng)過總結(jié)分析,光電編碼器的誤差來源可包括機(jī)械傳動(dòng)軸系誤差、光電編碼器的機(jī)械安裝誤差、傳感器自身系統(tǒng)誤差、長期使用元件疲勞帶來的動(dòng)態(tài)漂移誤差。
標(biāo)準(zhǔn)偏差σ可以表示為
式中,n表示測(cè)試點(diǎn)點(diǎn)數(shù);Ei表示光電編碼器在第i次測(cè)量的誤差,Ri表示光電編碼器在第i次的測(cè)量數(shù)據(jù),Ti表示光電編碼器在第i次的標(biāo)準(zhǔn)值(理論值),具體表達(dá)式為
光電編碼器誤差最大值emax可表示為
光電編碼器誤差平均值emean可表示為
采用神經(jīng)網(wǎng)絡(luò)的方法對(duì)水下試驗(yàn)裝置光電編碼器的輸出進(jìn)行補(bǔ)償?shù)脑韴D包含傳感器測(cè)量模型和神經(jīng)網(wǎng)絡(luò)補(bǔ)償模型兩部分組成[3],如圖1所示。
圖1 光電編碼器測(cè)量誤差補(bǔ)償原理圖
圖1中,其光電編碼器的數(shù)學(xué)模型為
其中,h表示神經(jīng)網(wǎng)絡(luò)溫度補(bǔ)償后的輸出值,x為待測(cè)試驗(yàn)設(shè)施旋轉(zhuǎn)角度值,t為影響因子(環(huán)境、安裝帶來的影響),y為光電編碼器的輸出量。
將光電編碼器的輸出量和影響因子作為神經(jīng)網(wǎng)絡(luò)的輸入樣本,經(jīng)神經(jīng)網(wǎng)絡(luò)處理后的輸出值h即為期望的消除影響因子干擾后的目標(biāo)值x。文章通過水下試驗(yàn)裝置的試驗(yàn)數(shù)據(jù)來訓(xùn)練神經(jīng)網(wǎng)絡(luò),經(jīng)過不斷訓(xùn)練和優(yōu)化,調(diào)整神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù),經(jīng)過訓(xùn)練之后,使得整個(gè)水下試驗(yàn)裝置的測(cè)量值h盡量逼近期望值x,實(shí)現(xiàn)水下試驗(yàn)裝置的角度誤差補(bǔ)償,進(jìn)而提高水下試驗(yàn)裝置的定位精度。
BP網(wǎng)絡(luò)通過正向傳播得到輸出結(jié)果,如果輸出層得不到希望的輸出,則轉(zhuǎn)入反向傳播,修改各層神經(jīng)元連接的權(quán)值和閥值,再通過不斷的迭代,直到信號(hào)誤差滿足要求[4]。
定義:Nv代表訓(xùn)練樣本數(shù)組,P表示第P組訓(xùn)練樣本,hi,p表示對(duì)于第P組樣本第i個(gè)輸出節(jié)點(diǎn)期望輸出值;yi,p表示對(duì)于第P組樣本第i個(gè)輸出節(jié)點(diǎn)的實(shí)際輸出值。
Ep表示第P組樣本的均方誤差,為
E表示訓(xùn)練樣本數(shù)組的輸出節(jié)點(diǎn)的總均方誤差,表示為
計(jì)算BP網(wǎng)絡(luò)中各個(gè)樣本誤差的目的是為了改變網(wǎng)絡(luò)權(quán)值,使其更能滿足網(wǎng)絡(luò)需求,使誤差減小到精度要求。利用訓(xùn)練樣本總均方誤差E來調(diào)整連接權(quán)值系數(shù)Wj,k,計(jì)算公式如下:
其中,η為學(xué)習(xí)速率,通常介于0~1之間。
BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)步驟如下[5]。
1)給定初始值,Wj,k權(quán)值初始化,給定學(xué)習(xí)速率η,以及期望的閾值(誤差輸出E);
2)確定BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)和其它相關(guān)變量定義:設(shè)輸入向量為yi=[yk1,yk2,yk3,…,ykm],(k=1,2,3,…,n),網(wǎng)絡(luò)的訓(xùn)練樣本個(gè)數(shù)為n。hi=[hk1,hk2,hk3,…,hkm]為BP神經(jīng)網(wǎng)絡(luò)進(jìn)行n次迭代后的輸出,Xi=[xk1,xk2,xk3,…,xkm]為系統(tǒng)期望得到的輸出;
3)輸入訓(xùn)練樣本:依次輸入訓(xùn)練樣本集Nv=[Nv1,Nv2,Nv3,…,Nvm];
4)正向傳播過程:根據(jù)輸入,計(jì)算出網(wǎng)絡(luò)的輸出,并與期望值相比較,如果不滿足要求就執(zhí)行步驟5);否則返回步驟6);
5)反向傳播過程:計(jì)算同一層的誤差,修正權(quán)值和閾值,返回步驟3),如果滿足誤差要求,則執(zhí)行步驟6);
6)訓(xùn)練結(jié)束。
為了得到較好的神經(jīng)網(wǎng)絡(luò)訓(xùn)練樣本,以及驗(yàn)證經(jīng)過神經(jīng)網(wǎng)絡(luò)修正之后的測(cè)量精度和誤差,采用高精度光纖陀螺作為校準(zhǔn)裝置,將其與試驗(yàn)設(shè)施同軸安裝,試驗(yàn)時(shí)將它的輸出作為標(biāo)定值(理論值)。
經(jīng)過分析試驗(yàn)數(shù)據(jù)可以得出:經(jīng)過神經(jīng)網(wǎng)絡(luò)補(bǔ)償之后的水下試驗(yàn)裝置其測(cè)量精度具有較好的重復(fù)性,測(cè)量精度達(dá)到0.05°。根據(jù)文獻(xiàn)[2]所述,隨著測(cè)量次數(shù)的增加,光電編碼器的標(biāo)準(zhǔn)偏差會(huì)減少,增加測(cè)量次數(shù),光電編碼器的標(biāo)準(zhǔn)偏差無明顯變化。同時(shí),水下試驗(yàn)裝置在實(shí)施試驗(yàn)時(shí),需要耗費(fèi)的人力、物力、財(cái)力較多,并且試驗(yàn)難度也較大,故增加試驗(yàn)次數(shù)對(duì)于提高光電編碼器的精度無太多意義。通過實(shí)際摸底試驗(yàn)和查閱參考文獻(xiàn),將試驗(yàn)次數(shù)定為20次。
將光電編碼器安裝至水下試驗(yàn)裝置后,試驗(yàn)次數(shù)設(shè)定為20次,分別得到了誤差補(bǔ)償之前和采用BP神經(jīng)網(wǎng)絡(luò)誤差補(bǔ)償之后的試驗(yàn)數(shù)據(jù),兩次測(cè)量數(shù)據(jù)如表1和表2所示。
表1 未采取算法補(bǔ)償水下試驗(yàn)裝置的測(cè)量數(shù)據(jù)
表2 采取神經(jīng)網(wǎng)絡(luò)補(bǔ)償之后水下試驗(yàn)裝置測(cè)量數(shù)據(jù)
通過試驗(yàn)可以得出,采用基于神經(jīng)網(wǎng)絡(luò)補(bǔ)償系統(tǒng)之后,水下試驗(yàn)裝置的定位精度得到有效提高,標(biāo)準(zhǔn)偏差大大減小,平均誤差降低到大約0.01°。本文采用的BP神經(jīng)網(wǎng)絡(luò)模型采用現(xiàn)場(chǎng)試驗(yàn)設(shè)施進(jìn)行誤差檢測(cè)及精度補(bǔ)償模型進(jìn)行構(gòu)建,學(xué)習(xí)數(shù)據(jù)采用實(shí)際試驗(yàn)過程中的實(shí)測(cè)數(shù)據(jù)進(jìn)行學(xué)習(xí),構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型能夠較好地反映水下試驗(yàn)裝置的實(shí)際工況,使得設(shè)施具備較好的定位精度。
本文針對(duì)水下試驗(yàn)裝置的定位精度問題,對(duì)誤差來源進(jìn)行分析,確定了誤差補(bǔ)償方案和模型。采用基于BP神經(jīng)網(wǎng)絡(luò)算法構(gòu)建誤差檢測(cè)及精度補(bǔ)償模型,采用實(shí)際工況數(shù)據(jù)作為訓(xùn)練樣本對(duì)BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和學(xué)習(xí),進(jìn)而確定模型各結(jié)構(gòu)參數(shù)。通過試驗(yàn)比對(duì)證明,經(jīng)過算法補(bǔ)償之后,試驗(yàn)設(shè)施的旋轉(zhuǎn)角度誤差得到了較好補(bǔ)償,定位旋轉(zhuǎn)角度精度得到有效提升。在試驗(yàn)設(shè)施長期投入運(yùn)行后,可借助于配套的高精度計(jì)量校準(zhǔn)設(shè)備,重新得到訓(xùn)練樣本對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練和學(xué)習(xí),達(dá)到長期使用的目的。