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