專利名稱:一種非均勻有理b樣條曲線插補(bǔ)與位置跟蹤方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)控制領(lǐng)域,特別是數(shù)控技術(shù)領(lǐng)域的一種非均勻有理B樣條曲 線插補(bǔ)與位置跟蹤方法。
背景技術(shù):
目前,NURBS參數(shù)曲線是廣為認(rèn)可的CAD/CAM (Computer Aided Design and Computer aided Manufacture,計(jì)算機(jī)輔助設(shè)計(jì)與計(jì)算機(jī)輔助制造)系統(tǒng)的產(chǎn)品形狀 表達(dá)曲線,NURBS插補(bǔ)功能一方面可以減小復(fù)雜曲線的程序代碼量,另一方面可 以保證加工表面光滑,但是,市面上現(xiàn)有的數(shù)控系統(tǒng)中具有NURBS曲線插補(bǔ)功能 的數(shù)控系統(tǒng)產(chǎn)品不多,現(xiàn)行公開的NURBS插補(bǔ)方法多為理論計(jì)算方法,缺乏實(shí)用 性。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種具有實(shí)用性的非均勻有理B樣條曲線(NURBS) 插補(bǔ)與位置跟蹤方法,應(yīng)用到數(shù)控系統(tǒng)中,其控制器可以采用嵌入式系統(tǒng),也可以 采用PC (Personal Computer,個(gè)人計(jì)算機(jī))或IPC (Industrial Personal Computer, 工業(yè)個(gè)人計(jì)算機(jī)),本發(fā)明方法均允許在上述硬件系統(tǒng)上實(shí)現(xiàn)。
本發(fā)明的NURBS曲線插補(bǔ)與位置跟蹤方案包括三個(gè)部分, 一階預(yù)估迭代插補(bǔ) 方法;插補(bǔ)、位置跟蹤、系統(tǒng)通信與監(jiān)控多任務(wù)調(diào)度方案;緩沖PID位置跟蹤方法。
本發(fā)明采用一階預(yù)估i^代方法計(jì)算曲線上的坐標(biāo)點(diǎn)進(jìn)行NURBS曲線插補(bǔ);
采用緩沖比例-積分-微分(Proportional-Integral-Derivative,簡(jiǎn)稱PID)位置跟蹤 方法消除上述插補(bǔ)算法的計(jì)算時(shí)延不均勻性,并跟蹤指令位置。
將NURBS插補(bǔ)計(jì)算任務(wù)放在后臺(tái)程序中執(zhí)行,在控制器中開設(shè)緩沖區(qū)隊(duì)列, NURBS插補(bǔ)計(jì)算的結(jié)果暫存于緩沖區(qū)中隊(duì)列中;
位置跟蹤PID算法放在前臺(tái)程序中,它從緩沖區(qū)中讀取插補(bǔ)結(jié)果,用于跟蹤指
令位置;
緩沖區(qū)隊(duì)歹傭于平衡NURBS插補(bǔ)計(jì)算的時(shí)延不均勻。
技術(shù)原理
(1) 一階預(yù)估插補(bǔ)方法
NURBS參數(shù)曲線的計(jì)算十分復(fù)雜,公認(rèn)的計(jì)算方法為為德布爾方法,已知參 數(shù)",來計(jì)算NURBS曲線上的坐標(biāo)點(diǎn)。但",的計(jì)算方法有兩類, 一類是直接計(jì)算方 法,如一階泰勒方法、二階泰勒方法、ADAMS方法等,上述算法計(jì)算耗時(shí)、特殊 情況下不能求解,計(jì)算穩(wěn)定性差。另一類是預(yù)估與迭代方法。它先用預(yù)估公式計(jì)算 ,然后再用德布爾方法進(jìn)行坐標(biāo)點(diǎn)驗(yàn)算,不滿足設(shè)定的速度精度條件時(shí),修改",的
值,再進(jìn)行坐標(biāo)點(diǎn)驗(yàn)算,直到滿足條件為止;其計(jì)算流程如附圖1所示?,F(xiàn)行的預(yù) 估公式為二階預(yù)估公式
當(dāng)參數(shù)w,的進(jìn)給步長過小時(shí),<w,,這就造成插補(bǔ)運(yùn)動(dòng)方向折反。本發(fā)明采
用一階預(yù)估公式
這就消除了上述插補(bǔ)運(yùn)動(dòng)方向折反的現(xiàn)象。
(2) 前后臺(tái)多任務(wù)調(diào)度
NURBS曲線插補(bǔ)與跟蹤算法的任務(wù)劃分為三個(gè)子任務(wù),NURBS插補(bǔ)計(jì)算、位 置跟蹤PID控制、通信及系統(tǒng)監(jiān)控。其多任務(wù)調(diào)度方案如圖2所示。
常規(guī)的數(shù)控系統(tǒng)任務(wù)調(diào)度方案是前后臺(tái)工作方式,NURBS插補(bǔ)計(jì)算、位置跟蹤 PID計(jì)算、通信及系統(tǒng)監(jiān)控三個(gè)任務(wù)均為強(qiáng)實(shí)時(shí)任務(wù),他們被安排在前臺(tái)程序中實(shí) 時(shí)處理。由于本發(fā)明的NURBS插補(bǔ)算法采用預(yù)估與迭代方法,每一次的計(jì)算時(shí)延 不均勻,該任務(wù)被安排到后臺(tái)程序處理,所有的系統(tǒng)空閑時(shí)間都被用于NURBS插 補(bǔ)計(jì)算;位置跟蹤PID計(jì)算任務(wù)和通信及系統(tǒng)監(jiān)控任務(wù)安排在前臺(tái)程序中,位置跟 蹤PID計(jì)算任務(wù)每個(gè)采樣周期調(diào)用一次,通信及系統(tǒng)監(jiān)控任務(wù)根據(jù)情況,若干個(gè)采
樣周期調(diào)用一次。這種多任務(wù)調(diào)度方案是本發(fā)明的特色之一。 (3)緩沖位置跟蹤PID方法
傳統(tǒng)的跟蹤方法為計(jì)算出NURBS曲線坐標(biāo)點(diǎn)后,即對(duì)相應(yīng)的坐標(biāo)軸進(jìn)行位置 跟蹤PID計(jì)算。由于本發(fā)明的NURBS插補(bǔ)算法采用預(yù)估與迭代方法,計(jì)算時(shí)延不 均勻,插補(bǔ)算法的中間結(jié)果預(yù)存在一個(gè)緩沖隊(duì)列中,位置跟蹤PID算法響應(yīng)實(shí)時(shí)時(shí) 鐘Ts的信號(hào),從緩沖區(qū)隊(duì)列中取得插補(bǔ)位置指令,進(jìn)行PID跟蹤控制。本方法的 計(jì)算任務(wù)配置如圖3所示。
緩沖區(qū)隊(duì)列的管理選用了隊(duì)列上、下限兩個(gè)指針,緩沖隊(duì)列的長度大于等于隊(duì) 列上限指針時(shí),停止插補(bǔ)計(jì)算,當(dāng)隊(duì)列長度指針小于隊(duì)列下限指針時(shí),開始插補(bǔ)計(jì) 算。這就避免了插補(bǔ)計(jì)算任務(wù)的頻繁切換。
本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點(diǎn)和效果-
(1) 提高了程序計(jì)算的穩(wěn)定性
當(dāng)NURBS曲線的運(yùn)動(dòng)控制為速度控制時(shí),本發(fā)明方法不需要計(jì)算曲線曲率等, 算法的穩(wěn)定性高。
(2) 提高了計(jì)算速度
一P介泰勒方法、二階泰勒方法、ADAMS方法計(jì)算耗時(shí),采用一階預(yù)估與迭代 方法平均計(jì)算時(shí)延比上述方法減少20%-30%。
圖1是本發(fā)明的插補(bǔ)計(jì)算流程框圖2是本發(fā)明方法的多任務(wù)調(diào)度流程圖3是本發(fā)明的緩沖位置跟蹤流程圖。
具體實(shí)施例方式
如附圖3所示,插補(bǔ)計(jì)算任務(wù)和位置跟蹤控制任務(wù)分開進(jìn)行,中間選用一個(gè)緩 沖隊(duì)列存放插補(bǔ)數(shù)據(jù);插補(bǔ)計(jì)算任務(wù)提前進(jìn)行,以保證緩沖區(qū)中有一定量的數(shù)據(jù)供 實(shí)時(shí)的位置跟蹤PID算法使用。
如附圖2所示,插補(bǔ)任務(wù)放在背景程序中運(yùn)行,位置跟蹤PID程序和通信及系 統(tǒng)監(jiān)控程序放在前臺(tái)程序中運(yùn)行,位置跟蹤PID程序響應(yīng)系統(tǒng)的采樣周期時(shí)鐘(Ts), 完成位置跟蹤任務(wù)后即退出運(yùn)行;通信及系統(tǒng)監(jiān)控程序在n次采樣周期Ts后運(yùn)動(dòng) 一次。系統(tǒng)的空閑時(shí)間由插補(bǔ)程序計(jì)算曲線上的參數(shù)點(diǎn)坐標(biāo);中間的緩沖隊(duì)列平衡 插補(bǔ)計(jì)算的時(shí)延不均勻性,以防止位置跟蹤任務(wù)中斷。
如附圖1所示,NURBS插補(bǔ)計(jì)算采用一階預(yù)估公式,首先估計(jì)參數(shù)w,,然后 計(jì)算速度v,如果速度不滿足精度要求,按流程圖中的公式修改估計(jì)值,再計(jì)算速 度,判斷速度精度,直到速度精度達(dá)到精度要求為止。
權(quán)利要求
1、一種非均勻有理B樣條曲線(NURBS)插補(bǔ)與位置跟蹤方法,其特征在于采用一階預(yù)估迭代方法計(jì)算曲線上的坐標(biāo)點(diǎn),以進(jìn)行NURBS曲線插補(bǔ);采用緩沖比例-積分-微分(Proportional-Integral-Derivative,簡(jiǎn)稱PID)位置跟蹤方法消除上述插補(bǔ)算法的計(jì)算時(shí)延不均勻影響,并跟蹤指令位置;將NURBS插補(bǔ)計(jì)算任務(wù)放在后臺(tái)程序中執(zhí)行,在控制器中開設(shè)緩沖區(qū)隊(duì)列,NURBS插補(bǔ)計(jì)算的結(jié)果暫存于緩沖區(qū)中隊(duì)列中;位置跟蹤PID算法放在前臺(tái)程序中,它從緩沖區(qū)中讀取插補(bǔ)結(jié)果,用于跟蹤指令位置;緩沖區(qū)隊(duì)列用于平衡NURBS插補(bǔ)計(jì)算的時(shí)延不均勻。
全文摘要
本發(fā)明涉及一種非均勻有理B樣條曲線(Non-Uniform Rational B-Spline,簡(jiǎn)稱NURBS)插補(bǔ)與位置跟蹤方法,其特點(diǎn)是NURBS插補(bǔ)計(jì)算采用預(yù)估與迭代算法,以提高其插補(bǔ)計(jì)算的速度;采用緩沖PID位置跟蹤方法消除上述插補(bǔ)計(jì)算不均勻的影響;采用本發(fā)明方法可實(shí)現(xiàn)NURBS插補(bǔ)的快速計(jì)算,且計(jì)算過程穩(wěn)定,速度控制精度高,可以用于實(shí)現(xiàn)中高檔數(shù)控系統(tǒng)的NURBS曲線插補(bǔ)。
文檔編號(hào)G05B19/41GK101109948SQ20071002951
公開日2008年1月23日 申請(qǐng)日期2007年8月1日 優(yōu)先權(quán)日2007年8月1日
發(fā)明者寧 柳, 高 王, 王思華 申請(qǐng)人:暨南大學(xué)