周沈淼 孫克己
?
凸輪磨削軌跡算法實現(xiàn)與驗證
周沈淼 孫克己
(上海機床廠有限公司 上海200093)
針對高檔數(shù)控切點跟蹤凸輪磨床在凸輪軸加工生產(chǎn)線上的應用,提出了凸輪隨動磨削軌跡算法的實現(xiàn)方法。并在數(shù)控機床軟件設(shè)計完成后直接對實體工件進行試加工的方法進行了驗證。結(jié)果表明,通過編寫SolidWorks宏程序可以驗證該算法的準確性,所驗證的凸輪軸切點跟蹤磨削軌跡算法模型可以集成到數(shù)控磨床中去,該凸輪磨削軌跡算法具有一定的參考價值。
磨削軌跡算法 凸輪磨削 切點跟蹤 SolidWorks 宏程序
在凸輪軸切點跟蹤磨削中,需要根據(jù)磨床用戶提供的升程數(shù)據(jù)表格(以下簡稱“升程表”),計算與之對應的工件回轉(zhuǎn)位置和砂輪位置數(shù)據(jù)表格(以下簡稱“位置表”)作為實際磨削時輪廓控制的依據(jù)。凸輪軸切點跟蹤磨削軌跡算法即是實現(xiàn)了這一轉(zhuǎn)換。凸輪軸切點跟蹤磨削通常采用CBN砂輪高速磨削,一旦發(fā)生磨削軌跡的控制失誤,有可能給工件、磨床乃至操作人員帶來損傷。為減少對凸輪軸試磨的次數(shù),提高試磨效率,保證試磨安全,通過有效地虛擬仿真手段來驗證算法的可靠性成為必要。
在對凸輪軸進行隨動磨削加工時,凸輪與砂輪的幾何關(guān)系如圖1 所示。
圖1 凸輪與砂輪幾何關(guān)系示意圖
圖1中,為升程,mm;為凸輪-滾子相對速度瞬心;’ 為凸輪-砂輪相對速度瞬心;為點在法線上的垂足,⊥法線;為凸輪基圓中心;1為滾子圓心;2為砂輪圓心;20為砂輪與凸輪基圓相切時砂輪的圓心位置;為砂輪高度安裝誤差,mm;為切點;g為滾子半徑,mm;s為砂輪半徑,mm;t為凸輪基圓半徑,mm;為砂輪與凸輪基圓距離,mm;k為砂輪位移量,mm;∠為∠12,(°);∠為與水平坐標線夾角,(°);∠為工件轉(zhuǎn)角,(°);∠為滾子角度(升程表角度),(°);∠為與法線夾角,(°);∠為與法線夾角,(°)。
凸輪輪廓無解析曲線方程擬根據(jù)離散的升程表坐標點計算曲線方程的近似函數(shù)。其方法為采用三次樣條的插值逼近,邊界條件設(shè)定為第一類邊界條件,一階導數(shù)取0。經(jīng)插值計算后,得出升程表曲線近似方程為
因為點為凸輪-滾子相對速度瞬心[1],因此可得在凸輪上點處的線速度,該瞬時速度與滾子向凸輪基圓圓心方向運動的瞬時速度相等。
設(shè):點處角速度為,時間為,得
(2)
式(2)恰好是式(1)的一階導數(shù),即
(4)
根據(jù)凸輪基圓與砂輪圓心距離:
由此可得出砂輪與凸輪基圓的距離:
(6)
考慮到磨床砂輪垂直安裝誤差,有
即可得到實際砂輪位移量k為
(7)
同時,根據(jù)式(5)可得:
(9)
結(jié)合式(3)、(8)、(9),即可得到工件轉(zhuǎn)角為
以上是凸輪軸磨削軌跡的基本算法。在數(shù)控機床中普遍應用的中高檔數(shù)控系統(tǒng)(如德國Siemens公司的 802系列、840D 系列、日本FANUC公司的0i系列、30i系列)都開放有軟件二次開發(fā)接口。在具體的工程應用中,可以選擇多種編程語言(C/C++、C#、VB等)來實現(xiàn)上述算法。在使用計算機編程語言實現(xiàn)算法時,一般應避免使用過于復雜的計算公式,過多的平方、除法、(反)三角計算會加大浮點計算誤差。
上述中已經(jīng)提到的實際場合中,用戶通常不會向機床制造廠提供凸輪的輪廓曲線方程,而是提供升程表(如圖2所示),數(shù)控系統(tǒng)識別的是與升程表對應的磨削軌跡,即位置表。
可見,凸輪磨削軌跡算法程序的正確與否,直接關(guān)系到試驗的成敗。因此,在用磨床進行試磨前,最好對算法程序的輸出結(jié)果進行核準,確保位置表的準確性。利用成熟的三維機械設(shè)計軟件可以生成凸輪磨削軌跡的幾何數(shù)據(jù),再與算法程序的輸出數(shù)據(jù)進行比對,這是一種方便實用的方法。
圖2 升程表示例
采用 SolidWorks 2012 作為第三方驗證工具,在該軟件上導入升程表數(shù)據(jù),通過編寫并運行簡單的二次開發(fā)宏程序,生成仿真模擬的位置表數(shù)據(jù)。在該軟件的幫助文檔中,詳細介紹了VB宏、C#.Net、VB.Net、MS VC++ 6.0 等各種語言和平臺的二次開發(fā)方法和步驟。
驗證操作步驟如下:
(1)將升程表數(shù)據(jù)由極坐標轉(zhuǎn)換為笛卡爾坐標;
(2)打開SolidWorks,新建“零件”程序,點擊標簽“特征”—“曲線”—“通過--點的曲線”,在彈出的對話框中輸入升程表數(shù)據(jù)文件名稱,導入升程表數(shù)據(jù);
(3)選中升程表軌跡曲線,設(shè)置等距實體,等距距離為砂輪半徑與推桿滾子半徑的差值(詳細過程可參考SolidWorks幫助文檔中的“等距實體”字段),在不考慮砂輪中心高偏差的情況下,得到的新曲線的幾何意義就是相對于凸輪的砂輪中心的位置軌跡;
(4)以基圓圓心為起點做直線,相交于砂輪中心位置軌跡曲線,此直線段與基準線的夾角即為工件轉(zhuǎn)角,直線段距離減去基圓半徑和砂輪半徑,即為砂輪位移量k,如圖3所示。
圖3 凸輪升程表軌跡、砂輪軌跡
(5)通過SolidWorks的二次開發(fā),實現(xiàn)了步驟(4)的操作自動化,將0~360°工件轉(zhuǎn)角位置的砂輪位置全部輸出到指定文件中。
對于相同的升程表數(shù)據(jù),ANSI C++ 實現(xiàn)的算法程序和 SolidWorks 宏程序的輸出數(shù)據(jù)對比結(jié)果如圖4所示。
圖4 標準C/C++ 程序和SolidWorks 結(jié)果比較
經(jīng)過驗證后表明,兩者的計算結(jié)果在小數(shù)點后三位處保持一致,誤差在凸輪軸加工需求的允許誤差范圍內(nèi)。確定的算法程序能滿足要求,并可以集成到數(shù)控機床中去,計算結(jié)果可以應用于凸輪軸的試磨削中。
在用SolidWorks引入升程表時,由于輸入數(shù)據(jù)由極坐標轉(zhuǎn)換成笛卡爾坐標,在理論上會增加浮點運算誤差。另外,如果考慮不同應用軟件的性能差異,可以在今后嘗試使用其它的CAD軟件進行算法驗證(如AutoCAD,UG等)。
就軟件本身的性能而言,SolidWorks以及類似的三維機械設(shè)計軟件的輸出精度已經(jīng)達到了部分中端磨床的精度要求。若將其直接集成到數(shù)控磨床中,將造成軟件功能和數(shù)控計算機資源的嚴重浪費,但使用該軟件作為模擬驗證工具,對凸輪磨削軌跡算法程序的計算結(jié)果進行檢驗是可行的。
工件在機床上進行實體加工是對機床產(chǎn)品質(zhì)量最終、最具說服力的檢驗方法,也是科研課題最根本的驗證手段,是計算機模擬無法取代的。由于實驗的重要性和高昂成本,在試驗之前必須通過軟件進行模擬,這樣可以避免不必要的技術(shù)錯誤,并降低了在實際加工時的技術(shù)風險,值得關(guān)注與重視。
該論文實現(xiàn)了凸輪磨削算法建模,并通過第三方軟件SolidWorks實現(xiàn)了該算法的計算機模擬驗證,兩者的誤差在凸輪軸加工允許的范圍內(nèi)。結(jié)果表明,所驗證的凸輪磨削算法可以集成到數(shù)控磨床中去,其計算結(jié)果可以應用于凸輪軸試磨,同時也說明了Solidworks這種驗證方法是可行的。
[1] 章振華.切點跟蹤及其關(guān)鍵技術(shù)在凸輪軸磨削中的應用[D].長沙:湖南大學,2006.