本發(fā)明涉及一種基于進退法的nurbs曲線插補快速預(yù)讀處理方法。
背景技術(shù):
高速高精加工不僅要求數(shù)控系統(tǒng)具備實時的插補算法,而且控制精度必須達到亞微米級,插補算法的實時性甚至決定著高速加工實現(xiàn)的可能性,非均勻有理b樣條(non-uniformrationa1b-spline,nurbs)曲線具有良好的形狀表達能力,在汽車、飛機、造船等型面零件造型設(shè)計和加工制造方面應(yīng)用越來越廣,已成為step-nc中表達自由曲線曲面的唯一形式。以nurbs形式表示的加工文件代碼簡練,而且沒有精度損失,其代碼量只有傳統(tǒng)nc代碼的1/10~1/100,具有微小段直線不可比擬的優(yōu)勢,但是數(shù)控系統(tǒng)要能支持nurbs曲線插補,必須先構(gòu)造nurbs曲線插補器,插補速度和精度直接受插補器影響。
由于待加工nurbs曲線可能存在高曲率和尖角部分,需在正式插補前對曲線進行預(yù)先處理,以識別曲線減速特征并進行相應(yīng)的速度規(guī)劃調(diào)整。因nurbs樣條函數(shù)的節(jié)點參數(shù)沿參數(shù)軸的分布是不等距的,曲線參數(shù)與弧長之間也不存在精確的數(shù)學(xué)解析關(guān)系,導(dǎo)致曲線軌跡點求解、曲線弧長計算、nurbs曲線求導(dǎo)、曲率計算等面臨較高計算負(fù)載,給算法實現(xiàn)的實時性帶來嚴(yán)重影響,因此,前瞻控制的實時性是nurbs插補器成功與否的關(guān)鍵因素,為提高前瞻控制實時性,就要首先對nurbs曲線進行快速預(yù)讀處理,以滿足nurbs曲線高速高精插補插補要求。
相似案例
1)對比文件1:實時前瞻全程加減速控制的nurbs曲線自適應(yīng)分段插補方法;申請?zhí)枺?00910113894.4;對比文件1的前瞻預(yù)處理部分包括如下步驟:用矩形形式表示nurbs曲線進行預(yù)處理,采用自適應(yīng)速度調(diào)整算法調(diào)整進給速度,并在曲線曲率各極大值處對曲線分段,再進行s曲線加減速處理。其解決實時性的思想是通過三次nurbs曲線矩陣形式,在預(yù)處理前先得到系數(shù)y0,y1,y2,y3,y0',y1',y2',y3',插補計算時只需要直接調(diào)用各項系數(shù),從而大大加快計算速度;該方法在一定程度上降低了計算復(fù)雜度,但是,由于nurbs曲線曲率存在曲率平緩區(qū)和曲率突變區(qū),而在曲率平緩區(qū)一般能滿足加工的需求,只有在曲率突變區(qū)的點,才有可能導(dǎo)致較高的弓高誤差,引起過切等。顯然案例1并沒有考慮nurbs曲線曲率特性,在曲率平緩區(qū)存在冗余處理的問題。
而本發(fā)明采用進退法快速倍增或倍減參數(shù)步長增量,實現(xiàn)對曲率平緩區(qū)曲線的快速離散,通過減少所需處理曲線點的數(shù)目,本發(fā)明在預(yù)處理部分所需處理點數(shù)比對比文件1所需處理點數(shù)減少約80%,從根本上降低處理的實時性問題。
2)對比文件2:基于機床動力學(xué)和曲線特性的nurbs插補方法,申請?zhí)枺?01010546987.9,對比文件2中方法由三個環(huán)節(jié)組成:預(yù)插補、前瞻信息處理和實時插補:預(yù)插補環(huán)節(jié)采用速度自適應(yīng)調(diào)整算法;前瞻信息處理環(huán)節(jié)首先根據(jù)插補點進給速度劃分加減速區(qū),然后分別對加減速區(qū)進行判斷,按照對應(yīng)的速度模式進行函數(shù)速度平滑處理,該方法中預(yù)插補處理過程跟本專利快速預(yù)讀處理所要完成的工作類似,但是,在對比文件2中,其在預(yù)插補過程沒有考慮如何提高預(yù)插補速度,存在冗余處理的情況。
而本發(fā)明在實現(xiàn)對比文件2預(yù)插補作用的基礎(chǔ)上,創(chuàng)新設(shè)計進退法減少所需處理的插補點數(shù),處理的點數(shù)急劇減少,本發(fā)明在預(yù)插補部分所需處理點數(shù)比對比文件2所需處理點數(shù)減少約80%,因此所需處理的時間也大大縮短。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題,在于提供一種基于進退法的nurbs曲線插補快速預(yù)讀處理方法,使得預(yù)處理階段所需處理點數(shù)大大減少,極大的提高了前瞻預(yù)處理過程的實時性。
本發(fā)明是這樣實現(xiàn)的:一種基于進退法的nurbs曲線插補快速預(yù)讀處理方法,采用進退法對曲線曲率平緩區(qū)進行快速離散,使參數(shù)步長增量快速變化,減少預(yù)處理過程所需處理曲線點的數(shù)目的同時檢測速度敏感區(qū),并以曲率半徑計算函數(shù)作為目標(biāo)函數(shù),采用步長加速法發(fā)現(xiàn)速度敏感區(qū)曲率半徑極小值點,增強了前瞻處理過程中速度敏感區(qū)的識別和分析處理速度,達到快速前瞻,具體包括如下步驟:
步驟1、進退法快速識別速度敏感區(qū);
步驟2、速度敏感區(qū)曲率極值近似點獲??;
步驟3、修正速度敏感區(qū)曲率極值點,處理完畢。
進一步地,所述步驟1進一步包括:
以系統(tǒng)最大允許輪廓誤差為目標(biāo)比較值,從某一點出發(fā),按限定的步長往前探索,如果探索點弓高誤差小于等于目標(biāo)值,則以限定指數(shù)遞增方式增長步長;當(dāng)探索點弓高誤差大于目標(biāo)值時,一方面從nurbs曲線當(dāng)前探索點繼續(xù)往前以初始步長迭代探索直到找到速度敏感區(qū)終點,另一方面則縮小步長增量并向后倒退迭代尋找速度敏感區(qū)起點。
進一步地,所述步驟1進一步具體為:步長放大倍數(shù)可由步長控制因子η控制,同時為使算法收斂,縮小后的步長不小于初始步長;
令目標(biāo)值為系統(tǒng)最大允許輪廓誤差δmax,目標(biāo)函數(shù)式為插補誤差函數(shù):
給定nurbs曲線初始探索點的參數(shù)為u0,初始步長h0,首先以初始步長h=h0向前搜索一步,即u=u0+h,計算fer(u);
(1)如果fer(u)≤δmax,倍增步長前向探索,
則可知搜索區(qū)間[u-h,u]不存在速度敏感點,令h=βh,β為放大系數(shù),且β>1,u=u+h,繼續(xù)向前探索,為確保[u-h,u]不存在速度敏感區(qū),步長控制因子η應(yīng)滿足
(2)如果fer(u)>δmax,縮小步長后向檢測,
令u'=u,則可知速度敏感區(qū)起點位于區(qū)間
i為確定
ii為確定
iii探索到一個速度敏感度區(qū)區(qū)間為
4、如權(quán)利要求1所述的一種基于進退法的nurbs曲線插補快速預(yù)讀處理方法,其特征在于:所述步驟2進一步包括:
速度敏感區(qū)曲率極小值近似點掃描:以速度敏感區(qū)起點開始,計算當(dāng)前點的曲率半徑值并作為初始的曲率半徑最小值,然后以參數(shù)增量步長h向前計算下一點的參數(shù),并計算出該點的曲率半徑值,將該曲率半徑值與當(dāng)前記錄的曲率半徑最小值比較,如果該點的曲率半徑值小于記錄的曲率半徑最小值,則將該點的曲率半徑值作為新的曲率半徑最小值,然后繼續(xù)以參數(shù)增量步長h計算下一點,并判斷是否是新的曲率半徑最小值點,重復(fù)以上動作直到搜索到敏感區(qū)結(jié)束,最后得到該速度敏感區(qū)曲率半徑極小值近似點的參數(shù)。
進一步地,所述步驟2具體為:
步驟21:輸入速度敏感區(qū)區(qū)間
步驟22:根據(jù)當(dāng)前點參數(shù)矢量,計算其曲率半徑值ρ,初始時以該曲率半徑值最為曲率半徑最小值,即ρmin=ρ;
步驟23:以參數(shù)步長增量h得到下一個曲線點參數(shù)u=u+h,并計算其曲率半徑值ρ',如果ρ'<ρmin,則以新曲率半徑值更新ρmin,即ρmin=ρ';
步驟24:如果沒有到達區(qū)間尾,則繼續(xù)執(zhí)行步驟23,否則執(zhí)行步驟25;
步驟25:得到速度敏感區(qū)曲率半徑極小值近似點p,p點參數(shù)為u’。
進一步地,所述步驟3進一步包括:
令速度敏感區(qū)間[us,ue],步驟2中得到曲率半徑極小值近似點p,及其參數(shù)u',令p點曲率半徑為ρ(u'),最大允許輪廓誤差er,可得該點進給速度為
令速度敏感區(qū)最低速度為vmin,如果p點與實際曲率極值點速率誤差滿足下式,則以p點作為速度敏感區(qū)曲率極小值點,
|v(u')-vmin|≤ε(4-14)
如果p點與實際曲率極值點速率誤差滿足式(4-15),則對p點參數(shù)按式(4-16)進行修正,
|v(u')-vmin|>ε(4-15)
初始設(shè)定ub、uf為u'相鄰前后曲線點,根據(jù)(4-16)對曲率半徑極小值近似點進行修正。然后對修正后的值重新進行判斷并迭代進行修正,每修正一次,更新ub、uf,第n次修正后,當(dāng)誤差為正時,取ub=un,否則取uf=un。
進一步地,所述步驟3進一步具體步驟為:
步驟31、已知步驟2檢測到的曲率半徑極值近似點參數(shù)為u',步長公差ε,最大允許輪廓誤差er,速度敏感區(qū)最小進給速度vmin,前一探索點um,后一探索點為un輸出修正后的近似曲率極值點u*;
步驟32、初始化,ub=um,uf=un,
步驟33、計算當(dāng)前近似點速度
步驟34、如果|v(u')-vmin≤ε,則找到滿足要求近似曲率半徑極值點u*=u',執(zhí)行步驟36;否則執(zhí)行步驟35;
步驟35、當(dāng)v(u')-vmin≥0,修正u1,
步驟36、結(jié)束。
本發(fā)明具有如下優(yōu)點:本發(fā)明一種基于進退法的nurbs曲線插補快速預(yù)讀處理方法,在nurbs曲線預(yù)處理階段采用進退法對曲線曲率平緩區(qū)進行快速離散,使參數(shù)步長增量快速變化,在減少所需處理點的同時檢測速度敏感區(qū),從而大幅提高預(yù)處理速度;為快速定位速度敏感區(qū)曲率極值點(即拐點),以曲率半徑計算函數(shù)作為目標(biāo)函數(shù),采用步長加速法定位速度敏感區(qū)曲率半徑極小值點,增強了預(yù)處理過程中速度敏感區(qū)的識別和拐點定位速度,通過以上兩個環(huán)節(jié),提高預(yù)處理實時性,為快速前瞻提供快速準(zhǔn)確的nurbs曲線預(yù)處理信息。
附圖說明
下面參照附圖結(jié)合實施例對本發(fā)明作進一步的說明。
圖1是一種基于進退法的nurbs曲線插補快速預(yù)讀處理方法框圖。
圖2是一種基于進退法的nurbs曲線插補快速預(yù)讀處理方法的速度敏感區(qū)識別流程圖。
圖3是一種基于進退法的nurbs曲線插補快速預(yù)讀處理方法的速度敏感區(qū)曲率極值點定位流程圖。
圖4是一種基于進退法的nurbs曲線插補快速預(yù)讀處理方法的速度敏感區(qū)曲率極值點修正流程圖。
具體實施方式
本發(fā)明具體實施方式:
首先采用進退法式對曲線曲率平緩區(qū)進行快速離散,使參數(shù)步長增量快速變化,在減少預(yù)插補點的同時檢測速度敏感區(qū),從而大幅提高預(yù)處理速度;為快速定位速度敏感區(qū)曲率半徑極小值點,以曲率半徑計算函數(shù)作為目標(biāo)函數(shù),采用步長加速法定位速度敏感區(qū)曲率半徑極小值近似點,并進行修正,增強預(yù)處理過程中速度敏感區(qū)的識別和曲率半徑極小值點定位速度,達到快速前瞻目的。具體包含三個步驟:
采用進退法式對曲線曲率平緩區(qū)進行快速離散,使參數(shù)步長增量快速變化,在減少預(yù)插補點的同時檢測速度敏感區(qū)。
具體過程為:以系統(tǒng)最大允許輪廓誤差為目標(biāo)比較值,從某一點出發(fā),按一定的步長往前探索。如果探索點弓高誤差比目標(biāo)值小,則以指數(shù)遞增方式增長步長;當(dāng)探索點弓高誤差比目標(biāo)值大,一方面從當(dāng)前探索點繼續(xù)往前以初始步長迭代探索直到找到速度敏感區(qū)終點,另一方面則縮小步長增量并向后倒退迭代尋找速度敏感區(qū)起點。為避免因步長過大而跨越速度敏感區(qū),步長放大倍數(shù)可由步長控制因子η控制,同時為使算法收斂,縮小后的步長縮不小于初始步長。
速度敏感區(qū)曲率半徑極小值近似點定位:
定位速度敏感區(qū)曲率半徑極小值近似點的思想為:以速度敏感區(qū)起點開始,以步長h向前尋找曲率半徑最小值近似點,如果當(dāng)前點曲率半徑值小于已記錄最小值,則以當(dāng)前點曲率半徑值替換記錄值,直到搜索到敏感區(qū)結(jié)束,最后得到該敏感區(qū)的曲率半徑極小值近似點。
速度敏感區(qū)曲率半徑極小值近似點修正思想:根據(jù)拐點其前后相鄰的兩點對拐點近似位置進行修正,通過最大輪廓誤差約束條件對曲率半徑極小值近似點進行迭代修正,得到滿足加工誤差限制的曲率半徑極小值近似點位置。
本發(fā)明的優(yōu)點在于:由于待加工nurbs曲線可能存在高曲率和尖角部分,需在正式插補前對曲線進行預(yù)先處理,以識別曲線減速特征并進行相應(yīng)的速度規(guī)劃調(diào)整。為提高前瞻處理實時性,提出進退法對nurbs曲線快速預(yù)讀處理方法,減少預(yù)讀處理過程所需曲線點數(shù),實現(xiàn)快速定位速度敏感區(qū)的區(qū)間,然后通過搜索算法定位速度敏感區(qū)曲率半徑極小值近似點,并對其進行修正。
該方法較傳統(tǒng)自適應(yīng)速度調(diào)整方法所需處理點數(shù)減少80%以上,極大了提高了前瞻預(yù)處理過程的實時性。
在該方法中,程序預(yù)讀處理模塊對輸入的nurbs加工程序提取加工信息進行譯碼、顯示等處理,將提取的nurbs曲線段存儲到數(shù)據(jù)緩沖區(qū)(fifo隊列)的尾部,接著進行根據(jù)機床加工約束條件,對緩沖的nurbs曲線進行快速預(yù)讀。
掃描速度敏感區(qū):以系統(tǒng)最大允許輪廓誤差為目標(biāo)比較值,從某一點出發(fā),按一定的步長往前探索,如果探索點弓高誤差不大于目標(biāo)值,則以指數(shù)遞增方式增長步長;當(dāng)探索點弓高誤差比目標(biāo)值大,一方面從當(dāng)前探索點繼續(xù)往前以初始步長迭代探索直到找到速度敏感區(qū)終點,另一方面則縮小步長增量并向后倒退迭代尋找速度敏感區(qū)起點,為避免因步長過大而跨越速度敏感區(qū),步長放大倍數(shù)可由步長控制因子η控制,同時為使算法收斂,縮小后的步長不小于初始步長,最終獲得速度敏感區(qū)的區(qū)間相關(guān)信息。
定位速度敏感區(qū)曲率半徑極小值近似點:獲得速度敏感區(qū)區(qū)間后,以速度敏感區(qū)起點開始,以步長h向前尋找速度敏感區(qū)曲率半徑極小值近似點,如果當(dāng)前點曲率半徑值小于已記錄最小值,則以當(dāng)前點曲率半徑值替換記錄值,直到搜索到敏感區(qū)結(jié)束,最后得到該敏感區(qū)的曲率半徑極小值近似點位置。
速度敏感區(qū)曲率半徑極小值近似點修正:根據(jù)拐點其前后相鄰的兩點對拐點近似位置進行修正,通過最大輪廓誤差約束條件對拐點進行迭代修正,得到滿足加工誤差限制的曲率半徑極小值近似點位置。
如圖1所示,程序預(yù)讀處理模塊對輸入的nurbs加工程序提取加工信息進行譯碼、顯示等處理,將提取的nurbs曲線段存儲到數(shù)據(jù)緩沖區(qū)(fifo隊列)的尾部,接著進行根據(jù)機床加工約束條件,對緩沖的nurbs曲線進行快速預(yù)讀,識別曲線的減速特征,獲得對應(yīng)的速度敏感區(qū)相關(guān)信息,包括速度敏感區(qū)起始點位置、速度敏感區(qū)曲率半徑極小值近似點位置及進給速度等信息,最終形成預(yù)處理信息,提供給前瞻模塊進行速度規(guī)劃處理。
如圖2所示,曲率連續(xù)曲線的速度敏感區(qū)位于曲率半徑低谷處,采用進退法加快曲率平緩區(qū)域的預(yù)讀處理。進退法識別速度敏感區(qū)基本思想為:以系統(tǒng)最大允許輪廓誤差為目標(biāo)比較值,從某一點出發(fā),按一定的步長往前探索。如果探索點弓高誤差比目標(biāo)值小,則以指數(shù)遞增方式增長步長;當(dāng)探索點弓高誤差比目標(biāo)值大,一方面從當(dāng)前探索點繼續(xù)往前以初始步長迭代探索直到找到速度敏感區(qū)終點,另一方面則縮小步長增量并向后倒退迭代尋找速度敏感區(qū)起點。為避免因步長過大而跨越速度敏感區(qū),步長放大倍數(shù)可由步長控制因子η控制,同時為使算法收斂,縮小后的步長縮不小于初始步長。
令目標(biāo)值為系統(tǒng)最大允許輪廓誤差δmax,目標(biāo)函數(shù)式為插補誤差函數(shù):
其中ρ(u)表示參數(shù)矢量為u處的點c(u)曲率半徑值,v(u)表示參數(shù)矢量為u處的點c(u)進給速度值,t為插補周期;
給定初始點u0,初始搜索步長h0,首先以初始步長h=h0向前搜索一步,即u=u0+h,計算fer(u)。
(1)如果fer(u)≤δmax,倍增步長前向探索,
則可知搜索區(qū)間[u-h,u]不存在速度敏感點,令h=βh,β為放大系數(shù),且β>1,u=u+h,繼續(xù)向前探索。為確保[u-h,u]不存在速度敏感區(qū),步長控制因子η應(yīng)滿足
(2)如果fer(u)>δmax,縮小步長后向檢測
令
i為確定
ii為確定
iii探索到一個速度敏感度區(qū)區(qū)間為
如圖2所示,具體算法步驟為:
步驟1:歸一化參數(shù)區(qū)間[0,1],初始步長h=h0,步長放大因子β=2,步長縮小因子
步驟2:計算目標(biāo)函數(shù)值
步驟3:如果(fer(u)≤δmax),即誤差滿足要求,則:如果
步驟4:如果(fer(u)>δmax),即誤差超限,則記錄當(dāng)前點ub=uf=u,執(zhí)行4.1;
4.1當(dāng)滿足(fer(u)>δmax),循環(huán)執(zhí)行尋找速度敏感區(qū)起點;
4.2令h=λh,使步長縮短λ倍;
4.3更新當(dāng)前點記錄,令ub=ub-h,繼續(xù)執(zhí)行4.1;
4.4得到第i個速度敏感區(qū)起點參數(shù)
4.5如果滿足(fer(u)>δmax),循環(huán)執(zhí)行,尋找速度敏感區(qū)終點;
4.6令uf=uf+h0,步長增加,繼續(xù)執(zhí)行4.5;
4.7得到第i個速度敏感區(qū)終點參數(shù)
步驟5:如果未到曲線尾,繼續(xù)執(zhí)行步驟2,否則執(zhí)行步驟6;
步驟6:輸出敏感區(qū)間集合
如圖3所示為速度敏感區(qū)曲率極小值近似點搜索流程圖。
由圖1流程通過進退法快速掃描曲線,獲得各速度敏感區(qū)間集合,還需要進一步定位速度敏感區(qū)曲率半徑極小值近似點。由3次nurbs曲線曲率連續(xù)特點,可通過簡單的搜索以獲取各敏感區(qū)曲率極值點最為速度敏感區(qū)曲率半徑極小值近似點。定位曲率半徑極小值近似點的算法思想為:以速度敏感區(qū)起點開始,以步長h向前尋找曲率半徑最小值點,如果當(dāng)前計算曲率半徑值小于已記錄最小值,則以當(dāng)前點曲率半徑值替換記錄值,直到搜索到敏感區(qū)結(jié)束,最后得到該敏感區(qū)曲率極值點位置。
如圖3所示,具體步驟為:
步驟1:輸入速度敏感區(qū)區(qū)間
步驟2:根據(jù)當(dāng)前點參數(shù)矢量,計算其曲率半徑值ρ,初始時以該曲率半徑值最為曲率半徑最小值,即ρmin=ρ;
步驟3:以參數(shù)步長增量h得到下一個曲線點參數(shù)u=u+h,并計算其曲率半徑值ρ',如果ρ'<ρmin,則以新曲率半徑值更新ρmin,即ρmin=ρ';
步驟4:如果沒有到達區(qū)間尾,則繼續(xù)執(zhí)行步驟3,否則執(zhí)行步驟5;
步驟:5:得到速度敏感區(qū)曲率半徑極小值近似點p,p點參數(shù)為u’。
由圖2流程定位到的速度敏感區(qū)曲率半徑極小值近似點與敏感區(qū)曲率半徑極小值實際點位置存在偏差,偏差大小由探索步長h的值決定。當(dāng)h越小,所獲得點更接近實際位置,但是探索次數(shù)也越多;當(dāng)h越大,探索次數(shù)會相應(yīng)減少,但所獲得點與實際位置偏差越大。因此,需要對探索到的拐點進行修正。
令速度敏感區(qū)間[us,ue],步驟2中得到曲率半徑極小值近似點p,及其參數(shù)u’。令p點曲率半徑為ρ(u'),最大允許輪廓誤差er,可得該點進給速度為
令速度敏感區(qū)最低速度為vmin,如果p點與實際曲率極值點速率誤差滿足下式,則以p點作為速度敏感區(qū)曲率極小值點,
|v(u')-vmin≤ε(4-14)
如果p點與實際曲率極值點速率誤差滿足式(4-15),則對p點參數(shù)按式(4-16)進行修正,
|v(u')-vmin|>ε(4-15)
初始設(shè)定ub、uf為u'相鄰前后曲線點,根據(jù)(4-16)對曲率半徑極小值近似點進行修正。然后對修正后的值重新進行判斷并迭代進行修正。,每修正一次,更新ub、uf,第n次修正后,當(dāng)誤差為正時,取ub=un,否則取uf=un。
具體步驟為:
步驟1:已知探索到的近似曲率半徑極值點u,步長公差ε,最大允許輪廓誤差er,速度敏感區(qū)最小進給速度vmin,前一探索點um,后一探索點為un輸出修正后的近似曲率極值點u*;
步驟2:初始化,ub=um,uf=un,
步驟3:計算當(dāng)前近似點速度
步驟4:如果|v(u')-vmin≤ε,則找到滿足要求近似曲率半徑極值點u*=u',執(zhí)行步驟6;否則執(zhí)行步驟5;
步驟5:當(dāng)v(u')-vmin≥0,修正u1,
步驟6:結(jié)束.
雖然以上描述了本發(fā)明的具體實施方式,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護的范圍內(nèi)。