李傳軍 張世輝 謝久明 韓曉方 程嘉強
(①天津中德應用技術大學機械工程學院,天津 300350;②天津華大科技有限公司,天津 300350)
在復雜曲面數控加工中,通常使用CAD/CAM軟件將復雜曲面離散為微小的直線段或圓弧段,然后使用直線插補或圓弧插補完成復雜的加工,這種加工方式使得刀具軌跡不平滑,在微段連接處切向不連續,極大地降低了加工效率和表面質量。為了解決這個問題,樣條曲線直接插補技術應運而生。
3次B樣條是應用最廣泛的樣條曲線[2-5], 目前已有多種不同的3次B樣條曲線插補方法,如最早的泰勒一階和二階展開方法、反饋插補法、“預估——校正”插補法和函數擬合插補法[6-22]等,在這些插補方法中涉及多次曲線求值和求導計算,甚至需要進行反復迭代計算。而由于B樣條基函數采用遞歸定義,其求值和求導過程十分復雜耗時,因此上述方法需要占用大量的計算資源,甚至影響系統的實時性。
針對刀具軌跡曲線的B樣條曲線模型,本文提出從直接插補算法原理以及B樣條曲線的數學模型出發,為了提高插補過程中的計算效率和計算精度,利用一種B樣條的節點插入技術與微分遞推求值進行3次B樣條曲線的快速求值求導算法,整個插補實現過程不涉及任何B樣條基函數的求值求導計算。解決了目前傳統插補器無法有效插補該類型軌跡的問題,給出了插補點的計算過程和實現方法流程,利用仿真和開放式數控系統加工驗證了此方法的效率和實時性。
B樣條基函數是構造B樣條曲線的基礎,根據de Boor-Cox的遞推定義,B樣條基函數的遞推公式為[1]:
(1)
式中:u為曲線參數;p為B樣條基函數的次數;U=[u0,u1, … ,um]為非遞減節點序列;Ni,p(u)表示序號為i的p次B樣條基函數在參數u處的值,且規定0/0=0。
在B樣條基函數的基礎上,B樣條曲線被提出。p次B樣條曲線Q(u)的定義為[1]:
(2)
式中:Ni,p(u) (i=0,1,…,n)是定義在節點序列U=[u0,u1, … ,um]上的p次B樣條基函數;Pi(i=0,1,…,n)為B樣條曲線的控制頂點序列,順序連接形成B樣條曲線的控制多邊形;B樣條曲線次數p、控制頂點數量(n+1)和節點數量(m+1)之間滿足:
m=n+p+1
(3)
利用3次B樣條曲線的所有節點矢量和所有控制頂點,分別構成節點矢量集合U和控制頂點集合P,若節點矢量U中的某個節點ui滿足ui=ui+1=ui+r-1,即連續r個節點值相等,則稱ui中的重復度為r。采用樣條節點插入技術,對U中的每次節點進行重復插入操作,直到每個節點的重復度均為3,此時3次B樣條曲線轉換為連續3次貝奇爾曲線,即每兩個重復度為3的節點之間為一條3次貝奇爾曲線。通過B樣條節點插入技術可以獲得3次貝奇爾曲線的控制頂點。
從新獲取的任一段3次貝奇爾曲線,得到4個控制項點Q0、Q1、Q2、Q3,取1個偏移矢量V,將4個控制頂點Q0、Q1、Q2和Q3沿矢量V偏移后得到新的4個控制頂點P0、P1、P2和P3,使得P0、P1、P2和P3的坐標分量均不為0,令新的4個控制頂點分別為:P0=(x0,y0,z0)T,P1=(x1,y1,z1)T,P2=(x2,y2,z2)T,P3=(x3,y3,z3)T,則新的爾曲線可表示為:
(4)
式中:t為曲線參數;Bi,3(t)為3次伯恩斯坦基函數,計算為:
其中:符號“!”表示階乘運算。
將式(4)變形為:
(5)
對式(5)兩邊計算關于參數t的一階導矢可得:
(6)
其中:
ΔPi=Pi+1-Pi,i=0,1,2。
聯立式(5)和式(6)可得:
C′(t)=MC(t)
式中:M為系數矩陣,表示為:

令C0=(x0,y0,z0, 1)T和t0=0,則第(i+1)個周期的插補點Ci+1計算為:
式中:Δti、k1、k2、k3、k4為插補點遞推參數,計算為:

整個插補過程按照連續的每段3次貝奇爾曲線進行,當ti≥ 1時,所有貝奇爾曲線完成插補至終點。
根據第基于3次B樣條曲線快速直接插補算法其實現流程如圖1所示。以圖2所示的五角形的3次B樣條曲線為例進行說明。
首先是獲取3次B樣條曲線的參數。獲取3次B樣條曲線的節點矢量U和控制頂點P,其中U={0, 0, 0, 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1, 1, 1, 1},P={(60,90,0),(37.5,60,0),(0,60,0),(30,30,0),(22.5,0,0),(60,22.5,0),(97.5,0,0),(90,30,0),(120,60,0),(82.5,60,0),(60,90,0)}。
其次是將3次B樣條曲線轉換為連續3次貝奇爾曲線。通過B樣條節點插入技術可以獲得每段3次貝奇爾曲線的控制頂點。根據以上過程,獲得8個貝奇爾曲線段,Q0、Q1、Q2、Q3每段3次貝奇爾曲線的控制頂點,各個貝奇爾曲線段的控制頂點如表1所示。



表1 貝奇爾曲線段的控制頂點坐標
最后是完成快速曲線直接插補過程。由于所有貝奇爾曲線控制頂點的Z值均為0,因此選取偏移矢量V=(0,0,1),得到所有的M為如表2所示。根據遞推過程和貝奇爾曲線的終點判斷,完成插補軌跡如圖3所示。
圖4表示的是插補過程的速度波動,最大值小于0.015%。由于3次B樣條曲線快速直接插補算法過程不涉及任何B樣條基函數的求值求導計算,僅涉及矩陣乘法(可化為少量的四則運算)和四則運算,因此插補過程計算高效,且插補過程速度波動較低,同樣具有較高的插補精度。

表2 3次B樣條曲線快速直接插補系數矩陣


文獻[1]給出了使用直接計算B樣條基函數的方法來計算B樣條曲線的各階導矢的算法,并廣泛應用于眾多文獻和軟件應用。為了驗證3次B樣條曲線快速直接插補算法的計算效率,以文獻[1]中的B樣條基函數算法為對比,選取某B樣條曲線為對象,分別用3次B樣條曲線快速直接插補算法與文獻[1]中的算法對相同曲線參數處的各階導矢進行2000次運算,并獲得CPU消耗的計時器周期數。仿真程序采用C#編寫,仿真平臺的CPU為Intel(R) Core(TM)i7-8550U CPU @ 1.99GHz,仿真結果如表3所示。

表3 兩種算法計算時間對比
在插補過程中一般需計算曲線的前三階導矢,因此表3列出了對3次B樣條曲線求0至3階導矢時兩種插補算法使用的計時器周期數。從表中可以看出,本文提出的3次B樣條曲線快速插補算法在求取0~3階導矢時所用的時間大約為文獻[1]中算法所用時間的50%。因此本文提出的快速插補算法能節省大約50%的計算時間,這在工程應用中對于提高B樣條曲線實時插補計算效率具有重要意義。
為了驗證本文提出的3次B樣條曲線快速直接插補的可行性,筆者所在項目組以TwinCAT技術為平臺開發了國產三軸數控加工中心XK7132A為基礎的開放式數控機床。分別以平面螺線和飛鏢的B樣條曲線為加工對象[23-27],實際加工的機床以及結果如圖5所示。

圖5的加工過程表明,本文提出的插補方法成功應用于課題組開發的數控機床,并完成了平面螺線和飛鏢的加工,因此3次B樣條曲線快速直接插補算法是有效可行的。
(1)提出了基于3次B樣條曲線的快速直接插補算法,采用B樣條節點插入技術將原始3次B樣條曲線轉換為連續多段的3次貝奇爾曲線,利用構造的快速插補模型,遍歷每一段3次貝奇爾曲線,直到所有的3次貝奇爾曲線均快速插補完畢。
(2)提出了并進行了插補仿真分析對比驗證,其插補計算高效,應用于數控系統其實時性得到提高。
(3)基于自主開發的數控平臺上完成了平面螺線和飛鏢的B樣條曲線直接插補加工。