CN101482979A - 一种光顺优化的nurbs空间曲线曲率连续拼接的cad方法 - Google Patents

一种光顺优化的nurbs空间曲线曲率连续拼接的cad方法 Download PDF

Info

Publication number
CN101482979A
CN101482979A CNA2008102473396A CN200810247339A CN101482979A CN 101482979 A CN101482979 A CN 101482979A CN A2008102473396 A CNA2008102473396 A CN A2008102473396A CN 200810247339 A CN200810247339 A CN 200810247339A CN 101482979 A CN101482979 A CN 101482979A
Authority
CN
China
Prior art keywords
overbar
curve
chi
sigma
beta
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
CNA2008102473396A
Other languages
English (en)
Other versions
CN101482979B (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.)
Tsinghua University
Original Assignee
Tsinghua 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 Tsinghua University filed Critical Tsinghua University
Priority to CN2008102473396A priority Critical patent/CN101482979B/zh
Publication of CN101482979A publication Critical patent/CN101482979A/zh
Application granted granted Critical
Publication of CN101482979B publication Critical patent/CN101482979B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

一种光顺优化的NURBS空间曲线曲率连续拼接的CAD方法,属于空间参数曲线几何造型的CAD领域,其特征在于,初始化阶段输入不连续的两条NURBS曲线C和
Figure 200810247339.6_AB_0
;对其中的曲线C通过实行三次延伸操作的方式,使得C与曲线
Figure 200810247339.6_AB_0
实现G0连续。再调整C曲线延伸部分的控制顶点和相应权重,通过一维黄金分割搜索最小化二阶光顺能量,实现两条曲线的G2连续并且具有最小的光顺能量值。该方法在不改变曲线原有部分的情况下,填补了两条NURBS曲线间的缝隙,并且保证了曲线延伸部分的光顺性最优。

Description

一种光顺优化的NURBS空间曲线曲率连续拼接的CAD方法
技术领域
本发明涉及一种光顺优化的NURBS空间曲线曲率连续拼接的CAD方法。
技术背景
CAD方法在现代制造业中发挥着重要的作用。它可以准确表达较为复杂的自由型曲线曲面,同时能显著改善设计的效率。随着国际标准化组织(ISO)于1991年正式确定把NURBS方法作为定义产品形状的唯一数学方法,越来越多的CAD/CAM系统采用NURBS作为其模型,NURBS在工业产品的外形设计中获得广泛的应用。
工业产品外形设计中的一个重要方面是曲线设计,设计人员通常先设计出最能表现产品外形特点的若干条NURBS曲线,其中的缝隙则希望使用CAD方法进行填补,以满足产品外形的美观要求。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是,提供一种光顺优化的NURBS空间曲线曲率连续拼接的CAD方法,使得在保持用户给定的两条NURBS空间曲线原始部分不变且不引入第三条曲线的前提下,通过三次延伸其中的一条曲线并对此延伸部分进行适当修改,实现两条曲线的曲率连续拼接和拼接部分光顺性最优。
(二)技术方案
本发明公开了一种光顺优化的NURBS空间曲线曲率连续拼接的CAD方法,该方法在计算机中实现,包括如下步骤:
S1:输入不连续的两条NURBS空间曲线C(u)和C(u),对于曲线C(u)其形式为:
C ( u ) = Σ i = 0 n - 1 N i , U ( u ) w i P i Σ i = 0 n - 1 N i , U ( u ) w i
其中u是曲线C(u)的参数,n是曲线C(u)所含的控制顶点个数,Pi是曲线C(u)中序号为i的控制顶点的坐标值,由用户输入,i=0,1,...,n-1,采用三维直角坐标表示,wi是曲线C(u)中序号为i的控制顶点的权重,由用户输入,i=0,1,...,n-1,Ni,U是定义在节点向量序列U之上的序号为i的B样条基函数,i=0,1,...,n-1,U是曲线C(u)的节点向量序列:
U={u0,u1,...,un+p}
其中p是曲线C(u)的幂,由用户输入,u0,u1,...,un+p等为节点向量序列中的节点,其中u0=u1=…=up=0,un=un+1=…=un+p=1,up+1,up+2,...,un-1由用户输入,上述的B样条基函数采用Matlab系统样条工具库中B样条基函数的定义方式,对于曲线C(u)其形式为:
C ‾ ( u ‾ ) = Σ i = 0 n ‾ - 1 N i , U ‾ ( u ‾ ) w ‾ i P ‾ i Σ i = 0 n ‾ - 1 N i , U ‾ ( u ‾ ) w ‾ i
其中u是曲线C(u)的参数,n是曲线C(u)所含的控制顶点个数,Pi是曲线C(u)中序号为i的控制顶点的坐标值,由用户输入,i=0,1,...,n-1,采用三维直角坐标表示,wi是曲线C(u)中序号为i的控制顶点的权重,由用户输入,i=0,1,...,n-1,
Figure A200810247339D00082
是定义在节点向量序列U之上的序号为i的B样条基函数,i=0,1,...,n-1,U是曲线C(u)的节点向量序列:
U ‾ = { u ‾ 0 , u ‾ 1 , . . . , u ‾ n ‾ + p ‾ }
其中p是曲线C(u)的幂,由用户输入,
Figure A200810247339D00084
等为节点向量序列中的节点,其中 u ‾ 0 = u ‾ 1 = · · · = u ‾ p ‾ = 0 , u ‾ n ‾ = u ‾ n ‾ + 1 = · · · = u ‾ n ‾ + p ‾ = 1 ,
Figure A200810247339D00087
由用户输入,上述的B样条基函数采用Matlab系统样条工具库中B样条基函数的定义方式;
S2:对曲线C(u)进行向曲线C(u)方向的延伸,其步骤如下:
S21:计算齐次空间中曲线C(u)的B样条表示形式Cw(u),计算方法如下:
C w ( u ) = Σ i = 0 n - 1 N i , U ( u ) P i w
其中是齐次空间中点Pi的表示形式,i=0,1,...,n-1,采用四维直角坐标表示,其计算方法如下:
P i w = ( w i P i , w i )
计算齐次空间中曲线C(u)的B样条表示形式Cw(u),计算方法如下:
C ‾ w ( u ‾ ) = Σ i = 0 n ‾ - 1 N i , U ‾ ( u ) P ‾ i w
其中是齐次空间中点Pi的表示形式,i=0,1,...,n-1,采用四维直角坐标表示,其计算方法如下:
P ‾ i w = ( w ‾ i P ‾ i , w ‾ i ) ,
S22:在曲线Cw(u)和曲线Cw(u)之间设定三个齐次空间点q1,q2和q3,分别作为三次曲线延伸的目标点,其中点q1和q2由用户输入,q3设定为曲线Cw(u)的第一个控制顶点,即 q 3 = P ‾ 0 w ,
S23:把曲线Cw(u)延伸到所述的点q1,并且设延伸后的曲线为
Figure A200810247339D0009171649QIETU
,其表示形式为:
C 1 w ( u ) = Σ i = 0 n 1 - 1 N i , U 1 ( u ) P 1 , i w
其中n1是曲线
Figure A200810247339D00096
中所含的控制顶点个数,且有n1=n+1,
Figure A200810247339D00097
是曲线
Figure A200810247339D00098
中序号为i的控制顶点的函数值,按照步骤S24所述的方法计算,i=0,1,...,n1-1,
Figure A200810247339D00099
是定义在节点向量序列U1之上的序号为i的B样条基函数,i=0,1,...,n1-1,U1是曲线
Figure A200810247339D000910
的归一化形式的节点向量序列:
Figure A200810247339D000911
其中 a = 1 + | | P 1 , n 1 - 1 w - q 1 | | Σ i = p n - 1 | | C w ( u i + 1 ) - C w ( u i ) | | , ‖·‖表示齐次空间的欧氏距离,
S24:按下述步骤计算曲线
Figure A200810247339D000913
中序号为i的控制顶点的值
Figure A200810247339D000914
i=0,1,...,n1-1,
S241:设置初值 P ~ j - 1 = P 1 , j w , j = n 1 - p , . . . , n 1 + p
S242:递推计算齐次空间点
Figure A200810247339D000916
P ~ j i = P ~ j i - 1 , j = n 1 - p , . . . , n 1 - i - 2 P ~ j i = P ~ j i - 1 - ( 1 - α i , j ) P ~ j - 1 i α i , j , j = n 1 - i - 1 , . . . , n 1 - 1
其中 α i , j = u n 1 - u j u i + j + 2 - u j , i=0,1,...,p-2
S243:计算的最终结果
P 1 , i w = P i w , i = 0 , . . . , n 1 - p - 1 P 1 , i w = P ~ i p - 2 , i = n 1 - p , . . . , n 1 - 1
S25:按照步骤S23、S24所述的方法将所述曲线
Figure A200810247339D00102
延伸到点q2,并且设延伸后的曲线为
Figure A200810247339D00103
S26:再按照步骤S23、S24所述的方法将所述曲线
Figure A200810247339D00104
延伸到点q3,并且设延伸后的曲线为
Figure A200810247339D00105
,其表示形式为:
C 3 w ( u ) = Σ i = 0 n 3 - 1 N i , U 3 ( u ) P 3 , i w
其中n3是曲线
Figure A200810247339D00107
所含的控制顶点个数且有n3=n+3,是定义在节点向量序列U3之上的序号为i的B样条基函数,i=0,1,...,n3-1,U3是曲线
Figure A200810247339D00109
的归一化形式的节点向量序列:
U 3 = { v 0 , v 1 , . . . , v n 3 + p } ,
其中v0=v1=…=vp=0, v n 3 = v n 3 + 1 = · · · = v n 3 + p = 1 ;
S27:计算齐次空间曲线在三维空间中的表示形式C3(u):
C 3 ( u ) = Σ i = 0 n 3 - 1 N i , U 3 ( u ) w 3 , i P 3 , i Σ i = 0 n 3 - 1 N i , U 3 ( u ) w 3 , i
其中w3,i
Figure A200810247339D001014
的最后一维的数值,i=0,1,...,n3-1,设
Figure A200810247339D001015
Figure A200810247339D001016
去掉最后一维后的向量,则 P 3 , i = P 3 , i ′ w 3 , i , i=0,1,...,n3-1;
S3:修改曲线C3(u)的两个控制顶点P3,n和P3,n+1及其相应权重w3,n和w3,n+1,使得修改后的曲线C3(u)与曲线C(u)在其交接处即u=1和u=0处实现G2连续,P3,n和P3,n+1以及w3,n和w3,n+1的计算方法如下:
w 3 , n + 1 = w ‾ 0 - β λ ‾ λ ( w ‾ 1 - w ‾ 0 )
P 3 , n + 1 = w ‾ 0 w 3 , n + 1 P ‾ 0 - β λ ‾ λ w 3 , n + 1 ( w ‾ 1 P ‾ 1 - w ‾ 0 P ‾ 0 )
w 3 , n = - χ n + 2 χ n w ‾ 0 + χ n + 1 χ n w 3 , n + 1 + β 2 χ n ( χ ‾ 2 w ‾ 2 - χ ‾ 1 w ‾ 1 + χ ‾ 0 w ‾ 0 )
P 3 , n = - χ n + 2 w ‾ 0 χ n w n P ‾ 0 + χ n + 1 w n + 1 χ n w n P 3 , n + 1 + β 2 χ n w n ( χ ‾ 2 w ‾ 2 P ‾ 2 - χ ‾ 1 w ‾ 1 P ‾ 1 + χ ‾ 0 w ‾ 0 P ‾ 0 )
其中β是由步骤S4确定的正实数值,λ,λ,χn,χn+1,χn+2,χ0,χ1,χ2为常数,定义如下:
λ = p 1 - v n 3 - 1
λ ‾ = p ‾ u ‾ p ‾ + 1
χ n = p ( p - 1 ) ( 1 - v n 3 - 1 ) ( 1 - v n 3 - 2 )
χ n + 2 = p ( p - 1 ) ( 1 - v n 3 - 1 ) 2
χn+1=χnn+2
χ ‾ 2 = p ‾ ( p ‾ - 1 ) u ‾ p ‾ + 1 u ‾ p ‾ + 2
χ ‾ 0 = p ‾ ( p ‾ - 1 ) ( u ‾ p ‾ + 1 ) 2
χ1=χ02
S4:确定β的取值使得延伸曲线二阶光顺能量值最小,所述的二阶光顺能量值定义为:
E = ∫ | | C 3 ′ ′ ( u ) | | 2 du
其中表示C3(u)的二阶导数,由步骤S3知,C3(u)的分子分母的各项中只有
Figure A200810247339D00119
Figure A200810247339D001110
Figure A200810247339D001111
Figure A200810247339D001112
为β的多项式函数,其余各项均与β无关,故C3(u)具有如下形式:
C 3 ( u ) = β 4 v 1 ( u ) + β 2 v 2 ( u ) + v 3 ( u ) β 2 c 1 ( u ) + β c 2 ( u ) + c 3 ( u )
其中c1(u),c2(u),c3(u)为已知的关于u的分段多项式函数,v1(u),v2(u),v3(u)为已知的关于u的分段多项式向量值函数,对C3(u)关于u求一阶导数可得:
C 3 ′ ( u ) = Σ i = 0 6 β i v 4 + i ( u ) Σ j = 0 4 β j c 4 + j ( u )
其中c4(u),c5(u),...,c8(u)为已知的关于u的分段多项式函数,v4(u),v5(u),...,v10(u)为已知的关于u的分段多项式向量值函数,再对
Figure A200810247339D001115
关于u求一阶导数可得:
C 3 ′ ′ ( u ) = Σ i = 0 10 β i v 11 + i ( u ) Σ j = 0 8 β j c 9 + j ( u )
其中c9(u),c10(u),...,c17(u)为已知的关于u的分段多项式函数,v11(u),v12(u),...,v21(u)为已知的关于u的分段多项式向量值函数,因而
Figure A200810247339D00122
的表达式为:
| | C 3 ′ ′ ( u ) | | 2 = C 3 ′ ′ ( u ) T C 3 ′ ′ ( u ) = Σ i = 0 20 β i c 18 + i ( u ) Σ j = 0 16 β j c 39 + j ( u )
其中c18(u),c19(u),...,c55(u)为已知的关于u的分段多项式函数,为分段分式有理函数,因此对
Figure A200810247339D00125
的积分可以得到显式表达式,最后用一维黄金分割搜索法求出最小能量值对应的β。
(三)有益效果
在实际应用中,此方法简单可行。在保持用户给定的两条NURBS空间曲线原始部分不变且不引入第三条曲线的前提下,通过对其中的一条NURBS曲线实行三次延伸操作并对此延伸部分进行适当修改,实现了两条NURBS曲线的曲率连续拼接和光顺性优化。
附图说明
图1为输入的两条原始NURBS曲线C和C;
图2是对曲线C相继实行三次延伸操作后的曲线C3
图3为对曲线C3延伸部分进行修改后与曲线C达到二阶几何连续的结果;
图4为对曲线C3延伸部分进一步修改后实现延伸部分二阶光顺能量值最小的结果;
图5是整个方法的步骤流程图。
具体实施方式
下面结合附图和具体实施方式对本方法作进一步的详细说明:
本CAD方法以Windows XP中的Visual Studio 2008为开发平台,其具体实施方式如下:
图1是输入的两条原始NURBS曲线C和C。对于曲线C(u)其形式为:
C ( u ) = Σ i = 0 n - 1 N i , U ( u ) w i P i Σ i = 0 n - 1 N i , U ( u ) w i
其中u是曲线C(u)的参数,n是曲线C(u)所含的控制顶点个数,Pi是曲线C(u)中序号为i的控制顶点的坐标值,由用户输入,i=0,1,...,n-1,采用三维直角坐标表示,wi是曲线C(u)中序号为i的控制顶点的权重,由用户输入,i=0,1,...,n-1,Ni,U是定义在节点向量序列U之上的序号为i的B样条基函数,i=0,1,...,n-1,U是曲线C(u)的节点向量序列:
U={u0,u1,...,un+p}
其中p是曲线C(u)的幂,由用户输入,u0,u1,...,un+p等为节点向量序列中的节点,其中u0=u1=…=up=0,un=un+1=…=un+p=1,up+1,up+2,...,un-1由用户输入,上述的B样条基函数采用Matlab系统样条工具库中B样条基函数的定义方式,对于曲线C(u)其形式为:
C ‾ ( u ‾ ) = Σ i = 0 n ‾ - 1 N i , U ‾ ( u ‾ ) w ‾ i P ‾ i Σ i = 0 n ‾ - 1 N i , U ‾ ( u ‾ ) w ‾ i
其中u是曲线C(u)的参数,n是曲线C(u)所含的控制顶点个数,Pi是曲线C(u)中序号为i的控制顶点的坐标值,由用户输入,i=0,1,...,n-1,采用三维直角坐标表示,wi是曲线C(u)中序号为i的控制顶点的权重,由用户输入,i=0,1,...,n-1,
Figure A200810247339D0013172209QIETU
是定义在节点向量序列U之上的序号为i的B样条基函数,i=0,1,...,n-1,U是曲线C(u)的节点向量序列:
U ‾ = { u ‾ 0 , u ‾ 1 , . . . , u ‾ n ‾ + p ‾ }
其中p是曲线C(u)的幂,由用户输入,
Figure A200810247339D00134
等为节点向量序列中的节点,其中 u ‾ 0 = u ‾ 1 = · · · = u ‾ p ‾ = 0 , u ‾ n ‾ = u ‾ n ‾ + 1 = · · · = u ‾ n ‾ + p ‾ = 1 ,
Figure A200810247339D00137
由用户输入,上述的B样条基函数采用Matlab系统样条工具库中B样条基函数的定义方式。
图2是对曲线C相继实行三次延伸操作后的结果,其具体方法如下:
(1)计算齐次空间中曲线C(u)的B样条表示形式Cw(u),计算方法如下:
C w ( u ) = Σ i = 0 n - 1 N i , U ( u ) P i w
其中
Figure A200810247339D00142
是齐次空间中点Pi的表示形式,i=0,1,...,n-1,采用四维直角坐标表示,其计算方法如下:
P i w = ( w i P i , w i )
计算齐次空间中曲线C(u)的B样条表示形式Cw(u),计算方法如下:
C ‾ w ( u ‾ ) = Σ i = 0 n ‾ - 1 N i , U ‾ ( u ) P ‾ i w
其中
Figure A200810247339D00145
是齐次空间中点Pi的表示形式,i=0,1,...,n-1,采用四维直角坐标表示,其计算方法如下:
P ‾ i w = ( w ‾ i P ‾ i , w ‾ i ) ,
(2)在曲线Cw(u)和曲线Cw(u)之间设定三个齐次空间点q1,q2和q3,分别作为三次曲线延伸的目标点,其中点q1和q2由用户输入,q3设定为曲线Cw的第一个控制顶点,即 q 3 = P ‾ 0 w ,
(3)把曲线Cw(u)延伸到所述的点q1,并且设延伸后的曲线为
Figure A200810247339D00148
其表示形式为:
C 1 w ( u ) = Σ i = 0 n 1 - 1 N i , U 1 ( u ) P 1 , i w
其中n1是曲线
Figure A200810247339D001410
中所含的控制顶点个数,且有n1=n+1,
Figure A200810247339D001411
是定义在节点向量序列U1之上的序号为i的B样条基函数,i=0,1,...,n1-1,U1是曲线
Figure A200810247339D001412
的归一化形式的节点向量序列:
Figure A200810247339D001413
其中 a = 1 + | | P 1 , n 1 - 1 w - q 1 | | Σ i = p n - 1 | | C w ( u i + 1 ) - C w ( u i ) | | , ‖·‖表示齐次空间的欧氏距离,
Figure A200810247339D001415
是曲线
Figure A200810247339D001416
中序号为i的控制顶点的函数值,i=0,1,...,n1-1,其计算方法如下:
(a)设置初值 P ~ j - 1 = P 1 , j w , j=n1-p,...,n1+p
(b)递推计算齐次空间点
P ~ j i = P ~ j i - 1 , j = n 1 - p , . . . , n 1 - i - 2 P ~ j i = P ~ j i - 1 - ( 1 - α i , j ) P ~ j - 1 i α i , j , j = n 1 - i - 1 , . . . , n 1 - 1
其中 α i , j = u n 1 - u j u i + j + 2 - u j , i=0,1,...,p-2
(c)计算的最终结果
P 1 , i w = P i w , i = 0 , . . . , n 1 - p - 1 P 1 , i w = P ~ i p - 2 , i = n 1 - p , . . . , n 1 - 1
(4)按照(3)中所述的方法将所述曲线
Figure A200810247339D00156
延伸到点q2,并且设延伸后的曲线为
Figure A200810247339D00157
(5)再按照(3)中所述的方法将所述曲线
Figure A200810247339D00158
延伸到点q3,并且设延伸后的曲线为
Figure A200810247339D00159
,其表示形式为:
C 3 w ( u ) = Σ i = 0 n 3 - 1 N i , U 3 ( u ) P 3 , i w
其中n3是曲线
Figure A200810247339D001511
所含的控制顶点个数且有n3=n+3,
Figure A200810247339D001512
是定义在节点向量序列U3之上的序号为i的B样条基函数,i=0,1,...,n3-1,U3是曲线
Figure A200810247339D001513
的归一化形式的节点向量序列:
U 3 = { v 0 , v 1 , . . . , v n 3 + p } ,
其中v0=v1=…=vp=0, v n 3 = v n 3 + 1 = · · · = v n 3 + p = 1 ;
(6)计算齐次空间曲线
Figure A200810247339D001516
在三维空间中的表示形式C3(u):
C 3 ( u ) = Σ i = 0 n 3 - 1 N i , U 3 ( u ) w 3 , i P 3 , i Σ i = 0 n 3 - 1 N i , U 3 ( u ) w 3 , i
其中w3,i
Figure A200810247339D001518
的最后一维的数值,i=0,1,...,n3-1,设
Figure A200810247339D001519
Figure A200810247339D001520
去掉最后一维后的向量,则 P 3 , i = P 3 , i ′ w 3 , i , i=0,1,...,n3-1。
图3为对曲线C3延伸部分进行修改后与曲线C达到曲率连续的结果,其具体方法如下:
修改曲线C3(u)的两个控制顶点P3,n和P3,n+1及其相应权重w3,n和w3,n+1,使得修改后的曲线C3(u)与曲线C(u)在其交接处即u=1和u=0处实现G2连续,P3,n和P3,n+1以及w3,n和w3,n+1的计算方法如下:
w 3 , n + 1 = w ‾ 0 - β λ ‾ λ ( w ‾ 1 - w ‾ 0 )
P 3 , n + 1 = w ‾ 0 w 3 , n + 1 P ‾ 0 - β λ ‾ λ w 3 , n + 1 ( w ‾ 1 P ‾ 1 - w ‾ 0 P ‾ 0 )
w 3 , n = - χ n + 2 χ n w ‾ 0 + χ n + 1 χ n w 3 , n + 1 + β 2 χ n ( χ ‾ 2 w ‾ 2 - χ ‾ 1 w ‾ 1 + χ ‾ 0 w ‾ 0 )
P 3 , n = - χ n + 2 w ‾ 0 χ n w n P ‾ 0 + χ n + 1 w n + 1 χ n w n P 3 , n + 1 + β 2 χ n w n ( χ ‾ 2 w ‾ 2 P ‾ 2 - χ ‾ 1 w ‾ 1 P ‾ 1 + χ ‾ 0 w ‾ 0 P ‾ 0 )
其中β是待定的正实数值,λ,λ,χn,χn+1,χn+2,χ0,χ1,χ2为常数,定义如下:
λ = p 1 - v n 3 - 1
λ ‾ = p ‾ u ‾ p ‾ + 1
χ n = p ( p - 1 ) ( 1 - v n 3 - 1 ) ( 1 - v n 3 - 2 )
χ n + 2 = p ( p - 1 ) ( 1 - v n 3 - 1 ) 2
χn+1=χnn+2
χ ‾ 2 = p ‾ ( p ‾ - 1 ) u ‾ p ‾ + 1 u ‾ p ‾ + 2
χ ‾ 0 = p ‾ ( p ‾ - 1 ) ( u ‾ p ‾ + 1 ) 2
χ1=χ02
图4为对曲线C3延伸部分进一步修改后实现延伸部分二阶光顺能量值最小的结果,其具体方法如下:
确定β的取值使得延伸曲线二阶光顺能量值最小,所述的二阶光顺能量值定义为:
E = ∫ | | C 3 ′ ′ ( u ) | | 2 du
其中
Figure A200810247339D001612
表示C3(u)的二阶导数,
由于C3(u)的分子分母的各项中只有
Figure A200810247339D00171
为β的多项式函数,其余各项均与β无关,故C3(u)具有如下形式:
C 3 ( u ) = β 4 v 1 ( u ) + β 2 v 2 ( u ) + v 3 ( u ) β 2 c 1 ( u ) + β c 2 ( u ) + c 3 ( u )
其中c1(u),c2(u),c3(u)为已知的关于u的分段多项式函数,v1(u),v2(u),v3(u)为已知的关于u的分段多项式向量值函数,对C3(u)关于u求一阶导数可得:
C 3 ′ ( u ) = Σ i = 0 6 β i v 4 + i ( u ) Σ j = 0 4 β j c 4 + j ( u )
其中c4(u),c5(u),...,c8(u)为已知的关于u的分段多项式函数,v4(u),v5(u),...,v10(u)为已知的关于u的分段多项式向量值函数,再对
Figure A200810247339D0017172655QIETU
关于u求一阶导数可得:
C 3 ′ ′ ( u ) = Σ i = 0 10 β i v 11 + i ( u ) Σ j = 0 8 β j c 9 + j ( u )
其中c9(u),c10(u),...,c17(u)为已知的关于u的分段多项式函数,v11(u),v12(u),...,v21(u)为已知的关于u的分段多项式向量值函数,因而
Figure A200810247339D00176
的表达式为:
| | C 3 ′ ′ ( u ) | | 2 = C 3 ′ ′ ( u ) T C 3 ′ ′ ( u ) = Σ i = 0 20 β i c 18 + i ( u ) Σ j = 0 16 β j c 39 + j ( u )
其中c18(u),c19(u),...,c55(u)为已知的关于u的分段多项式函数,
Figure A200810247339D0017172715QIETU
为分段分式有理函数,使用Mathematica软件可以求出二阶光顺能量值E关于β的表达式,并最终求出最小能量值对应的β。
图5是整个方法的步骤流程图,初始化阶段输入不连续的两条NURBS曲线C和C;对其中的曲线C通过实行三次延伸操作的方式,使得C与曲线C实现G0连续。再调整C曲线延伸部分的控制顶点和相应权重,通过一维黄金分割搜索最小化二阶光顺能量,实现两条曲线的G2连续并且具有最小的光顺能量值。

