CN104133422A - 一种非均匀有理b样条实时插补过程中的快速求值求导方法 - Google Patents

一种非均匀有理b样条实时插补过程中的快速求值求导方法 Download PDF

Info

Publication number
CN104133422A
CN104133422A CN201410338796.1A CN201410338796A CN104133422A CN 104133422 A CN104133422 A CN 104133422A CN 201410338796 A CN201410338796 A CN 201410338796A CN 104133422 A CN104133422 A CN 104133422A
Authority
CN
China
Prior art keywords
nurbs
feds
array
sigma
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410338796.1A
Other languages
English (en)
Other versions
CN104133422B (zh
Inventor
刘强
刘焕
周胜凯
李传军
徐阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201410338796.1A priority Critical patent/CN104133422B/zh
Priority claimed from CN201410338796.1A external-priority patent/CN104133422B/zh
Publication of CN104133422A publication Critical patent/CN104133422A/zh
Application granted granted Critical
Publication of CN104133422B publication Critical patent/CN104133422B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)

Abstract

一种非均匀有理B样条实时插补过程中的快速求值求导方法,它有两大步骤:一、离线建立NURBS快速求值求导结构FEDS;二、实时插补过程根据快速求值求导结构体进行快速求值求导。本发明解决了NURBS实时插补过程中求值求导计算复杂耗时的问题,利用离线计算NURBS节点矢量处的分子与分母各阶导数,在实时过程中利用Taylor展开法可以快速计算NURBS上任意点处的值以及各阶导数值,无需再进行复杂耗时的基函数及其导数计算。同时,经过求取快速求值求导结构体(FEDS)数组后,只需将FEDS数组传输给数控系统,不需要传输NURBS的几何表达参数(节点矢量,控制顶点矢量,权值矢量等),避免了数据的分类传输。

Description

