劉鳳偉 時慧晶 劉春枚
(昆明船舶設備試驗研究中心 昆明 650051)
某水下試驗裝置是一種可以升降、旋轉、平移的大型試驗設施,主要用于測試、驗證聲吶或其他水聲設備聲學工作性能指標的重要裝置。水聽器是水下航行體或其他水聲裝置重要的敏感元件,主要用于水下物體的精確探測[1]。根據試驗目的,將水聲裝置通過夾具安裝至水下試驗裝置。水下試驗裝置依據預先設定的水深將被測試驗件浸入水中,再根據相關要求旋轉不同的角度和平移控制,達到試驗目的。
光電編碼器具有高精度、高分辨力、輸出穩定等優點,廣泛應用于儀表測量、現代軍事、信號檢測、生物工程、工業自動化和航空航天航海等精密檢測與控制系統領域[2]。試驗裝置的旋轉角度通過安裝好的光電編碼器測定,反饋給上位計算機,通過上位計算機閉環控制試驗裝置的旋轉角度。
光電傳感器的測量誤差具有分布非線性特點,包括被測件的機械安裝誤差、試驗裝置的系統誤差、角度傳感器彈性元件疲勞、運動機件磨損及腐蝕等,長期使用時,為保證其測量精度還必須定期進行校準[2]。本文提出一種基于BP神經網絡的水下試驗裝置角度誤差補償方法,采用水下試驗裝置試驗時的工作數據作為訓練樣本對BP神經網絡模型進行訓練和學習,得到模型的結構參數,補償精度高,收斂速度快,能夠克服光電編碼器安裝、環境等因素對試驗裝置定位角度精度的影響,大大提高了水下試驗裝置的定位精度。同時,采用BP神經網絡補償之后,系統還具有網絡結構簡單、自學習,易于標定操作等優點,在試驗裝置長期投入運行后,可借助于配套的高精度計量校準設備,得到訓練樣本,重新對BP神經網絡進行訓練和學習,可以長期有效地使用。
光電編碼器安裝于水下試驗裝置的旋轉軸上,通過機械傳動將試驗設施的旋轉運動轉換為光電編碼器的輸入軸,經過總結分析,光電編碼器的誤差來源可包括機械傳動軸系誤差、光電編碼器的機械安裝誤差、傳感器自身系統誤差、長期使用元件疲勞帶來的動態漂移誤差。
標準偏差σ可以表示為

式中,n表示測試點點數;Ei表示光電編碼器在第i次測量的誤差,Ri表示光電編碼器在第i次的測量數據,Ti表示光電編碼器在第i次的標準值(理論值),具體表達式為

光電編碼器誤差最大值emax可表示為

光電編碼器誤差平均值emean可表示為

采用神經網絡的方法對水下試驗裝置光電編碼器的輸出進行補償的原理圖包含傳感器測量模型和神經網絡補償模型兩部分組成[3],如圖1所示。

圖1 光電編碼器測量誤差補償原理圖
圖1中,其光電編碼器的數學模型為

其中,h表示神經網絡溫度補償后的輸出值,x為待測試驗設施旋轉角度值,t為影響因子(環境、安裝帶來的影響),y為光電編碼器的輸出量。
將光電編碼器的輸出量和影響因子作為神經網絡的輸入樣本,經神經網絡處理后的輸出值h即為期望的消除影響因子干擾后的目標值x。文章通過水下試驗裝置的試驗數據來訓練神經網絡,經過不斷訓練和優化,調整神經網絡結構參數,經過訓練之后,使得整個水下試驗裝置的測量值h盡量逼近期望值x,實現水下試驗裝置的角度誤差補償,進而提高水下試驗裝置的定位精度。
BP網絡通過正向傳播得到輸出結果,如果輸出層得不到希望的輸出,則轉入反向傳播,修改各層神經元連接的權值和閥值,再通過不斷的迭代,直到信號誤差滿足要求[4]。
定義:Nv代表訓練樣本數組,P表示第P組訓練樣本,hi,p表示對于第P組樣本第i個輸出節點期望輸出值;yi,p表示對于第P組樣本第i個輸出節點的實際輸出值。
Ep表示第P組樣本的均方誤差,為

