劉曉宇,蓋廣洪
(陜西電器研究所,西安 710025)
Stewart結構具有剛度高、對稱性好、結構緊湊以及解耦特性好等優點,特別適合作為六維力傳感器力敏元件結構[1]。
理想的六維力傳感器在輸入單維的力/力矩時,輸出的應當只有該方向的力/力矩。然而由于結構設計、加工精度等問題,必然會導致其他方向也有力的輸出,即產生維間耦合。
為降低維間耦合,一方面會引入關節軸承、萬向節、球鉸鏈、柔性結構等釋放多余耦合力[2];另一方面使用求解標定矩陣[3-5]和BP神經網絡訓練[6-9]兩種算法進行解耦。由于實際工程中傳感器須達到極大的剛度,需將彈性桿件固定約束,導致該傳感器輸入輸出無法滿足線性關系,因而傳統的使用單維加載數據進行解耦[10-12]及個別文章提及的有關二維加載[13]方法均無法在該情況下使用。
本文在此基礎上進行了解耦算法的比較與優化設計,以使得該傳感器的精度能夠達到要求。

圖1 傳感器結構示意圖
如圖1所示的Stewart六維力傳感器,其包含上平臺、下平臺和6個彈性分支桿件。上、下平臺與彈性桿件通過去耦結構連接,各個平臺的去耦結構分布在同一個圓周上;彈性桿件用來測力,其位置成對稱關系,在不考慮重力和摩擦力的情況下,每個彈性桿件都只承受沿軸線方向的拉力或壓力,即二力桿,因而通過檢測6個彈性桿件的形變情況就可以對空間載荷進行測量。整個結構為對稱的靜態結構,具有保持幾何不變性所需的最少約束,減少任何一個約束都將使結構失去幾何不變性。
該結構有5個主要參數:上、下平臺半徑,上、下平臺定位角,上下平臺距離。
根據螺旋理論,以上平臺坐標系為基準,列出平衡方程如下:
(1)
可以簡化為:
FW=Gf
(2)

為了有效提高結構的剛度,將傳感器支路的連接方式由鉸約束改為了固支約束,在主體結構不變的前提下最大限度的提高了剛度[2]。然而這樣就導致了傳感器無法保證輸入輸出之間的線性關系。
制作的樣機實物圖如圖2所示,該樣機拉壓剛度不小于1×108N/m,量程為-1 500 N/(N·m)~1 500 N/(N·m),誤差要求控制在3.75%范圍內。

圖2 傳感器實物圖
數據的標定用來獲得傳感器的靜態特性,其標定的精度將直接影響傳感器使用時的測量精度,其重要程度顯而易見。
標定系統主要由加載系統、信號放大電路、數據采集卡組成,通過將標準的標定力和力矩加載到傳感器上,經過信號放大電路進行放大和濾波,最后經數據采集卡將電壓信號采集到計算機中,從而得到對應的輸出電壓值。
傳統的標定過程都是對六維力傳感器的6個方向分別進行標定,得到單維方向的標定力F和力矩M對應的輸出電壓值U。
使用求解標定矩陣方法進行解耦的前提是:將傳感器系統視為線性系統,即彈性結構的輸出與其對應的輸入為線性關系。
標定矩陣C即為正映射矩陣G的逆矩陣,由于G一般為非奇異矩陣,不能直接求逆,因而需要利用偽逆矩陣來求解,其求解公式為:
C=FSU-
(3)
式中:FS=[FM]∈R6×6n為標定力和力矩所組成的矩陣;U為標定所得電壓值所組成的矩陣;U-=U+=UT(UUT)-1為矩陣U的偽逆矩陣。
求得標定矩陣C之后,使用C和電壓值反解求得解算力值,與理論力值做差,求得各個方向上的誤差。
然而由于制造工藝等種種原因,彈性結構無法做到理想的對稱,導致傳感器的輸入輸出并非是理想的線性關系[14],因而該種方法的誤差會相對大一些。