Claims (1)

1.一种光顺优化的NURBS空间曲线曲率连续拼接的CAD方法,其特征在于,所述方法是在计算机上依次按照如下步骤实现的:
S1:输入不连续的两条NURBS空间曲线C(u)和C(u),对于曲线C(u)其形式为:
C ( u ) = Σ i = 0 n - 1 N i , U ( u ) w i P i Σ i = 0 n - 1 N i , U ( u ) w i
其中u是曲线C(u)的参数,n是曲线C(u)所含的控制顶点个数,Pi是曲线C(u)中序号为i的控制顶点的坐标值,由用户输入,i=0,1,...,n-1,采用三维直角坐标表示,wi是曲线C(u)中序号为i的控制顶点的权重,由用户输入,i=0,1,...,n-1,Ni,U是定义在节点向量序列U之上的序号为i的B样条基函数,i=0,1,...,n-1,U是曲线C(u)的节点向量序列:
U={u0,u1,...,un+p}
其中p是曲线C(u)的幂,由用户输入,u0,u1,...,un+p等为节点向量序列中的节点,其中u0=u1=…=up=0,un=un+1=…=un+p=1,up+1,up+2,...,un-1由用户输入,上述的B样条基函数采用Matlab系统样条工具库中B样条基函数的定义方式;对于曲线C(u)其形式为:
C ‾ ( u ‾ ) = Σ i = 0 n ‾ - 1 N i , U ‾ ( u ‾ ) w ‾ i P ‾ i Σ i = 0 n ‾ - 1 N i , U ‾ ( u ‾ ) w ‾ i
其中u是曲线C(u)的参数,n是曲线C(u)所含的控制顶点个数,Pi是曲线C(u)中序号为i的控制顶点的坐标值,由用户输入,i=0,1,...,n-1,采用三维直角坐标表示,wi是曲线C(u)中序号为i的控制顶点的权重,由用户输入,i=0,1,...,n-1,
Figure A200810247339C0002082858QIETU
是定义在节点向量序列U之上的序号为i的B样条基函数,i=0,1,...,n-1,U是曲线C(u)的节点向量序列:
U ‾ = { u ‾ 0 , u ‾ 1 , . . . , u ‾ n ‾ + p ‾ }
其中p是曲线C(u)的幂,由用户输入,
Figure A200810247339C00024
等为节点向量序列中的节点,其中 u ‾ 0 = u ‾ 1 = · · · = u ‾ p ‾ = 0 , u ‾ n ‾ = u ‾ n ‾ + 1 = · · · = u ‾ n ‾ + p ‾ = 1 , 由用户输入,上述的B样条基函数采用Matlab系统样条工具库中B样条基函数的定义方式;
S2:对曲线C(u)进行向曲线C(u)方向的延伸,其步骤如下:
S21:计算齐次空间中曲线C(u)的B样条表示形式Cw(u),计算方法如下:
C w ( u ) = Σ i = 0 n - 1 N i , U ( u ) P i w
其中
Figure A200810247339C00032
是齐次空间中点Pi的表示形式,i=0,1,...,n-1,采用四维直角坐标表示,其计算方法如下:
P i w = ( w i P i , w i )
计算齐次空间中曲线C(u)的B样条表示形式Cw(u),计算方法如下:
C ‾ w ( u ‾ ) = Σ i = 0 n ‾ - 1 N i , U ‾ ( u ) P ‾ i w
其中
Figure A200810247339C0003083029QIETU
是齐次空间中点Pi的表示形式,i=0,1,...,n-1,采用四维直角坐标表示,其计算方法如下:
P ‾ i w = ( w ‾ i P ‾ i , w ‾ i ) ,
S22:在曲线Cw(u)和曲线Cw(u)之间设定三个齐次空间点q1,q2和q3,分别作为三次曲线延伸的目标点,其中点q1和q2由用户输入,q3设定为曲线Cw(u)的第一个控制顶点,即 q 3 = P ‾ 0 w ,
S23:把曲线Cw(u)延伸到所述的点q1,并且设延伸后的曲线为
Figure A200810247339C00038
其表示形式为:
C 1 w ( u ) = Σ i = 0 n 1 - 1 N i , U 1 ( u ) P 1 , i w
其中n1是曲线
Figure A200810247339C000310
中所含的控制顶点个数,且有n1=n+1,
Figure A200810247339C000311
是曲线
Figure A200810247339C000312
中序号为i的控制顶点的函数值,按照步骤S24所述的方法计算,i=0,1,...,n1-1,
Figure A200810247339C000313
是定义在节点向量序列U1之上的序号为i的B样条基函数,i=0,1,...,n1-1,U1是曲线
Figure A200810247339C000314
的归一化形式的节点向量序列:
Figure A200810247339C000315
其中 a = 1 + | | P 1 , n 1 - 1 w - q 1 | | Σ i = p n - 1 | | C w ( u i + 1 ) - C w ( u i ) | | , ‖·‖表示齐次空间的欧氏距离,
S24:按下述步骤计算曲线中序号为i的控制顶点的值i=0,1,...,n1-1,
S241:设置初值 P ~ j - 1 = P 1 , j w , j=n1-p,...,n1+p
S242:递推计算齐次空间点
P ~ j i = P ~ j i - 1 , j = n 1 - p , . . . , n 1 - i - 2 P ~ j i = P ~ j i - 1 - ( 1 - α i , j ) P ~ j - 1 i α i , j , j = n 1 - i - 1 , . . . , n 1 - 1
其中 α i , j = u n 1 - u j u i + j + 2 - u j , i=0,1,...,p-2
S243:计算
Figure A200810247339C00044
的最终结果
P 1 , i w = P i w , i = 0 , . . . , n 1 - p - 1 P 1 , i w = P ~ i p - 2 , i = n 1 - p , . . . , n 1 - 1
S25:按照步骤S23、S24所述的方法将所述曲线
Figure A200810247339C00046
延伸到点q2,并且设延伸后的曲线为
Figure A200810247339C00047
S26:再按照步骤S23、S24所述的方法将所述曲线
Figure A200810247339C00048
延伸到点q3,并且设延伸后的曲线为
Figure A200810247339C00049
其表示形式为:
C 3 w ( u ) = Σ i = 0 n 3 - 1 N i , U 3 ( u ) P 3 , i w
其中n3是曲线
Figure A200810247339C000411
所含的控制顶点个数且有n3=n+3,是定义在节点向量序列U3之上的序号为i的B样条基函数,i=0,1,...,n3-1,U3是曲线
Figure A200810247339C000413
的归一化形式的节点向量序列:
U 3 = { v 0 , v 1 , . . . , v n 3 + p } ,
其中v0=v1=…=vp=0, v n 3 = v n 3 + 1 = · · · = v n 3 + p = 1 ;
S27:计算齐次空间曲线
Figure A200810247339C000416
在三维空间中的表示形式C3(u):
C 3 ( u ) = Σ i = 0 n 3 - 1 N i , U 3 ( u ) w 3 , i P 3 , i Σ i = 0 n 3 - 1 N i , U 3 ( u ) w 3 , i
其中w3,i
Figure A200810247339C000418
的最后一维的数值,i=0,1,...,n3-1,设
Figure A200810247339C000419
Figure A200810247339C000420
去掉最后一维后的向量,则 P 3 , i = P 3 , i ′ w 3 , i , i=0,1,...,n3-1;
S3:修改曲线C3(u)的两个控制顶点P3,n和P3,n+1及其相应权重w3,n和w3,n+1,使得修改后的曲线C3(u)与曲线C(u)在其交接处即u=1和u=0处实现G2连续,P3,n和P3,n+1以及w3,n和w3,n+1的计算方法如下:
w 3 , n + 1 = w ‾ 0 - β λ ‾ λ ( w ‾ 1 - w ‾ 0 )
P 3 , n + 1 = w ‾ 0 w 3 , n + 1 P ‾ 0 - β λ ‾ λw 3 , n + 1 ( w ‾ 1 P ‾ 1 - w ‾ 0 P ‾ 0 )
w 3 , n = - χ n + 2 χ n w ‾ 0 + χ n + 1 χ n w 3 , n + 1 + β 2 χ n ( χ ‾ 2 w ‾ 2 - χ ‾ 1 w ‾ 1 + χ ‾ 0 w ‾ 0 )
P 3 , n = - χ n + 2 w ‾ 0 χ n w n P ‾ 0 + χ n + 1 w n + 1 χ n w n P 3 , n + 1 + β 2 χ n w n ( χ ‾ 2 w ‾ 2 P ‾ 2 - χ ‾ 1 w ‾ 1 P ‾ 1 + χ ‾ 0 w ‾ 0 P ‾ 0 )
其中β是由步骤S4确定的正实数值,λ,λ,xn,xn+1,xn+2,x0,x1,x2为常数,定义如下:
λ = p 1 - v n 3 - 1
λ ‾ = p ‾ u ‾ p ‾ + 1
χ n = p ( p - 1 ) ( 1 - v n 3 - 1 ) ( 1 - v n 3 - 2 )
χ n + 2 = p ( p - 1 ) ( 1 - v n 3 - 1 ) 2
xn+1=xn+xn+2
χ ‾ 2 = p ‾ ( p ‾ - 1 ) u ‾ p ‾ + 1 u ‾ p ‾ + 2
χ ‾ 0 = p ‾ ( p ‾ - 1 ) ( u ‾ p ‾ + 1 ) 2
x1=x0+x2
S4:确定β的取值使得延伸曲线二阶光顺能量值最小,所述的二阶光顺能量值定义为:
E = ∫ | | C 3 ′ ′ ( u ) | | 2 du
其中
Figure A200810247339C000511
表示C3(u)的二阶导数;由步骤S3知,C3(u)的分子分母的各项中只有
Figure A200810247339C000512
Figure A200810247339C000514
为β的多项式函数,其余各项均与β无关,故C3(u)具有如下形式:
C 3 ( u ) = β 4 v 1 ( u ) + β 2 v 2 ( u ) + v 3 ( u ) β 2 c 1 ( u ) + β c 2 ( u ) + c 3 ( u )
其中c1(u),c2(u),c3(u)为已知的关于u的分段多项式函数,v1(u),v2(u),v3(u)为已知的关于u的分段多项式向量值函数,对C3(u)关于u求一阶导数可得:
C 3 ′ ( u ) = Σ i = 0 6 β i v 4 + i ( u ) Σ j = 0 4 β j c 4 + j ( u )
其中c4(u),c5(u),...,c8(u)为已知的关于u的分段多项式函数,v4(u),v5(u),...,v10(u)为已知的关于u的分段多项式向量值函数,再对
Figure A200810247339C00062
关于u求一阶导数可得:
C 3 ′ ′ ( u ) = Σ i = 0 10 β i v 11 + i ( u ) Σ j = 0 8 β j c 9 + j ( u )
其中c9(u),c10(u),...,c17(u)为已知的关于u的分段多项式函数,v11(u),v12(u),...,v21(u)为已知的关于u的分段多项式向量值函数,因而的表达式为:
| | C 3 ′ ′ ( u ) | | 2 = C 3 ′ ′ ( u ) T C 3 ′ ′ ( u ) = Σ i = 0 20 β i c 18 + i ( u ) Σ j = 0 16 β j c 39 + j ( u )
其中c18(u),c19(u),...,c55(u)为已知的关于u的分段多项式函数,
Figure A200810247339C00066
为分段分式有理函数,因此对
Figure A200810247339C00067
的积分可以得到显式表达式,最后用一维黄金分割搜索法求出最小能量值对应的β。
CN2008102473396A 2008-12-30 2008-12-30 一种光顺优化的nurbs空间曲线曲率连续拼接的cad方法 Expired - Fee Related CN101482979B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102473396A CN101482979B (zh) 2008-12-30 2008-12-30 一种光顺优化的nurbs空间曲线曲率连续拼接的cad方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102473396A CN101482979B (zh) 2008-12-30 2008-12-30 一种光顺优化的nurbs空间曲线曲率连续拼接的cad方法

