一種離散刀具軌跡的曲線擬合方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)控加工領(lǐng)域,更具體地,涉及一種離散刀具軌跡的曲線擬合方法。
【背景技術(shù)】
[0002] 在計(jì)算機(jī)輔助制造及數(shù)控加工領(lǐng)域中,離散刀具軌跡可以用B樣條曲線進(jìn)行擬 合,然后進(jìn)行質(zhì)量檢測(cè),使得擬合的曲線能夠滿足加工要求,如果擬合的曲線質(zhì)量不符合加 工要求,則重新進(jìn)行擬合,以免影響加工質(zhì)量。擬合樣條曲線的質(zhì)量檢測(cè)主要包括兩個(gè)方 面:檢測(cè)擬合樣條與離散刀具軌跡組成的折線段之間的弦高差是否滿足精度要求,以及檢 測(cè)擬合樣條的曲率和弧長(zhǎng)是否滿足光順性要求。
[0003] 擬合樣條與離散刀具軌跡組成的折線段之間的弦高差一般用Hausdorff距離來(lái) 計(jì)算,但由于直接計(jì)算Hausdorff距離計(jì)算量大,計(jì)算緩慢,不適用于高速高精數(shù)控加工。 在非專利文獻(xiàn)《基于NURBS曲線擬合的刀具路徑優(yōu)化方法》、《數(shù)控加工中的連續(xù)多段直線 軌跡B-Spline擬合》和《數(shù)控加工中連續(xù)微線段軌跡的B樣條曲線擬合》中,均采用下列方 法:首先等分參數(shù)區(qū)間,然后計(jì)算B樣條上等分點(diǎn)處的弦高差,最后計(jì)算所有弦高差的最大 值。該方法無(wú)法遍歷B樣條曲線上所有點(diǎn),只能通過(guò)提高離散密度而提高計(jì)算精度;當(dāng)離散 稀疏時(shí),計(jì)算精度則很低。因此需要一種計(jì)算速度快且計(jì)算精確的弦高差檢測(cè)方法。
[0004] 在擬合樣條的質(zhì)量檢測(cè)中,除了檢測(cè)弦高差,擬合曲線的光順性也是一個(gè)很重要 的檢測(cè)指標(biāo)。光順性良好是指曲率光順,不存在打折、波動(dòng)、尖點(diǎn)和多余拐點(diǎn)的情況。在現(xiàn) 有技術(shù)中通常通過(guò)判斷曲線的曲率上是否具有連續(xù)性作為判斷光順性的指標(biāo),例如非專 利文獻(xiàn)《CATIA中曲線、曲面的光順性檢查及修形處理的方法》(中國(guó)航空學(xué)會(huì)總體分會(huì)幾 何設(shè)計(jì)分會(huì)學(xué)術(shù)交流會(huì),2004)中,以及非專利文獻(xiàn)《曲面光順性的檢查及改進(jìn)方法》(重慶 理工大學(xué)學(xué)報(bào)(自然科學(xué)版)2010,24(1))。然而,曲線的打折現(xiàn)象無(wú)法通過(guò)該方法檢測(cè), 如圖1所示,虛線為離散刀具軌跡,圓點(diǎn)為離散刀具軌跡的數(shù)據(jù)點(diǎn),光滑實(shí)線為擬合的B樣 條曲線,曲線出現(xiàn)了打折現(xiàn)象,但曲率變化均勻,而擬合樣條的弧長(zhǎng)明顯超過(guò)了折線段的弦 長(zhǎng),在加工中會(huì)導(dǎo)致刀具磨損且加工質(zhì)量變差。
【發(fā)明內(nèi)容】
[0005] 針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種離散刀具軌跡的曲線擬 合方法,其目的在于通過(guò)采樣點(diǎn)將所述擬合曲線劃分為多個(gè)采樣區(qū)間,并分別對(duì)不同采樣 區(qū)間的誤差和光順性進(jìn)行檢測(cè),從而擬合出一條滿足弦高差要求和光順性要求的曲線。
[0006]為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,首先根據(jù)離散刀具軌跡建立擬合曲線, 其次通過(guò)采樣點(diǎn)將所述擬合曲線劃分為多個(gè)采樣區(qū)間,并通過(guò)計(jì)算多個(gè)采樣區(qū)間內(nèi)的最大 弦高差,以及離散刀具軌跡到擬合曲線的最近距離,從而判斷所述擬合曲線是否超過(guò)加工 系統(tǒng)的誤差閾值,以及所述擬合曲線的光順性是否滿足加工系統(tǒng)的要求,然后根據(jù)判斷結(jié) 果對(duì)擬合曲線進(jìn)行調(diào)整,最終建立具有滿足加工系統(tǒng)誤差以及光順性要求的軌跡曲線。
[0007] 優(yōu)選地,所述離散刀具軌跡的曲線擬合方法的具體步驟如下:
[0008] (1)根據(jù)離散刀具軌跡V(u),建立B樣條曲線c(t),其中,所述離散刀具軌跡V(u) 為N個(gè)數(shù)據(jù)點(diǎn)V,依次組成的N-1條線段,j為1到N的整數(shù),所述線段的索引依次為1至 N-1;
[0009] (2)對(duì)所述B樣條曲線c(t)采樣,使得所述B樣條曲線c(t)上每個(gè)節(jié)點(diǎn)區(qū)間都至 少有一個(gè)采樣點(diǎn),得到Μ個(gè)采樣點(diǎn)c(tj,i為1到Μ的整數(shù);
[0010] (3)在1~Μ之間遍歷i,計(jì)算c(ti)到離散刀具軌跡的弦高差Bi,所述c(ti)在 所述離散刀具軌跡上的投影點(diǎn)V(Ul),以及所述投影點(diǎn)V(Ul)所在線段的索引A1;
[0011] (4)在1~M-1之間遍歷i,判斷采樣區(qū)間(ca^c^J))內(nèi)是否存在弦高差大 于bjpb1+1,且可能超過(guò)誤差閾值u。的點(diǎn),并根據(jù)判斷結(jié)果計(jì)算采樣區(qū)間[calcar)]內(nèi) 的最大弦尚差Η;;
[0012] 同時(shí)在1~N之間遍歷j,計(jì)算數(shù)據(jù)點(diǎn)V,jB樣條曲線c(t)的最近距離G
[0013] (5)如果所述B樣條曲線c(t)不存在系統(tǒng)誤差點(diǎn),進(jìn)入步驟(6);否則重新建立B 樣條曲線c(t),返回步驟(2);
[0014] (6)判斷所述B樣條曲線c(t)是否符合加工系統(tǒng)的光順性要求,是則重新建立B 樣條曲線c(t),返回步驟(2),否則離散刀具軌跡的擬合結(jié)束。
[0015] 作為進(jìn)一步優(yōu)選地,所述步驟(2)的具體方法為:
[0016] S21.根據(jù)B樣條曲線c(t)的參數(shù)區(qū)間[ts,tj,得到Μ個(gè)采樣點(diǎn)c^),
為1到Μ的整數(shù);
[0017]S22.遍歷c(t)的節(jié)點(diǎn)區(qū)間,判斷當(dāng)前節(jié)點(diǎn)區(qū)間的采樣點(diǎn)個(gè)數(shù),如果個(gè)數(shù)為0,則在 當(dāng)前節(jié)點(diǎn)區(qū)間插入采樣點(diǎn),令Μ=M+1,直至所有節(jié)點(diǎn)區(qū)間都至少有一個(gè)采樣點(diǎn);
[0018] S23.對(duì)所有采樣點(diǎn)重新排序得到c(tj,i為1到Μ的整數(shù)。
[0019] 作為進(jìn)一步優(yōu)選地,在所述步驟(2)中,2Ν彡Μ彡3Ν。
[0020] 作為進(jìn)一步優(yōu)選地,所述步驟(3)具體為:
[0021] S31.令i= 1,將caj的候選區(qū)間設(shè)置為所述離散刀具軌跡起始的2個(gè)~4個(gè) 連續(xù)線段組成的線段軌跡;
[0022] S32.找出所述候選區(qū)間中離(3?)距離最近的線段,令該線段的索引為心, 在該線段上的投影點(diǎn)為與該線段的距離為caj的弦高差b1;
[0023]S33.如果所述投影點(diǎn)V(Ul) #V^VN,且所述投影點(diǎn)V(Ul)位于所述候選區(qū)間的 兩端時(shí),將所述c(tj的候選區(qū)間重新設(shè)置為包括所述投影點(diǎn)V(Ul)在內(nèi)的2個(gè)~4個(gè)連續(xù) 線段組成的線段軌跡,且使得所述投影點(diǎn)V(Ul)不位于所述候選區(qū)間的兩端,返回S32;否 則進(jìn)入S34;
[0024]S34.i乒M,則i=i+Ι,進(jìn)入S35,否則進(jìn)入步驟⑷;
[0025]S35.當(dāng)Ai1或N-1時(shí),設(shè)置caj的候選區(qū)間J的候選區(qū)間相同,否則 將caj的候選區(qū)間設(shè)置為包括所述c(tu)的投影點(diǎn)V(Ull)的2個(gè)~4個(gè)連續(xù)線段組成 的線段軌跡,且使得所述投影點(diǎn)V(Ul ^不位于所述候選區(qū)間的兩端,進(jìn)入S32。
[0026] 作為進(jìn)一步優(yōu)選地,在所述步驟⑷中,還包括判斷所述采樣區(qū)間 ((caicad)內(nèi)是否存在打折現(xiàn)象:如果4>a1+1,貝ij所述采樣區(qū)間((caicad)內(nèi) 存在打折現(xiàn)象;
[0027] 在所述步驟(5)中,所述B樣條曲線c(t)不存在系統(tǒng)誤差點(diǎn),且沒有存在打折現(xiàn) 象的采樣區(qū)間,進(jìn)入步驟(6);否則重新建立B樣條曲線c(t),返回步驟(2)。
[0028] 作為進(jìn)一步優(yōu)選地,所述步驟(4)中最大弦高差私的計(jì)算方法具體為:
[0029] S411.令
j為1到N的整數(shù);
[0030] 令i= 1 ;
[0031] S412.如果Ai>Ai+1,記錄采樣區(qū)間((c(ti),c(ti+1))內(nèi)存在打折現(xiàn)象或令嘸= max(Bi,Bi+1),進(jìn)入S416 ;
[0032] 如果A1=A1+1,則進(jìn)入S413 ;
[0033] 否則進(jìn)入S414;
[0034] S413.將 弧長(zhǎng)參數(shù)化為h(l),le(11;11+1),其中,1JP11+1 分別對(duì)應(yīng)tJP t1+1的弧長(zhǎng)參數(shù);
[0035] 如果h' (υΧ),!!,(11+1)〈0,
[0036] 且h(li+1) + (li_li+1)V(li+1)或h(I;) + (li+1_li)V(1J中任意一項(xiàng)超過(guò)誤差閾 值U。,
[0037] 則嘸=maxf(t,A;),cG(ti,ti+1);
[0038] 否則max(B〇Bi+1);
[0039] 進(jìn)入S416 ;
[0040] S414.令F(t) =min[f(t,A;),f(t,Ai+1),· · ·f(t,Ai+1)];
[0041] hi=maxF(t),te(ti;ti+1);
[0042] 如果Ai+1 =Ai+1,進(jìn)入S415,否則max(B;,Bi+1,hj,進(jìn)入S416 ;
[0043] S415.計(jì)算。匕)到線段^;+11^.+2的距離a以及c(ti+1)到線段的距離 b,若所述距離a和所述距離b的最大值max(a,b)大于誤差閾值U。,則Η; =max(B;,Bi+1,hj;
[0044] 否貝丨J,嘸=max?i,Bi+1);
[0045] S416.i乒M-l,則i=i+1,返回S412 ;否則最大弦高差嘸的計(jì)算結(jié)束。
[0046] 作為進(jìn)一步優(yōu)選地,所述步驟(4)中最近距離G,的計(jì)算方法具體為:
[0047] S421.令j= 1,g(t,j) = (c(t)_V.j)Xc' ⑴;
[0048] S422.如果j= 1,令c(tp)為B樣條曲線c(t)的起始點(diǎn),否則令c(tp)為離所述 數(shù)據(jù)點(diǎn)V,前端最近的投影點(diǎn)對(duì)應(yīng)的采樣點(diǎn);
[0049] 如果j=N,令c(tq)為B樣條曲線c(t)的終止點(diǎn),否則令c(tq)為離所述數(shù)據(jù)