劉 煒,陳 寧
(江蘇科技大學能源與動力工程學院,江蘇鎮(zhèn)江212003)
虛擬現(xiàn)實技術是一門新興技術,集傳感器技術、圖形圖像處理技術、多媒體技術、互聯(lián)網(wǎng)技術、計算機技術[1]等于一體,逐漸成為國際重要課題,在計算機相關領域中得到廣泛應用,在娛樂、教育、培訓等領域也得到廣泛應用.文獻[2]中基于I-DEAS,OpenGL,VC++,建立約束關系,開發(fā)大型機械裝置虛擬教學訓練系統(tǒng),以動態(tài)實時展現(xiàn)復雜視景.文獻[3]中通過11個BB模塊實現(xiàn)三維實體碰撞檢測.利用虛擬現(xiàn)實技術對柴油機配氣機構進行運動學視覺仿真,一直是柴油機工作狀態(tài)模擬的難點,特別是配氣機構運動體之間運動關系的仿真.文中提出了兩種仿真方法,并對仿真結果進行了比較.
首先求解柴油機配氣機構運動的數(shù)學模型.圖1為單缸配氣機構的示意圖.圖中l(wèi)T為搖臂轉動中心到推桿上支承面中O1的距離;α為搖臂lΤ對挺柱中心線的偏轉角;l為推桿上下支承面中心間的距離;γ為推桿對挺柱中心線的偏轉角;lV為氣閥側的搖臂臂長(搖臂中心O到圓柱面中心O2的距離);β為lV臂對氣閥中心線的偏轉角;hv氣閥的升程;hT為挺柱的升程;φ為凸輪的轉角;ω為凸輪軸的轉角.挺柱的位移hT與凸輪的轉角φ相關[4].
圖1 配氣機構示意Fig.1 Gas distribution mechanism
圖2為進氣閥位移hv與凸輪轉角φ的關系.可以通過凸輪轉角φ來確定挺柱的運動規(guī)律.由圖1可以得到下列方程:
再對時間t求導,可得到氣閥運動的關系式:
式中:hV為速度(mm/s);h¨V為加速度(mm/s2).
結合式(1,2)和(5),可得挺柱的位移hT與凸輪的角速度ω的關系式:
對公式(5)求積分有
凸輪軸轉速ω為8.75 rad/s,故凸輪的轉速ω也為8.75 rad/s.
利用Simulink求解方程,得到配氣機構挺柱的速度、加速度曲線,將結果輸入SQLserver數(shù)據(jù)庫建立數(shù)據(jù)表.以ADO和UDP協(xié)議通信,數(shù)據(jù)從數(shù)據(jù)庫服務器傳輸?shù)絊imulink.數(shù)據(jù)發(fā)送流程如圖3.
通過 VS2005建立 OSG(OpenSceneGraph)仿真平臺與數(shù)據(jù)庫表的關聯(lián),從而使OSG中各個機構在數(shù)據(jù)庫表的支持下運動(圖4).此方法在實現(xiàn)視覺仿真時結果精確,機構動作平滑,但占用系統(tǒng)資源較大,運行費時.
圖2 凸輪轉角與進氣閥位移關系Fig.2 Relationship of cam angle and suction valve displacement
圖3 數(shù)據(jù)發(fā)送流程Fig.3 Flow diagram of data send
圖4 視景生成流程Fig.4 Visual generation process
OSG場景管理軟件提供了osgUtil庫函數(shù),該庫函數(shù)用來獲得正確的靜態(tài)物體和動態(tài)物體高度值.場景中的射線是交集測試的基礎,線段類提供了一種定義射線的方法.當交集測試被觸發(fā)時,它將檢測射線的相交情況并執(zhí)行相應的操作[6].這里采用了一種改進的AABB碰撞檢測算法.柴油機配氣機構中凸輪的AABB樹由2×N-1個節(jié)點組成,其中包括N個葉節(jié)點和N-1個內(nèi)部節(jié)點,N是凸輪中基本圖元三角形的數(shù)目.葉節(jié)點包含一個或多個可繪制體(Drawable類)信息.在凸輪和挺柱碰撞檢測時,遇到測試兩個葉節(jié)點的情況,則先進行包圍盒之間的相交測試.如果包圍盒相交測試成立,再進行凸輪和挺柱之間基本圖元如三角形、線段的相交檢測,找到碰撞的準確位置.文中提出一種方法,據(jù)此可以跳過AABB的葉節(jié)點之間的相交測試,直接進行幾何體基本圖元間的相交測試,找出射線和三角形的交點.方法如下:
凸輪幾何體三角形的參數(shù)方程:
式中:V0,V1和V2為三角形的3個點;x,y為V1和V2的權重,1-x-y為V0的權重,并且滿足x>=0,y>=0,x+y<=1.
射線的參數(shù)方程為O+Dt.式中:O為起點,D為射線的方向.
求射線與凸輪幾何體基本圖元三角形的交點,即求解方程:
將t,x,y提取出來作為未知數(shù),得到線性方程組
根據(jù)克萊姆法則,
可知射線與凸輪幾何體基本圖元三角形的交點.
依據(jù)碰撞檢測算法,實時獲取凸輪與挺柱的動態(tài)交點,再通過交點,根據(jù)曲柄滑塊機構運動規(guī)律,求出配氣機構各部件的運動方程.碰撞檢測算法可以利用OSG自身碰撞檢測類實現(xiàn).用osgUtil::Line-SegmentIntersector定義相交矢量,用osgUtil::IntersectionVisitor定義碰撞檢測器,定義碰撞檢測的對象物——凸輪.在整個運行周期,碰撞實時發(fā)生.凸輪與相交矢量的碰撞檢測結果即交點實時保存,傳遞給OSG仿真程序.這一方法需要配氣機構三維模型非常精確,可直接從CAM工具ProE文件格式轉化而來.對于單獨一個氣缸配氣機構來說,碰撞檢測發(fā)生在凸輪和挺柱兩個動態(tài)運動剛體之間,采用嵌套回調(diào)的方法解決這個問題.凸輪軸在參與正時轉動時,加入碰撞檢測機制.
圖5 方法2流程Fig.5 Flowsheet of method 2
基于碰撞原理,挺柱和推桿的位移程序如下:
osgUtil::LineSegmentIntersector(p-start,pend);∥得到線段
osgUtil::IntersectionVisitor-iv(-lineSegmentIntersector.get());
terrain- >accept(-iv);∥碰撞點
osg::ref-ptr<osg::MatrixTransform> mt-terrain=new osg::MatrixTransform;
mt-terrain- >setMatrix(osg::Matrix::translate(osg::Vec3(0,0,0)));
mt-terrain- >addChild(terrain);
-intersections=-lineSegmentIntersector- >get-Intersections();
int-intersectionNumber=-intersections.size();
if(-intersectionNumber!=0)
osgUtil::LineSegmentIntersector::Intersections::iterator hitr=-intersections.begin();
osg::Vec3
vec3-p1=hitr- >getWorldIntersectPoint()*mt-terrain- >getMatrix();
OSG運行結果如圖6.
該方法利用碰撞檢測機制實現(xiàn)挺柱沿凸輪型線復雜運動軌跡,避免用Simulink建立數(shù)學模塊求解微分方程.上述方法是一種較為方便且占用資源較少的解決方案.
圖6 柴油機配氣機構運動Fig.6 Diesel engine gas distribution mechanism motion visual simulation
經(jīng)過觀察,可見挺柱、推桿、搖臂和氣閥等構件有抖動現(xiàn)象.這一問題來源于碰撞檢測環(huán)節(jié).應用OSG碰撞方法求交點時,盡管對導入的模型曲面進行了Delaunay三角剖分,但得到剖分后,部分三角形較大.凸輪曲面由很多三角形平面擬合而成,在相交矢量與凸輪表面求交時,交點值有跳動,造成了部分構件仿真結果抖動.
利用 osg::PrimitiveSet::POINTS,osg::PrimitiveSet::TRIANGLES對凸輪模型曲面的三角形細化,可以減小抖動.
根據(jù)柴油機配氣機構視覺仿真的要求,用兩種不同方法對配氣機構進行仿真:一是利用Simulink對配氣機構各個部件的運動微分方程進行解算,通過數(shù)據(jù)庫實時傳遞運算數(shù)據(jù),在視覺仿真環(huán)境中得到運動效果;二是通過碰撞檢測機制,找到凸輪與挺柱碰撞交點,通過交點計算各部件運動位置,解決了運動剛體之間的碰撞檢測問題.這兩種方法經(jīng)過比較,后者因為靈活方便,推薦使用.
References)
[1] 周紅軍,王選科.虛擬現(xiàn)實系統(tǒng)概述[J].航空計算技術,2005,35(1):114 -116.Zhou Hongjun,Wang Xuanke.Systematic summary of virtual reality[J].Aeronautical Computer Technique,2005,35(1):114 -116.(in Chinese)
[2] 賀少華,吳新躍.基于VC++和OpenGL的大型機械裝置虛擬教學訓練系統(tǒng)的開發(fā)[J].系統(tǒng)仿真學報,2009,21(4):1059 -1062.He Shaohua,Wu Xinyue.Desktop VR prototype of mechanical devices training applications[J].Journal of System Simulation,2009,21(4):1059 -1062.(in Chinese)
[3] 王憲成,李勃,李莉.基于Virtools4-0的某型船艇柴油機虛擬維修關鍵技術研究[J].裝甲兵工程學院學報,2010,24(2):27 -31.Wang Xiancheng,Li Bo,Li Li.Research on key technology of virtual maintenance certain boat diesel engine based on virtual 4.0[J].Journal of Academy of Armored Force Engineering,2010,24(2):27 -31.(in Chinese)
[4] 姚壽廣,包國治,許江濤.基于虛擬樣機的柴油機配氣機構運動學動力學仿真分析[J].船舶工程,2009,31(6):27-31.Yao Shouguang,Bao Guozhi,Xu Jiangtao.Kinematics and dynamics simulation analysis of valve actuating mechanism for diesel engine based on virtual prototype technology[J].Ship Engineering,2009,31(6):27 -31.(in Chinese)
[5] 楊曉,廉靜靜,張新宇.基于OSG的虛擬場景中包圍盒碰撞檢測的研究[J].計算機技術與發(fā)展,2011(9):32-34.Yang Xiao,Lian Jingjing,Zhang Xinyu.Research on bounding box collision detection in virtual reality based on OSG[J].Computer Technology Development,2011(9):32-34.(in Chinese)