圖3 BP神經網絡結構圖
由于神經網絡可以構建非線性映射關系,故可應用于六維力傳感器的靜態標定解耦。而神經網絡中一般使用的是結構較為簡單的BP神經網絡,如圖3所示。BP神經網絡有兩個特點:一是網絡為全連接,即在任一層上的任意一個神經元與它之前層上的所有節點、所有神經元都是連接的;二是網絡為一個多層前饋網絡,具有一個或多個隱含層,信號從左到右一層一層逐步流過。該算法衡量誤差的標準為均方差,過程中每輸入一個樣本,便將網絡的實際輸出與期望輸出進行對比,進而調整網絡的參數以獲得最小的均方誤差。
將BP神經網絡應用于六維力傳感器系統中時,是將標定得到的電壓值組成的列矢量U=[U1U2U3U4U5U6]T作為神經網絡的輸入,將對應的施加在傳感器系統上的標定力和力矩所組成的列矢量FS=[FxFyFzMxMyMz]T作為神經網絡的目標輸出,選擇合適的激活函數、訓練方法和約束條件,通過改變隱含層神經元的個數對數據進行訓練,而隨著神經元個數的增加,訓練精度會逐漸提高,但訓練速度也會逐漸變慢,因此需要選擇合適的精度要求以獲得最優的網絡。
使用BP神經網絡還有一個優勢就是,在MATLAB軟件中有成熟的神經網絡工具箱(NNTOOL),該工具箱提供了面向不同神經網絡模型特別是BP神經網絡模型的豐富多彩的網絡學習和訓練函數,為神經網絡的設計、建模和仿真提供了極大的便利[15]。
通過對樣機進行標定獲得大量數據,使用以上兩種方法進行解耦運算,發現兩種方法解得的結果都有較大的誤差。其中使用求解標定矩陣方法時發現,該樣機當單獨施加My或Mz方向的力矩時,其他方向會產生非常嚴重的維間耦合;使用BP神經網絡訓練的方法時發現,對標定數據的解算結果良好,但是當將該網絡進行對多維復合加載數據的驗證時,會產生極大的偏差。這兩個問題的出現意味著常用的兩種解耦方法無法針對該樣機使用。
為了同時解決該樣機的維間耦合和多維加載兩個問題,本文提出了一種新的思路,即在獲取標定數據時同時進行單維加載和多維加載,再使用上述兩種方法分別解耦運算,觀察解耦效果如何,是否可以投入使用。
本文共進行了四次重復標定,標定時同時進行單維加載和多維加載,其中多維加載包含四維、五維、六維多種工況,且都包含My和Mz兩個方向,獲得的數據分為單維數據、復合數據和兩者組成的總體數據。
誤差的計算方式為:
(4)
式中:F為標定力/力矩值,f為解算力/力矩值。
3.1.1 求解標定矩陣
①首先針對四次單維數據,使用求標定矩陣的方法,解得的結果誤差矩陣如下:

式中:Fx方向最大誤差為4.55%,Fy方向最大誤差為11.49%,Fz方向最大誤差為2.65%,Mx方向最大誤差為0.45%,My方向最大誤差為0.36%,Mz方向最大誤差為1.54%。
觀察發現,加載My或Mz時,會產生較大的維間耦合,其中以加載My時在Fy方向上產生的維間耦合最大,達到了11.49%。
②使用四次復合數據進行驗證,驗證誤差結果如下:Fx方向最大誤差為8.02%,Fy方向最大誤差為14.00%,Fz方向最大誤差為15.57%,Mx方向最大誤差為1.37%,My方向最大誤差為2.39%,Mz方向最大誤差為1.57%,顯然誤差較反解自身更大。
3.1.2 BP神經網絡
①使用MATLAB中自帶的神經網絡工具箱進行操作,首先建立BP神經網絡模型,隱含層采用單層神經元,隱含層神經元的激活函數采用S型正切函數(Tansig),輸出層神經元的激活函數采用線性函數(Purelin),訓練方法采用收斂速度較快的Levenberg-Marquadt帶反彈算法(Trainlm函數);之后導入標定得到的四次單維數據,設定電壓信號為輸入,理想的力值/力矩值為目標輸出。模型建立好之后,通過調整隱含層神經元的個數進行訓練,隨著神經元個數的增加,訓練速度逐漸變慢,訓練精度逐漸提高。
當神經元到達40個時的誤差如下:Fx方向最大誤差為0.63%,Fy方向最大誤差為0.48%,Fz方向最大誤差為1.13%,Mx方向最大誤差為0.22%,My方向最大誤差為0.21%,Mz方向最大誤差為0.32%,顯然與傳統方法相比,最大誤差大大減小。
②使用四次復合數據進行驗證,驗證誤差結果如下:Fx方向最大誤差為69.74%,Fy方向最大誤差為230.40%,Fz方向最大誤差為240.81%,Mx方向最大誤差為64.49%,My方向最大誤差為133.58%,Mz方向最大誤差為124.65%,顯然使用單維數據訓練得到的網絡無法對多維復合數據進行解算。
經過以上說明,求解標定矩陣的方法無法解決My和Mz方向產生的維間耦合問題,而傳統的BP神經網絡方法可以有效降低維間耦合,但訓練得到的模型無法應用于多維力同時加載的復合工況。
為此,本文提出一種新的方法,即將四次重復數據標定中的前3組總體數據作為新的標定和訓練數據,使用傳統解算方法和BP神經網絡方法來進行解算,最后使用第4次的數據進行驗證。
3.2.1 求解標定矩陣
①針對前三次的總體數據,使用求標定矩陣的方法,解得的結果誤差如下:Fx方向最大誤差為6.12%,Fy方向最大誤差為13.58%,Fz方向最大誤差為14.24%,Mx方向最大誤差為1.38%,My方向最大誤差為2.13%,Mz方向最大誤差為1.63%,發現較之前采用相同方法針對單維數據求得的結果誤差更大。
②使用第4次總體數據進行驗證,驗證誤差結果如下:Fx方向最大誤差為5.89%,Fy方向最大誤差為12.02%,Fz方向最大誤差為15.39%,Mx方向最大誤差為0.52%,My方向最大誤差為1.80%,Mz方向最大誤差為1.55%,證明該方法仍然無法解決維間耦合問題。
3.2.2 BP神經網絡
①使用BP神經網絡對前三次總體數據進行訓練,隱含層采用單層神經元,隱含層神經元的激活函數采用Tansig函數,輸出層神經元的激活函數采用Purelin函數,訓練方法采用收斂速度較快的Trainlm函數,調整隱含層神經元的個數進行訓練,隨著神經元個數的增加,訓練速度逐漸變慢,訓練精度逐漸提高。
當神經元到達40個時的誤差如下:Fx方向最大誤差為2.27%,Fy方向最大誤差為1.85%,Fz方向最大誤差為1.83%,Mx方向最大誤差為1.14%,My方向最大誤差為0.62%,Mz方向最大誤差為1.73%,發現各個方向都在誤差允許范圍內。
②使用第4次總體數據進行驗證,驗證誤差結果如下:Fx方向最大誤差為1.66%,Fy方向最大誤差為1.26%,Fz方向最大誤差為1.81%,Mx方向最大誤差為0.37%,My方向最大誤差為0.48%,Mz方向最大誤差為0.43%,發現都可以滿足要求。
將幾種情況各個方向的最大誤差列表為表1。

表1 改進前后傳感器最大誤差值
通過對比發現,改進后使用BP神經網絡的方法,在隱含層神經元個數為40時,能夠有效提高傳感器使用精度。
本文提出了改進的六維力傳感器解耦算法,并通過實際標定數據的驗證,得到了如下結論:同時通過單維加載和多維加載進行標定,之后使用BP神經網絡訓練的方法進行解耦運算,可以有效地減小6個方向的最大誤差,提高傳感器的標定精度,能夠同時解決Stewart六維力傳感器的維間耦合問題和多維方向加載問題。