E表示訓練樣本數組的輸出節點的總均方誤差,表示為

計算BP網絡中各個樣本誤差的目的是為了改變網絡權值,使其更能滿足網絡需求,使誤差減小到精度要求。利用訓練樣本總均方誤差E來調整連接權值系數Wj,k,計算公式如下:

其中,η為學習速率,通常介于0~1之間。
BP神經網絡學習步驟如下[5]。
1)給定初始值,Wj,k權值初始化,給定學習速率η,以及期望的閾值(誤差輸出E);
2)確定BP神經網絡的結構參數和其它相關變量定義:設輸入向量為yi=[yk1,yk2,yk3,…,ykm],(k=1,2,3,…,n),網絡的訓練樣本個數為n。hi=[hk1,hk2,hk3,…,hkm]為BP神經網絡進行n次迭代后的輸出,Xi=[xk1,xk2,xk3,…,xkm]為系統期望得到的輸出;
3)輸入訓練樣本:依次輸入訓練樣本集Nv=[Nv1,Nv2,Nv3,…,Nvm];
4)正向傳播過程:根據輸入,計算出網絡的輸出,并與期望值相比較,如果不滿足要求就執行步驟5);否則返回步驟6);
5)反向傳播過程:計算同一層的誤差,修正權值和閾值,返回步驟3),如果滿足誤差要求,則執行步驟6);
6)訓練結束。
為了得到較好的神經網絡訓練樣本,以及驗證經過神經網絡修正之后的測量精度和誤差,采用高精度光纖陀螺作為校準裝置,將其與試驗設施同軸安裝,試驗時將它的輸出作為標定值(理論值)。
經過分析試驗數據可以得出:經過神經網絡補償之后的水下試驗裝置其測量精度具有較好的重復性,測量精度達到0.05°。根據文獻[2]所述,隨著測量次數的增加,光電編碼器的標準偏差會減少,增加測量次數,光電編碼器的標準偏差無明顯變化。同時,水下試驗裝置在實施試驗時,需要耗費的人力、物力、財力較多,并且試驗難度也較大,故增加試驗次數對于提高光電編碼器的精度無太多意義。通過實際摸底試驗和查閱參考文獻,將試驗次數定為20次。
將光電編碼器安裝至水下試驗裝置后,試驗次數設定為20次,分別得到了誤差補償之前和采用BP神經網絡誤差補償之后的試驗數據,兩次測量數據如表1和表2所示。

表1 未采取算法補償水下試驗裝置的測量數據

表2 采取神經網絡補償之后水下試驗裝置測量數據
通過試驗可以得出,采用基于神經網絡補償系統之后,水下試驗裝置的定位精度得到有效提高,標準偏差大大減小,平均誤差降低到大約0.01°。本文采用的BP神經網絡模型采用現場試驗設施進行誤差檢測及精度補償模型進行構建,學習數據采用實際試驗過程中的實測數據進行學習,構建的神經網絡模型能夠較好地反映水下試驗裝置的實際工況,使得設施具備較好的定位精度。
本文針對水下試驗裝置的定位精度問題,對誤差來源進行分析,確定了誤差補償方案和模型。采用基于BP神經網絡算法構建誤差檢測及精度補償模型,采用實際工況數據作為訓練樣本對BP神經網絡模型進行訓練和學習,進而確定模型各結構參數。通過試驗比對證明,經過算法補償之后,試驗設施的旋轉角度誤差得到了較好補償,定位旋轉角度精度得到有效提升。在試驗設施長期投入運行后,可借助于配套的高精度計量校準設備,重新得到訓練樣本對BP神經網絡進行訓練和學習,達到長期使用的目的。