劉成業(yè) 汪洋 周穎
【摘 要】本文首先介紹了需要進行位置矩陣求解歐拉角的應用場合,接著對位置矩陣和歐拉角的定義進行了描述。然后推導了從位置矩陣到歐拉角的轉(zhuǎn)換公式,并提出兩種從位置矩陣求解歐拉角的計算方法,分別為下三角矩陣求解方法和上三角矩陣求解方法。同時說明了上述方法的優(yōu)缺點及適用條件。最后說明了一類特殊類型的位置矩陣,分析其對應的歐拉角無唯一解的原因并提出相應的求解方法。
【關(guān)鍵詞】位置矩陣;歐拉角;計算方法
0 引言
在進行多體動力學仿真時通常需要將三維設(shè)計軟件中的數(shù)模導入到多體仿真軟件中[1],以CATIA數(shù)模導入ADAMS軟件為例,通常有兩種方法,第一種方法是將零件手動依次導入到ADAMS軟件中[2]。第二種方法是通過SIMDESIGNER軟件將組件導入到ADAMS中[3]。第一種方法首先需將零件的局部坐標系轉(zhuǎn)換到組件的全局坐標系中并依次手動導入,存在工作量大的問題。第二種方法首先需要購買SIMDESIGNER軟件,同時在實現(xiàn)零件導入的過程中同樣存在著零件名稱與數(shù)模不一致的情況[4]。經(jīng)研究可以對第一種方法進行擴展,通過自動提取CAITA組件中的位置矩陣,接著將位置矩陣轉(zhuǎn)換為ADAMS中可以識別的歐拉角,最后通過編寫CMD命令實現(xiàn)零件的批量導入,本文僅對上述方法中的位置矩陣轉(zhuǎn)換為歐拉角的求解方法進行分析求解。
1 位置矩陣和歐拉角的定義及轉(zhuǎn)換
1.1 CAITA位置矩陣的定義
在CAITA中每個組件都定位在產(chǎn)品的三維坐標系統(tǒng)所確定的三維空間中,位置信息由Position屬性來定義[5]。物體的位置信息由一個長度為12的數(shù)組來定義,該數(shù)組結(jié)構(gòu)如下所示(設(shè)數(shù)組變量為M):
前九個數(shù)值組成了一個3x3的矩陣,它描述了物體的旋轉(zhuǎn)信息[6],最后3個數(shù)值描述了物體的原點位置。整個數(shù)組描述了一個相對于絕對坐標的三維坐標(T,U,V,W)系統(tǒng)[7]。
1.2 ADAMS中的歐拉角的定義
根據(jù)歐拉轉(zhuǎn)動定理,剛體在空間旋轉(zhuǎn)時,其連體坐標系可以相對于自身旋轉(zhuǎn)后的某個坐標軸旋轉(zhuǎn)一定角度(剛體固定,Body Fixed),也可以相對于自身原來的坐標系旋轉(zhuǎn)一定角度(空間固定,Space Fixed)[8]。在旋轉(zhuǎn)時,可以繞不同的坐標軸旋轉(zhuǎn),也可以繞著相同的坐標軸旋轉(zhuǎn),這樣就形成了一個旋轉(zhuǎn)序列,在ADAMS/View中,繞x軸旋轉(zhuǎn)稱為1旋轉(zhuǎn),繞y軸旋轉(zhuǎn)稱為2旋轉(zhuǎn),繞z軸旋轉(zhuǎn)稱為3旋轉(zhuǎn)[9],這樣就可以形成多個旋轉(zhuǎn)序列(Rotation Sequence),如313、213、123等。如果按照313剛體固定的旋轉(zhuǎn)序列來旋轉(zhuǎn)坐標系,則旋轉(zhuǎn)過程如圖1所示。圖中的旋轉(zhuǎn)序列稱為剛體固定313旋轉(zhuǎn)序列[10],這種旋轉(zhuǎn)序列的三次旋轉(zhuǎn)的角度稱為歐拉角。
1.3 歐拉角和位置矩陣的轉(zhuǎn)換關(guān)系
根據(jù)空間變換矩陣,剛體固定的313旋轉(zhuǎn)序列可以描述為下式:
式中α為首次繞z軸旋轉(zhuǎn)的角度,β為第二次繞x軸旋轉(zhuǎn)的角度,?酌為第三次繞z軸旋轉(zhuǎn)的角度。設(shè)sinα=u,cosα=v,sinβ=w,cosβ=x,sin?酌=y,cos?酌=z通過上次三次變換得到的位置矩陣應與CAITA中的位置矩陣中旋轉(zhuǎn)部分矩陣一致,即:
M(0) M(1) M(2)M(3) M(4) M(5)M(6) M(7) M(8)?圳vz-uxy uz+vxy wy-vy-uxz -uy+vxz wz uw -vw x(3)
公式3即為ADAMS軟件中的歐拉角和CATIA軟件中的位置矩陣的轉(zhuǎn)換關(guān)系,通過該公式即可對歐拉角進行求解。
2 歐拉角的求解方法
2.1 下三角求解方法
觀察公式3的左下角較為簡潔,從左下角的對應關(guān)系可以得出:
上式可以進一步得到:
由于三角函數(shù)的特性,上式得到的α、β、?酌三個值的解存在解的不唯一性,可以將求解得到的幾組歐拉角數(shù)值代入公式3中進行驗算即可唯一確定歐拉角的數(shù)值。
上述方法的優(yōu)點是計算簡單,可以迅速通過編程實現(xiàn)自動求解,缺點是若有一個值為零,則上述方法無解。
2.2 上三角求解方法
在下三角求解方法不滿足求解條件的情況下從公式3的右上角對應關(guān)系入手,假設(shè)vz=l,vy=m,uz=n,uy=p,可以得到方程組:
進而得到:
上述公式可以用來判斷位置矩陣是否正確,從上式可以解出?酌的值進而得到:y,z則u、v可以得到,解出α值,由cosβ=x=M(8)可以解出β的值。與下三角求解方法的情況相同,由于三角函數(shù)的特性,上式得到的α、β、?酌三個值的解存在解的不唯一性,可以將求解得到的幾組歐拉角數(shù)值代入公式3中進行驗算即可唯一確定歐拉角的數(shù)值。
上述方法的優(yōu)點是計算方法易通過編程實現(xiàn),在下三角求解方法不滿足適用條件時可以完成計算,缺點是計算公式略微繁瑣,同時當-M(1)-M(8)·M(3)=0且-M(0)+M(8)·M(4)=0時無解。
3 CAITA中特殊類型的位置矩陣
CAITA的位置矩陣中存在著一類特殊的位置矩陣,其對應的歐拉角有無窮多個解,因而采用常規(guī)的計算方法無法完成歐拉角的求解。本節(jié)對該類矩陣的類型進行描述,分析產(chǎn)生無窮多組解的原因,并提出針對這種矩陣的求解方法。
該類矩陣如式8所示,
由公式3可以得到下列關(guān)系:
上式中β的值可以確定,后兩組等式可以轉(zhuǎn)換為:
4 小結(jié)
本文首先推導了從位置矩陣到歐拉角的轉(zhuǎn)換公式,接著提出下三角矩陣求解方法、上三角矩陣求解方法兩種從位置矩陣求解歐拉角的計算方法,并對兩種方法的優(yōu)缺點及應用條件進行了闡述,最后說明了一種對應的歐拉角無唯一解的位置矩陣并分析其原因、提出相應的解法。得到的結(jié)論如下:
A.歐拉角與位置矩陣的對應關(guān)系見公式3。
B.求解歐拉角的下三角的計算方法適用條件為M(5)、M(7)均不為零,該方法計算公式簡單,可通過編程迅速求解。
C.求解歐拉角的上三角的計算方法適用條件為-M(1)-M(8)·M(3)≠0或-M(0)+M(8)·M(4)≠0,該方法作為下三角求解方法不適用時的補充,也可通過編程迅速求解。
D.類似公式8的位置矩陣無唯一對應的歐拉角,上述兩種類型的位置矩陣均可通過假定?酌=0來獲得歐拉角的唯一解。
【參考文獻】
[1]余國權(quán).基于CATIA和ADAMS的減速器參數(shù)化設(shè)計及仿真[D].大連理工大學,2006.
[2]龔杰.基于CATIA和ADAMS的汽車變速器參數(shù)化設(shè)計及仿真[D].武漢理工大學,2012.
[3]李偉,趙劍.基于SimDesigner的自卸汽車舉升機構(gòu)仿真分析[J].山東交通學院學報,2012(02):1-5.
[4]張萌,王鵬林.MSC SimDesigner在產(chǎn)品設(shè)計中的作用[J].計算機輔助工程,2006,(S1):447-449.
[5]胡添元,余雄慶.基于CATIA二次開發(fā)的飛翼外形參數(shù)化建模[J].飛機設(shè)計.2007(06).
[6]胡挺,吳立軍編著.CATIA二次開發(fā)技術(shù)基礎(chǔ)[M].電子工業(yè)出版社,2006.
[7]彭歡.基于V5 Automation的CATIA二次開發(fā)技術(shù)研究[J].電子機械工程,2012(02):61-64.
[8]尚玫.高等動力學[M].機械工業(yè)出版社,2013.
[9]鄭凱,胡仁喜,陳鹿民,等編著.ADAMS 2005機械設(shè)計高級應用實例[M].機械工業(yè)出版社,2006.
[10]李軍,等編.ADAMS實例教程[M].北京理工大學出版社,2002.
[責任編輯:朱麗娜]