Publications (2)

Publication Number Publication Date
CN101482979A true CN101482979A (zh) 2009-07-15
CN101482979B CN101482979B (zh) 2010-09-29

Family

ID=40880074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102473396A Expired - Fee Related CN101482979B (zh) 2008-12-30 2008-12-30 一种光顺优化的nurbs空间曲线曲率连续拼接的cad方法

Country Status (1)

Country Link
CN (1) CN101482979B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968819A (zh) * 2012-11-25 2013-03-13 安徽工程大学 一种非圆曲线趋势外推近似智能延伸方法
CN102968821A (zh) * 2012-11-27 2013-03-13 安徽工程大学 一种二次曲线趋势外推精确智能延伸方法
CN103136431A (zh) * 2013-03-26 2013-06-05 山东大学 一种自由曲面的保面积参数特性优化方法
CN103150760A (zh) * 2012-12-31 2013-06-12 深圳市配天数控科技有限公司 获取曲线控制顶点、几何形状的方法及图形处理装置
CN103676786A (zh) * 2013-12-23 2014-03-26 北京航空航天大学 一种基于加速度原理的曲线光顺方法
CN104392021A (zh) * 2014-10-24 2015-03-04 山东大学 一种层次自由曲面的保角参数特性优化方法
CN105426610A (zh) * 2015-11-17 2016-03-23 西京学院 一种基于nurbs可调权因子的钢轨断面廓形参数化建模方法
CN108132645A (zh) * 2016-12-01 2018-06-08 华中科技大学 一种保证刀具轨迹整体g2连续的曲线拟合方法
CN108492372A (zh) * 2018-01-15 2018-09-04 哈尔滨工业大学(威海) 一种b样条曲面的形状编辑方法
CN109557187A (zh) * 2018-11-07 2019-04-02 中国船舶工业系统工程研究院 一种测量声学系数的方法
CN109918807A (zh) * 2019-03-13 2019-06-21 西北工业大学 一种优化曲率的局部刀轨光顺方法
CN110531700A (zh) * 2019-09-09 2019-12-03 西北工业大学 基于三维广义欧拉螺线的空间拐角光顺方法
CN112346411A (zh) * 2020-11-23 2021-02-09 清华大学 使用双nurbs刀具轨迹叶轮数控加工速度控制方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1326732C (zh) * 2003-12-26 2007-07-18 中南大学 流线型列车头部外形与结构的设计、加工方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968819A (zh) * 2012-11-25 2013-03-13 安徽工程大学 一种非圆曲线趋势外推近似智能延伸方法
CN102968821A (zh) * 2012-11-27 2013-03-13 安徽工程大学 一种二次曲线趋势外推精确智能延伸方法
CN103150760A (zh) * 2012-12-31 2013-06-12 深圳市配天数控科技有限公司 获取曲线控制顶点、几何形状的方法及图形处理装置
CN103150760B (zh) * 2012-12-31 2019-02-19 深圳市配天智造装备股份有限公司 获取曲线控制顶点、几何形状的方法及图形处理装置
CN103136431A (zh) * 2013-03-26 2013-06-05 山东大学 一种自由曲面的保面积参数特性优化方法
CN103676786B (zh) * 2013-12-23 2016-05-25 北京航空航天大学 一种基于加速度原理的曲线光顺方法
CN103676786A (zh) * 2013-12-23 2014-03-26 北京航空航天大学 一种基于加速度原理的曲线光顺方法
CN104392021B (zh) * 2014-10-24 2016-04-06 山东大学 一种层次自由曲面的保角参数特性优化方法
CN104392021A (zh) * 2014-10-24 2015-03-04 山东大学 一种层次自由曲面的保角参数特性优化方法
CN105426610A (zh) * 2015-11-17 2016-03-23 西京学院 一种基于nurbs可调权因子的钢轨断面廓形参数化建模方法
CN108132645A (zh) * 2016-12-01 2018-06-08 华中科技大学 一种保证刀具轨迹整体g2连续的曲线拟合方法
CN108492372B (zh) * 2018-01-15 2020-04-03 哈尔滨工业大学(威海) 一种b样条曲面的形状编辑方法
CN108492372A (zh) * 2018-01-15 2018-09-04 哈尔滨工业大学(威海) 一种b样条曲面的形状编辑方法
CN109557187A (zh) * 2018-11-07 2019-04-02 中国船舶工业系统工程研究院 一种测量声学系数的方法
CN109918807A (zh) * 2019-03-13 2019-06-21 西北工业大学 一种优化曲率的局部刀轨光顺方法
CN109918807B (zh) * 2019-03-13 2022-03-11 西北工业大学 一种优化曲率的局部刀轨光顺方法
CN110531700A (zh) * 2019-09-09 2019-12-03 西北工业大学 基于三维广义欧拉螺线的空间拐角光顺方法
CN110531700B (zh) * 2019-09-09 2021-11-23 西北工业大学 基于三维广义欧拉螺线的空间拐角光顺方法
CN112346411A (zh) * 2020-11-23 2021-02-09 清华大学 使用双nurbs刀具轨迹叶轮数控加工速度控制方法及装置

