王成志
(集美大學(xué)海洋裝備與機械工程學(xué)院,福建 廈門 361021)
機構(gòu)自由度分析是機構(gòu)創(chuàng)新設(shè)計的首要前提。隨著機構(gòu)朝復(fù)雜空間多閉環(huán)方向發(fā)展,傳統(tǒng)自由度計算公式已不通用[1-7],尋找自由度通用分析公式或方法又重新成為機構(gòu)學(xué)研究的熱點,近20年來不斷有學(xué)者提出新方法、新公式[7-12]。其中一些借助李代數(shù)[13-14]、線性變換[15]、螺旋理論[2,6]等數(shù)學(xué)工具的方法,科學(xué)、嚴謹、系統(tǒng)且通用,但要列出給定位置運動約束方程并求秩[3],理論晦澀、過程復(fù)雜,難以快速計算,不利普遍推廣。例如,螺旋理論法中,難以通過簡單觀察判斷多數(shù)運動螺旋集及約束螺旋集的線性相關(guān)性并求出秩數(shù),手工求解,即使輔以通用軟件計算,計算過程依然繁雜,加上像螺旋理論這樣的數(shù)學(xué)方法計算得到的自由度有的會隨位型變化[6],需要多次計算才能判定其瞬時性。所以,將自由度分析計算過程計算機化、自動化具有重要意義。目前自由度自動計算的研究比較少,文獻[16]提出用符號描述并聯(lián)機構(gòu)。另外,局部自由度在機構(gòu)中普遍存在,機構(gòu)自由度的正確分析計算有助于更詳細分析機構(gòu)的運動性質(zhì)。目前多以經(jīng)驗觀察判斷局部自由度[17],文獻[2,14]則分別提出了機構(gòu)存在局部自由度的基于螺旋理論、李代數(shù)的分析方法,文獻[18]則用桿組運動參數(shù)分析了桿組內(nèi)存在的局部自由度,但這些理論方法只適用并聯(lián)機構(gòu)。
螺旋理論中的單位螺旋中含有的6個Plücker坐標可以表達機構(gòu)的運動、約束,且螺旋集數(shù)學(xué)計算規(guī)范。本文基于該理論,利用Matlab編寫了單環(huán)機構(gòu)和多環(huán)并聯(lián)機構(gòu)的自由度自動分析計算程序,分析了機構(gòu)中過約束的Matlab算法,提出了適用于包括單環(huán)、多環(huán)機構(gòu)在內(nèi)的平面、空間機構(gòu)的局部自由度判斷準則。
對于并聯(lián)機構(gòu),文獻[2]修正了傳統(tǒng)的Grübler-Kutzbach公式(準則),給出了通用的機構(gòu)自由度計算公式:
(1)
式中:n為機構(gòu)中活動構(gòu)件數(shù)目;g為運動副的數(shù)目;fi為第i個運動副的自由度;λ為機構(gòu)的公共約束數(shù)(階數(shù)d=6-λ);ν為冗余約束數(shù);ξ為局部自由度數(shù)。
g和fi按輸入運動副類型自動計算,而活動構(gòu)件數(shù)為:n=g-1(單閉環(huán));n=g-l+1(多閉環(huán))。式中:l為分支數(shù)。此式僅適用于一個構(gòu)件僅連接2個運動副時的情形。
顯然,計算自由度的關(guān)鍵環(huán)節(jié)是計算機構(gòu)的3個參數(shù):λ、ν和ξ,可以通過螺旋理論根據(jù)機構(gòu)運動副所含有的運動信息求出約束信息,從而求出該3個參數(shù)。
單自由度運動副的單位運動螺旋定義(Plücker坐標)為:
$=(s;s0)=(s;r×s+hs)=(l,m,n;P,Q,R)。
(2)
式中:s為螺旋軸線方向的單位矢量;l、m、n為s的3個方向余弦;s0為螺旋的對偶部矢量,s0=(P,Q,R);r=(x,y,z)是螺旋軸線上任意一點的位置矢量,x、y、z是該點的直角坐標值;h是節(jié)距;P、Q、R是對偶部矢量的3個分量。
可用不同節(jié)距代表不同的單自由度運動副:h=0是轉(zhuǎn)動副R,h=∞是移動副P,h=Const(Const為不等于零的常數(shù))是螺旋副H。
根據(jù)式(2),可以按“軸線及位置矢量”或“Plücker坐標”兩種方式輸入螺旋信息,程序界面如圖1。
表1列出了常見運動副按“軸線及位置矢量”方式的輸入?yún)?shù)。
表1 常用運動副輸入?yún)?shù)及螺旋表示
其中,球副S和平面副E僅輸入相互不平行的2條螺旋軸線矢量s1、s2(并不要求正交),然后程序自動求出與該2條軸線正交的第三條螺旋軸線s3。本程序已經(jīng)解決了Matlab須先定義字符變量再使用的傳統(tǒng)方法,可在圖1界面中的螺旋軸線矢量、軸線上坐標點或Plücker坐標輸入框中輸入由任意字母和數(shù)字組合的字符變量,及由變量和“+、-、*、/”運算符號,甚至正弦、余弦等三角函數(shù)組成的簡單表達式,真正做到基于字符變量的自由度計算機自動分析計算。
文獻[2,6]等提倡盡量多的用0、1表達螺旋坐標元素,但如此輸入會弱化運動螺旋模型中所蘊含的部分運動信息。為了正確自動分析局部自由度,輸入?yún)?shù)時還要注意以下規(guī)則。
1)多環(huán)機構(gòu)的分支中存在兩S副及局部轉(zhuǎn)動自由度。多環(huán)機構(gòu)中,位置坐標都取各自球心,而用(1,0,0)、(0,1,0)和(0,0,1)的3條正交軸代表其等效轉(zhuǎn)動軸;在單環(huán)機構(gòu)中則要以兩球心連線作為兩S副各自的1條螺旋軸線,見表2中的(S…S)結(jié)構(gòu)形式的sA1和sB1。
表2 單環(huán)機構(gòu)中存在局部自由度的8種結(jié)構(gòu)組合形式Tab.2 Eight kinds of configurations containing passivedegree of freedom in single loop mechanisms單環(huán)結(jié)構(gòu)組成Compositions in Single Loop結(jié)構(gòu)特點Features of Compositions1)2)3)4)ABsAsBS…SABsAsBR…SABsAsBC…SABsAsBR…R1111存在兩R副軸線同軸(節(jié)距等于零)Axes of two R pairs are coaxial(pitch equal to ze-ro)$A1×$B1=0$A×$B1=0$A×$B=05)AsABsBhBhAH…H存在兩H副軸線同軸且節(jié)距相等Axes of two H Pairs are coaxial and their pit-ches are equal to each other$A×$B=0且(and)hA=hBABP…PsAsBC…CC…PABsAsBABsAsB6)7)8)存在兩P副的導(dǎo)路矢量相互平行Axes of two P pairs are parallel to each othersA×sB=0 說明Note:A、B等表示運動副上的點,下同Italicized capital letters A,B,etc.indicate the points on the kinematic pair,the same below
2)分支(含單環(huán))中存在R副/C副,且其回轉(zhuǎn)軸線確實指向同一分支中S副的球心,則存在局部轉(zhuǎn)動自由度。故R副/C副螺旋軸線上的位置坐標取球副中心坐標,而S副中取1條螺旋軸線等于R副/C副的螺旋軸線,見表2中的(R…S)和(C…S)結(jié)構(gòu)形式的sB1=sA;按“Plücker坐標”輸入時,則球副有1螺旋與R副/C副的1螺旋相同。
3)對平面副E,若分支中同時存在其他運動副,并且該運動副含有與平面平行的P副,則該分支有局部移動自由度;若分支中同時存在其他運動副,且該運動副含有與該平面垂直的R副,則該分支有局部轉(zhuǎn)動自由度。故前者要注意將E副中的移動導(dǎo)路矢量方向處理成與相關(guān)P副導(dǎo)路矢量方向平行;后者則要將E副含有的轉(zhuǎn)動軸處理成與相關(guān)R副同軸。點、線接觸的高副處理方式類似。例如,滾子推桿凸輪機構(gòu)中高副等效于R、P副,其中的R副軸線要處理成與滾子轉(zhuǎn)動副同軸。
此外,雖然螺旋系的相關(guān)性與坐標系選擇無關(guān)[2],但若是對稱并聯(lián)機構(gòu),因運動螺旋需合并在一起分析,故若按分支局部坐標系輸入?yún)?shù),要給出局部坐標與全局坐標的轉(zhuǎn)動關(guān)系,程序會在合并為動平臺的運動螺旋集S前先進行螺旋坐標變換??傊嬎憔植孔杂啥葧r,應(yīng)輸入更符合實際運動副運動狀態(tài)的模型。1.2由Plücker坐標反求位置矢量及節(jié)距
假設(shè)坐標系原點向螺旋軸線所作垂線的垂足位置矢量為r=(rx,ry,rz),因兩正交矢量數(shù)量積為零[19],有:
s·rT=0。
(3)
已知螺旋的Plücker坐標時,式(2)和式(3)組成的線性方程組有4個標量方程,4個變量rx、ry、rz和h,故可求出r(垂足點)和節(jié)距h。注意,反求得到的r將不同于原來的設(shè)定,故給“新建機構(gòu)”界面設(shè)定好選擇輸入方式后不再改變。
設(shè)$ji為第j個分支中第i個運動副的運動螺旋,則分支j中所有運動螺旋所組成的螺旋集(所有螺旋相加,可含重復(fù)螺旋)就是該分支的運動螺旋集,寫成矩陣:Sj=[$j1;$j2;…]。將機構(gòu)所有分支的運動螺旋集合并,構(gòu)成了機構(gòu)運動螺旋集S。Sj和S都可能線性相關(guān)。
一個并聯(lián)機構(gòu)的一條分支串聯(lián)鏈中,如有4個轉(zhuǎn)動副軸線平行,則形成局部自由度[2]。但若同樣由這4個軸線平行的轉(zhuǎn)動副組成單環(huán)機構(gòu)(這時是平面四連桿機構(gòu)),其運動螺旋系肯定線性相關(guān)(單環(huán)機構(gòu)的運動螺旋集必線性相關(guān),否則是不能相互運動的桁架),此時機構(gòu)自由度為1,而不存在局部自由度。所以,“局部運動螺旋系Sj線性相關(guān)則存在局部自由度”的準則只適用于多環(huán)機構(gòu),單環(huán)機構(gòu)的判定條件要修正。這個例子也說明,如果將自由度(含局部自由度)≥1的單環(huán)機構(gòu)作為多環(huán)并聯(lián)機構(gòu)的一個分支,則該分支必然是線性相關(guān)的,即該分支存在局部自由度。
另外,不同類型的多自由度運動副之間可以具有局部自由度,但是要將多自由度運動副等效為單自由度的運動副后,同類型的單自由度運動副之間才可能存在局部自由度。即,R副、P副和H副(包括等效復(fù)合副中的R副和P副,下同)相互之間不可能產(chǎn)生局部自由度,只有同樣的R副之間、H副之間才可能產(chǎn)生轉(zhuǎn)動局部自由度,同樣的P副之間才可能產(chǎn)生移動局部自由度。螺旋副H理論上來說也是R、P復(fù)合副,但H副本身含有的位移信息及轉(zhuǎn)動信息綜合在了1個螺旋中,它們與其他P副的位移信息及其他R副的轉(zhuǎn)動信息都不相同?;蛘哒f,H副不可能與其它類型的運動副形成移動或轉(zhuǎn)動局部自由度,但不同位置的H副之間可能存在轉(zhuǎn)動局部自由度。推論:多個(≥2)有相同節(jié)距的螺旋之間才存在局部自由度,不同節(jié)距螺旋之間不存在局部自由度。
1.4.1 多環(huán)機構(gòu)
多環(huán)機構(gòu)分支中存在局部自由度的充要條件:分支中存在多個(≥2)有相同節(jié)距的螺旋,且分支中的運動螺旋集線性相關(guān)。注意:
1)局部相對運動的兩構(gòu)件可以是鄰近的兩構(gòu)件,也可以是分支中距離較遠的兩構(gòu)件,即,這種“局部”涵蓋到整個分支。
2)分支中局部自由度數(shù):
ξj=size(Sj,1)-rank(Sj)。
(4)
其中:rank(Si)是Matlab求矩陣Si的秩數(shù)的函數(shù);size(Si,1)是求Si行數(shù)的函數(shù)。
3)運動螺旋集線性相關(guān)就表明有相同節(jié)距的螺旋,這里增加該條件是為了便于觀察。多環(huán)機構(gòu)分支中線性相關(guān)的螺旋幾何特征比較復(fù)雜,例如,2個轉(zhuǎn)動螺旋共軸且等節(jié)距、2個移動副導(dǎo)路平行、3個以上轉(zhuǎn)動軸平行等組成的螺旋系都是線性相關(guān)的。更多的幾何條件可參考文獻[2],可用式(4)求得ξj>0,則表示運動螺旋集線性相關(guān)。
1.4.2 單環(huán)機構(gòu)
單環(huán)機構(gòu)分支中存在局部自由度的充要條件:機構(gòu)中存在兩個有相同節(jié)距的螺旋,且各自P副的導(dǎo)路矢量相互平行,或各自非P副(h=Const或h=∞)螺旋同軸。注意:
1)若單環(huán)機構(gòu)中一個運動副與多個運動副可能都滿足相同的局部自由度存在條件,則滿足相同條件的運動副中只有2個運動副產(chǎn)生同性質(zhì)(相對轉(zhuǎn)動或移動)的局部自由度。一般根據(jù)最小阻力定律判定局部自由度發(fā)生位置,本文規(guī)定該運動副僅與符合條件最近的運動副之間存在1個局部自由度。單環(huán)機構(gòu)中可能存在多個不同性質(zhì),或者同性質(zhì)但不同條件的局部自由度。
2)表2列出了單環(huán)機構(gòu)中兩運動副存在局部自由度的8種典型結(jié)構(gòu)組合形式。
編程用到兩個重要關(guān)系:兩矢量叉乘等于0矢量時表示兩矢量或兩螺旋相互平行,而兩螺旋的叉積(旋量積)等于0螺旋時表示兩螺旋共線。兩螺旋的叉積定義為:
(5)
1.5.1 公共約束數(shù)λ計算
1.5.2 冗余約束數(shù)ν計算
(6)
文獻[2,17]給出的冗余約束數(shù)公式是
(7)
顯然,式(6)和式(7)的內(nèi)涵都是指與其他約束線性相關(guān)的冗余約束數(shù),沒有差別。兩式也適用于單閉環(huán)機構(gòu),當然,ν是多分支并聯(lián)而產(chǎn)生的,單閉環(huán)的ν為零。
若求出Sr中線性無關(guān)的一組集sr,再次求反螺旋,則得到二次反螺旋srr。對并聯(lián)機構(gòu),srr表示動平臺的運動可能性,對應(yīng)矩陣的行數(shù)就是動平臺的自由度;對單閉環(huán)或開環(huán)機構(gòu),srr代表末桿(拆架后的機架或開環(huán)的末桿)的運動螺旋,其行數(shù)為末桿的自由度數(shù)或機構(gòu)階數(shù)。
注意,若用null函數(shù)求得二次反螺旋srr=[ ],要根據(jù)末桿(動平臺)是無約束的自由狀態(tài)還是全約束不能動兩種情況來調(diào)整srr,即:
式中:rref是Matlab的簡化列梯形矩陣函數(shù)。
此外,對于分支含閉環(huán)的并聯(lián)機構(gòu),如Delta機構(gòu)[2,8,17],可以先分析分支閉環(huán)中假設(shè)為動平臺的運動螺旋系srr,觀察或用式(2)和式(3)組成的線性方程組求出對應(yīng)的螺旋軸線矢量及軸線上特定點位置矢量,然后將機構(gòu)中的分支閉環(huán)用等效運動副螺旋替換(若按“Plücker坐標”方式輸入機構(gòu)運動副信息時,分支閉環(huán)直接用相應(yīng)srr等效替換即可),則可分析這類機構(gòu)自由度。
用本程序分析了平面、空間、單環(huán)及多環(huán)等各類機構(gòu)的自由度,計算結(jié)果完全正確,且絕大多數(shù)機構(gòu)的計算效率非常高。以下舉例說明判定機構(gòu)局部自由度的方法及過程。
圖1界面中的機構(gòu)是麥弗遜轉(zhuǎn)向懸架[19],不考慮車輪轉(zhuǎn)動,該多環(huán)機構(gòu)就是一個以轉(zhuǎn)向節(jié)DBC為動平臺的并聯(lián)機構(gòu),三個分支分別為GEC(運動副類型分別為P、S、S)、AD(S、C)、FB(R、S)。在轉(zhuǎn)向器齒條左右對稱位置上建立如圖1所示全局坐標系,則根據(jù)前面參數(shù)輸入規(guī)則,C、E、B位置球副的2條特征回轉(zhuǎn)軸線取簡單的0、1元素,但A處球副的1條特征回轉(zhuǎn)軸線要按表2的C…S結(jié)構(gòu)形式輸入,即各運動副的特征回轉(zhuǎn)軸線方向分別為:
sG=(0,1,0);sE1=sC1=(1,0,0);sE2=sC2=(0,1,0);sA1=sD=(l,m,n);sA2=(1,0,0);
sB1=(0,0,1);sB2=(0,1,0);sF=(1,0,0);
輸入上述螺旋軸線矢量方向及各運動副位置矢量,可求出3個分支各運動副的運動螺旋。
GEC分支:
AD分支:
FB分支:
故各分支運動螺旋集:
SGEC=($G;$E1;$E2;$E3;$C1;$C2;$C3);SAD=($A1;$A2;$A3;$D1;$D2);SFB=($F;$B1;$B2;$B3)。
這里Matlab直接用運動副坐標的字符變量計算,得出各運動螺旋及反螺旋,涉及的變量雖然多,但不計軸線矢量和位置矢量的輸入時間,程序分析過程耗時約1.2 s,這是手工計算難以達到的。
RSSR空間轉(zhuǎn)向梯形機構(gòu)簡圖如圖2所示。其中:A、D處為轉(zhuǎn)動副,B、C處為球副。該機構(gòu)有8個運動螺旋,按參數(shù)輸入規(guī)則,得到兩球副中各有一條運動螺旋分別為:
$B1=(Δx,Δy,Δz;yBΔz-zBΔy,zBΔx-xBΔz,xBΔy-yBΔx);
$C1=(Δx,Δy,Δz;yCΔz-zCΔy,zCΔx-xCΔz,xCΔy-yCΔx)。
式中:Δx=xC-xB;Δy=yC-yB;Δz=zC-zB。
這是單環(huán)機構(gòu),$B1×$C1=0,且hB1=hC1=0,因此兩個球副之間有一個轉(zhuǎn)動局部自由度,即ξ=1,而M=1。若選BC桿為動平臺,機構(gòu)就相當于有兩個分支(2-RS)的并聯(lián)機構(gòu),兩個球副在不同的分支中,此時無法判定其存在局部自由度,所以ξ=0,但M=2。實際上,這是因為B、C球副之間的構(gòu)件是輸出構(gòu)件,其產(chǎn)生的繞自身軸線的轉(zhuǎn)動自然計入到了輸出構(gòu)件的自由度中。這也說明對含有局部自由度的機構(gòu),用式(1)計算的自由度數(shù)與輸出構(gòu)件選擇有關(guān)?;蛘甙次墨I[20]的觀點,該機構(gòu)的自由度是2,名義自由度是1。
本例中,若不以兩球心連線作為兩球副的一條轉(zhuǎn)動軸線,而是用sB1=sC1=(l,m,n)計算運動螺旋,則得到機構(gòu)的運動螺旋集維數(shù)是8,秩是6,所以M=2,也無法判定局部自由度。
如圖3機構(gòu)中,由3個構(gòu)件和3個運動副組成,其中A、B處各有1個螺旋副,C處1個移動副。3個運動螺旋分別為:
其反螺旋有4個(略),λ=4,ν=0。根據(jù)其結(jié)構(gòu)$A×$B=0,即兩運動螺旋滿足同軸條件。按兩種情形討論:
1)當hA≠hB時,上述3個運動螺旋線性相關(guān)(秩為2),但并不存在局部自由度,可求得ξ=0,M=1,這與文獻[2]結(jié)果相同。
2)若hA=hB(螺旋同向)時,3個運動螺旋線性相關(guān),秩也仍然為2,本文程序最后求得ξ=1,M=0。因為依據(jù)表2,這種情形下有一個局部轉(zhuǎn)動自由度,表明這時構(gòu)件1的轉(zhuǎn)動僅是構(gòu)件1的螺旋轉(zhuǎn)動,并沒有帶動構(gòu)件2產(chǎn)生相對機架3的移動。文獻[2]沒有分析這一情形。這個例子表明,單環(huán)機構(gòu)不能單用“運動螺旋系線性相關(guān)”來判定局部自由度,單環(huán)機構(gòu)中運動螺旋集線性相關(guān)只是表明其部分或全部構(gòu)件可動。
另外,如果將2個螺旋副都等效為RP副,按情形(2)分析,會錯誤判斷出存在3個局部自由度,故而不能將螺旋副H等效為RP副。
圖4凸輪機構(gòu)也屬于單環(huán)機構(gòu),由于高副可以用RP等效(螺旋分別用$BP和$BR表示),這個機構(gòu)相當于是RRPRP單閉環(huán)機構(gòu),其5個運動螺旋為:
其中:$BP=$C,有$BR×$C=0,機構(gòu)有3個反螺旋(略),最后求出λ=3,ν=0,ξ=1,M=1,與實際情況相符。當然這時求出的活動構(gòu)件數(shù)n=4,它是在高副低代時增加了一個虛擬桿造成的。當機構(gòu)中含有沒列在表1中的等效復(fù)合運動副時,計算得到的活動構(gòu)件數(shù)n大于實際構(gòu)件數(shù),此時的n僅僅是作為計算的參考。
RRFRC機構(gòu)簡圖見圖5。其中:C處是平面副;E處是圓柱副;其余是轉(zhuǎn)動副。各運動副螺旋軸線為:
sA=(1,0,0);sB=(a,b,c);sC1=(lC1,mC1,nC1);sC2=(lC2,mC2,nC2);
sD=(e,f,g);sE=(0,1,0)
式中:sC1、sC2是平面副上兩不平行的矢量,則可以獲得由8個螺旋組成的螺旋集,秩為6,ξ=0,M=2。但若機構(gòu)運動到某個位置瞬間,平面副與y軸平行,即:sC2=(0,1,0),則螺旋集的維數(shù)及秩數(shù)不變,但sC2×sE=0,這時不同構(gòu)件的C、E兩點之間產(chǎn)生瞬時局部自由度,即:ξ=1,M=1。
本文利用Matlab提供的強大字符變量、矩陣處理能力,編寫了基于螺旋理論的機構(gòu)自由度自動分析計算程序。程序可在矢量或坐標輸入框處輸入任意字母、數(shù)字和簡單三角函數(shù)等組成的表達式,使運動螺旋模型更符合實際情況,也便于局部自由度的自動分析計算。與手工計算相比,分析計算效率更高效??偨Y(jié)得到以下結(jié)論:1)分支中運動螺旋系線性相關(guān)存在局部自由度的判斷準則只適用于多環(huán)機構(gòu)。單環(huán)機構(gòu)中兩副之間存在局部移動自由度的充要條件是:存在兩個h=∞的螺旋導(dǎo)路矢量相互平行;或者,分支中存在0