李玉勝 ,董保香 ,趙國慶 ,王圣偉
(1.山東理工大學 機械工程學院, 山東 淄博 255049;2.淄博職業(yè)學院 電子電氣工程學院, 山東 淄博 255314;3. 山東飛馬索道纜車設備有限公司, 山東 淄博255000)
諸如凸輪機構等運動機構的設計,不僅僅需要實現(xiàn)機構預期的運動軌跡,而且還需要考慮其速度、加速度等運動規(guī)律特性。用解析法設計軌跡曲線時,因為有數(shù)學公式,求導容易,可方便地給出速度、加速度曲線;但用圖解法設計軌跡曲線時,則無法給出求導后的曲線。因此,對于圖解法,迫切需要一種利用已知軌跡曲線,求導得出速度、加速度曲線的方法[1-4]。本文給出一種連續(xù)曲線的求導方法。
利用UG/Motion的求導步驟如下:
1)根據(jù)機構的運動要求,繪制位移軌跡曲線;根據(jù)需要繪制描述點t0(X0,Y0)、點t(X,Y),描述求導得出所需的Y方向運動曲線。
2)建立表達式變量Δx等。
3)創(chuàng)建運動仿真模型,定義連桿與運動副,并賦予傳動運動副以驅動,特別要注意處理好描述求導得出的自定義函數(shù)。
4)定義點在線上幅、線在線上幅等約束條件。
5)創(chuàng)建標記點,用于追蹤求導后的結果。
6)設置追蹤,追蹤上述標記點。
7)設置求解時間與步數(shù)等求解參數(shù)并求解。
8)運行動畫,激活追蹤,運行后獲得追蹤點,該點云就是描述求導后的軌跡點。
9)用樣條曲線擬合點云,獲得求導后的曲線。
以曲線sin(x),x∈[0,2π]為例,利用UG/Motion運動仿真模塊,按照上述步驟,實現(xiàn)正弦曲線的求導。
1)在UG環(huán)境中,新建文件QiuDao.prt,為方便參數(shù)化驅動以及分析求導后的點云和曲線與正弦曲線之間的偏差,在QiuDao.prt文件中不繪制任何圖形元素,把所有參數(shù)以及幾何元素繪制在創(chuàng)建的motion.sim文件中。
2)進入運動仿真模塊,新建運動仿真,選擇動力學分析類型,仿真名為motion。
3)進入建模模塊,利用表達式功能,建立如圖1所示表達式:t=1,t是UG系統(tǒng)變量,是從0到1的動態(tài)變量;xt=2*pi()*t,pi()是UG系統(tǒng)內(nèi)函數(shù),xt的變化范圍是[0,2π];yt_sin=sin(xt*180/pi()),UG中正弦函數(shù)自變量只能是度數(shù),所以需要把弧度值轉化為對應的角度值;yt_dos=cos(xt*180/pi()),正弦求導后對應的余弦曲線,用來檢測求導結果的正確性與準確程度;zt=0,z軸值為0,正弦余弦曲線繪制在XOY平面內(nèi);Delta_X=2*pi()/360,用Delta_X表示增量Δx。
圖1 表達式Fig.1 Expression
4)利用規(guī)律曲線,結合上述表達式,建立正弦曲線、余弦曲線,其中距離公差設置為0.000 1。
5)基于XOY平面創(chuàng)建草圖,繪制如圖2所示4條線段,線段端點與正弦曲線存在點在線上幾何約束,用這4條線段與正弦的交點表示點t0(X0,Y0)與t(X,Y),兩點之間水平距離設置為Delta_X。用這4條線段分別描述t0與t點沿著X、Y方向移動的連桿。在表達式對話框中,可隨時修改Delta_X值,參數(shù)化驅動功能會立即更新兩點之間的水平距離。
圖2 連桿與運動副Fig.2 Links and joints
6)進入運動仿真模塊,激活Motion仿真,創(chuàng)建如圖2所示5個連桿。L_X用來表示t點沿X方向運動的所需連桿;L_Y用來表示t點沿Y方向運動的所需連桿;L_X0用來表示t0點沿X方向運動的所需連桿;L_Y0用來表示t0點沿Y方向運動的所需連桿。L_Dy是獲取導數(shù)值所需連桿。所有連桿質(zhì)量屬性為自定義,質(zhì)心選擇各條線段靠近正弦曲線側的端點,慣性CSYS采用絕對坐標系,質(zhì)量為10;IXX、IYY、IZZ分別為10;IXY、IXZ、IYZ分別為0。
7)創(chuàng)建如圖2所示平動副。J_X是連桿L_X的水平方向平動副,無基本連接桿。J_Y是連桿L_Y的豎直方向平動副,基本連接連桿為L_X。J_X0是連桿L_X0的水平方向平動副,無基本連接桿。J_Y0是連桿L_Y0的豎直方向平動副,基本連接連桿為L_X0。J_Dy是連桿L_Dy的豎直方向平動副,基本連桿連接為L_X0。
8)利用點在線上幅,把t與t0點約束到正弦曲線上。PointOnCurve_XY是把連桿L_Y用于表示點t(X,Y)的下端點約束到正弦曲線上。PointOnCurve_X0Y是把連桿L_Y0用于表示點t0(X0,Y0)的下端點約束到正弦曲線上。為保持精度,選擇基于曲率的曲線參數(shù)化方法。
9)對J_X,J_X0分別設置驅動,皆為恒定平移模式,初速度值為2*pi(),單位為mm/s,即用1 s時間平動運動2*pi() mm的距離。
10)設置描述導數(shù)值的平動副J_Dy,驅動方式選擇函數(shù),函數(shù)類型為位移,采用函數(shù)管理器,插入函數(shù)math_func,值為點t(X,Y)與點t0(X0,Y0)在Y方向的差值,即只需要導入Y方向的位移,觀察變量為位移,選擇分量為Y,參考框架為絕對坐標系。在本仿真中,值為(DY(45,1,1)-DY(71,1,1))/Delta_X。
11)建立標記點Mark_Dy,連桿選擇L_Dy,指定點為L_DY連桿靠近正弦曲線側的端點,CSYS采用絕對坐標系。
12)設置追蹤Tr_Dy,追蹤對象為Mark_Dy,參考框架為絕對坐標系,目標層為10,并激活。
13)新建結算方案,時間為1 s,步數(shù)為360步,即用360步仿真完整個過程。在求解器參數(shù)中,設置動力學/運動學的誤差為0.000 1,靜力學誤差為0.000 1。
14)求解。
15)設置圖層10為工作圖層。打開動畫對話框,啟用追蹤封裝選項,播放后,可看到隨著點t(X,Y)與點t0(X0,Y0)沿著正弦曲線的移動,Mark_Dy標記點被打出,該點的Y值就是t0(X0,Y0)點的導數(shù)。
1)將Mark_Dy的追蹤點與余弦曲線對比,肉眼基本看不出區(qū)別。利用菜單“分析->偏差-->度量”偏差度量功能,把所有點與余弦曲線對比,如圖3所示,可得出最大偏差值為0.006 2 mm,該值是在Delta_X為2pi()/360的前提下得到的,如果進一步縮小Delta_X值,則偏差會更小。圖3顯示了Mark_DY追蹤點與余弦曲線的對比,為方便觀察,追蹤點只顯示了大約一半。
圖3 點云與余弦曲線Fig.3 Points and cos(x) curve
2)利用樣條曲線的擬合功能,把點云擬合成樣條曲線,分析樣條曲線與余弦曲線的誤差,也為0.006 2 mm。樣條曲線與余弦曲線的曲率梳對比如圖4所示,左側是余弦曲線的曲率梳,右側是求導后曲線的曲率梳,可以看出求導所得曲線的曲率略有不光順,但總體來說,沒有比較大的突變。
圖4 擬合樣條與余弦曲率梳對比Fig.4 Curvature comb of cos(x) and spline
3)若著重曲率的光順,可在擬合樣條曲線時,略微放大公差,圖5是曲線階次為3,公差為0.01時的擬合樣條曲線,該樣條曲線與理論預先曲線偏差為0.011 2 mm,左側是余弦曲線的曲率梳,右側是擬合樣條曲線的曲率梳,可以看出,兩曲率梳基本沒什么區(qū)別。
圖5 擬合樣條調(diào)整后的曲率梳Fig.5 Spline curvature after modification
1)根據(jù)導數(shù)定義,利用UG的運動仿真功能,實現(xiàn)對sin(x)曲線的求導,驗證了利用運動仿真功能對連續(xù)曲線求導方法的正確性。
2)給出了運動仿真得到的點云、擬合樣條曲線與理論求導曲線的誤差,若想提高精度,可減小Δx的變量值,直到滿足工程應用需求。
3)對于非連續(xù)曲線,若非連續(xù)點恰好被Δx越過,也可以求出導數(shù)曲線。