□ 張盼盼 □ 吳鳳彪 □ 張子英
山西能源學(xué)院 機(jī)電工程系 太原 030600
插補(bǔ)計(jì)算是數(shù)控系統(tǒng)的核心技術(shù),也是系統(tǒng)軟件對(duì)機(jī)床實(shí)時(shí)運(yùn)動(dòng)控制的關(guān)鍵,可以實(shí)現(xiàn)對(duì)刀具加工軌跡的插值細(xì)化,使刀具軌跡逼近給定零件的輪廓外形,并在各插補(bǔ)周期內(nèi)輸出機(jī)床運(yùn)動(dòng)的實(shí)時(shí)控制數(shù)據(jù)。中低精度數(shù)控機(jī)床在復(fù)雜曲線加工中,通常采用直線插補(bǔ)法或圓弧插補(bǔ)法,將曲線分解為多段微小線段或圓弧。這種方法的問題在于線段連接處一階不可導(dǎo),從而嚴(yán)重影響加工曲線的光滑性、加工精度和刀具壽命。另一方面,為提高精度,這種方法會(huì)生成大量數(shù)據(jù)點(diǎn),從而造成機(jī)床負(fù)載嚴(yán)重,傳輸錯(cuò)誤概率增大。為解決以上問題,在高端數(shù)控領(lǐng)域引入了非均勻有理B樣條(NURBS)曲線插補(bǔ)控制技術(shù),但對(duì)于具體插補(bǔ)算法,仍有諸多問題需要解決,筆者對(duì)此進(jìn)行研究[1-2]。
數(shù)學(xué)研究表明,三維空間下任意形狀曲線都可以表達(dá)為特定的NURBS曲線方程。正是由于這一特性,NURBS曲線被廣泛應(yīng)用于計(jì)算機(jī)輔助制圖和輔助加工等領(lǐng)域。數(shù)控加工過程中,通過不斷對(duì)NURBS曲線進(jìn)行分段插補(bǔ)計(jì)算,最終可以近似得到所要的零件外形。插補(bǔ)周期為系統(tǒng)預(yù)設(shè)值,插補(bǔ)原理如下:
(1)確定初始插補(bǔ)點(diǎn)的參數(shù)ui和初始點(diǎn)的坐標(biāo)Ci{x(ui),y(ui),z(ui)};
(2)根據(jù)設(shè)定的插補(bǔ)算法,利用初始插補(bǔ)點(diǎn)參數(shù)對(duì)下一處的插補(bǔ)點(diǎn)參數(shù)ui+1進(jìn)行計(jì)算;
(3)將插補(bǔ)點(diǎn)參數(shù)ui+1代入NURBS曲線方程,計(jì)算新的插補(bǔ)點(diǎn)坐標(biāo)Ci+1{x(ui+1),y(ui+1),z(ui+1)}。
NURBS曲線方程的可變參數(shù)為u,u是關(guān)于時(shí)間t的函數(shù)。以上插補(bǔ)過程實(shí)際是利用特定插補(bǔ)方法求取ti+1時(shí)刻參數(shù)ui+1的過程。這一插補(bǔ)方法的優(yōu)劣直接影響實(shí)際所得曲線的逼近誤差和插補(bǔ)計(jì)算時(shí)間,可見,插補(bǔ)方法是NURBS曲線插補(bǔ)控制的核心技術(shù)[2-4]。
泰勒展開法在數(shù)控機(jī)床控制系統(tǒng)中應(yīng)用廣泛,是一種較為傳統(tǒng)和成熟的NURBS曲線插補(bǔ)方法[5-6]。
根據(jù)高等數(shù)學(xué)泰勒展開公式,NURBS曲線上參數(shù)u關(guān)于t的泰勒展開為:
(1)
式中:TS為設(shè)定插補(bǔ)周期,TS=ti+1-ti;HOT為展開式中三階以上的高階項(xiàng)。
根據(jù)速度定義,NURBS曲線上各插補(bǔ)點(diǎn)的瞬時(shí)速度v(ui)為曲線方程C(u)的一階導(dǎo)數(shù),可表示為:
(2)
由式(2)可得參數(shù)u的一階導(dǎo)數(shù)為:
(3)
將式(3)代入式(1),忽略二階及高階展開項(xiàng),則式(1)可簡(jiǎn)化為:
(4)
由參數(shù)ui+1表達(dá)式的推導(dǎo)過程可知,采用泰勒展開法的主要誤差包括兩個(gè)方面。
第一,忽略了二階及高階展開項(xiàng)的影響,降低了ui+1的計(jì)算精度[7-9]。
第二,如圖1所示,Ci、Ci+1分別為兩次計(jì)算的插補(bǔ)點(diǎn),兩點(diǎn)之間的實(shí)際運(yùn)動(dòng)軌跡為由各軸運(yùn)動(dòng)合成的短小直線段Li,而泰勒展開對(duì)應(yīng)圖中曲線段,因此在曲線和直線段之間存在弓高誤差δi。顯然,當(dāng)被插補(bǔ)段曲率較大時(shí),弓高誤差δi較大。另外,當(dāng)運(yùn)動(dòng)速度加快時(shí),單位時(shí)間內(nèi)運(yùn)動(dòng)距離增大,則Li增大,此時(shí)弓高誤差δi也相應(yīng)增大。由此可知,若要提高插補(bǔ)計(jì)算精度,需要在曲率增大位置密化插補(bǔ)點(diǎn)數(shù)據(jù),同時(shí)合理控制運(yùn)動(dòng)速度。
▲圖1 弓高誤差示意圖
針對(duì)傳統(tǒng)泰勒展開法在曲率較大位置的誤差問題,筆者采用割線法進(jìn)行NURBS曲線插補(bǔ)。
實(shí)際上,任何NURBS曲線插補(bǔ)都是用微小直線段v(ui)TS去逼近曲線‖C(ui+1)-C(ui)‖的過程,由此可構(gòu)造F(ξ)函數(shù),將求解下一參數(shù)ui+1的計(jì)算轉(zhuǎn)化為對(duì)F(ξ)求解的過程。
F(ξ)=‖C(ui+1)-C(ui)‖-v(urefi)TS
(5)
式中:v(urefi)為理想插補(bǔ)進(jìn)給速度。
如圖2所示,ξ*是函數(shù)F(ξ)的精確解,若直接對(duì)函數(shù)F(ξ)求解,則需采用牛頓迭代法等,其中涉及對(duì)F(ξ)的求導(dǎo)等操作,計(jì)算過程復(fù)雜,實(shí)時(shí)性差。筆者采用割線法來求取下一插補(bǔ)點(diǎn)的參數(shù)ξ,可以有效避免求導(dǎo),在保證計(jì)算精度的前提下,提高計(jì)算速度。
▲圖2 割線法原理
ξk及ξk-1為函數(shù)F(ξ)的近似解,利用F(ξk)及F(ξk-1)可以構(gòu)造出一次函數(shù)P(ξ):
(6)
顯然,函數(shù)P(ξ)的解ξk+1與函數(shù)F(ξ)的精確解ξ*更為接近,因此,可以將ξk+1作為函數(shù)F(ξ)的近似解。ξk+1為:
(7)
根據(jù)割線法基本原理,ξk+1的工程實(shí)用計(jì)算步驟如下:
(1)分別計(jì)算代入初值ξ0和ξ1;
(2)利用函數(shù)F(ξ)分別計(jì)算F(ξ0)和F(ξ1);
(3)利用式(7)計(jì)算下一插補(bǔ)點(diǎn)參數(shù)ξ2;
(4)判斷|ξ2-ξ1|小于迭代誤差上限是否成立,若成立,則ξ2為當(dāng)前函數(shù)的近似解;否則,轉(zhuǎn)入第(3)步,重新計(jì)算插補(bǔ)點(diǎn)參數(shù)ξ2,直到滿足要求。
初值計(jì)算中,ξ0容易確定,可令ξ0=ui。為保證計(jì)算精度,實(shí)現(xiàn)快速收斂,需要對(duì)ξ1的確定方法進(jìn)行研究[10-11]。
由圖2可知,ξk越靠近ξk+1,所需的迭代計(jì)算次數(shù)越少,收斂速度越快。因此,可令ξk與ξk-1之間的弦長(zhǎng)l=v(urefi)TS,則ξ1與ξ0之間的弦長(zhǎng)l1為:
(8)
(9)
在某些情況下,上述迭代運(yùn)算需要經(jīng)過較多次迭代才能達(dá)到預(yù)設(shè)精度,因此耗時(shí)較長(zhǎng),不利于在線應(yīng)用。通過控制最大迭代次數(shù),可以有效避免以上情況的發(fā)生。
通過在MATLAB軟件中模擬兩種插補(bǔ)方法對(duì)于類8字形曲線的插補(bǔ)過程,可以得到插補(bǔ)點(diǎn)分布和計(jì)算時(shí)間等信息。圖3和圖4分別為泰勒展開法和割線法的NURBS曲線插補(bǔ)弓高誤差變化,可見前者的最大弓高誤差為0.48 μm,而后者僅為0.12 μm。另外,前者計(jì)算時(shí)間為3 892 ms,而后者為4 021 ms。由此可知,在兩者運(yùn)算時(shí)間接近的情況下,割線法的計(jì)算精度遠(yuǎn)高于泰勒展開法。分析原因,泰勒展開法得到的插補(bǔ)點(diǎn)均勻分布,導(dǎo)致在曲率較大位置的誤差較大;割線法的收斂準(zhǔn)則提高了在曲率較大位置的插補(bǔ)密度,因此弓高誤差顯著減小。與此同時(shí),割線法計(jì)算過程包含了三階展開,但不涉及求導(dǎo)過程,可以保證將計(jì)算時(shí)間控制在合理范圍內(nèi)。
插補(bǔ)計(jì)算是數(shù)控系統(tǒng)的核心技術(shù),對(duì)于在復(fù)雜曲面數(shù)控加工中常用的NURBS曲線,筆者分析了NURBS曲線插補(bǔ)的一般性原理,對(duì)傳統(tǒng)的NURBS曲線插補(bǔ)方法——泰勒展開法進(jìn)行研究,并分析其在計(jì)算精度和時(shí)效性等方面的劣勢(shì)。在此基礎(chǔ)上,筆者對(duì)割線法的原理、迭代運(yùn)算初值、終止判定等問題進(jìn)行了研究,結(jié)果顯示割線法求解時(shí)間短,精度較高,可以滿足高精度數(shù)控機(jī)床在線插補(bǔ)控制的要求。
▲圖3 泰勒展開法NURBS曲線插補(bǔ)弓高誤差變化▲圖4 割線法NURBS曲線插補(bǔ)弓高誤差變化