CN113111405B - 一种基于改进的二阶振荡pso算法的nurbs曲线拟合方法 - Google Patents
一种基于改进的二阶振荡pso算法的nurbs曲线拟合方法 Download PDFInfo
- Publication number
- CN113111405B CN113111405B CN202110436477.4A CN202110436477A CN113111405B CN 113111405 B CN113111405 B CN 113111405B CN 202110436477 A CN202110436477 A CN 202110436477A CN 113111405 B CN113111405 B CN 113111405B
- Authority
- CN
- China
- Prior art keywords
- points
- point
- curvature
- nurbs curve
- discrete data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 31
- 230000010355 oscillation Effects 0.000 title claims abstract description 20
- 239000013598 vector Substances 0.000 claims abstract description 44
- 238000004364 calculation method Methods 0.000 claims abstract description 6
- 239000002245 particle Substances 0.000 claims description 50
- 230000006870 function Effects 0.000 claims description 24
- 238000013459 approach Methods 0.000 claims description 3
- 230000001351 cycling effect Effects 0.000 claims description 3
- 230000008030 elimination Effects 0.000 claims description 3
- 238000003379 elimination reaction Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 239000002957 persistent organic pollutant Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000005211 surface analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/12—Simultaneous equations, e.g. systems of linear equations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Image Generation (AREA)
- Numerical Control (AREA)
Abstract
本发明公开了一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,包括:获取待拟合离散数据点;对所述离散数据点进行参数化处理;以反曲点和曲率极值点为选取标准,从所述离散数据点中筛选出最能体现其形状和特征的点,记为特征点;得到NURBS曲线的节点向量;将所述特征点在最小二乘法下逼近,反算得到初始控制点;构造所述初始控制点坐标的初始种群并进行种群初始化;建立有效的适应度函数;利用改进的二阶振荡PSO算法对初始控制点的位置进行优化,得到优化后的最优控制点;根据所述节点向量和优化后的最优控制点,拟合生成NURBS曲线。本方法提高了NURBS曲线拟合的准确性和可靠性。
Description
技术领域
本发明涉及逆向工程及计算机辅助设计领域,具体涉及一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法。
背景技术
逆向工程中往往需要依托大量的点云数据来重构实物模型,但在实际测量过程产生的误差较大,故操作人员一般会采用插值或逼近的方法来尽可能的减小误差,从而得到精度较高的曲线。在插值过程中,曲线可以精确的通过每一个离散数据点,因此也会使数据量变得很大,增大数据传输与处理的负担,效率不高。相比之下,逼近拟合的方法既可以调节拟合精度,也可以压缩数据量,无论在航空航天、船舶、汽车制造还是数控机床都得到广泛应用。
NURBS曲线作为参数曲线拟合方法的一种常用曲线,相比于NC代码节省了很多存储空间,而且得益于其稳定的性质以及良好的局部控制能力,在20世纪80年代后期成为用于曲线曲面描述的最为流行的数学方法,也是产品模型数据交换标准STEP中定义自由曲线曲面唯一的表示形式。目前国外很多先进的数控公司如FANUC、SIEMENS、MITSUBISHI等都有成熟规范的NURBS曲线拟合、规划与插补方法,但这些技术处于保密状态,并不对用户开放。
我国制造业在此类技术方面还较为落后,特别是工业4.0在全世界工业领域引起极大讨论和研究以后,从根本上摆脱对国外技术的依赖,弥补国内操作***对曲线曲面解析、插补、路径规划等欠缺成了研究者们努力的方向。
为此需要开发具有完整生产价值的NURBS曲线拟合、插补、速度控制的轨迹规划技术及运行体系。
发明内容
本发明目的是提供一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,其修改了反曲点、曲率极值点的选取标准,将最能反应轨迹形状的这两类点作为特征点代替所有离散数据点;初始控制点坐标展开成一维向量构造粒子初始种群,由改进的二阶振荡PSO算法进行优化,最终使NURBS参数曲线拟合在压缩数据量的基础上仍能保持较高的精度。
为实现上述目的,本申请的技术方案为:一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,包括:
获取待拟合离散数据点;
对所述离散数据点进行参数化处理;
以反曲点和曲率极值点为选取标准,从所述离散数据点中筛选出最能体现其形状和特征的点,记为特征点;
得到NURBS曲线的节点向量;
将所述特征点在最小二乘法下逼近,反算得到初始控制点;
构造所述初始控制点坐标的初始种群并进行种群初始化;
建立有效的适应度函数;
利用改进的二阶振荡PSO算法对初始控制点的位置进行优化,得到优化后的最优控制点;
根据所述节点向量和优化后的最优控制点,拟合生成NURBS曲线。
进一步地,对所述离散数据点进行参数化处理,具体为:采用弦长参数化方法获取离散数据点所对应的NURBS曲线参数,其实现方式为:
将所述离散数据点记为{Qi},i=0,1,…,m,即:共有m+1个离散数据点;
令相邻两个离散点之间的弦长之和为d,
NURBS曲线参数获取方式为:
其中,表示第i个离散数据点所对应的参数值;联立两式可得NURBS曲线对应参数。
进一步地,以反曲点和曲率极值点为选取标准,从所述离散数据点中筛选出最能体现其形状和特征的点,记为特征点M,具体为:
特征点表示为M={Mi|i=0,1,...,s,0≤s≤m},即共有s+1个特征点;
先将首末离散数据点Q0,QM划分为特征点,即Q0=M0,Qm=Ms;其中,M0,Ms则分别代表首末特征点。
进一步地,所述反曲点获取方式为:先求解各相邻坐标点之间的法向量为:
其中,Novi表示第i个点处法向量夹角,表示第i个离散数据点到第i+1个离散数据点的法向量;当所求点处的法向量夹角大于所设阈值时则认为在该点处曲线的凹凸性发生了变化,记为反曲点;
所述曲率极值点获取方式为:遍历所有离散数据点并获得各点的曲率ki、平均曲率kaver和曲率最大值kmax;设定一个介于平均曲率与最大曲率之间的曲率阈值,记为kk;
曲率极值点提取方法如下式所示:
即:若某点曲率不小于所设曲率阈值则认为该点为曲率极值点;若某点曲率介于平均曲率与曲率阈值之间且其前后点的曲率均不大于它,则该点也为曲率极值点;否则,则不是曲率极值点;
结合反曲点和曲率极值点得出能代表离散数据点原型的特征点。
进一步地,得到NURBS曲线的节点向量:基于所述各离散数据点对应的参数值,采用取整法得到节点向量。
更进一步地,将所述特征点在最小二乘法下逼近,反算得到初始控制点,具体为:令首末初始控制点与特征点保持一致,即P0=M0=Q0,Pn=Ms=Qm;其中,P0,Pn分别代表首末初始控制点;另外n-1个初始控制点在最小二乘法下逼近,实现步骤如下:
以特征点与参数曲线对应点的误差平方和作为目标函数,具体公式如下:
其中χ表示目标函数值,Mi代表第i个特征点,C(ui)则代表NURBS曲线在第i个参数处的对应值:
去掉首末特征点与基函数的积之后的点,求解近似曲线如下式:
ζi=Mi-N0,k(ui)M0-Nn,k(ui)Ms
其中,ζi代表近似曲线中第i个点处的值;
联立两式得:
欲使目标函数最小,令这n-1个初始控制点偏导为0,整理得:
其中,γ=1,2,...,n-1;
由此便得到一个包含n-1个方程的方程组:
(NTN)P=ζ
其中,N是(s-1)×(n-1)阶矩阵:
ζ和P均为(n-1)×1阶矩阵:
利用高斯消元法求解方程组,得出n-1个初始控制点;
整合首末控制点组成控制点集,得到全部初始控制点。
更进一步地,构造所述初始控制点坐标的初始种群并进行种群初始化,具体为:将所得到的初始控制点集的二维坐标展开成一维向量的形式,里面的每个元素分别加上[-1,1]之间的一个随机值;对粒子群进行初始化,实现步骤如下:
初始粒子群速度:设置每个个体的初始速度分量为[-6,6]区间内的随机值;
初始化粒子群的惯性因子、学习因子的值;
设定粒子群的最大迭代次数。
更进一步地,建立有效的适应度函数,具体为:以特征点与NURBS曲线对应参数之间的误差平方和作为适应度函数,其定义如下:
其中,fit(INPi)表示第i个粒子群个体的适应度,Mj为第j个特征点位置向量,为特征点Mj参数化后的值。
作为更进一步地,在所述步骤S8中,利用改进的二阶振荡PSO算法对初始控制点的位置进行优化,得到优化后的最优控制点,其具体步骤如下:
获取初始种群各个粒子的适应度值;
更新粒子的速度和位置,其对应公式分别为:
vj(λ+1)=θ×vj(λ)+μ1(ηjd-(1+σ1)φjd(λ)+σ2φjd(λ-1))+μ2(ηgd-(1+σ3)φjd(λ)+σ4φjd(λ-1))
φjd(λ+1)=φjd(λ)+vj(λ+1)
其中,vj(λ+1)代表第j个粒子在第λ+1次迭代时的速度;θ为惯性因子;μ1,μ2为学习因子,其取值范围μ1=μ2∈[0,4];σ1,σ2,σ3,σ4为[0,1]区间内的随机参数;粒子在D维空间内搜索,φjd(λ)表示第λ次迭代中第j个粒子位置向量的第d维分量;ηjd表示第j个粒子个体最优解的第d维分量;ηgd则表示全局最优解的第d维分量;
比较每个粒子的当前位置与经历过的位置的适应度值,若当前位置更好,则更新个体最优值,反之不更新;
每个粒子的个体最优值与全局的其他粒子的个体最优值相比较,将位置最优的个体的位置更新为截至本次迭代的全局最优值;
判断是否达到最大迭代次数,若是,则停止迭代;反之,再次更新粒子的速度和位置,重新获取各粒子适应度值;如此循环,直到达到最大迭代次数;
输出优化后的控制点最优值,并将其调整为二维坐标,构成新的优化后的控制点集。
作为更进一步地,根据所述节点向量和优化后的最优控制点,拟合生成NURBS曲线,具体为:将一条k次NURBS曲线的定义为:
其中,k表示NURBS样条曲线的次数,u为自变量;Pi(i=0,1,...,n)表示n+1个控制点;ωi为与控制点相对应的权因子,首末权因子ω0,ωn>0,其余ωi≥0;Ni,k(u)是k次NURBS曲线基函数,满足De Boor递推关系式:
本发明由于采用以上技术方案,能够取得如下的技术效果:
1、本发明提供的基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,修改了反曲点和曲率极值点的选取标准,将最能反应轨迹形状的两类点作为特征点代替所有离散数据点,在保证拟合精度的基础上极大的压缩了数据量;采用最小二乘法反算控制点时,不规定初始控制点具体个数,实现了数据量的二次压缩。
2、本发明采用改进的二阶振荡PSO算法进行优化调整,不像遗传类算法必须先将原问题转化为离散组合的优化问题,避免了离散误差。
3、本发明在标准PSO算法的基础上加入了二阶振荡环节,并且在振荡环节采用互不相同的参数取值来调节PSO算法,使其避免了PSO算法易陷入局部最优、过早收敛的问题,提高了NURBS曲线拟合的准确性和可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中NURBS曲线拟合的总流程图;
图2是本发明实施例中输入的待拟合离散数据点图;
图3是本发明实施例中所提取到的特征点图;
图4是本发明实施例中由最小二乘法计算得到的初始控制点图;
图5是本发明实施例中由改进的二阶振荡PSO算法优化后的最优控制点图;
图6是本发明实施例中由改进的二阶振荡PSO算法优化后形成的NURBS曲线拟合图形效果图;
图7是本发明实施例中由改进的二阶振荡PSO算法优化后进行NURBS曲线拟合形成的拟合误差效果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,该方法流程图如图1所示,包括以下步骤:
S1、获取待拟合离散数据点,待拟合离散数据点的效果图如图2所示;
S2、对所述离散数据点进行参数化处理;
其可以采用弦长参数化方法获取离散数据点所对应的NURBS曲线参数,具体操作如下;
将所得离散数据点记为{Qi},i=0,1,…,m,即:共有m+1个离散数据点;
令相邻两个离散点之间的弦长之和为d,
获取NURBS曲线对应参数为:
其中,表示第i个离散数据点所对应的参数值;联立两式可得NURBS曲线对应参数。
S3、以反曲点和曲率极值点为选取标准,从所述离散数据点中筛选出最能体现其形状和特征的点,记为特征点,如图3所示;
特征点表示为M={Mi|i=0,1,...,s,0≤s≤m},即共有s+1个特征点;
为保持待拟合数据形状的完整性,需要保证其两端的离散数据点不被筛选掉,因此先将首末离散数据点Q0,QM划分为特征点,即Q0=M0,Qm=Ms。其中,M0,Ms则分别代表首末特征点;
步骤S3-1、首先提取反曲点,其具体步骤包括:
步骤S3-1-1、由下式求解各相邻坐标点之间的法向量
其中,Novi表示第i个点处法向量的夹角,则表示第i个离散数据点到第i+1个离散数据点的法向量值;
步骤S3-1-2、设定参考阈值为θmax=160°。当所求点处的法向量夹角大于该阈值时则认为在该点处曲线的凹凸性发生了变化,记为反曲点;
步骤S3-2、其次,提取曲率极值点,其具体步骤包括:
步骤S3-2-1、遍历所有离散数据点并计算各点的曲率ki、平均曲率kaver和曲率最大值kmax;
步骤S3-2-2、为防止噪声等潜在因素影响,设定一个介于平均曲率与最大曲率之间的曲率阈值kk=3kmax/4;
曲率极值点提取方法如下式所示:
即:若某点曲率不小于所设曲率阈值则认为该点为曲率极值点;若某点曲率介于平均曲率与曲率阈值之间且其前后点的曲率均不大于它,则该点也为曲率极值点;否则,则不认为是曲率极值点。
步骤S3-3、整合反曲点和曲率极值点得到特征点M={Mi|i=0,1,...,s,0≤s≤m};
S4、得到NURBS曲线的节点向量;
基于所得到的各离散数据点的参数值,采用取整法得到所述的节点向量,具体步骤如下;节点向量记为U=[u0,u1,...,uk,uk+1,...,un,un+1,...,un+k+1];首先规定前k+1和后k+1个节点向量分别为0和1,如下式所示:
其中k为NURBS曲线的阶次;
设定参数ε=int(D)表示不大于D的最大整数,其中D为反应离散数据点与特征点之间个数对应关系的函数,表达式为:
其中,m+1表示离散数据点的个数,s+1表示特征点的个数;
获取节点向量的表达式如下式,
其中,ε表示不大于βD的最大整数,β为自变量,α为介于[0,1]之间的比重参数;公式联立得出节点向量U。
S5、将所述特征点在最小二乘法下逼近,反算得到初始控制点,如图4所示;
步骤S5-1、为防止出现首末位置不可控和非线性问题,令首末初始控制点与特征点保持一致,即P0=M0=Q0,Pn=Ms=Qm;其中,P0,Pn分别代表首末初始控制点。
步骤S5-2、另外n-1个初始控制点在最小二乘法下逼近,具体步骤如下:
步骤S5-2-1、以特征点与参数曲线对应点的误差平方和作为目标函数,具体公式如下式:
其中,χ表示目标函数值,Mi代表第i个特征点,C(ui)则代表NURBS曲线第i个参数处的对应值:
步骤S5-2-2、去掉首末特征点与基函数的积之后的点,求解近似曲线如下式;其中,ζi代表近似曲线中第i个点处的值;
ζi=Mi-N0,k(ui)M0-Nn,k(ui)Ms
联立两式,得:
欲使目标函数最小,令这n-1个初始控制点偏导为0,整理得:
其中,γ=1,2,...,n-1;
由此便得到一个包含n-1个方程的方程组:
(NTN)P=ζ
其中,N是(s-1)×(n-1)阶矩阵:
ζ和P均为(n-1)×1阶矩阵:
步骤S5-2-3、通过使用高斯消元法求解关系方程组,得出剩下的n-1个初始控制点P={(Pix,Piy)|i=1,2,…n-1};
步骤S5-2-4、整合之前的首末控制点组成控制点集,由此得到全部初始控制点P={(Pix,Piy)|i=0,2,…n};
S6、构造所述初始控制点坐标的初始种群并进行种群初始化;
步骤S6-1、构造初始种群,具体步骤如下:
步骤S6-1-1、将初始控制点集P={(Pix,Piy)|i=0,2,…n}的二维坐标展开成一维向量的形式,记为pop=(x0,x1,...,xn,y0,y1,...,yn);
步骤S6-1-2、构造初始种群POP={POP1,POP2,…,POPT},T为种群数量;每一个粒子个体POPl(0<l<=T)均由一维向量pop=(x0,x1,...,xn,y0,y1,...,yn)里面的每一个元素分别加上[-1,1]之间的一个随机值得到;
步骤S6-2、对粒子群进行初始化,具体步骤如下:
步骤S6-2-1、初始粒子群速度:设置每个个体的初始速度分量v为[-6,6]区间内的随机值;
步骤S6-2-2、初始化粒子群的惯性因子θ=1、学习因子μ1=μ2=2;
步骤S6-2-3、设定粒子群的最大迭代次数λmax=200;
S7、建立有效的适应度函数;
以特征点与NURBS曲线所对应参数之间的误差平方和作为适应度函数,即:
其中,fit(INPi)表示第i个粒子群个体的适应度,Mj为第j个特征点位置向量,为特征点Mj参数化后的值。
S8、利用改进的二阶振荡PSO算法对初始控制点的位置进行优化,得到优化后的最优控制点,如图5所示;
步骤S8-1、由上述步骤S7获取初始种群各个粒子的适应度值;
步骤S8-2、更新粒子的速度和位置。粒子的速度和位置更新公式分别为:
vj(λ+1)=θ×vj(λ)+μ1(ηjd-(1+σ1)φjd(λ)+σ2φjd(λ-1))+μ2(ηgd-(1+σ3)φjd(λ)+σ4φjd(λ-1))
φjd(λ+1)=φjd(λ)+vj(λ+1)
其中,vj(λ+1)表示第j个粒子在第λ+1次迭代时的速度,θ为惯性因子;μ1,μ2为学习因子,其取值范围一般取μ1=μ2∈[0,4];σ1,σ2,σ3,σ4为[0,1]区间内的随机参数;粒子在D维空间内搜索,φjd(λ)表示第λ次迭代中第j个粒子位置向量的第d维分量;ηjd表示第j个粒子个体最优解的第d维分量;ηgd则表示全局最优解的第d维分量。
步骤S8-3、比较每个粒子的当前位置与经历过的位置的适应度值,若当前位置更好,则更新个体最优值,反之不更新;
步骤S8-4、每个粒子的个体最优值与全局的其他粒子的个体最优值相比较,将位置最优的个体的位置更新为截至本次迭代的全局最优值ηg;
步骤S8-5、判断是否达到最大迭代次数λmax=200,若是,则停止迭代;反之,再次由步骤S8-2更新粒子的速度和位置,重新计算各粒子适应度值;如此循环,直到达到最大迭代次数;
步骤S8-6、输出优化后的控制点最优值Pηg=(xg0,xg1,...,xgn,yg0,yg1,...,ygn),并将其调整为二维坐标,构成新的优化后的控制点集Pg=(Pgi(xgi,ygi)|i=0,1,...,n)。
S9、根据所述节点向量和优化后的最优控制点,拟合生成NURBS曲线,如图6所示。一条k次NURBS曲线的一般化定义为:
其中,k表示NURBS样条曲线的次数(本实施例中以3次NURBS曲线为研究对象),u为自变量;Pi(i=0,1,...,n)表示n+1个控制点;ωi为与控制点相对应的权因子,首末权因子ω0,ωn>0,其余ωi≥0;Ni,k(u)是k次NURBS曲线基函数,满足De Boor递推关系式:
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (9)
1.一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,其特征在于,包括:
获取待拟合离散数据点;
对所述离散数据点进行参数化处理;
以反曲点和曲率极值点为选取标准,从所述离散数据点中筛选出最能体现其形状和特征的点,记为特征点;
得到NURBS曲线的节点向量;
将所述特征点在最小二乘法下逼近,反算得到初始控制点;
构造所述初始控制点坐标的初始种群并进行种群初始化;
建立有效的适应度函数;
利用改进的二阶振荡PSO算法对初始控制点的位置进行优化,得到优化后的最优控制点,其具体步骤如下:
获取初始种群各个粒子的适应度值;
更新粒子的速度和位置,其对应公式分别为:
vj(λ+1)=θ×vj(λ)+μ1(ηjd-(1+σ1)φjd(λ)+σ2φjd(λ-1))+μ2(ηgd-(1+σ3)φjd(λ)+σ4φjd(λ-1))
φjd(λ+1)=φjd(λ)+vj(λ+1)
其中,vj(λ+1)代表第j个粒子在第λ+1次迭代时的速度;θ为惯性因子;μ1,μ2为学习因子,其取值范围μ1=μ2∈[0,4];σ1,σ2,σ3,σ4为[0,1]区间内的随机参数;粒子在D维空间内搜索,φjd(λ)表示第λ次迭代中第j个粒子位置向量的第d维分量;ηjd表示第j个粒子个体最优解的第d维分量;ηgd则表示全局最优解的第d维分量;
比较每个粒子的当前位置与经历过的位置的适应度值,若当前位置更好,则更新个体最优值,反之不更新;
每个粒子的个体最优值与全局的其他粒子的个体最优值相比较,将位置最优的个体的位置更新为截至本次迭代的全局最优值;
判断是否达到最大迭代次数,若是,则停止迭代;反之,再次更新粒子的速度和位置,重新获取各粒子适应度值;如此循环,直到达到最大迭代次数;
输出优化后的控制点最优值,并将其调整为二维坐标,构成新的优化后的控制点集;
根据所述节点向量和优化后的最优控制点,拟合生成NURBS曲线。
2.根据权利要求1所述一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,其特征在于,对所述离散数据点进行参数化处理,具体为:采用弦长参数化方法获取离散数据点所对应的NURBS曲线参数,其实现方式为:
将所述离散数据点记为{Qi},i=0,1,…,m,即:共有m+1个离散数据点;
令相邻两个离散点之间的弦长之和为d,
NURBS曲线参数获取方式为:
其中,表示第i个离散数据点所对应的参数值;联立两式可得NURBS曲线对应参数。
3.根据权利要求1所述一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,其特征在于,以反曲点和曲率极值点为选取标准,从所述离散数据点中筛选出最能体现其形状和特征的点,记为特征点M,具体为:
特征点表示为M={Mi|i=0,1,...,s,0≤s≤m},即共有s+1个特征点;
先将首末离散数据点Q0,QM划分为特征点,即Q0=M0,Qm=Ms;其中,M0,Ms则分别代表首末特征点。
4.根据权利要求1或3所述一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,其特征在于,所述反曲点获取方式为:先求解各相邻坐标点之间的法向量为:
其中,Novi表示第i个点处法向量夹角,表示第i个离散数据点到第i+1个离散数据点的法向量;当所求点处的法向量夹角大于所设阈值时则认为在该点处曲线的凹凸性发生了变化,记为反曲点;
所述曲率极值点获取方式为:遍历所有离散数据点并获得各点的曲率ki、平均曲率kaver和曲率最大值kmax;设定一个介于平均曲率与最大曲率之间的曲率阈值,记为kk;
曲率极值点提取方法如下式所示:
ki≥kk or
即:若某点曲率不小于所设曲率阈值则认为该点为曲率极值点;若某点曲率介于平均曲率与曲率阈值之间且其前后点的曲率均不大于它,则该点也为曲率极值点;否则,则不是曲率极值点;
结合反曲点和曲率极值点得出能代表离散数据点原型的特征点。
5.根据权利要求1所述一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,其特征在于,得到NURBS曲线的节点向量:基于所述各离散数据点对应的参数值,采用取整法得到节点向量。
6.根据权利要求1所述一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,其特征在于,将所述特征点在最小二乘法下逼近,反算得到初始控制点,具体为:令首末初始控制点与特征点保持一致,即P0=M0=Q0,Pn=Ms=Qm;其中,P0,Pn分别代表首末初始控制点;另外n-1个初始控制点在最小二乘法下逼近,实现步骤如下:
以特征点与参数曲线对应点的误差平方和作为目标函数,具体公式如下:
其中χ表示目标函数值,Mi代表第i个特征点,C(ui)则代表NURBS曲线在第i个参数处的对应值:
去掉首末特征点与基函数的积之后的点,求解近似曲线如下式:
ζi=Mi-N0,k(ui)M0-Nn,k(ui)Ms
其中,ζi代表近似曲线中第i个点处的值;
联立两式得:
欲使目标函数最小,令这n-1个初始控制点偏导为0,整理得:
其中,γ=1,2,...,n-1;
由此便得到一个包含n-1个方程的方程组:
(NTN)P=ζ
其中,N是(s-1)×(n-1)阶矩阵:
ζ和P均为(n-1)×1阶矩阵:
利用高斯消元法求解方程组,得出n-1个初始控制点;
整合首末控制点组成控制点集,得到全部初始控制点。
7.根据权利要求1所述一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,其特征在于,构造所述初始控制点坐标的初始种群并进行种群初始化,具体为:将所得到的初始控制点集的二维坐标展开成一维向量的形式,里面的每个元素分别加上[-1,1]之间的一个随机值;对粒子群进行初始化,实现步骤如下:
初始粒子群速度:设置每个个体的初始速度分量为[-6,6]区间内的随机值;
初始化粒子群的惯性因子、学习因子的值;
设定粒子群的最大迭代次数。
8.根据权利要求1所述一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,其特征在于,建立有效的适应度函数,具体为:以特征点与NURBS曲线对应参数之间的误差平方和作为适应度函数,其定义如下:
其中,fit(INPi)表示第i个粒子群个体的适应度,Mj为第j个特征点位置向量,为特征点Mj参数化后的值。
9.根据权利要求1所述一种基于改进的二阶振荡PSO算法的NURBS曲线拟合方法,其特征在于,根据所述节点向量和优化后的最优控制点,拟合生成NURBS曲线,具体为:将一条k次NURBS曲线的定义为:
其中,k表示NURBS样条曲线的次数,u为自变量;Pi(i=0,1,...,n)表示n+1个控制点;ωi为与控制点相对应的权因子,首末权因子ω0,ωn>0,其余ωi≥0;Ni,k(u)是k次NURBS曲线基函数,满足De Boor递推关系式:
规定
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110436477.4A CN113111405B (zh) | 2021-04-22 | 2021-04-22 | 一种基于改进的二阶振荡pso算法的nurbs曲线拟合方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110436477.4A CN113111405B (zh) | 2021-04-22 | 2021-04-22 | 一种基于改进的二阶振荡pso算法的nurbs曲线拟合方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113111405A CN113111405A (zh) | 2021-07-13 |
CN113111405B true CN113111405B (zh) | 2023-08-29 |
Family
ID=76719589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110436477.4A Active CN113111405B (zh) | 2021-04-22 | 2021-04-22 | 一种基于改进的二阶振荡pso算法的nurbs曲线拟合方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113111405B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451378A (zh) * | 2017-09-05 | 2017-12-08 | 电子科技大学 | 一种三坐标测量叶片截面采样点提取方法 |
CN111738397A (zh) * | 2020-06-17 | 2020-10-02 | 江苏师范大学 | 一种基于遗传粒子群算法的nurbs曲线拟合方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10102671B2 (en) * | 2017-02-09 | 2018-10-16 | Wisconsin Alumni Research Foundation | Systems for generalizing non-uniform rational B-spline and application of systems |
-
2021
- 2021-04-22 CN CN202110436477.4A patent/CN113111405B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451378A (zh) * | 2017-09-05 | 2017-12-08 | 电子科技大学 | 一种三坐标测量叶片截面采样点提取方法 |
CN111738397A (zh) * | 2020-06-17 | 2020-10-02 | 江苏师范大学 | 一种基于遗传粒子群算法的nurbs曲线拟合方法 |
Non-Patent Citations (1)
Title |
---|
基于自适应遗传算法的B样条曲线拟合的参数优化;孙越泓;魏建香;夏德深;;计算机应用(07);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113111405A (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110516388B (zh) | 基于调和映射的曲面离散点云模型环切刀轨生成方法 | |
Hajivassiliou et al. | Simulation of multivariate normal rectangle probabilities and their derivatives theoretical and computational results | |
Gálvez et al. | A new iterative mutually coupled hybrid GA–PSO approach for curve fitting in manufacturing | |
CN110390638B (zh) | 一种高分辨率三维体素模型重建方法 | |
CN110728219A (zh) | 基于多列多尺度图卷积神经网络的3d人脸生成方法 | |
CN115203865B (zh) | 一种基于数字孪生的产品装配过程机械性能在线预测方法 | |
Ren et al. | Generative model-driven sampling strategy for the high-efficiency measurement of complex surfaces on coordinate measuring machines | |
CN112578089B (zh) | 一种基于改进tcn的空气污染物浓度预测方法 | |
CN112884236B (zh) | 一种基于vdm分解与lstm改进的短期负荷预测方法及*** | |
CN113052955A (zh) | 一种点云补全方法、***及应用 | |
CN115455588A (zh) | 涡轮叶片精铸模具型面反变形设计方法 | |
CN110738363A (zh) | 一种光伏发电功率预测模型及其构建方法和应用 | |
CN113111405B (zh) | 一种基于改进的二阶振荡pso算法的nurbs曲线拟合方法 | |
CN117593204A (zh) | 一种基于超体素邻近聚类的点云实例分割方法 | |
CN112232565A (zh) | 基于两阶段的时间序列预测方法、预测***、终端及介质 | |
CN111079353A (zh) | 应用于复杂流体分析的快速均匀网格划分的方法及装置 | |
CN115859521A (zh) | 基于神经网络的铣削加工误差重建方法及*** | |
CN112597649B (zh) | 一种强弱耦合的无网格静电场数值计算方法 | |
Winter et al. | NURBS-based shape and parameter optimization of structural components with an adaptive amount of control points | |
Fan et al. | Arbitrary surface data patching method based on geometric convolutional neural network | |
CN113066172A (zh) | 一种基于云模型和神经网络的三维模型分类方法 | |
CN112991402A (zh) | 一种基于改进差分进化算法的文物点云配准方法及*** | |
Almasri et al. | Shape related constraints aware generation of Mechanical Designs through Deep Convolutional GAN | |
Beielstein et al. | Design of evolutionary algorithms and applications in surface reconstruction | |
CN113033669B (zh) | 一种基于可学习的特征图过滤与图注意力网络的视觉场景识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |