李 偉,趙玉剛,張來賓,李科展,張 輝
LI Wei1,ZHAO Yu-gang1,ZHANG Lai-bin2,LI Ke-zhan3,ZHANG Hui4
(1. 山東理工大學 機械工程學院,淄博 255049;2.滕州市產品質量監督檢驗所,滕州 277500;3. 中國重汽集團 濟南橋箱有限公司,濟南 250116;4. 中國石化齊魯石油化工公司 熱電廠,淄博,255400)
插補是數據密化的過程。在數控系統明確起點和終點后,系統根據線段的特征(直線、圓弧、漸開線等),運用一定的算法,在起終點之間計算出一系列的數據,從而自動地對各坐標軸進行分配,使機床加工出所要求的輪廓曲線[1]。
文獻[1]提出了一種最小偏差法,改進的算法雖然精度有所提高,但只能用于要求不高的開環控制系統中。文獻[2]和文獻[3]只是基于數控插樸特征原理,提供了數控加工橢圓曲線的有益方案,沒有具體實現數控加工及仿真;文獻[4]介紹了脈沖增量式插補算法的特點,基于vHDL語言編程實現了多種常用脈沖增量式插補算法的硬件插補器。
本文運用矢量法解決了起點、終點、半徑確定圓心的問題,簡化了計算過程,使計算值有了明確的取舍;基于脈沖增量插補原理推導出了橢圓的逐點比較法的判別函數,并在C++ Builder開發環境下,編制出橢圓的插補計算程序,實現了橢圓的數控加工仿真。
逐點比較法是脈沖增量插補方法的一種,其特點是每經過一個插補周期僅產生一個行程增量,在插補計算過程中不斷向各個坐標發出相互協調的進給脈沖,驅動各個坐標的電動機運動。
1)若點P正好在橢圓弧上,則:

2)若P在橢圓弧外側,則:

3)若P在橢圓弧內側,則:

取加工偏差判別式:

當P在橢圓弧外側或橢圓弧上時Fi,j≥0,需向X軸負方向進給一個脈沖當量,到新的加工點上P(xi+1,yj);其加工偏差為:

若P在橢圓弧內側時Fi,j<0,需向Y軸正方向進給一個脈沖當量;其加工偏差為:

由此可看出,新一點的偏差值可以用前一點的偏差值遞推出來,計算簡單,可實現高速插補。在橢圓插補過程中,動點坐標的絕對值總是一個增大,另一個減小。如第一象限逆插補時,x減小,y增大。
偏差判別公式是基于圓心在原點的基礎上推導出的,因此在進行插補前要對輸入的數據進行預處理。預處理的工作包括:起點終點的處理,圓心的確定,優劣弧的判斷,判別函數的確定等。
已知圓弧起點 A(x1,y1),終點 B(x2,y2),半徑為R,求圓心坐標(x,y)。

圖1 插補程序框圖
聯立方程組

得到的圓心坐標有兩個,圓心的取舍與起點、終點所在的象限、優劣弧有關。
矢量法確定圓心的思想:先任意選定計算出的一個圓心O1,設O1A是圓心到起點的向量,AB是起點到終點的向量,然后把這兩個向量做叉乘,若 O1A×AB>0,則 O1是 A到 B逆圓弧劣弧的圓心,同時也是A到B順圓弧優弧的圓心;若O1A×AB<0, 則 O1是 A 到B順圓弧劣弧的圓心,同時也是A到B逆圓弧優弧的圓心。程序框圖如圖1右預處理部分。其中,R代表是劣弧,-R代表優弧。
根據以上算法,在C++Builder環境中編寫代碼實現了橢圓插補。插補程序框圖如1所示,輸入參數,就可以插補計算,并且可以實現動畫效果。

圖2 插補仿真圖
本文在C++ Builder開發環境下,編制出橢圓的插補計算程序。推導出了橢圓的插補判別公式,可以有效的實現橢圓的逼近,并進行了模擬。在牽扯到圓心坐標的取舍的問題上,本文采取一種矢量法,使簡化了計算過程,使計算值有了明確的取舍,使繁瑣過程變得簡單,簡化了計算量,具有較高的使用價值。
[1] 欒芝蕓,孫雷,等. 一種新型的插補方法——自動過象限卡諾圖最小偏差法[J]. 測控技術,2000,(11):51-52.
[2] 逄啟壽,楊杰,等.數控加工中兩種插補原理及對應算法[J].機械工程師,2007,(2): 121-122.
[3] 李衛京,李文斌.橢圓曲線插補算法研究[J].山西機械,20033,(1): 18-19.
[4] 朱昊,劉化君,等. 基于VHDL的脈沖增量式多功能插補器的設計與實現[J]. 中國制造業信息化,2007,10,(19): 38-42.
[5] 趙玉剛,宋現春. 數控技術[M]. 北京: 機械工業出版社,2003.