魯毛毛,劉寶泉*,,徐夢杰,方建平
(1. 陜西科技大學(xué) 電氣與控制工程學(xué)院,西安 710021; 2. 西安拓爾微電子有限責任公司,西安 710000)
工業(yè)生產(chǎn)中,在對自由曲線加工時,傳統(tǒng)的計算機數(shù)字控制(Computer numerical control, CNC)系統(tǒng)將對象擬合為大量微小直線段和圓弧的組合,然后對其逐一進行直線或圓弧插補。隨著曲線復(fù)雜程度的增加,這種方法存在擬合數(shù)據(jù)計算量大,通信傳輸負荷高以及加工效率低等缺點。
在對精度和效率需求越來越高的現(xiàn)代生產(chǎn)過程中,這種插補辦法的缺點越來越突出。參數(shù)曲線插補器是解決該問題的有效方法之一。在眾多參數(shù)曲線中,非均勻有理B樣條(Non-uniform rational basis splines, NURBS)憑借其簡單直觀的描述成為CNC加工中不可或缺的功能之一[1]。
NURBS曲線的插補過程包括兩個:進給速度的規(guī)劃以及插補點的選取[2]。每個插補周期內(nèi),根據(jù)規(guī)劃的進給速度,可以確定下一個插補點的位置。這些插補點連接成的線段序列被當作是加工路徑,以近似實際的NURBS曲線[3]。在近似過程中,不可避免地會引入弓高誤差,該誤差描述的是加工路徑與期望軌跡之間的偏差。為了將其縮減至一定范圍,在進給速度規(guī)劃時就必須將對其的限制考慮進去。因此,提高弓高誤差的評估精度,并利用其獲得合理的進給速度限制,對提高加工精度及效率具有重要意義。
文獻[4]把弓高誤差看作是從實際NURBS曲線到加工路徑的單向Hausdorff距離,并通過構(gòu)造一個非線性優(yōu)化問題來近似弓高誤差。然而該方法十分復(fù)雜,且不能由解析方法得到結(jié)果,故很難應(yīng)用在實際加工場合中。文獻[5]基于該單向Hausdorff距離的近似,采用黃金分割法迭代獲取曲線上的最大弓高誤差點,根據(jù)步長方向的曲率半徑和對弓高誤差的評估來求取插補點,故可以通過解析方式求取弓高誤差,而且提出的算法生成的加工步長可以根據(jù)曲面曲率的變化自適應(yīng)調(diào)整加工步長,一定程度上解決了實際CNC系統(tǒng)中的應(yīng)用問題,但該方法的計算量較大,加工效率受到影響。為了降低弓高誤差計算的復(fù)雜程度,學(xué)者們更傾向于用簡單的基本曲線來擬合所需軌跡,其中文獻[6]提出利用錐形螺旋線估計弓高誤差的3階方法。對圓錐螺旋的幾何性質(zhì)的研究發(fā)現(xiàn)存在一個與自由曲線有3階接觸的圓錐螺旋。利用這種圓錐螺旋,建立了自由曲線弦誤差的3階估計模型。文獻[7]提出了一種基于曲率特性與7段式S型加減速的阿基米德螺線估計算法,其在速度規(guī)劃時綜合考慮了螺旋線變半徑特性與曲率特性對運行速度的持續(xù)限制,以求得到合理的速度規(guī)劃結(jié)果,該估計算法只用于對螺旋線的擬合,對于其它曲線不適用。針對NURBS曲線的弓高誤差,傾向于用曲線的密切圓[8-9]來擬合所需軌跡,稱該方法為OC近似法。弓高誤差的OC近似法示意圖如圖1所示。
圖1 弓高誤差的OC近似法示意圖
(1)
無論是單向Hausdorff距離近似法還是OC近似法,在獲取弓高誤差時會引入其它誤差,這誤差將導(dǎo)致插補過程中出現(xiàn)弓高誤差超限的情況。針對該問題,本文提出了一種雙向Hausdorff距離的弓高誤差迭代評估算法。首先,根據(jù)OC近似法和弓高誤差限制獲取插補周期內(nèi)的最大插補步長作為迭代初值,該最大插補步長決定了規(guī)劃時的進給速度限制。然后,參照弓高誤差的雙向Hausdorff距離定義,在初值條件下,分別獲得目標曲線段和弦線上的Hausdorff距離對應(yīng)點,并獲取離對應(yīng)點距離不超過弓高誤差限制的最遠插補點,將插補點到起點的距離更新為第一次迭代結(jié)果。繼續(xù)進行上述步驟,直到對應(yīng)曲線段上的雙向Hausdorff距離滿足弓高誤差限制。通過上述辦法,能在不考慮曲線復(fù)雜度情況下提升弓高誤差的評估精度,并獲取最大插補步長以滿足限制要求,從而進一步生成精確的進給速度限制。
CNC系統(tǒng)中,由于NURBS曲線描述自由曲線方法的統(tǒng)一性以及精確性,且有表達直觀、算法迅速、數(shù)值穩(wěn)定等優(yōu)勢,其受到了廣泛的應(yīng)用[21]。一條次數(shù)為p的NURBS曲線C(u)定義為[22-23]
(2)
式中:Pi是曲線控制點;wi對應(yīng)Pi的權(quán)因子;Ni,p(u)是定義在節(jié)點向量U={u0,u1,…,un+p+1}上的p次B樣條基函數(shù)。遞推公式定義為:
(3)
其中
(4)
插補過程中,涉及到NURBS曲線的1階及2階導(dǎo)數(shù)。為了簡化求導(dǎo)過程,首先把式(3)改寫為
A(u)=C(u)·w(u)
(5)
其中:
(6)
對式(5)求導(dǎo)數(shù),即可得到NURBS曲線的導(dǎo)數(shù)公式[1,21]:
(7)
其中:
(8)
CNC系統(tǒng)中,對曲線進行插補操作時,不可避免地會引入弓高誤差。弓高誤差定義為曲線軌跡和實際加工路徑之間的Hausdorff距離。該距離一般是雙向的,如圖2所示。
圖2 弓高誤差的雙向Hausdorff距離定義示意圖
δ=max(h(C(u),T(ω)),h(T(ω),C(u)))
(9)
式中:h(C(u),T(ω))和h(T(ω),C(u))分別代表從C(u)到T(ω),以及從T(ω)到C(u)的單向Hausdorff距離。
(10)
(11)
由于插補對象NURBS曲線并非由解析形式定義,且其基函數(shù)是由遞推形式給出的,故很難直接通過式(9)對弓高誤差進行求解。針對這個問題,基于雙向Hausdorff距離的定義,本文提出了一種弓高誤差精確評估的迭代算法。
(12)
式中ρi代表P處C(u)的曲率半徑。
根據(jù)C(u)的2階泰勒展開式,可以近似軌跡上具有弦長l0的點Q0,其參數(shù)記作uQ0,表達式為
(13)
式中:C′(uP)和C″(uP)分別是P點處的1階和2階導(dǎo)數(shù)。
圖3 迭代算法流程圖
1) OC方法精度評估
δ0=max(h10,h20)
(14)
將δ0與弓高誤差限制δmax進行比較,若δ0≤δmax,則意味著利用OC方法近似的弓高誤差滿足誤差限制要求,那么不再需要附加的迭代過程,初始迭代點Q0會被當作插補周期內(nèi)的最遠插補點以獲取最大插補步長。反之,若δ0>δmax,則意味著此時精度不滿足要求,需進入接下來的迭代過程。迭代過程分為兩個部分:弧弦Hausdorff距離迭代以及弦弧Hausdorff距離迭代。
2) 弧弦Hausdorff距離迭代
弧弦Hausdorff距離迭代示意圖如圖4所示。
圖4 弧弦Hausdorff距離迭代示意圖
(15)
式中:PH10和PQ1分別代表點P到H10以及Q1的向量;θ1是兩個向量的夾角。
3) 弦弧Hausdorff距離迭代
圖5 弦弧Hausdorff距離迭代示意圖
(16)
式中:kR0代表軌跡C(u)在點R0處的切線斜率;kPQm+1代表弦線PQm+1的斜率。
然而,在上述迭代算法中,很難找到合適的解析方法來獲取Hausdorff距離及其對應(yīng)的距離點。為了提高計算效率,擬采用離散的預(yù)采樣技術(shù)來解決這一難題。從us(0)=0開始,以λ為間隔對軌跡C(u)進行離散采樣,采樣點C(us(k))關(guān)系滿足
‖C(us(k+1))-C(us(k))‖=λ
(17)
(18)
2) 計算從采樣點C(us(k))到法線與弦線交點Hus(k)的距離。
3) 篩選這些距離的最大值作為h2m,將其對應(yīng)的采樣點近似為R0。
系統(tǒng)的最大允許弓高誤差δmax是進給速度規(guī)劃時最重要的限制參數(shù)之一。在插補周期Ts確定后,δmax決定了周期內(nèi)的最大插補步長以及最大允許進給速度vcc。通過本文所提出的弓高誤差評估迭代算法,可以將目標加工軌跡C(u)上任一點P處的進給速度約束改進為:
(19)
除了δmax對進給速度的限制,本文還給出了其它進給速度規(guī)劃的運動學(xué)約束。機床應(yīng)工作在其允許的參數(shù)范圍內(nèi),否則將引起機械振動破壞精度。在進給速度規(guī)劃過程中,應(yīng)考慮到軸向速度vxmax、vymax,軸向加速度axmax、aymax和軸向加加速度jxmax、jymax的限制條件。
(20)
(21)
建立軸向參數(shù)與進給速度的關(guān)系,將軸向條件轉(zhuǎn)化為進給速度約束條件。通過在直角坐標系下對進給速度進行分解,得到進給速度與軸向速度的關(guān)系為:
(22)
式中:vi為進給速度;α和β為1階導(dǎo)數(shù)因子。
(23)
由于軸向速度限制在vxmax和vymax,根據(jù)式(22)和式(23),可以得到進給速度約束,即
(24)
除此之外,還應(yīng)考慮到軸向加速度以及軸向加加速度的限制。與軸向速度相比,直接得到軸向加速度極限對應(yīng)的進給速度約束較困難。根據(jù)文獻[24]可以得到進給速度與向心加速度的約束滿足式,即
(25)
根據(jù)坐標分解,首先得到軸向加速度為:
(26)
根據(jù)軸向限制,以及三角不等式的關(guān)系可以得到:
(27)
an的限制可通過下式給出,即
(28)
式中:M為向心加速度系數(shù)[25-26],它決定了所允許的最大向心加速度,M越小,向心加速度的越小。
然后根據(jù)式(25)中進給速度與向心加速度的關(guān)系,得到軸向加速度限制對應(yīng)的進給速度約束式為
(29)
在進給速度調(diào)度過程中,切向加速度ατ應(yīng)該始終滿足式(27)。
與軸向加速度限制相似,可以得到軸向加加速度的限制,表達式為:
(30)
式中:jτ,jn分別表示切向加加速度和法向加加速度。
本文應(yīng)用七段式S型進給速度模型進行規(guī)劃。該模型包括7種不同的運動狀態(tài),能夠?qū)崿F(xiàn)加速度的連續(xù)變化。在每個運動狀態(tài)的時間間隔內(nèi),其加加速度被定義為系統(tǒng)允許的常數(shù),因此該模型也能實現(xiàn)加工過程中對加加速度的限制為:
(31)
進給速度與向心加加速度的關(guān)系為
(32)
由式(32)推導(dǎo)出改約束條件為
(33)
考慮到上述所有約束,可以將所需軌跡上任一點的完整進給速度約束表示為
vi≤min{vmvxy,vmaxy,vmjxy,vmax,vcc}
(34)
利用這種改進后的約束,可以更合理地規(guī)劃速度曲線,并使實際弓高誤差限制在δmax以下。
對進給速度的規(guī)劃可以參考不同的速度模型,本文應(yīng)用七段式S型進給速度模型進行規(guī)劃。由于模型簡單,其逐漸成為CNC系統(tǒng)最常用的多段式進給速度規(guī)劃辦法之一。將上述改進后的約束應(yīng)用到該模型中,可以獲得一條合理的S型進給速度曲線。參考該曲線進行插補動作,能夠?qū)崿F(xiàn)系統(tǒng)加工精度的提高。
為了驗證所提出的迭代算法對提升弓高誤差評估精度的有效性,分別選取‘∞’形和花瓣形的NURBS曲線進行兩組仿真實驗。所有的仿真實驗均在Intel(R)Core(TM)i7-8550U 1.80GHz的筆記本電腦上執(zhí)行,仿真軟件及其版本為MATLAB R2018a。仿真實驗涉及的系統(tǒng)參數(shù)如表1所示。
表1 仿真系統(tǒng)參數(shù)表
為了驗證所提出的弓高誤差迭代算法的有效性,將最大允許弓高誤差δmax作為限制,分別采用基礎(chǔ)OC法以及所提出的迭代算法在指定的NURBS曲線上對弓高誤差進行評估。平均分布在曲線上的1 000個點被選擇為測試點來進行仿真,在這些點上,不同方法對δmax進行評估后的實際弓高誤差被生成曲線并進行比較。在本文所提出的迭代算法中,曲線的預(yù)采樣間隔λ取為0.001 mm。
1) ‘∞’形曲線
仿真所采用的‘∞’形NURBS曲線如圖6所示。通過以上兩種方法在采樣點處評估出的弓高誤差結(jié)果如圖7所示。對超出弓高誤差限制的測試點進行分析統(tǒng)計,結(jié)果如表2所示。圖7a)展示了OC法進行評估的結(jié)果,在50.4%的測試點處,實際弓高誤差會超過允許的弓高誤差限制δmax,其中最大值為0.194 884 mm遠遠超過限制。圖7b)展示了用弓高誤差迭代算法進行弓高誤差評估的結(jié)果,僅僅在4.9%的測試點處實際弓高誤差會超過δmax,且最大超限值也只有0.001 013 mm,非常接近所允許的弓高誤差限制0.001 mm。
圖6 ‘∞’形NURBS曲線
圖7 兩種算法評估的弓高誤差結(jié)果(‘∞’形)
表2 弓高誤差評估超限測試點的分析統(tǒng)計表(‘∞’形)
2) 花瓣形曲線
仿真所采用的花瓣形NURBS曲線如圖8所示。通過OC法和迭代算法在采樣點處評估出的弓高誤差結(jié)果分別如圖9a) 和圖9b)所示,對超出弓高誤差限制的測試點進行分析統(tǒng)計,結(jié)果如表3所示。在圖9a)中,OC法的評估結(jié)果在51.9%的測試點處,實際弓高誤差會超過δmax,其中最大值為0.469 542 mm。而在圖9b)中,本迭代算法僅僅在6.7%的測試點處會有超限情況發(fā)生,與‘∞’形曲線的評估結(jié)果相似,最大弓高誤差僅僅為0.001 019 mm,接近允許的弓高誤差限制δmax。
圖8 花瓣形NURBS曲線
圖9 兩種算法評估的弓高誤差結(jié)果(花瓣形)
表3 弓高誤差評估超限測試點的分析統(tǒng)計表(花瓣形)
以上兩組對比實驗可以證明,與傳統(tǒng)OC法相比,本文提出的迭代算法能夠有效地提高弓高誤差評估精度。
3) 加工路徑對比
根據(jù)得到的速度約束對進給速度進行規(guī)劃,然后對曲線進行插補,選取花瓣形的NURBS曲線對加工路徑進行仿真實驗。
如圖10所示為花瓣形NURBS曲線加工路徑,在圖10a)中,紅色曲線代表理想的花瓣形NURBS曲線,藍色曲線為通過雙向Hausdorff距離迭代方法得到的加工路徑。具體實現(xiàn)方法是首先利用雙向Hausdorff距離迭代方法得到進給速度限制如式(19),基于該限制進行進給速度規(guī)劃,最后根據(jù)速度曲線插補得到的加工路徑。綠色曲線為傳統(tǒng)OC方法得到的加工路徑。具體實現(xiàn)方法是首先根據(jù)傳統(tǒng)OC方法得到進給速度限制,基于該限制進行進給速度規(guī)劃,最后根據(jù)速度曲線插補得到的加工路徑。圖10b)是將圖10a)中曲率較大的地方放大得到的兩個插補周期的加工路徑圖。在上述兩個周期,根據(jù)傳統(tǒng)OC法得到的加工路徑的弓高誤差δ1=0.001 207 mm,δ4=0.001 379 mm,超出允許的弓高誤差限制0.001 mm,而基于本文迭代方法得到的加工路徑的弓高誤差分別為δ2=0.000 862 mm,δ3=0.000 965 mm,小于所允許的弓高誤差限制0.001 mm。
圖10 花瓣形NURBS曲線加工路徑
通過雙向Hausdorff距離得到的加工形狀能滿足弓高誤差限制且與傳統(tǒng)OC法相比能夠得到更精密的加工路徑。根據(jù)仿真結(jié)果證明了本文的迭代算法與傳統(tǒng)的OC法相比能夠獲得更好的加工路徑。
通過弓高誤差迭代算法,可以根據(jù)式(23)獲取軌跡上任意一點的完整進給速度約束,對‘∞’形和花瓣形曲線的進給速度約束如圖11a)和圖11b)所示。利用七段式S型進給速度模型對這兩種曲線進行速度規(guī)劃,規(guī)劃后的進給速度曲線分別如圖12a)和12b)所示。需要注意的是,規(guī)劃過程中,每個運動狀態(tài)的時間間隔內(nèi)的加加速度設(shè)置為jmax。
圖11 改進后的進給速度約束曲線
圖12 七段式S型進給速度曲線
參照規(guī)劃的進給速度曲線,系統(tǒng)可以執(zhí)行對曲線的后續(xù)插補過程,并能夠獲得在每個插補周期中刀具路徑的實際弓高誤差。兩種曲線的實際弓高誤差分別如圖13a)和圖13b)所示。
圖13 刀具路徑的實際弓高誤差曲線
可以看出,在基于規(guī)劃的進給速度曲線進行插補時,所有插補周期內(nèi)的弓高誤差均能夠限制在δmax以下。結(jié)果表明,通過本文提出的弓高誤差精確評估的迭代算法,可以實現(xiàn)加工過程中對弓高誤差限制的高精度。
本文提出了一種雙向Hausdorff距離的弓高誤差迭代評估算法解決了傳統(tǒng)OC方法與單向Hausdorff距離近似辦法在獲取弓高誤差時的超限問題。該算法在OC方法的基礎(chǔ)上,參照弓高誤差的雙向Hausdorff距離定義對評估結(jié)果進行迭代操作,直到對應(yīng)曲線段上的雙向Hausdorff距離滿足弓高誤差限制。
為了驗證該迭代算法的性能,分別在‘∞’形和花瓣形的NURBS曲線上對其進行仿真驗證。仿真結(jié)果表明,與傳統(tǒng)OC法相比,該迭代算法能夠有效地提高弓高誤差的評估精度,并進一步改善進給速度約束,最終提升CNC加工的精度與效率。