楊 妍,劉運鵬,韓江濤,劉志杰1,?,韓志冀
1) 北京科技大學(xué)智能科學(xué)與技術(shù)學(xué)院,北京 100083 2) 北京航天自動控制研究所,北京 100070 3) 北京科技大學(xué)自動化學(xué)院,北京 100083
機械臂在家庭機器人、工廠流水作業(yè)、航天工程等生產(chǎn)生活領(lǐng)域有著重要的應(yīng)用,它能幫助人們完成重復(fù)、危險的任務(wù),減少了生產(chǎn)周期和人力成本.隨著機械臂工作環(huán)境的非結(jié)構(gòu)化發(fā)展,人們對機械臂的環(huán)境適應(yīng)性以及靈活性提出了更高的要求.然而普通剛性機械臂因其結(jié)構(gòu)剛度大、靈活性差、安全性能差、功率高等特點,難于滿足非結(jié)構(gòu)環(huán)境下的任務(wù)需求.為了解決這一問題,研究者們提出了超冗余機械臂的概念[1],通過增加機械臂的關(guān)節(jié)以及連桿的數(shù)目來使剛體機械臂能夠適應(yīng)非結(jié)構(gòu)化的環(huán)境以及處理特殊的任務(wù).但是這類機械臂僅僅增加了運動的自由度,機械結(jié)構(gòu)仍是剛性的.而且自由度越高,制造工藝和逆動力學(xué)的求解更加復(fù)雜,這一特點限制了它們的應(yīng)用.受到自然界一些軟體動物以及柔性組織的啟發(fā),研究者們提出了軟體機械臂這一概念.這類機械臂不再具有離散的關(guān)節(jié)和連桿,而是通過模仿蛇、章魚等生物的運動,通過柔軟材料制造的連續(xù)體裝置來實現(xiàn)更加靈活的運動[2].比剛性機械臂、多冗余機械臂更加柔軟、靈活,在醫(yī)療服務(wù)[3]、災(zāi)難救援[4]、以及工業(yè)生產(chǎn)[5]等方面有著非常廣闊的應(yīng)用前景.
軟體機械臂有著近乎連續(xù)的機械特點以及獨特的驅(qū)動方式,因而軟體機械臂的建模一直是軟體機械臂研究中的一個難點.目前主流的軟體機械臂建模方法主要有三種:有限元方法建模[6–8],Cosserat梁建模[9–11],分段恒曲率方法建模[12](Piecewise constant curvature,PCC).基于有限元方法對軟體機械臂建立的模型復(fù)雜且難以進行控制器設(shè)計.基于Cosserat梁方法建立出的模型是一類偏微分方程,這種模型精度非常高,能夠適應(yīng)于許多不同結(jié)構(gòu)的軟體機械臂.但是其最后得到的偏微分方程同樣難以被用于控制目的.分段恒曲率建模方法相比于其他方法推導(dǎo)簡單且仿真容易實現(xiàn),但是該模型在軟體機械臂有較大外部載荷的情況下,恒曲率的假設(shè)就難以成立,模型會造成較大誤差.
目前分段恒曲率(PCC)方法是當(dāng)下最流行的軟體機械臂建模方法,PCC將梁進行一系列的參數(shù)化,從而對梁進行描述.文獻[13]和[14]針對分段恒曲率方法進行了一定的拓展與改進.文獻[15]在PCC模型的基礎(chǔ)上引入的扭轉(zhuǎn)分量,有效的提升了模型在有較大外部載荷時的精確度.這種參數(shù)化的思想也被拓展到Cosserat梁里面.文獻[16]首次提出了分段恒應(yīng)變的建模方法(Piecewise constant strain,PCS),這種方法建立出的模型考慮了軟體機械臂的剪切力與扭力,因而在軟體機械臂有較大外部載荷時有更好的表現(xiàn).
本文在分段恒應(yīng)變模型的基礎(chǔ)上,做出了一定的改進,不再假定軟體機械臂每個橫截面有相同的應(yīng)變,而是根據(jù)一定的模式沿著軟體機械臂逐漸減小,提高了模型的整體精度.但因為不再假定軟體機械臂橫截面的應(yīng)變恒定,對模型的建立造成一定的困難.
目前關(guān)于軟體機械臂的控制往往采用開環(huán)控制或者簡單的反饋控制.文獻[17]針對軟體機械臂提出了基于PCC逆運動學(xué)的形狀反饋控制算法,控制精度不高.文獻[18]利用相機標定技術(shù)和目標識別技術(shù),利用PCC逆動力學(xué)模型和圖像雅可比矩陣反推驅(qū)動空間的驅(qū)動力配置,實現(xiàn)了軟體機械臂的視覺伺服控制.文獻[19]介紹了基于拉格朗日動力學(xué)建模的方法和非線性的控制策略,提出了逆動力學(xué)控制和滑??刂?達到了一個比較理想的狀態(tài).但是由于軟體機械臂的無窮維自由度,上述模型并不能精確的給出其動力學(xué)模型導(dǎo)致了控制不精確.而且軟體機械臂模型往往存在一些未知的動態(tài)信息,有必要對不確定項進行估計,而神經(jīng)網(wǎng)絡(luò)[20–22]可以逼近任意的非線性函數(shù),使得它成為了自適應(yīng)未建模動態(tài)的有效方法.文獻[23]提出了新型自適應(yīng)控制處理了系統(tǒng)參數(shù)的不確定性.此外神經(jīng)網(wǎng)絡(luò)還可以與Back-Stepping方法相結(jié)合應(yīng)用于各種高階復(fù)雜系統(tǒng)的控制問題[24].
本文研究了一類線驅(qū)動軟體機械臂的建模和控制.首先把軟體機械臂當(dāng)作一個Cosserat梁建立一個偏微分方程,然后結(jié)合Ritz方法[25]對軟體機械臂應(yīng)變場進行離散化,就得到常規(guī)常微分形式的動力學(xué)模型.進一步采用反向傳播(Back propagation,BP)神經(jīng)網(wǎng)絡(luò)得到形狀空間與驅(qū)動空間驅(qū)動力的映射關(guān)系.然后,利用徑向基函數(shù)(Radial basis function,RBF)神經(jīng)網(wǎng)絡(luò)估計了模型中存在的未知動態(tài),將自適應(yīng)神經(jīng)網(wǎng)絡(luò)控制器應(yīng)用到建立的模型.最后通過仿真實驗驗證了模型和控制器的有效性.
線驅(qū)動的軟體機械臂制作簡單,它的結(jié)構(gòu)簡圖如圖1所示.線驅(qū)動軟體機械臂的主體材料一般使用硅膠制成,再在其中插入若干根驅(qū)動線,通過控制驅(qū)動線的長度來控制機械臂做出各種動作.
圖1 軟體機械臂結(jié)構(gòu)簡圖Fig.1 Structure diagram of a soft manipulator
軟體機械臂的主體可以視為一個彈性桿,工程上一般利用Cosserat梁來描述該彈性桿的運動,Cosserat梁的原理是將彈性桿分成很多段,每一段可以視為梁的一個橫截面,梁的剪切變形使橫截面與中心線不再正交,此時的撓性線曲率不僅因截面打孔,而且因梁的剪切變形而改變?nèi)鐖D2所示.軟體機械臂的每一個橫截面可以用X∈[0,1]來進行表示,X為桿的長度,最遠端為1,最近端為0.
圖2 彈性梁橫截面轉(zhuǎn)動變形(上)與剪切變形(下)以及 2 種變形的撓性線Fig.2 Elastic rotation deformation (up) and shear deformation (down)and related flexible lines
在三維空間中,軟體臂不僅可以做平移運動還可以做旋轉(zhuǎn)運動,軟體臂的姿態(tài)需要用一個六維的向量來描述.該空間向量由三維的歐式空間位置向量和三維的歐拉角向量組成.在本文中使用六維的歐幾里得群表示每一個橫截面在空間中的姿態(tài):
其中,R∈SO(3)代表橫截面在空間中的旋轉(zhuǎn)姿態(tài),r∈R3代表橫截面在歐式空間中的位置.這樣整個梁的姿態(tài)空間可以被定義為:
其中,SE(3)是歐式變換矩陣.由于軟體機械臂會隨著時間的變化而不斷變化,因此這里的g也依賴于時間t[26].在本文中,使用“點”和“撇”代表對于時間t的偏導(dǎo)數(shù)和對X的偏導(dǎo)數(shù).場g的時間和空間的變化可以使用兩個向量η和ξ進行表示:
同時,由式(3)通過簡單的變形可以得到:
機械臂橫截面的慣性張量M和胡克張量H定義如下:
其中,ρ代表軟體機械臂主體材料的密度,A代表軟體機械臂的橫截面的面積,I代表橫截面轉(zhuǎn)動慣量,E代表彈性模量,G代表剪切模量.GI,EI,EA,GA是材料的抗扭剛度、剪切剛度、抗拉壓剛度和彎曲剛度.
軟體機械臂的橫截面的動量 Σ和應(yīng)力 Λ可以分別表示為:
其中, ξ0代表軟體機械臂的內(nèi)部能量為零時軟體臂的應(yīng)變.利用哈密頓原理基于系統(tǒng)的動能 Πk(t),勢能 Πp(t),和功 Πw(t)來導(dǎo)出機械系統(tǒng)的運動方程:
其中,δ是變分算子,t1和t2是兩個時間常數(shù).對于軟體臂系統(tǒng),動能來源于材料粒子和剛體的平移運動.保守力場(如重力)中的材料應(yīng)變和運動產(chǎn)生勢能.控制力,干擾力和力矩構(gòu)成了功,進而用變分法和分步積分得到軟體機械臂的偏微分方程:
可以將 ξ變成如下的形式:
其中,
根據(jù)式(15),已經(jīng)得到了軟體機械臂內(nèi)部的應(yīng)力與其彈性形變的關(guān)系.在實際情況下,沒有外部驅(qū)動力時,軟體機械臂的應(yīng)力還與軟體機械臂材料的黏度有關(guān).在考慮材料黏度的情況下,軟體機械臂應(yīng)力的可變部分可以表示為:
其中, ξa0是 ξa的 初始值,Da=BTDB,D是軟體機械臂材料的黏度矩陣.一般情況下,可以使用下面的式對Da進行近似計算:
這里的 μ是一個系數(shù),可以取 μ =10?3.
現(xiàn)在可以得到在沒有施加外界驅(qū)動力的情況下,軟體機械臂內(nèi)的應(yīng)力與其形狀之間的關(guān)系.接下來需要考慮在有外界驅(qū)動力的情況下,軟體機械臂內(nèi)部應(yīng)力的變化.對于線驅(qū)動的軟體機械臂,可以通過控制穿過整個軟體機械臂內(nèi)部的驅(qū)動線的長度來控制機械臂的形狀.設(shè)由于軟體機械臂驅(qū)動線長度的變化而造成的機械臂內(nèi)部應(yīng)力的變化為 Λad,此時機械臂的內(nèi)部應(yīng)力可寫為:
在不考慮摩擦力的情況下,可以認為,機械臂驅(qū)動線的所做功等于應(yīng)力 Λad做的功:
其中,N是軟體機械臂驅(qū)動線的數(shù)目,li為第i根驅(qū)動線的長度,δli為第i根 驅(qū)動線的變化量,Ti為第i根驅(qū)動線上的張力, δ ξ為機械臂應(yīng)變的變分δξ=(δKT,δΓT)T, δ ξa= δK.接下來需要計算出驅(qū)動線長度的變化量.機械臂的驅(qū)動線與機械臂橫截面的交點為P(X)=(0,PY(X),PZ(X))T,這里的P(X)是根據(jù)軟體機械臂驅(qū)動線的布線方式來決定的,表一給出了一些常用的布線方式所對應(yīng)的P(X).表中Rb代表了機械臂的直徑.
表1 驅(qū)動線布線方式與 P (X)關(guān)系表Table 1 Relationship between the driving wire and P(X)
由此可以得到驅(qū)動線與橫截面的交點在參考坐標系下的坐標為:
將 φi對 位 置X的 導(dǎo) 數(shù) φi′表示為同一根驅(qū)動線與相鄰橫截面交點的變化量:
由此驅(qū)動線的長度和長度的變化量可以表示為:
將式(21)帶入式(23)可得:
將上式帶入式(19)經(jīng)過化簡可得到機械臂由于驅(qū)動線變化而造成的內(nèi)部應(yīng)力變化的表達式:
以上建立了機械臂內(nèi)部應(yīng)力與形狀和驅(qū)動力之間的關(guān)系的模型,下面根據(jù)機械臂的應(yīng)變還原機械臂的形狀.式(6)第一項g′=gξ∧中的g′可以表示相鄰兩個橫截面之間位置的變化,由此可見只要知道機械臂的初始位置g0以及整個機械臂的各個橫截面的應(yīng)變 ξ,便可還原整個機械臂的形狀.為了方便計算,可以使用四元數(shù)Q∈R4來替換g=(R,r)中的旋轉(zhuǎn)矩陣R,此時g′=gξ∧將轉(zhuǎn)換為如下的形式:
其中,A(K)是一個運算符,其代表的運算如下:
這里因為不假定機械臂的每個橫截面的應(yīng)變是不變的,因此在機械臂移動的時候,機械臂的應(yīng)變不僅與時間t有關(guān),還與在機械臂上所處的位置X關(guān),為了解決原始的偏微分模型難于設(shè)計控制的問題,可以使用Ritz方法對應(yīng)變進行離散化,Ritz方法的基本思想是利用一組已知的多項式的組合來對函數(shù)進行近似:
式中的 Φ (X)為被選擇的一組多項式,在機械臂中也可以被稱為形狀方程,這表明可以用關(guān)于時間的應(yīng)變廣義坐標函數(shù)q(t)來表示某個時刻軟體機械臂的整體形狀.
本文中選擇:
使用q可以還原整個機械臂各個橫截面的應(yīng)變,但是這也造成了模型高度的非線性.q的每一維在幾何上的所代表的意義都無法說明,這就對進一步求解模型的各個參數(shù)造成了困難.為了解決這樣的困難,可以采用數(shù)值的方法求解模型的各個參數(shù).使用牛頓–歐拉逆動力學(xué)算法,通過給算法特定的輸入,即可在每一個時間循環(huán)中求解出模型所需要的參數(shù)(見附錄).在軟體機械臂中,由于不存在關(guān)節(jié),所以實際上求出的是機械臂橫截面上的應(yīng)力.
首先求出軟體機械臂上的各個關(guān)節(jié)的速度和加速度.根據(jù)式(3)應(yīng)用混合偏導(dǎo)數(shù)式,=可以得到軟體機械臂橫截面的應(yīng)變與速度之間的關(guān)系:
求導(dǎo)得:
應(yīng)用式(29)和(30)就可以在知道機械臂某一端速度的情況下求出整個機械臂所有橫截面的速度和加速度.
接下來需要根據(jù)已知的機械臂的橫截面速度和加速度求解出橫截面上的應(yīng)力.將式(9)的第一項帶入式(10)即可得到機械臂內(nèi)部應(yīng)力與速度之間的關(guān)系:
由于用Ritz方法對應(yīng)變進行了離散化,在形狀空間中的廣義力與應(yīng)力的關(guān)系如下:
在本文中,研究的機械臂為一端固定的軟體機械臂,可以設(shè) η ==0,通過逆動力學(xué)算法可以得到其拉格朗日形式的動力學(xué)模型:
其中,M(q)是軟體臂的慣性矩陣,¨為廣義加速度,Qv(q,˙)包含全部的速度依賴力,其中包括科里奧利力和離心力,Qc(q)包含配置依賴的外力,比如重力,Kq是形狀空間里的廣義的恢復(fù)力,˙是在形狀空間里面的廣義阻尼力.上述三個矩陣可由牛頓–歐拉逆動力學(xué)得出數(shù)值解,數(shù)值解的具體步驟可參考[27].Qad是形狀空間中由驅(qū)動線的運動所造成的廣義力,可以由式(25)通過一定的轉(zhuǎn)換得到:
這里L(fēng)是一個n×N的控制矩陣,T∈iN是由所有驅(qū)動線上的張力組成的向量,其中,
至此,得到了最終的軟體機械臂的動力學(xué)模型.
本次設(shè)計考慮的是一端固定的軟體機械臂,同時考慮了模型的不確定項,為了方便設(shè)計,寫出其狀態(tài)空間表達式:
其 中 ,x1=q,x2=˙,Qk=?(Qv+Qc+Kq+˙)表示模型中已知的部分.系統(tǒng)的輸出為:
假設(shè)1.所有的變量都是有界的,即|Qu|≤Qumax,?x1∈Rn.
假設(shè)2.Qu為光滑函數(shù).
RBF神經(jīng)網(wǎng)絡(luò)可以以任意精度逼近任意的非線性函數(shù),由于其具有良好的近似功能,所以這里用其來近似模型中的不確定項Qu.
假設(shè)有一連續(xù)函數(shù)f(x),可用RBF神經(jīng)網(wǎng)絡(luò)近似表述為:
其中,x∈Rn為輸入向量,W∈Rm×n為權(quán)重矩陣,ε(x)是徑向基神經(jīng)網(wǎng)絡(luò)的逼近誤差,S(x)=[s1(x),s2(x),···,sn(x)]T,si(x)是徑向基函數(shù),采用如下的高斯徑向基函數(shù)
其中,ci,bi分別是第i個神經(jīng)元的中心位置和寬度.
為了保證RBF神經(jīng)網(wǎng)絡(luò)逼近的有效性和準確性,進行如下假設(shè):
假設(shè)3.存在一個最優(yōu)權(quán)重矩陣W*,對任意給出的小的正數(shù) γ,系統(tǒng)的逼近誤差 ?均滿足:
記參考輸入為yd,定義跟蹤誤差為:
其中,yd連續(xù)且可導(dǎo).
則e1的導(dǎo)數(shù)可以表示為:
選取如下形式的李雅普諾夫函數(shù):
對V1兩邊求導(dǎo)可得:
定義:
則有x2=e2+α,其中 α 代表虛擬控制器.
把式(46)代入式(45)可以得到:
虛擬控制器 α 可設(shè)計為:
可以看到如果e2=0,則≤0.
選取如下李雅普諾夫函數(shù):
其中,M為正對角陣,將(46)和(49)代入(50)可得:
其中,Qx=Qk+Qu?M
接下來用RBF神經(jīng)網(wǎng)絡(luò)逼近含有未知項的參數(shù):
其中,Z=,W?為未知的神經(jīng)網(wǎng)絡(luò)的理想權(quán)重矩陣,用來估計W?,ε代表神經(jīng)網(wǎng)絡(luò)的近似誤差,滿足如下條件:
這里提出軟體機械臂的控制律和神經(jīng)網(wǎng)絡(luò)權(quán)值矩陣更新法則:
定理:考慮軟體機械臂系統(tǒng)(37),控制輸入(54)、虛擬控制(48)和RBF權(quán)重矩陣更新律(55),有如下結(jié)論:
如果滿足假設(shè)1~3,那么系統(tǒng)中所有參量(,e1,e2,S(Z))都是有界的,并且狀態(tài)量 (e1,e2)會收斂到0的一個小鄰域內(nèi).
證明:選取如下的李雅普諾夫函數(shù):
對式(56)求導(dǎo)并帶入控制(54)和權(quán)重矩陣更新律(55)可得:
可以得到:
可以進一步將式(58)化簡為:
通過對(59)變換可得:
這里,式(59)~(61)表示計算過程中的額外項加和,記為P,根據(jù)式(44)和(50)可以得到:
從上式可知,閉環(huán)系統(tǒng)為半全局一致有界.從式(61)、(62)可以知道V是有界的,從而e1,e2是有界的,對于所有的Z,S(Z)也是有界的因此控制輸入Qad也是有界的,所(以閉環(huán)系)統(tǒng)的所有信號都是有界的.通過調(diào)節(jié),σw增大K使V減小,進而即跟蹤誤差e1在tend時刻后,收斂到0的小鄰域內(nèi).
上一節(jié)得到了控制輸入Qad,還需要將形狀空間的廣義驅(qū)動力Qad轉(zhuǎn)換到驅(qū)動器空間的驅(qū)動力T,可以根據(jù)式(35)對驅(qū)動矩陣L求逆得到,但是由于驅(qū)動矩陣L是一個奇異矩陣,無法通過簡單的矩陣求逆得到驅(qū)動線上張力的大小.由于神經(jīng)網(wǎng)絡(luò)對 任意非線性函數(shù)有比較好的逼近效果,所以 選擇BP神經(jīng)網(wǎng)絡(luò)解決這個問題.
通過給軟體機械臂的驅(qū)動線不同的張力,根據(jù)模型(34)可以在給驅(qū)動線施加以不同規(guī)律變化的張力T,記錄下所能產(chǎn)生的廣義驅(qū)動力Q.在獲取5000組數(shù)據(jù)之后,以廣義驅(qū)動力Q作為輸入,驅(qū)動線的張力作為輸出搭建BP神經(jīng)網(wǎng)絡(luò),應(yīng)用梯度下降算法訓(xùn)練,可以使用該網(wǎng)絡(luò)根據(jù)形狀空間的驅(qū)動力Qad獲取當(dāng)前驅(qū)動線上施加的張力T.
數(shù)值仿真驗證分為兩部分,一部分來驗證基于Ritz方法推導(dǎo)的模型的有效性,其中建模方法的合理性可見[28],第二部分來驗證設(shè)計的控制策略的合理性,兩者都基于MATLAB仿真平臺.
表2列出了軟體機械臂的物理參數(shù).
表2 軟體機械臂的物理參數(shù)Table 2 Physical parameters of the soft manipulator
在使用Ritz方法對機械臂應(yīng)變進行離散化時,即(29)式中n為5,機械臂的初始速度、加速度和初始應(yīng)變均為0.機械臂的固定段的位置:
假設(shè)軟體機械臂末端不受外界的力F1=[00 0000]T,機械臂整體不會在運動過程中受到來自外界環(huán)境的力即ˉ=0.
首先,需要驗證模型的有效性,通過給機械臂的驅(qū)動線施加不同的張力,來驗證機械臂是否可以按照預(yù)期中彎曲.在實驗中采用的布線方式為平行布線,設(shè)定T=[1 0 2 0]T(單位:N),軟體機械臂穩(wěn)定狀態(tài)下的形狀示意圖如圖3所示.
圖3 在外力 T 下軟體機械臂的穩(wěn)定狀態(tài)Fig.3 Steady state of the soft manipulator under the external force T
從圖4中可以看出,前文中所建立的模型在給定繩子的張力之后可以仿真得到合理的機械臂形狀.
下面驗證驅(qū)動線不同的布線方式對運動方式的影響.給定每條驅(qū)動線輸入的張力T=[T10 0 0 ]T,仿真時間為5 s,其中T1隨時間的變化關(guān)系為:
從圖4~6中可以看出,模型針對各種布線方式都能夠達到理想的仿真效果.通過比較各個模型的仿真結(jié)果,可以看出,在給驅(qū)動線施加相同的力的情況下,平行布線的機械臂的彎曲程度最高,收束布線的軟體機械臂的彎曲程度略低,交叉布線的機械臂形狀隨著驅(qū)動線張力的增加逐漸變成“S”形.在實際的應(yīng)用中可以根據(jù)不同的需求選擇合適的軟體機械臂布線方式.
圖4 平行布線下軟體機械臂形狀變化圖Fig.4 Shape change of the soft manipulator under parallel wiring
圖5 收束布線下軟體機械臂形狀變化圖Fig.5 Shape change of the soft manipulator under converging wiring
圖6 交叉布線下軟體機械臂形狀變化圖Fig.6 Shape change of the soft manipulator under cross wiring
這里選擇3層結(jié)構(gòu)的BP神經(jīng)網(wǎng)絡(luò),其中隱藏層的神經(jīng)元數(shù)量為8個.搭建神經(jīng)網(wǎng)絡(luò)和訓(xùn)練均使用Matlab自帶的神經(jīng)網(wǎng)絡(luò)工具箱進行操作.神經(jīng)網(wǎng)絡(luò)誤差設(shè)定為平方誤差,初始學(xué)習(xí)率10?3,訓(xùn)練目標為誤差小于10?8.圖7給出了神經(jīng)網(wǎng)絡(luò)誤差的變化情況:
圖7 BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練近似誤差圖Fig.7 BP neural network training approximate error
可以看出,經(jīng)過一段時間的訓(xùn)練,BP神經(jīng)網(wǎng)絡(luò)就可以在較小的誤差內(nèi)將形狀空間的廣義驅(qū)動力轉(zhuǎn)化為驅(qū)動空間繩子的驅(qū)動力.
先要確定軟體機械臂整個運動過程中的動作,由于軟體機械臂的高自由度,要對機械臂的運動過程進行軌跡規(guī)劃.確定好機械臂運動過程中的一些姿態(tài),應(yīng)用五次多項式插值的方法,確定整個運動過程機械臂的運動軌跡,確保軟體機械臂能夠在運動過程中保持平穩(wěn).在本文建立的軟體機械臂模型中,Ritz法離散化后的廣義應(yīng)變坐標共有十五維,需要對機械臂廣義應(yīng)變坐標的每一維進行多項式插值操作,之后,設(shè)定的控制目標如下:
圖8 廣義驅(qū)動力隨時間變化圖Fig.8 General force variation diagram
利用之前訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),將廣義驅(qū)動力作為輸入,可以得到軟體機械臂驅(qū)動線張力的變化圖(圖9).從圖10中可以看出系統(tǒng)的跟蹤誤差在最初的一秒內(nèi)迅速減少,在之后能夠使誤差保持在一個相對較小的范圍內(nèi),如圖11所示表明軟體機械臂能較好得沿著期望的軌跡進行運動.
圖9 驅(qū)動線張力隨時間變化圖Fig.9 Line force variation diagram
圖10 跟蹤誤差變化圖Fig.10 Tracking error graph
圖11 軟體機械臂空間運動圖Fig.11 Soft manipulator spatial motion map
本文主要介紹了一種新型的軟體機械臂建模方法.該建模方法利用成熟的Cosserat梁理論,將其與軟體機械臂結(jié)合起來,其次使用Ritz方法,使用一組已知的多項式的組合表示機械臂每一段的應(yīng)變.這一組多項式可以被稱之為“形狀方程”,多項式的系數(shù)為機械臂的軟體機械臂廣義應(yīng)變坐標.這種建模方法相比于分段恒應(yīng)變的建模方法理論上可以達到更高的精度.之后針對軟體臂模型中存在的未知動態(tài),利用RBF函數(shù)設(shè)計了自適應(yīng)神經(jīng)網(wǎng)絡(luò)控制器,實現(xiàn)了對系統(tǒng)未知動態(tài)的補償,并利用李雅普諾夫穩(wěn)定性分析分析了閉環(huán)系統(tǒng)的一致有界性,得到了系統(tǒng)輸出可以以較小的誤差跟蹤給定信號的結(jié)論.接著利用BP神經(jīng)網(wǎng)絡(luò),得到了形狀空間和驅(qū)動空間的驅(qū)動力轉(zhuǎn)換.仿真驗證了自適應(yīng)神經(jīng)網(wǎng)絡(luò)控制的有效性和系統(tǒng)的穩(wěn)定性.
附錄
為得到動力學(xué)模型中的時變系數(shù)矩陣,設(shè)計思路如下:基于Cosserat理論下,假設(shè)本文研究對象由N層堆疊而成,通過前向牛頓–歐拉運動學(xué)求解出軟體臂末端速度,再借助逆運動學(xué)的形式來等效出所受應(yīng)力大小,最后等效出所求動力學(xué)模型中系數(shù)矩陣的大小.具體地說,我們?yōu)榍蟮孟到y(tǒng)中輸入輸出的具體映射關(guān)系:Λ=fIDM,將fIDM分成(前向運動學(xué))A、(逆運動學(xué))B兩個流程:
流程A:前向運動學(xué) (X(0)→X(L)),輸入為
流程B:反向運動學(xué) (X(L)→X(0)):輸入為η(L),η˙(L).
為了求解等效應(yīng)力大小,引入有關(guān)Cosserat桿的PDE方程模型:
接下來,簡要介紹方程(67)中各符號的物理含義與表達形式.截面慣性矩陣M=diag{ρI1,ρI2,ρI3,ρA1,ρA2,ρA3},Mη表示沿軟體臂橫截面的動量.這里,ρ表示軟體臂密度,I1代表扭轉(zhuǎn)慣量,I2,I3代表彎曲慣量,A為橫截面積.
應(yīng)變場的初始狀態(tài),記為:ξ0=[ 0 0 0 1 0 0 ]T,在小應(yīng)變的前提下,應(yīng)力 Λ的大小與應(yīng)變場 ξ之間的關(guān)系可表示為: Λ =Ht?ξ,其中,胡克張量Ht={GI1,EI2,EI3,EA,GA,GA},剪切模量G、 泊松比 υpoi以及楊氏模量E之間的關(guān)系為:
可將逆運動學(xué)方程組寫為:
其中,()a表示系統(tǒng)僅在角應(yīng)變場影響下的應(yīng)力變化情況,這種簡化處理會極大降低計算機的仿真時間.接下來,對式(68)進行歐拉積分運算,結(jié)合拉格朗日方程(不包括非線性項),實現(xiàn)對驅(qū)動力的等效求解.
將上述等效過程描述為:
當(dāng)映射關(guān)系fIDM()中輸入僅為q,而時,從前向運動學(xué)到逆運動學(xué)后的輸出,可將Qc項的大小等效出來,即:
當(dāng)fIDM()輸入為,時,流程B的輸出為:
此時,可以得到有(71)式中的矩陣Qc(q,q),Qv(q)得數(shù)值大小.為得到慣性矩陣M(q)的實際大小,需選取考慮fIDM()的輸入為,其中,矩陣的值由1和0共同組成.接下來,我們將采取3次循環(huán)迭代,分別求解慣性矩陣每一列的大小值.
至此,可得到有關(guān)拉格朗日動力學(xué)模型(34)中所有系數(shù)矩陣的值.