CNC系統中任意空間曲線的插補方法
時間:2011-05-20 08:43:10 來源:未知
在CNC機床上加工工件,無論是加工曲面還是曲線,加工過程的刀具中心軌跡都是曲線。傳統的CNC機床只能加工簡單的直線和圓弧等曲線,加工復雜的曲線需要在編程時轉化為簡單曲線。隨著計算機技術的發展和機械零件復雜程度的提高,人們希望CNC機床能直接加工任意空間曲線。尤其樣條曲線的發展,這種希望更迫切。本文運用數據采樣時間分割法和泰勒(Taylor)公式,推導出一種任意參數曲線的等速進給實時插補算法。下面給以介紹。
1 參數曲線插補算法
一般曲線c可寫成如下形式
c(u)={x(u),y(u),z(u)} uÎ[u0,un]
(1)
u是任意參數,通常0≤u≤1。大多數CAD/CAM系統采用參數形式表示曲線。用參數描述曲線有以下優點:參數形式曲線對于控制多軸機床是非常方便的,每個軸可以單獨驅動。另外,曲線上點的計算容易,這是由于x,y,z都是參數u的顯函數,故易于計算。
CNC系統插補器的任務是在恒插補周期T(T是常數,一般為1~10ms)內計算輸出一次由下式確定的進給弦長DL(uk)在x,y,z軸上的坐標分量
DL(uk={x(uk+1)-x(uk),y(uk+1)-y(uk),z(uk+1)-z(uk)}
k=1,2,…,n-1
(2)
CNC系統要求每次插補所形成的弦長相等,因此,實時插補方法不能建立在參數的等分上,而應建立在每個進給步長DLk相等的基礎上?,F在的關鍵是推導出弦長相等的條件下相應的參數增量Duk。以下是恒速進給實時插補算法的具體推導。
沿參數曲線的進給速度可按下式計算
V(u)=
ds
=(
ds
)(
du
)
dt
du
dt
(3)
(4)
其中s為曲線的自然參數即弧長,有
ds
=[(x')2+(y')2+(z')2]½
dt
(5)
x'=
dx
y'=
dy
z'=
dz
du
du
du
式(4)要求ds/du≠0,由式(5)知,即要求該曲線為正則曲線。
把式(5)代入式(4),得
花少量的時間計算式(6)的解是實時插補算法的關鍵,然而V為常值條件下的解u(t)一般難以求得。因此,不妨在t=kT處使用泰勒(Taylor)級數展開進行迭代求解。由泰勒公式得
(7)
最后一項為一階泰勒公式的余項,是二階無窮小量,對于插補計算可忽略不計。把式(6 )代入式( 7 ) ,忽略二階余項,得
uk+1=uk+
VT
(x'2+y'2+z'2)½
(8)
由式(8 )確定uk+1代入式(1 )和式(2 )即可計算出插補步長DL((u )k)的各個坐標分量。該算法的優點就是保證插補點始終在曲線上,無累積誤差,只有弓高誤差。
2 最大插補步長和弓高誤差的關系
由以上恒速實時插補算法推導可知,插補點始終在曲線上,無累積誤差,因此弓高誤差就是插補誤差。弓高誤差d受給定精度指標e的限制,即必須有d≤e。實際加工的弓高誤差取決于插補步長DLk 、曲線的曲率k和撓率t。k和t由下式決定。
(9)
(10)
由于插補步長很短,因此可將被插補弧看作半徑為Rk的圓弧。這樣的簡化是偏安全的。Rk由下式決定
Rk=1/max(k(ui),t(ui)) (k,i=0,1,2,…n-1;uk≤ui≤uk+1
(11)
那么,DLk逼近曲線弧DCk的弓高誤差dk如圖1所圖。圖1中,DLk和dk之間的關系可表達為

圖1 弓高與步長的關系
若對任意t∈[0,1] ,要求插補器輸出由式(2 )給定的 DLk逼近對應的曲線弧DCk時,弓高誤差對所有k均有#p#分頁標題#e#dk≤e,則最大插補步長可表示為
式(13 )中R由下式決定
R=1/max[max(k(u)),max(t(u))] u∈[u0,un]
(14)
式(14 )可由參數方程(1)代入式(9 )、式(10 ) ,分別用普通函數求最大值的方法得到。
3 結束語
本文介紹的插補方法能用在所有以參數方程表示的任意空間曲線上。這些曲線可包括B樣條等所有樣條曲線。計算的復雜程度也不是很高,一般帶浮點運算器的計算機都能勝任,加之插補時間固定,能很好地滿足控制系統對實時性的要求。