劉曉宇,蓋廣洪
(陜西電器研究所,西安 710025)
Stewart結(jié)構(gòu)具有剛度高、對稱性好、結(jié)構(gòu)緊湊以及解耦特性好等優(yōu)點,特別適合作為六維力傳感器力敏元件結(jié)構(gòu)[1]。
理想的六維力傳感器在輸入單維的力/力矩時,輸出的應(yīng)當(dāng)只有該方向的力/力矩。然而由于結(jié)構(gòu)設(shè)計、加工精度等問題,必然會導(dǎo)致其他方向也有力的輸出,即產(chǎn)生維間耦合。
為降低維間耦合,一方面會引入關(guān)節(jié)軸承、萬向節(jié)、球鉸鏈、柔性結(jié)構(gòu)等釋放多余耦合力[2];另一方面使用求解標(biāo)定矩陣[3-5]和BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練[6-9]兩種算法進行解耦。由于實際工程中傳感器須達到極大的剛度,需將彈性桿件固定約束,導(dǎo)致該傳感器輸入輸出無法滿足線性關(guān)系,因而傳統(tǒng)的使用單維加載數(shù)據(jù)進行解耦[10-12]及個別文章提及的有關(guān)二維加載[13]方法均無法在該情況下使用。
本文在此基礎(chǔ)上進行了解耦算法的比較與優(yōu)化設(shè)計,以使得該傳感器的精度能夠達到要求。
圖1 傳感器結(jié)構(gòu)示意圖
如圖1所示的Stewart六維力傳感器,其包含上平臺、下平臺和6個彈性分支桿件。上、下平臺與彈性桿件通過去耦結(jié)構(gòu)連接,各個平臺的去耦結(jié)構(gòu)分布在同一個圓周上;彈性桿件用來測力,其位置成對稱關(guān)系,在不考慮重力和摩擦力的情況下,每個彈性桿件都只承受沿軸線方向的拉力或壓力,即二力桿,因而通過檢測6個彈性桿件的形變情況就可以對空間載荷進行測量。整個結(jié)構(gòu)為對稱的靜態(tài)結(jié)構(gòu),具有保持幾何不變性所需的最少約束,減少任何一個約束都將使結(jié)構(gòu)失去幾何不變性。
該結(jié)構(gòu)有5個主要參數(shù):上、下平臺半徑,上、下平臺定位角,上下平臺距離。
根據(jù)螺旋理論,以上平臺坐標(biāo)系為基準,列出平衡方程如下:
(1)
可以簡化為:
FW=Gf
(2)
為了有效提高結(jié)構(gòu)的剛度,將傳感器支路的連接方式由鉸約束改為了固支約束,在主體結(jié)構(gòu)不變的前提下最大限度的提高了剛度[2]。然而這樣就導(dǎo)致了傳感器無法保證輸入輸出之間的線性關(guān)系。
制作的樣機實物圖如圖2所示,該樣機拉壓剛度不小于1×108N/m,量程為-1 500 N/(N·m)~1 500 N/(N·m),誤差要求控制在3.75%范圍內(nèi)。
圖2 傳感器實物圖
數(shù)據(jù)的標(biāo)定用來獲得傳感器的靜態(tài)特性,其標(biāo)定的精度將直接影響傳感器使用時的測量精度,其重要程度顯而易見。
標(biāo)定系統(tǒng)主要由加載系統(tǒng)、信號放大電路、數(shù)據(jù)采集卡組成,通過將標(biāo)準的標(biāo)定力和力矩加載到傳感器上,經(jīng)過信號放大電路進行放大和濾波,最后經(jīng)數(shù)據(jù)采集卡將電壓信號采集到計算機中,從而得到對應(yīng)的輸出電壓值。
傳統(tǒng)的標(biāo)定過程都是對六維力傳感器的6個方向分別進行標(biāo)定,得到單維方向的標(biāo)定力F和力矩M對應(yīng)的輸出電壓值U。
使用求解標(biāo)定矩陣方法進行解耦的前提是:將傳感器系統(tǒng)視為線性系統(tǒng),即彈性結(jié)構(gòu)的輸出與其對應(yīng)的輸入為線性關(guān)系。
標(biāo)定矩陣C即為正映射矩陣G的逆矩陣,由于G一般為非奇異矩陣,不能直接求逆,因而需要利用偽逆矩陣來求解,其求解公式為:
C=FSU-
(3)
式中:FS=[FM]∈R6×6n為標(biāo)定力和力矩所組成的矩陣;U為標(biāo)定所得電壓值所組成的矩陣;U-=U+=UT(UUT)-1為矩陣U的偽逆矩陣。
求得標(biāo)定矩陣C之后,使用C和電壓值反解求得解算力值,與理論力值做差,求得各個方向上的誤差。
然而由于制造工藝等種種原因,彈性結(jié)構(gòu)無法做到理想的對稱,導(dǎo)致傳感器的輸入輸出并非是理想的線性關(guān)系[14],因而該種方法的誤差會相對大一些。
圖3 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
由于神經(jīng)網(wǎng)絡(luò)可以構(gòu)建非線性映射關(guān)系,故可應(yīng)用于六維力傳感器的靜態(tài)標(biāo)定解耦。而神經(jīng)網(wǎng)絡(luò)中一般使用的是結(jié)構(gòu)較為簡單的BP神經(jīng)網(wǎng)絡(luò),如圖3所示。BP神經(jīng)網(wǎng)絡(luò)有兩個特點:一是網(wǎng)絡(luò)為全連接,即在任一層上的任意一個神經(jīng)元與它之前層上的所有節(jié)點、所有神經(jīng)元都是連接的;二是網(wǎng)絡(luò)為一個多層前饋網(wǎng)絡(luò),具有一個或多個隱含層,信號從左到右一層一層逐步流過。該算法衡量誤差的標(biāo)準為均方差,過程中每輸入一個樣本,便將網(wǎng)絡(luò)的實際輸出與期望輸出進行對比,進而調(diào)整網(wǎng)絡(luò)的參數(shù)以獲得最小的均方誤差。
將BP神經(jīng)網(wǎng)絡(luò)應(yīng)用于六維力傳感器系統(tǒng)中時,是將標(biāo)定得到的電壓值組成的列矢量U=[U1U2U3U4U5U6]T作為神經(jīng)網(wǎng)絡(luò)的輸入,將對應(yīng)的施加在傳感器系統(tǒng)上的標(biāo)定力和力矩所組成的列矢量FS=[FxFyFzMxMyMz]T作為神經(jīng)網(wǎng)絡(luò)的目標(biāo)輸出,選擇合適的激活函數(shù)、訓(xùn)練方法和約束條件,通過改變隱含層神經(jīng)元的個數(shù)對數(shù)據(jù)進行訓(xùn)練,而隨著神經(jīng)元個數(shù)的增加,訓(xùn)練精度會逐漸提高,但訓(xùn)練速度也會逐漸變慢,因此需要選擇合適的精度要求以獲得最優(yōu)的網(wǎng)絡(luò)。
使用BP神經(jīng)網(wǎng)絡(luò)還有一個優(yōu)勢就是,在MATLAB軟件中有成熟的神經(jīng)網(wǎng)絡(luò)工具箱(NNTOOL),該工具箱提供了面向不同神經(jīng)網(wǎng)絡(luò)模型特別是BP神經(jīng)網(wǎng)絡(luò)模型的豐富多彩的網(wǎng)絡(luò)學(xué)習(xí)和訓(xùn)練函數(shù),為神經(jīng)網(wǎng)絡(luò)的設(shè)計、建模和仿真提供了極大的便利[15]。
通過對樣機進行標(biāo)定獲得大量數(shù)據(jù),使用以上兩種方法進行解耦運算,發(fā)現(xiàn)兩種方法解得的結(jié)果都有較大的誤差。其中使用求解標(biāo)定矩陣方法時發(fā)現(xiàn),該樣機當(dāng)單獨施加My或Mz方向的力矩時,其他方向會產(chǎn)生非常嚴重的維間耦合;使用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的方法時發(fā)現(xiàn),對標(biāo)定數(shù)據(jù)的解算結(jié)果良好,但是當(dāng)將該網(wǎng)絡(luò)進行對多維復(fù)合加載數(shù)據(jù)的驗證時,會產(chǎn)生極大的偏差。這兩個問題的出現(xiàn)意味著常用的兩種解耦方法無法針對該樣機使用。
為了同時解決該樣機的維間耦合和多維加載兩個問題,本文提出了一種新的思路,即在獲取標(biāo)定數(shù)據(jù)時同時進行單維加載和多維加載,再使用上述兩種方法分別解耦運算,觀察解耦效果如何,是否可以投入使用。
本文共進行了四次重復(fù)標(biāo)定,標(biāo)定時同時進行單維加載和多維加載,其中多維加載包含四維、五維、六維多種工況,且都包含My和Mz兩個方向,獲得的數(shù)據(jù)分為單維數(shù)據(jù)、復(fù)合數(shù)據(jù)和兩者組成的總體數(shù)據(jù)。
誤差的計算方式為:
(4)
式中:F為標(biāo)定力/力矩值,f為解算力/力矩值。
3.1.1 求解標(biāo)定矩陣
①首先針對四次單維數(shù)據(jù),使用求標(biāo)定矩陣的方法,解得的結(jié)果誤差矩陣如下:
式中:Fx方向最大誤差為4.55%,Fy方向最大誤差為11.49%,Fz方向最大誤差為2.65%,Mx方向最大誤差為0.45%,My方向最大誤差為0.36%,Mz方向最大誤差為1.54%。
觀察發(fā)現(xiàn),加載My或Mz時,會產(chǎn)生較大的維間耦合,其中以加載My時在Fy方向上產(chǎn)生的維間耦合最大,達到了11.49%。
②使用四次復(fù)合數(shù)據(jù)進行驗證,驗證誤差結(jié)果如下:Fx方向最大誤差為8.02%,Fy方向最大誤差為14.00%,Fz方向最大誤差為15.57%,Mx方向最大誤差為1.37%,My方向最大誤差為2.39%,Mz方向最大誤差為1.57%,顯然誤差較反解自身更大。
3.1.2 BP神經(jīng)網(wǎng)絡(luò)
①使用MATLAB中自帶的神經(jīng)網(wǎng)絡(luò)工具箱進行操作,首先建立BP神經(jīng)網(wǎng)絡(luò)模型,隱含層采用單層神經(jīng)元,隱含層神經(jīng)元的激活函數(shù)采用S型正切函數(shù)(Tansig),輸出層神經(jīng)元的激活函數(shù)采用線性函數(shù)(Purelin),訓(xùn)練方法采用收斂速度較快的Levenberg-Marquadt帶反彈算法(Trainlm函數(shù));之后導(dǎo)入標(biāo)定得到的四次單維數(shù)據(jù),設(shè)定電壓信號為輸入,理想的力值/力矩值為目標(biāo)輸出。模型建立好之后,通過調(diào)整隱含層神經(jīng)元的個數(shù)進行訓(xùn)練,隨著神經(jīng)元個數(shù)的增加,訓(xùn)練速度逐漸變慢,訓(xùn)練精度逐漸提高。
當(dāng)神經(jīng)元到達40個時的誤差如下:Fx方向最大誤差為0.63%,Fy方向最大誤差為0.48%,Fz方向最大誤差為1.13%,Mx方向最大誤差為0.22%,My方向最大誤差為0.21%,Mz方向最大誤差為0.32%,顯然與傳統(tǒng)方法相比,最大誤差大大減小。
②使用四次復(fù)合數(shù)據(jù)進行驗證,驗證誤差結(jié)果如下:Fx方向最大誤差為69.74%,Fy方向最大誤差為230.40%,Fz方向最大誤差為240.81%,Mx方向最大誤差為64.49%,My方向最大誤差為133.58%,Mz方向最大誤差為124.65%,顯然使用單維數(shù)據(jù)訓(xùn)練得到的網(wǎng)絡(luò)無法對多維復(fù)合數(shù)據(jù)進行解算。
經(jīng)過以上說明,求解標(biāo)定矩陣的方法無法解決My和Mz方向產(chǎn)生的維間耦合問題,而傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)方法可以有效降低維間耦合,但訓(xùn)練得到的模型無法應(yīng)用于多維力同時加載的復(fù)合工況。
為此,本文提出一種新的方法,即將四次重復(fù)數(shù)據(jù)標(biāo)定中的前3組總體數(shù)據(jù)作為新的標(biāo)定和訓(xùn)練數(shù)據(jù),使用傳統(tǒng)解算方法和BP神經(jīng)網(wǎng)絡(luò)方法來進行解算,最后使用第4次的數(shù)據(jù)進行驗證。
3.2.1 求解標(biāo)定矩陣
①針對前三次的總體數(shù)據(jù),使用求標(biāo)定矩陣的方法,解得的結(jié)果誤差如下:Fx方向最大誤差為6.12%,Fy方向最大誤差為13.58%,Fz方向最大誤差為14.24%,Mx方向最大誤差為1.38%,My方向最大誤差為2.13%,Mz方向最大誤差為1.63%,發(fā)現(xiàn)較之前采用相同方法針對單維數(shù)據(jù)求得的結(jié)果誤差更大。
②使用第4次總體數(shù)據(jù)進行驗證,驗證誤差結(jié)果如下:Fx方向最大誤差為5.89%,Fy方向最大誤差為12.02%,Fz方向最大誤差為15.39%,Mx方向最大誤差為0.52%,My方向最大誤差為1.80%,Mz方向最大誤差為1.55%,證明該方法仍然無法解決維間耦合問題。
3.2.2 BP神經(jīng)網(wǎng)絡(luò)
①使用BP神經(jīng)網(wǎng)絡(luò)對前三次總體數(shù)據(jù)進行訓(xùn)練,隱含層采用單層神經(jīng)元,隱含層神經(jīng)元的激活函數(shù)采用Tansig函數(shù),輸出層神經(jīng)元的激活函數(shù)采用Purelin函數(shù),訓(xùn)練方法采用收斂速度較快的Trainlm函數(shù),調(diào)整隱含層神經(jīng)元的個數(shù)進行訓(xùn)練,隨著神經(jīng)元個數(shù)的增加,訓(xùn)練速度逐漸變慢,訓(xùn)練精度逐漸提高。
當(dāng)神經(jīng)元到達40個時的誤差如下:Fx方向最大誤差為2.27%,Fy方向最大誤差為1.85%,Fz方向最大誤差為1.83%,Mx方向最大誤差為1.14%,My方向最大誤差為0.62%,Mz方向最大誤差為1.73%,發(fā)現(xiàn)各個方向都在誤差允許范圍內(nèi)。
②使用第4次總體數(shù)據(jù)進行驗證,驗證誤差結(jié)果如下:Fx方向最大誤差為1.66%,Fy方向最大誤差為1.26%,Fz方向最大誤差為1.81%,Mx方向最大誤差為0.37%,My方向最大誤差為0.48%,Mz方向最大誤差為0.43%,發(fā)現(xiàn)都可以滿足要求。
將幾種情況各個方向的最大誤差列表為表1。
表1 改進前后傳感器最大誤差值
通過對比發(fā)現(xiàn),改進后使用BP神經(jīng)網(wǎng)絡(luò)的方法,在隱含層神經(jīng)元個數(shù)為40時,能夠有效提高傳感器使用精度。
本文提出了改進的六維力傳感器解耦算法,并通過實際標(biāo)定數(shù)據(jù)的驗證,得到了如下結(jié)論:同時通過單維加載和多維加載進行標(biāo)定,之后使用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的方法進行解耦運算,可以有效地減小6個方向的最大誤差,提高傳感器的標(biāo)定精度,能夠同時解決Stewart六維力傳感器的維間耦合問題和多維方向加載問題。