一种非均匀有理B样条实时插补过程中的快速求值求导方法
技术领域
本发明涉及一种非均匀有理B样条实时插补过程中的快速求值求导方法,属于数控加工技术领域。
背景技术
传统的复杂曲面加工是通过CAD/CAM系统将刀轨在一定的逼近误差约束下离散成连续的微小直线段或圆弧段形成数控加工NC代码,然后将NC代码输入数控系统,数控系统使用直线插补或圆弧插补来完成曲面的加工。在这个过程中,NC代码的数量一般非常大,一条刀轨可能会生成数千或上万行的NC代码,一个曲面完整的NC代码文件可能达数十兆,这对仅有数兆内存的数控系统来说必须将NC代码文件进行分段加工。即使现有的数控系统已支持外部存储读取,但是庞大的NC代码传输有可能造成数据的传输错误而导致零件报废。另一方面,虽然现在有的前瞻技术避免了进给速度在微段内的频繁加减速导致的加工效率低,但是使用直线插补或圆弧插补造成的二次逼近误差降低了加工精度。
非均匀有理B样条(NURBS)为解析的与自由的曲线曲面提供一种统一的数学表达形式,并已作为STEP-NC中CAD/CAM系统与CNC系统之间的产品数据交换标准。随着数控技术的发展,由于NURBS直接插补技拥有着比传统的直线与圆弧插补技术不可比拟的优势,如代码数据量少、加工效率高等,NURBS直接插补技术已成为一个热门的研究领域。然而,NURBS的递推定义导致在求值求导计算时需耗费大量的时间去计算基函数及其导数,因此在传统的直线与圆弧插补技术中应用的许多优秀的算法在NURBS直接插补中不再适用。同时,NURBS实时插补过程中插补点的计算需对NURBS进行频繁的求值求导计算限制了插补周期的降低,因此加工效率也难以大幅提高。为了解决这些问题,最有效的途径就是寻求一种高效的NURBS快速求值求导方法。
研究NURBS的快速求值求导技术的方法中最多的就是基于NURBS矩阵表示的计算方法,这类方法将NURBS转化为系数矩阵描述,对特定次数的NURBS建立特定的求值求导算法,或者利用矩阵描述建立NURBS的矩阵递推描述算法。虽然这些算法在一定程度上提高了NURBS求值求导计算的效率,但是算法依然复杂,效率还有待提升。
发明内容
本发明针对以上问题,提供了一种非均匀有理B样条实时插补过程中的快速求值求导方法。该方法流程简单、实时插补过程计算效率高,能大幅提高NURBS插补过程中的插补效率。本发明通过以下技术方案实现,方法流程如图1所示,其具体步骤如下:
步骤1,离线建立NURBS快速求值求导结构FEDS,包含以下步骤:
①获取NURBS的节点矢量数据U={u0,u1,…,um}及曲线次数p;
②计算ui∈U(u≠um)处NURBS表达式的分子A(ui)与分母B(ui)的0至p阶导数A(0~p)(ui)与B(0~p)(ui),并保存在如下结构体中形成快速求值求导结构体数组ARRAY_FEDS:
其中:
ARRAY_FEDS[i].u=ui,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,实时插补过程根据快速求值求导结构体进行快速求值求导,包含以下步骤:
①计算所求NURBS参数u所在的节点区间u∈[ui,ui+1];
②获取快速求值求导结构体数组ARRAY_FEDS中节点ui处的分子A(ui)与分母B(ui)的0至p阶导数A(0~p)(ui)与B(0~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展开法计算NURBS上参数u处的分子A(u)与分母B(u)的0至p阶导数A(0~p)(u)与B(0~p)(u):
A ( k ) ( u ) = Σ j = k p A ( j ) ( u i ) ( j - k ) ! ( u - u i ) j - k
B ( k ) ( u ) = Σ j = k p B ( j ) ( u i ) ( j - k ) ! ( u - u i ) j - k
④计算NURBS上参数u处C(u)的第k(k≥0)阶导数为:
C ( k ) ( u ) = A ( k ) ( u ) - Σ j = 1 k k j C ( k - j ) ( u ) B ( j ) ( u ) B ( u )
其中,若k>p,取A(k)(u)=B(k)(u)=0。
所述NURBS有如下表达式:次数为p,节点矢量为U={u0,u1,…,um},控制顶点矢量为P={P0(x0,y0,z0),P1(x1,y1,z1),…,Pn(xn,yn,zn)},权值矢量为W={w0,w1,…,wn},NURBS曲线C(u)为:
C ( u ) = A ( u ) B ( u ) = Σ j = 0 n N j , p ( u ) w j P j Σ j = 0 n N j , p ( u ) w j
其中,u为曲线参数,m=n+p+1,Nj,p(u)为基函数,计算如下:
N j , 0 ( u ) = 1 , if u j &le; u < u j + 1 0 , otherwise
N j , p ( u ) = u - u j u j + p - u j N j , p - 1 ( u ) + u j + p + 1 - u u j + p + 1 - u j + 1 N j + 1 , p - 1 ( u )
基函数各阶导数计算如下:
N j , p ( k ) ( u ) = p ( N j , p - 1 ( k - 1 ) ( u ) u j + p - u j - N j + 1 , p - 1 ( k - 1 ) ( u ) u j + p + 1 - u j + 1 ) , if 0 &le; k &le; p 0 , otherwise
所述NURBS表达式分子A(u)包含x,y,z三个分量,有如下表达式:
A ( u ) = &Sigma; j = 0 n N j , p ( u ) w j P j
其各阶导数计算为:
A ( k ) ( u ) = &Sigma; j = 0 n N j , p ( k ) ( u ) w j P j , if 0 &le; k &le; p 0 , otherwise
所述NURBS表达式分母B(u)有如下表达式:
B ( u ) = &Sigma; j = 0 n N j , p ( u ) w j
其各阶导数求取为:
B ( k ) ( u ) = &Sigma; j = 0 n N j , p ( k ) ( u ) w j , if 0 &le; k &le; p 0 , otherwise
所述步骤1-2中由于um为参数终值,同属于参数区间[um-1,um],因此无需计算um处的导数信息。
本发明解决了NURBS实时插补过程中求值求导计算复杂耗时的问题,利用离线计算NURBS节点矢量处的分子与分母各阶导数,在实时过程中利用Taylor展开法可以快速计算NURBS上任意点处的值以及各阶导数值,无需再进行复杂耗时的基函数及其导数计算。同时,经过求取快速求值求导结构体(FEDS)数组后,只需将FEDS数组传输给数控系统,不需要传输NURBS的几何表达参数(节点矢量,控制顶点矢量,权值矢量等),避免了数据的分类传输。
本发明流程步骤简单,易于使用高级语言实现,不仅离线计算量小(只需计算节点矢量处的各阶导数),实时计算也简单高效,确保了数控系统的实时性,可以应用于高效率低插补周期数控系统。
附图说明
图1是本发明方法流程图;
图2是实施例NURBS曲线;
具体实施方式
以下结合附图对本发明实施示例作详细说明,给出了详细的实施方式以及数据表格,流程如图1所示。本实施示例为图1中的2次NURBS曲线,如图2所示,其几何表达参数如下:
节点矢量:U={0,0,0,0.25,0.5,0.5,0.75,1,1,1}
权值矢量:W={1,25,25,1,25,25,1}
控制顶点矢量:
P={(0,0,0),(-120,-120,0),(-120,120,0),(0,0,0),(120,-120,0),(120,120,0),(0,0,0)}
详细步骤如下:
步骤1,离线建立NURBS快速求值求导结构FEDS:
①获取NURBS的节点矢量为U={0,0,0,0.25,0.5,0.5,0.75,1,1,1},次数为2;
②计算ui∈U(u≠1)处NURBS表达式的分子A(ui)与分母B(ui)的0至p阶导数A(0~p)(ui)与B(0~p)(ui),并保存在快速求值求导结构体数组ARRAY_FEDS中:
说明:由于节点值1为节点矢量终值,1属于区间[0.75,1],因此只需计算参数值0.75处的各阶导数,ARRAY_FEDS[7~8]实际为空值。
步骤2,实时插补过程根据快速求值求导结构体进行快速求值求导,以参数值u=0.3为例说明快速求值求导过程:
①计算所求NURBS参数u=0.3所在的节点区间u∈[u3=0.25,u4=0.5];
②获取快速求值求导结构体数组ARRAY_FEDS中节点u3=0.25处的分子A(u3=0.25)与分母B(u3=0.25)的0至2阶导数A(0~2)(0.25)与B(0~2)(0.25):
u3=ARRAY_FEDS[3].u=0.25
A(u3)=ARRAY_FEDS[3].A[0][0..2]=(-3000,0,0)
A′(u3=0.25)=ARRAY_FEDS[3].A[1][0..2]=(0,24000,0)
A″(u3=0.25)=ARRAY_FEDS[3].A[2][0..2]=(96000,-192000,0)
B(u3=0.25)=ARRAY_FEDS[3].B[0]=25
B(u3=0.25)=ARRAY_FEDS[3].B[1]=0
B(u3=0.25)=ARRAY_FEDS[3].B[2]=-768
③使用Taylor展开法计算NURBS上参数u=0.3处的分子A(u)与分母B(u)的0至p阶导数A(0~2)(0.3)与B(0~2)(0.3):
A ( k ) ( u ) = &Sigma; j = k p A ( j ) ( u i ) ( j - k ) ! ( u - u i ) j - k
B ( k ) ( u ) = &Sigma; j = k p B ( j ) ( u i ) ( j - k ) ! ( u - u i ) j - k
具体计算如下:
A ( 0.3 ) = &Sigma; j = 0 2 A ( j ) ( 0.25 ) j ! ( 0.3 - 0.25 ) j = ( - 2880,960 , 0 )
A &prime; ( 0.3 ) = &Sigma; j = 1 2 A ( j ) ( 0.25 ) ( j - 1 ) ! ( 0.3 - 0.25 ) j - 1 = ( 4800,14400,0 )
A &prime; &prime; ( 0.3 ) = &Sigma; j = 2 2 A ( j ) ( 0.25 ) ( j - 2 ) ! ( 0.3 - 0.25 ) j - 2 = ( 96000 , - 192000,0 )
B ( 0.3 ) = &Sigma; j = 0 2 B ( j ) ( 0.25 ) j ! ( 0.3 - 0.25 ) j = 24.04
B &prime; ( 0.3 ) = &Sigma; j = 1 2 B ( j ) ( 0.25 ) ( j - 1 ) ! ( 0.3 - 0.25 ) j - 1 = - 38.4
B &prime; &prime; ( 0.3 ) = &Sigma; j = 2 2 B ( j ) ( 0.25 ) ( j - 2 ) ! ( 0.3 - 0.25 ) j - 2 = - 768
④计算NURBS上参数u=0.3处C(u)的第k(k≥0)阶导数为:
C ( k ) ( u ) = A ( k ) ( u ) - &Sigma; j = 1 k k j C ( k - j ) ( u ) B ( j ) ( u ) B ( u )
其中,若k>p,取A(k)(u)=B(k)(u)=0。以k=0,1,2为例,具体计算如下:
C ( 0.3 ) = A ( 0.3 ) B ( 0.3 ) = ( - 119.8003,39.9334,0 )
C &prime; ( 0.3 ) = A &prime; ( 0.3 ) - C ( 0.3 ) B &prime; ( 0.3 ) B ( 0.3 ) = ( 8.3057,662.7889,0 )
C &prime; &prime; ( 0.3 ) = A &prime; &prime; ( 0.3 ) - 2 C &prime; ( 0.3 ) B &prime; ( 0.3 ) - C ( 0.3 ) B &prime; &prime; ( 0.3 ) B ( 0.3 ) = ( 192.6463 , - 4593.5495,0 )
C(0.3)即图2中小圆圈标记的曲线上参数u=0.3处的点。

Claims (1)

1.一种非均匀有理B样条实时插补过程中的快速求值求导方法,其特征在于:该方法具体步骤如下:
步骤1,离线建立NURBS快速求值求导结构FEDS,包含以下步骤:
①获取NURBS的节点矢量数据U={u0,u1,…,um}及曲线次数p;
②计算ui∈U(u≠um)处NURBS表达式的分子A(ui)与分母B(ui)的0至p阶导数A(0~p)(ui)与B(0~p)(ui),并保存在如下结构体中形成快速求值求导结构体数组ARRAY_FEDS:
其中:
ARRAY_FEDS[i].u=ui,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,实时插补过程根据快速求值求导结构体进行快速求值求导,包含以下步骤:
①计算所求NURBS参数u所在的节点区间u∈[ui,ui+1];
②获取快速求值求导结构体数组ARRAY_FEDS中节点ui处的分子A(ui)与分母B(ui)的0至p阶导数A(0~p)(ui)与B(0~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展开法计算NURBS上参数u处的分子A(u)与分母B(u)的0至p阶导数A(0~p)(u)与B(0~p)(u):
A ( k ) ( u ) = &Sigma; j = k p A ( j ) ( u i ) ( j - k ) ! ( u - u i ) j - k
B ( k ) ( u ) = &Sigma; j = k p B ( j ) ( u i ) ( j - k ) ! ( u - u i ) j - k
④计算NURBS上参数u处C(u)的第k(k≥0)阶导数为:
C ( k ) ( u ) = A ( k ) ( u ) - &Sigma; j = 1 k k j C ( k - j ) ( u ) B ( j ) ( u ) B ( u )
其中,若k>p,取A(k)(u)=B(k)(u)=0;
所述NURBS有如下表达式:次数为p,节点矢量为U={u0,u1,…,um},控制顶点矢量为P={P0(x0,y0,z0),P1(x1,y1,z1),…,Pn(xn,yn,zn)},权值矢量为W={w0,w1,…,wn},NURBS曲线C(u)为:
C ( u ) = A ( u ) B ( u ) = &Sigma; j = 0 n N j , p ( u ) w j P j &Sigma; j = 0 n N j , p ( u ) w j
其中,u为曲线参数,m=n+p+1,Nj,p(u)为基函数,计算如下:
N j , 0 ( u ) = 1 , if u j &le; u < u j + 1 0 , otherwise
N j , p ( u ) = u - u j u j + p - u j N j , p - 1 ( u ) + u j + p + 1 - u u j + p + 1 - u j + 1 N j + 1 , p - 1 ( u )
基函数各阶导数计算如下:
N j , p ( k ) ( u ) = p ( N j , p - 1 ( k - 1 ) ( u ) u j + p - u j - N j + 1 , p - 1 ( k - 1 ) ( u ) u j + p + 1 - u j + 1 ) , if 0 &le; k &le; p 0 , otherwise
所述NURBS表达式分子A(u)包含x,y,z三个分量,有如下表达式:
A ( u ) = &Sigma; j = 0 n N j , p ( u ) w j P j
其各阶导数计算为:
A ( k ) ( u ) = &Sigma; j = 0 n N j , p ( k ) ( u ) w j P j , if 0 &le; k &le; p 0 , otherwise
所述NURBS表达式分母B(u)有如下表达式:
B ( u ) = &Sigma; j = 0 n N j , p ( u ) w j
其各阶导数求取为:
B ( k ) ( u ) = &Sigma; j = 0 n N j , p ( k ) ( u ) w j , if 0 &le; k &le; p 0 , otherwise
步骤1-2中由于um为参数终值,同属于参数区间[um-1,um],因此无需计算um处的导数信息。
CN201410338796.1A 2014-07-16 一种非均匀有理b样条实时插补过程中的快速求值求导方法 Active CN104133422B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410338796.1A CN104133422B (zh) 2014-07-16 一种非均匀有理b样条实时插补过程中的快速求值求导方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410338796.1A CN104133422B (zh) 2014-07-16 一种非均匀有理b样条实时插补过程中的快速求值求导方法

Publications (2)

Publication Number Publication Date
CN104133422A true CN104133422A (zh) 2014-11-05
CN104133422B CN104133422B (zh) 2017-01-04

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536953A (zh) * 2018-04-02 2018-09-14 天津工业大学 一种基于分块矩阵的b样条基函数任意阶求导方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5726896A (en) * 1995-08-30 1998-03-10 University Of Utah Research Foundation Method and system for spline interpolation, and their use in CNC
JP2001092516A (ja) * 1999-09-20 2001-04-06 Hitachi Ltd 数値制御曲面加工装置
CN101109948A (zh) * 2007-08-01 2008-01-23 暨南大学 一种非均匀有理b样条曲线插补与位置跟踪方法
CN101493687A (zh) * 2009-03-02 2009-07-29 广西大学 实时前瞻全程加减速控制的nurbs曲线自适应分段插补方法
CN101615024A (zh) * 2009-07-23 2009-12-30 哈尔滨工业大学 具有nurbs插补功能的五坐标数控机床运动控制器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5726896A (en) * 1995-08-30 1998-03-10 University Of Utah Research Foundation Method and system for spline interpolation, and their use in CNC
JP2001092516A (ja) * 1999-09-20 2001-04-06 Hitachi Ltd 数値制御曲面加工装置
CN101109948A (zh) * 2007-08-01 2008-01-23 暨南大学 一种非均匀有理b样条曲线插补与位置跟踪方法
CN101493687A (zh) * 2009-03-02 2009-07-29 广西大学 实时前瞻全程加减速控制的nurbs曲线自适应分段插补方法
CN101615024A (zh) * 2009-07-23 2009-12-30 哈尔滨工业大学 具有nurbs插补功能的五坐标数控机床运动控制器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
吴继春等: "一种实时快速NURBS插补算法研究与实现", 《计算机集成制造系统》 *
王国勋等: "NURBS直接插补技术中快速求值求导算法", 《东北大学学报(自然科学版)》 *
王国勋等: "实时快速NURBS直接插补技术", 《中国机械工程》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536953A (zh) * 2018-04-02 2018-09-14 天津工业大学 一种基于分块矩阵的b样条基函数任意阶求导方法

Similar Documents

Publication Publication Date Title
CN106846425A (zh) 一种基于八叉树的散乱点云压缩方法
CN106227967A (zh) 工业汽轮机低压级组叶片型线优化方法
CN103645725B (zh) 一种机器人示教轨迹规划方法和系统
CN104007705A (zh) 小线段路径压缩平滑的前瞻插补系统
Hu et al. Five-axis tool path generation based on machine-dependent potential field
CN105739436A (zh) 一种数控机床样条曲线自适应快速插补方法
CN102023616B (zh) 三角Bézier曲面数控精加工刀轨快速生成方法
Hsieh et al. Particle swarm optimisation (PSO)-based tool path planning for 5-axis flank milling accelerated by graphics processing unit (GPU)
CN104317251A (zh) 基于Obrechkoff算法的三次NURBS曲线实时插补方法
CN114676522B (zh) 融合gan和迁移学习的气动形状优化设计方法及系统及设备
CN106707967B (zh) 基于近似标准展开式的三维轮廓误差估计方法及装置
CN103676786A (zh) 一种基于加速度原理的曲线光顺方法
Liu et al. A reconstruction algorithm for blade surface based on less measured points
CN104504758A (zh) 义齿冠表面曲面生成方法
CN104020718A (zh) 一种nurbs曲线参考模型自适应实时插补方法
Luers et al. Adjoint-based volumetric shape optimization of turbine blades
CN104020717B (zh) 基于参数同步的五轴等距双nurbs刀具路径插补方法
CN100369067C (zh) 三维扫描系统中截线云的曲线构造方法
CN104133422A (zh) 一种非均匀有理b样条实时插补过程中的快速求值求导方法
CN111259495B (zh) 一种水轮机模型综合特性曲线的新型数值拓扑方法
Navangul et al. A vertex translation algorithm for adaptive modification of STL file in layered manufacturing
CN104133422B (zh) 一种非均匀有理b样条实时插补过程中的快速求值求导方法
Huang et al. Research on insertion points planning of head model
CN104133423B (zh) 一种空间椭圆弧插补方法
CN108628255A (zh) 一种指令点纠正平滑处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant