国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種非均勻有理b樣條實(shí)時(shí)插補(bǔ)過程中的快速求值求導(dǎo)方法

      文檔序號(hào):6306440閱讀:327來源:國(guó)知局
      一種非均勻有理b樣條實(shí)時(shí)插補(bǔ)過程中的快速求值求導(dǎo)方法
      【專利摘要】一種非均勻有理B樣條實(shí)時(shí)插補(bǔ)過程中的快速求值求導(dǎo)方法,它有兩大步驟:一、離線建立NURBS快速求值求導(dǎo)結(jié)構(gòu)FEDS;二、實(shí)時(shí)插補(bǔ)過程根據(jù)快速求值求導(dǎo)結(jié)構(gòu)體進(jìn)行快速求值求導(dǎo)。本發(fā)明解決了NURBS實(shí)時(shí)插補(bǔ)過程中求值求導(dǎo)計(jì)算復(fù)雜耗時(shí)的問題,利用離線計(jì)算NURBS節(jié)點(diǎn)矢量處的分子與分母各階導(dǎo)數(shù),在實(shí)時(shí)過程中利用Taylor展開法可以快速計(jì)算NURBS上任意點(diǎn)處的值以及各階導(dǎo)數(shù)值,無需再進(jìn)行復(fù)雜耗時(shí)的基函數(shù)及其導(dǎo)數(shù)計(jì)算。同時(shí),經(jīng)過求取快速求值求導(dǎo)結(jié)構(gòu)體(FEDS)數(shù)組后,只需將FEDS數(shù)組傳輸給數(shù)控系統(tǒng),不需要傳輸NURBS的幾何表達(dá)參數(shù)(節(jié)點(diǎn)矢量,控制頂點(diǎn)矢量,權(quán)值矢量等),避免了數(shù)據(jù)的分類傳輸。
      【專利說明】一種非均勻有理B樣條實(shí)時(shí)插補(bǔ)過程中的快速求值求導(dǎo)方法

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種非均勻有理B樣條實(shí)時(shí)插補(bǔ)過程中的快速求值求導(dǎo)方法,屬于數(shù)控加工【技術(shù)領(lǐng)域】。

      【背景技術(shù)】
      [0002]傳統(tǒng)的復(fù)雜曲面加工是通過CAD/CAM系統(tǒng)將刀軌在一定的逼近誤差約束下離散成連續(xù)的微小直線段或圓弧段形成數(shù)控加工NC代碼,然后將NC代碼輸入數(shù)控系統(tǒng),數(shù)控系統(tǒng)使用直線插補(bǔ)或圓弧插補(bǔ)來完成曲面的加工。在這個(gè)過程中,NC代碼的數(shù)量一般非常大,一條刀軌可能會(huì)生成數(shù)千或上萬行的NC代碼,一個(gè)曲面完整的NC代碼文件可能達(dá)數(shù)十兆,這對(duì)僅有數(shù)兆內(nèi)存的數(shù)控系統(tǒng)來說必須將NC代碼文件進(jìn)行分段加工。即使現(xiàn)有的數(shù)控系統(tǒng)已支持外部存儲(chǔ)讀取,但是龐大的NC代碼傳輸有可能造成數(shù)據(jù)的傳輸錯(cuò)誤而導(dǎo)致零件報(bào)廢。另一方面,雖然現(xiàn)在有的前瞻技術(shù)避免了進(jìn)給速度在微段內(nèi)的頻繁加減速導(dǎo)致的加工效率低,但是使用直線插補(bǔ)或圓弧插補(bǔ)造成的二次逼近誤差降低了加工精度。
      [0003]非均勻有理B樣條(NURBS)為解析的與自由的曲線曲面提供一種統(tǒng)一的數(shù)學(xué)表達(dá)形式,并已作為STEP-NC中CAD/CAM系統(tǒng)與CNC系統(tǒng)之間的產(chǎn)品數(shù)據(jù)交換標(biāo)準(zhǔn)。隨著數(shù)控技術(shù)的發(fā)展,由于NURBS直接插補(bǔ)技擁有著比傳統(tǒng)的直線與圓弧插補(bǔ)技術(shù)不可比擬的優(yōu)勢(shì),如代碼數(shù)據(jù)量少、加工效率高等,NURBS直接插補(bǔ)技術(shù)已成為一個(gè)熱門的研究領(lǐng)域。然而,NURBS的遞推定義導(dǎo)致在求值求導(dǎo)計(jì)算時(shí)需耗費(fèi)大量的時(shí)間去計(jì)算基函數(shù)及其導(dǎo)數(shù),因此在傳統(tǒng)的直線與圓弧插補(bǔ)技術(shù)中應(yīng)用的許多優(yōu)秀的算法在NURBS直接插補(bǔ)中不再適用。同時(shí),NURBS實(shí)時(shí)插補(bǔ)過程中插補(bǔ)點(diǎn)的計(jì)算需對(duì)NURBS進(jìn)行頻繁的求值求導(dǎo)計(jì)算限制了插補(bǔ)周期的降低,因此加工效率也難以大幅提高。為了解決這些問題,最有效的途徑就是尋求一種高效的NURBS快速求值求導(dǎo)方法。
      [0004]研究NURBS的快速求值求導(dǎo)技術(shù)的方法中最多的就是基于NURBS矩陣表示的計(jì)算方法,這類方法將NURBS轉(zhuǎn)化為系數(shù)矩陣描述,對(duì)特定次數(shù)的NURBS建立特定的求值求導(dǎo)算法,或者利用矩陣描述建立NURBS的矩陣遞推描述算法。雖然這些算法在一定程度上提高了 NURBS求值求導(dǎo)計(jì)算的效率,但是算法依然復(fù)雜,效率還有待提升。


      【發(fā)明內(nèi)容】

      [0005]本發(fā)明針對(duì)以上問題,提供了一種非均勻有理B樣條實(shí)時(shí)插補(bǔ)過程中的快速求值求導(dǎo)方法。該方法流程簡(jiǎn)單、實(shí)時(shí)插補(bǔ)過程計(jì)算效率高,能大幅提高NURBS插補(bǔ)過程中的插補(bǔ)效率。本發(fā)明通過以下技術(shù)方案實(shí)現(xiàn),方法流程如圖1所示,其具體步驟如下:
      [0006]步驟1,離線建立NURBS快速求值求導(dǎo)結(jié)構(gòu)FEDS,包含以下步驟:
      [0007]①獲取NURBS的節(jié)點(diǎn)矢量數(shù)據(jù)U = {u0, U1,…,um}及曲線次數(shù)p ;
      [0008]②計(jì)算Ui e U (u關(guān)Um)處NURBS表達(dá)式的分子A (Ui)與分母B (Ui)的O至p階導(dǎo)數(shù)A(°?p) (Ui)與B(°i) (Ui),并保存在如下結(jié)構(gòu)體中形成快速求值求導(dǎo)結(jié)構(gòu)體數(shù)組ARRAY_FEDS:
      [0009]

      sircuci NURBS—FEDS



      {


      double u\


      double A{p +1][3];


      double Z?[/> +1];

      I ARRAY_FEDS[m]:
      [0010]其中:
      [0011]ARRAY_FEDS[i].u = UpO 彡 i < m
      [0012]ARRAY_FEDS[i], A[j] [0..2] = A(J) (Ui),0 彡 j 彡 p
      [0013]ARRAY_FEDS[i], B[j] = B(J) (Ui)
      [0014]步驟2,實(shí)時(shí)插補(bǔ)過程根據(jù)快速求值求導(dǎo)結(jié)構(gòu)體進(jìn)行快速求值求導(dǎo),包含以下步驟:
      [0015]①計(jì)算所求NURBS參數(shù)u所在的節(jié)點(diǎn)區(qū)間u e [Ui, ui+1];
      [0016]②獲取快速求值求導(dǎo)結(jié)構(gòu)體數(shù)組ARRAY_FEDS中節(jié)點(diǎn)Ui處的分子A(Ui)與分母B(Ui)的 O 至P 階導(dǎo)數(shù)A(0?p)(Ui)與 B(0?p)(Ui):
      [0017]Ui = ARRAY—FEDS [i].u
      [0018]A(J) (Ui) = ARRAY_FEDS[i], A[j] [0..2], 0 ^ j ^ p
      [0019]B00(Ui) = ARRAY_FEDS[i], B[j]
      [0020]③使用Taylor展開法計(jì)算NURBS上參數(shù)u處的分子A(U)與分母B(U)的O至p階導(dǎo)數(shù) A(°i) (U)與 B(°i) (U):
      [0021]Au' lOi) = Y(u-u

      6 (./--)!
      [0022]Bik)(u) = Y^B1

      j=k (j-k)l
      [0023]④計(jì)算NURBS上參數(shù)u處C (u)的第k (k彡O)階導(dǎo)數(shù)為:

      Am (u)-y(k]c(lc-J} (u)BU} (u)
      0024...廠


      B(U)
      [0025]其中,若k> P,取 A(k)(u) =B(k)(u) =0。
      [0026]所述NURBS有如下表達(dá)式:次數(shù)為P,節(jié)點(diǎn)矢量為U = Iuci, U1,…,uj ,控制頂點(diǎn)矢量為 P = (P0 (x0, Y0.z。),P1U1, Y1, Z1),…,Pn(xn, yn, zn)},權(quán)值矢量為 W = {w0, W1,…,wn},NURBS 曲線 C(u)為:


      H

      V N1 (Li)WlPi
      Λ / 、JJJ
      [0027]C{u) = —= -


      7=0
      [0028]其中,u為曲線參數(shù),m = n+p+1, Nlp(U)為基函數(shù),計(jì)算如下:

      iUii'w, <u<u:tl
      [0029]⑷= ,.[O, olhcrwisc

      u — U.W:....? — U
      [0030]Κ'ρ (u)=——L Nhp_x (u) + ^ Nj^l (u)
      uj+P~ujuj+p+1-uj+i
      [0031]基函數(shù)各階導(dǎo)數(shù)計(jì)算如下:
      [?NfplI(U) O)、
      [0032]nT1MO = '\u J^p-Uj uJ+p+l-uj+l J,ifO<^<p

      0, otherwise
      [0033]所述NURBS表達(dá)式分子A (u)包含x,y,z三個(gè)分量,有如下表達(dá)式:


      η
      [0034]/i(?) - X/V.,,(U)VViP7

      /=0
      [0035]其各階導(dǎo)數(shù)計(jì)算為:
      γλλλλ?A^k) /, \ L^k J,p\ 7Γ
      [0036]A {u) =S J=Q

      0, otherwise
      [0037]所述NURBS表達(dá)式分母B (u)有如下表達(dá)式:


      η
      [0038]B(U) = Y Nj p(U)Wj

      J=O
      [0039]其各階導(dǎo)數(shù)求取為:

      V N、:、I(U)Wi,if 0< ^ < P
      O(幻/.\ L.^ Jyfy ,J,r
      [0040]B !(u) = <J=0

      O, otherwise
      [0041]所述步驟1-2中由于Um為參數(shù)終值,同屬于參數(shù)區(qū)間[Unri, Uffl],因此無需計(jì)算Um處的導(dǎo)數(shù)信息。
      [0042]本發(fā)明解決了 NURBS實(shí)時(shí)插補(bǔ)過程中求值求導(dǎo)計(jì)算復(fù)雜耗時(shí)的問題,利用離線計(jì)算NURBS節(jié)點(diǎn)矢量處的分子與分母各階導(dǎo)數(shù),在實(shí)時(shí)過程中利用Taylor展開法可以快速計(jì)算NURBS上任意點(diǎn)處的值以及各階導(dǎo)數(shù)值,無需再進(jìn)行復(fù)雜耗時(shí)的基函數(shù)及其導(dǎo)數(shù)計(jì)算。同時(shí),經(jīng)過求取快速求值求導(dǎo)結(jié)構(gòu)體(FEDS)數(shù)組后,只需將FEDS數(shù)組傳輸給數(shù)控系統(tǒng),不需要傳輸NURBS的幾何表達(dá)參數(shù)(節(jié)點(diǎn)矢量,控制頂點(diǎn)矢量,權(quán)值矢量等),避免了數(shù)據(jù)的分類傳輸。
      [0043]本發(fā)明流程步驟簡(jiǎn)單,易于使用高級(jí)語言實(shí)現(xiàn),不僅離線計(jì)算量小(只需計(jì)算節(jié)點(diǎn)矢量處的各階導(dǎo)數(shù)),實(shí)時(shí)計(jì)算也簡(jiǎn)單高效,確保了數(shù)控系統(tǒng)的實(shí)時(shí)性,可以應(yīng)用于高效率低插補(bǔ)周期數(shù)控系統(tǒng)。

      【專利附圖】

      【附圖說明】
      [0044]圖1是本發(fā)明方法流程圖;
      [0045]圖2是實(shí)施例NURBS曲線;

      【具體實(shí)施方式】
      [0046]以下結(jié)合附圖對(duì)本發(fā)明實(shí)施示例作詳細(xì)說明,給出了詳細(xì)的實(shí)施方式以及數(shù)據(jù)表格,流程如圖1所示。本實(shí)施示例為圖1中的2次NURBS曲線,如圖2所示,其幾何表達(dá)參數(shù)如下:
      [0047]節(jié)點(diǎn)矢量:U= {O, O, O, 0.25,0.5,0.5,0.75,I, I, 1}
      [0048]權(quán)值矢量:ff= {I, 25,25,I, 25,25,1}
      [0049]控制頂點(diǎn)矢量:
      [0050]P= {(O, O, O),(-120,-120,O),(-120, 120,O),(O, O,O),(120,-120,O),(120,120,0),(0,0,0)}
      [0051]詳細(xì)步驟如下:
      [0052]步驟1,離線建立NURBS快速求值求導(dǎo)結(jié)構(gòu)FEDS:
      [0053]①獲取NURBS 的節(jié)點(diǎn)矢量為 U = {O, O, O, 0.25,0.5,0.5,0.75,I, I, 1},次數(shù)為 2 ;
      [0054]②計(jì)算Ui e U (u關(guān)I)處NURBS表達(dá)式的分子A(Ui)與分母B(Ui)的O至p階導(dǎo)數(shù)A(°i) (Ui)與B(°i) (Ui),并保存在快速求值求導(dǎo)結(jié)構(gòu)體數(shù)組ARRAY_FEDS中:
      [0055]
      ARRAY FEDS 節(jié)點(diǎn)值 ^O階導(dǎo)數(shù)I階導(dǎo)數(shù)2階導(dǎo)數(shù)
      _^___^____
      八 ?,(-24000,-24000,0 ,λ
      ~分子(0,O, O)λ(96000,192000,0)
      0 2O)
      __分母I192-768
      a,,、,、 (96000,-192000,0
      分子 (-3000,0,0)(0,24000,0)χ
      30.25)
      __分母 _25__O__-768
      八 7,,、 (-96000, 192000,0
      廣分子(0,0,0)(24000, -24000,0)、
      4 5Oj)
      分母1-768
      八 ?,Λ,、 (-96000, -192000,
      分子(3000,0,O)(0,24000,O).60.75 ______^__I_^__O)_
      分母氣O-768
      __分母^~^^7
      [0056]說明:由于節(jié)點(diǎn)值I為節(jié)點(diǎn)矢量終值,I屬于區(qū)間[0.75,I],因此只需計(jì)算參數(shù)值
      0.75處的各階導(dǎo)數(shù),ARRAY_FEDS[7?8]實(shí)際為空值。
      [0057]步驟2,實(shí)時(shí)插補(bǔ)過程根據(jù)快速求值求導(dǎo)結(jié)構(gòu)體進(jìn)行快速求值求導(dǎo),以參數(shù)值u =
      0.3為例說明快速求值求導(dǎo)過程:
      [0058]①計(jì)算所求NURBS參數(shù)u = 0.3所在的節(jié)點(diǎn)區(qū)間u e [U3 = 0.25,U4 = 0.5];
      [0059]②獲取快速求值求導(dǎo)結(jié)構(gòu)體數(shù)組ARRAY_FEDS中節(jié)點(diǎn)U3 = 0.25處的分子A (U3 =0.25)與分母 B (u3 = 0.25)的 O 至 2 階導(dǎo)數(shù) A(° ?2) (0.25)與 B(0 ?2) (0.25):
      [0060] U3 = ARRAY_FEDS[3], u = 0.25
      [0061 ] A (U3) = ARRAY_FEDS [3].A [O] [0..2] = (-3000,O, O)
      [0062]A' (u3 = 0.25) = ARRAY_FEDS[3], A[l] [0..2] = (0,24000,0)
      [0063]A" (u3 = 0.25) = ARRAY_FEDS[3], A[2] [0..2] = (96000,-192000,0)
      [0064]B (u3 = 0.25) = ARRAY_FEDS [3].B [0] = 25
      [0065]B (u3 = 0.25) = ARRAY_FEDS[3].B[I] = 0
      [0066]B (u3 = 0.25) = ARRAY_FEDS [3].B [2] = -768
      [0067]③使用Taylor展開法計(jì)算NURBS上參數(shù)u = 0.3處的分子A(U)與分母B(U)的O 至 P 階導(dǎo)數(shù) A(0 ?2) (0.3)與 B(0 ?2) (0.3):
      [0068]^k) (U) = Υ^Α.(,、:("-

      j=k (./—允)!
      [0069]Bik 1 (II)=兔 B (w -1ii)7 k
      [0070]具體計(jì)算如下:
      [0071]^(0.3) - J A ' (0'25) (0.3 - 0.25)7 =(-2880,960,0)
      J=Oβ.
      [0072]/--θ.3) - Y ~^^?Ο.3-0.25)7 ' =i4800.14400.0)

      H (./-1)!
      [0073]/iw(0.3) - Y Α'" (υ'25) (0.3 - 0.25)7:= (96000-192000,0)

      7=2 (7-2)!
      [0074]5(0.3) - Yj 3 ' ^'25) (0.3 - 0.25)7 = 24.04
      7=0J-
      [0075]Β'(03)^Β ' (0.24(0.3-0.25)7 ' --38.4


      (./-1)!
      [0076]6〃(0.3) = ?^^(0.3-0.25)' 2 = -7(8./=2 (J-2)!
      [0077]④計(jì)算NURBS上參數(shù)u = 0.3處C (U)的第k (k彡O)階導(dǎo)數(shù)為:

      A{k\u)-y(k}c{k-J) (U)Bu) (u)
      剛 ο=~~_-


      B(u)
      [0079]其中,若k> P,取A(k)(u) =B(k)(u) = O。以k = 0,1,2為例,具體計(jì)算如下:
      [0080]CY0.3) = = (-119.8003,39.9334,0)[0081 ] C'(0_3) = ^(03) ~^3^(03) = (8.3057,662.7889,0)
      [0082]Cff(0.3) = A (Q,3)~2<: (0'3)^°3^~<:(0'3)^ (0_3) = (192.6463,-4593.5495,0)
      [0083]C(0.3)即圖2中小圓圈標(biāo)記的曲線上參數(shù)u = 0.3處的點(diǎn)。
      【權(quán)利要求】
      1.一種非均勻有理B樣條實(shí)時(shí)插補(bǔ)過程中的快速求值求導(dǎo)方法,其特征在于:該方法具體步驟如下: 步驟I,離線建立NURBS快速求值求導(dǎo)結(jié)構(gòu)FEDS,包含以下步驟: ①獲取NURBS的節(jié)點(diǎn)矢量數(shù)據(jù)U= {u0, U1,...,um}及曲線次數(shù)p ; ②計(jì)算Uie U (u古um)處NURBS表達(dá)式的分子A (Ui)與分母B (Ui)的O至p階導(dǎo)數(shù)A(°~p) (Ui)與B(°i) (Ui),并保存在如下結(jié)構(gòu)體中形成快速求值求導(dǎo)結(jié)構(gòu)體數(shù)組ARRAY_FEDS:
      其中:
      ARRAY_FEDS[i], u =屮,0 ≤i < m
      ARRAY_FEDS[i], A[j] [0..2] = A(J) (Ui),0 ≤ j ≤ p
      ARRAY_FEDS[i], B[j] = B(J) (Ui) 步驟2,實(shí)時(shí)插補(bǔ)過程根據(jù)快速求值求導(dǎo)結(jié)構(gòu)體進(jìn)行快速求值求導(dǎo),包含以下步驟: ①計(jì)算所求NURBS參數(shù)u所在的節(jié)點(diǎn)區(qū)間ue [Ui, ui+1]; ②獲取快速求值求導(dǎo)結(jié)構(gòu)體數(shù)組ARRAY_FEDS中節(jié)點(diǎn)ui處的分子A(ui)與分母B(Ui)的O至P階導(dǎo)數(shù)A(°~p) (Ui)與B(°~p) (Ui):
      Ui = ARRAY_FEDS[i], u
      A(J) (Ui) = ARRAY_FEDS[i], A[j] [0..2], 0≤ j ≤ p
      B(J) (Ui) = ARRAY_FEDS[i], B[j] ③使用Taylor展開法計(jì)算NURBS上參數(shù)u處的分子A(u)與分母B(U)的O至p階導(dǎo)數(shù) A(°~p)(u)與 B(°~p) (u):
      ④計(jì)算NURBS上參數(shù)u處C(u)的第k(k≥O)階導(dǎo)數(shù)為:
      其中,若 k>p,取 A(k)(u) = B(k) (u) = O ; 所述NURBS有如下表達(dá)式:次數(shù)為P,節(jié)點(diǎn)矢量為U = Iuci, U1,…,um},控制頂點(diǎn)矢量為P = {P0(x0, y0, z0), P1 (x1; Y1, Z1),…,Pn(xn, yn, zn)},權(quán)值矢量為 W = {w0, W1,..., wn} ,NURBS 曲線C(u)為: c(w)=氣^-
      維)?Λ.,ΜΦ、

      i=o 其中,U為曲線參數(shù),m = n+p+1, Nj-p(u)為基函數(shù),計(jì)算如下:
      --,?Γ Uj <ιι <?,丨丨
      Nj0(U) = I
      I O, otherwise
      u—u;U:.n.., -1l Nj', (U)=——J— Nj^ (U) +^ NJ+U11—Y (U)
      ?P—Uj?/+Ρ+11.+1 基函數(shù)各階導(dǎo)數(shù)計(jì)算如下:
      ? ?Nf^s(U) O)、 nTp(u) = <\uj+p-Uj u;+/j+1 — uril'()<k< p .0, otherwise 所述NURBS表達(dá)式分子A(u)包含x,y, z三個(gè)分量,有如下表達(dá)式:
      A(Li)^YjNi p{u)w ,Pj 其各階導(dǎo)數(shù)計(jì)算為: 糊=|實(shí).)
      O9 otherwise 所述NURBS表達(dá)式分母B (U)有如下表達(dá)式:
      B(U) = ^Nip(U)Wj
      J=O 其各階導(dǎo)數(shù)求取為:
      B (u) — { j=Q
      O, otherwise 步驟1-2中由于Um為參數(shù)終值,同屬于參數(shù)區(qū)間[IV1, um],因此無需計(jì)算Um處的導(dǎo)數(shù)信息。
      【文檔編號(hào)】G05B19/41GK104133422SQ201410338796
      【公開日】2014年11月5日 申請(qǐng)日期:2014年7月16日 優(yōu)先權(quán)日:2014年7月16日
      【發(fā)明者】劉強(qiáng), 劉煥, 周勝凱, 李傳軍, 徐陽 申請(qǐng)人:北京航空航天大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1