Also Published As

Publication number Publication date
CN101482979B (zh) 2010-09-29

Similar Documents

Publication Publication Date Title
CN101482979B (zh) 一种光顺优化的nurbs空间曲线曲率连续拼接的cad方法
Braumann et al. Parametric robot control
Yau et al. Real-time NURBS interpolation using FPGA for high speed motion control
CN101537567B (zh) 基于模块化的可重构机床设计方法
CN103413175B (zh) 基于遗传算法的闭合非均匀有理b样条曲线光顺方法
CN106384384A (zh) 一种三维产品模型的形状优化算法
CN104597847A (zh) 基于Akima样条曲线拟合的前瞻插补方法
CN108170101A (zh) 面向多项式样条曲线的插补方法及系统
CN100583156C (zh) 一种基于延伸的产品外形空间曲线的拼接方法
CN105068536A (zh) 基于非线性优化方法实现的移动基座轨迹规划器
CN103116698A (zh) 一种基于三次样条的gm(1,1)模型预测方法
CN104317251A (zh) 基于Obrechkoff算法的三次NURBS曲线实时插补方法
CN104239639B (zh) 一种简化变速器壳体拓扑优化模型参数修改的方法
CN103676786B (zh) 一种基于加速度原理的曲线光顺方法
CN105425730A (zh) 一种NURBS曲线Taylor迭代的插补算法
CN103942397B (zh) 基于幂函数的修形齿轮数字化建模方法
CN106777616A (zh) 一种高速水稻钵苗插秧机移箱机构多学科优化设计方法
CN106960082A (zh) 一种机械设计辅助系统及应用方法
CN103942365A (zh) 一种飞机装配型架骨架的关联设计方法
CN103136431B (zh) 一种自由曲面的保面积参数特性优化方法
CN103413049B (zh) 基于机电耦合特性的并联机床结构优化参数值的获取方法
CN106709107A (zh) 一种rv减速器三维参数化建模方法
Rathod et al. Optical CAD modelling and designing of compound die using the python scripting language
CN106933191A (zh) 一种Newton‑Rapson迭代的插补系统
CN107833274A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100929

Termination date: 20181230

CF01 Termination of patent right due to non-payment of annual fee