一种基于进退法的NURBS曲线插补快速预读处理方法与流程

文档序号:11772935阅读:389来源:国知局
一种基于进退法的NURBS曲线插补快速预读处理方法与流程

本发明涉及一种基于进退法的nurbs曲线插补快速预读处理方法。



背景技术:

高速高精加工不仅要求数控系统具备实时的插补算法,而且控制精度必须达到亚微米级,插补算法的实时性甚至决定着高速加工实现的可能性,非均匀有理b样条(non-uniformrationa1b-spline,nurbs)曲线具有良好的形状表达能力,在汽车、飞机、造船等型面零件造型设计和加工制造方面应用越来越广,已成为step-nc中表达自由曲线曲面的唯一形式。以nurbs形式表示的加工文件代码简练,而且没有精度损失,其代码量只有传统nc代码的1/10~1/100,具有微小段直线不可比拟的优势,但是数控系统要能支持nurbs曲线插补,必须先构造nurbs曲线插补器,插补速度和精度直接受插补器影响。

由于待加工nurbs曲线可能存在高曲率和尖角部分,需在正式插补前对曲线进行预先处理,以识别曲线减速特征并进行相应的速度规划调整。因nurbs样条函数的节点参数沿参数轴的分布是不等距的,曲线参数与弧长之间也不存在精确的数学解析关系,导致曲线轨迹点求解、曲线弧长计算、nurbs曲线求导、曲率计算等面临较高计算负载,给算法实现的实时性带来严重影响,因此,前瞻控制的实时性是nurbs插补器成功与否的关键因素,为提高前瞻控制实时性,就要首先对nurbs曲线进行快速预读处理,以满足nurbs曲线高速高精插补插补要求。

相似案例

1)对比文件1:实时前瞻全程加减速控制的nurbs曲线自适应分段插补方法;申请号:200910113894.4;对比文件1的前瞻预处理部分包括如下步骤:用矩形形式表示nurbs曲线进行预处理,采用自适应速度调整算法调整进给速度,并在曲线曲率各极大值处对曲线分段,再进行s曲线加减速处理。其解决实时性的思想是通过三次nurbs曲线矩阵形式,在预处理前先得到系数y0,y1,y2,y3,y0',y1',y2',y3',插补计算时只需要直接调用各项系数,从而大大加快计算速度;该方法在一定程度上降低了计算复杂度,但是,由于nurbs曲线曲率存在曲率平缓区和曲率突变区,而在曲率平缓区一般能满足加工的需求,只有在曲率突变区的点,才有可能导致较高的弓高误差,引起过切等。显然案例1并没有考虑nurbs曲线曲率特性,在曲率平缓区存在冗余处理的问题。

而本发明采用进退法快速倍增或倍减参数步长增量,实现对曲率平缓区曲线的快速离散,通过减少所需处理曲线点的数目,本发明在预处理部分所需处理点数比对比文件1所需处理点数减少约80%,从根本上降低处理的实时性问题。

2)对比文件2:基于机床动力学和曲线特性的nurbs插补方法,申请号:201010546987.9,对比文件2中方法由三个环节组成:预插补、前瞻信息处理和实时插补:预插补环节采用速度自适应调整算法;前瞻信息处理环节首先根据插补点进给速度划分加减速区,然后分别对加减速区进行判断,按照对应的速度模式进行函数速度平滑处理,该方法中预插补处理过程跟本专利快速预读处理所要完成的工作类似,但是,在对比文件2中,其在预插补过程没有考虑如何提高预插补速度,存在冗余处理的情况。

而本发明在实现对比文件2预插补作用的基础上,创新设计进退法减少所需处理的插补点数,处理的点数急剧减少,本发明在预插补部分所需处理点数比对比文件2所需处理点数减少约80%,因此所需处理的时间也大大缩短。



技术实现要素:

本发明要解决的技术问题,在于提供一种基于进退法的nurbs曲线插补快速预读处理方法,使得预处理阶段所需处理点数大大减少,极大的提高了前瞻预处理过程的实时性。

本发明是这样实现的:一种基于进退法的nurbs曲线插补快速预读处理方法,采用进退法对曲线曲率平缓区进行快速离散,使参数步长增量快速变化,减少预处理过程所需处理曲线点的数目的同时检测速度敏感区,并以曲率半径计算函数作为目标函数,采用步长加速法发现速度敏感区曲率半径极小值点,增强了前瞻处理过程中速度敏感区的识别和分析处理速度,达到快速前瞻,具体包括如下步骤:

步骤1、进退法快速识别速度敏感区;

步骤2、速度敏感区曲率极值近似点获取;

步骤3、修正速度敏感区曲率极值点,处理完毕。

进一步地,所述步骤1进一步包括:

以系统最大允许轮廓误差为目标比较值,从某一点出发,按限定的步长往前探索,如果探索点弓高误差小于等于目标值,则以限定指数递增方式增长步长;当探索点弓高误差大于目标值时,一方面从nurbs曲线当前探索点继续往前以初始步长迭代探索直到找到速度敏感区终点,另一方面则缩小步长增量并向后倒退迭代寻找速度敏感区起点。

进一步地,所述步骤1进一步具体为:步长放大倍数可由步长控制因子η控制,同时为使算法收敛,缩小后的步长不小于初始步长;

令目标值为系统最大允许轮廓误差δmax,目标函数式为插补误差函数:

给定nurbs曲线初始探索点的参数为u0,初始步长h0,首先以初始步长h=h0向前搜索一步,即u=u0+h,计算fer(u);

(1)如果fer(u)≤δmax,倍增步长前向探索,

则可知搜索区间[u-h,u]不存在速度敏感点,令h=βh,β为放大系数,且β>1,u=u+h,继续向前探索,为确保[u-h,u]不存在速度敏感区,步长控制因子η应满足η可通过试探和经验进行设定;

(2)如果fer(u)>δmax,缩小步长后向检测,

令u'=u,则可知速度敏感区起点位于区间速度敏感区终点位于其中待求,

i为确定令u=u-h,h=λh,λ为缩小系数,且0<λ<1,令u=u+h,继续探索区间直到使得fer(u)≤δmax,从而确定速度敏感区起点为

ii为确定令步长为初始步长h=h0,从u=u+h0继续向前探索,直到找到一个n值,使得fer(u'+nh0)≤δmax,从而确定速度敏感区终点为

iii探索到一个速度敏感度区区间为h=h0,继续探索下一个速度敏感区,直到全部探索完毕。

4、如权利要求1所述的一种基于进退法的nurbs曲线插补快速预读处理方法,其特征在于:所述步骤2进一步包括:

速度敏感区曲率极小值近似点扫描:以速度敏感区起点开始,计算当前点的曲率半径值并作为初始的曲率半径最小值,然后以参数增量步长h向前计算下一点的参数,并计算出该点的曲率半径值,将该曲率半径值与当前记录的曲率半径最小值比较,如果该点的曲率半径值小于记录的曲率半径最小值,则将该点的曲率半径值作为新的曲率半径最小值,然后继续以参数增量步长h计算下一点,并判断是否是新的曲率半径最小值点,重复以上动作直到搜索到敏感区结束,最后得到该速度敏感区曲率半径极小值近似点的参数。

进一步地,所述步骤2具体为:

步骤21:输入速度敏感区区间令起始点为区间起点,即u=us;

步骤22:根据当前点参数矢量,计算其曲率半径值ρ,初始时以该曲率半径值最为曲率半径最小值,即ρmin=ρ;

步骤23:以参数步长增量h得到下一个曲线点参数u=u+h,并计算其曲率半径值ρ',如果ρ'<ρmin,则以新曲率半径值更新ρmin,即ρmin=ρ';

步骤24:如果没有到达区间尾,则继续执行步骤23,否则执行步骤25;

步骤25:得到速度敏感区曲率半径极小值近似点p,p点参数为u’。

进一步地,所述步骤3进一步包括:

令速度敏感区间[us,ue],步骤2中得到曲率半径极小值近似点p,及其参数u',令p点曲率半径为ρ(u'),最大允许轮廓误差er,可得该点进给速度为

令速度敏感区最低速度为vmin,如果p点与实际曲率极值点速率误差满足下式,则以p点作为速度敏感区曲率极小值点,

|v(u')-vmin|≤ε(4-14)

如果p点与实际曲率极值点速率误差满足式(4-15),则对p点参数按式(4-16)进行修正,

|v(u')-vmin|>ε(4-15)

初始设定ub、uf为u'相邻前后曲线点,根据(4-16)对曲率半径极小值近似点进行修正。然后对修正后的值重新进行判断并迭代进行修正,每修正一次,更新ub、uf,第n次修正后,当误差为正时,取ub=un,否则取uf=un

进一步地,所述步骤3进一步具体步骤为:

步骤31、已知步骤2检测到的曲率半径极值近似点参数为u',步长公差ε,最大允许轮廓误差er,速度敏感区最小进给速度vmin,前一探索点um,后一探索点为un输出修正后的近似曲率极值点u*;

步骤32、初始化,ub=um,uf=un,

步骤33、计算当前近似点速度

步骤34、如果|v(u')-vmin≤ε,则找到满足要求近似曲率半径极值点u*=u',执行步骤36;否则执行步骤35;

步骤35、当v(u')-vmin≥0,修正u1,当v(u')-vmin<0,修正u2,令ub=u1,uf=u2,继续执行步骤33;

步骤36、结束。

本发明具有如下优点:本发明一种基于进退法的nurbs曲线插补快速预读处理方法,在nurbs曲线预处理阶段采用进退法对曲线曲率平缓区进行快速离散,使参数步长增量快速变化,在减少所需处理点的同时检测速度敏感区,从而大幅提高预处理速度;为快速定位速度敏感区曲率极值点(即拐点),以曲率半径计算函数作为目标函数,采用步长加速法定位速度敏感区曲率半径极小值点,增强了预处理过程中速度敏感区的识别和拐点定位速度,通过以上两个环节,提高预处理实时性,为快速前瞻提供快速准确的nurbs曲线预处理信息。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1是一种基于进退法的nurbs曲线插补快速预读处理方法框图。

图2是一种基于进退法的nurbs曲线插补快速预读处理方法的速度敏感区识别流程图。

图3是一种基于进退法的nurbs曲线插补快速预读处理方法的速度敏感区曲率极值点定位流程图。

图4是一种基于进退法的nurbs曲线插补快速预读处理方法的速度敏感区曲率极值点修正流程图。

具体实施方式

本发明具体实施方式:

首先采用进退法式对曲线曲率平缓区进行快速离散,使参数步长增量快速变化,在减少预插补点的同时检测速度敏感区,从而大幅提高预处理速度;为快速定位速度敏感区曲率半径极小值点,以曲率半径计算函数作为目标函数,采用步长加速法定位速度敏感区曲率半径极小值近似点,并进行修正,增强预处理过程中速度敏感区的识别和曲率半径极小值点定位速度,达到快速前瞻目的。具体包含三个步骤:

采用进退法式对曲线曲率平缓区进行快速离散,使参数步长增量快速变化,在减少预插补点的同时检测速度敏感区。

具体过程为:以系统最大允许轮廓误差为目标比较值,从某一点出发,按一定的步长往前探索。如果探索点弓高误差比目标值小,则以指数递增方式增长步长;当探索点弓高误差比目标值大,一方面从当前探索点继续往前以初始步长迭代探索直到找到速度敏感区终点,另一方面则缩小步长增量并向后倒退迭代寻找速度敏感区起点。为避免因步长过大而跨越速度敏感区,步长放大倍数可由步长控制因子η控制,同时为使算法收敛,缩小后的步长缩不小于初始步长。

速度敏感区曲率半径极小值近似点定位:

定位速度敏感区曲率半径极小值近似点的思想为:以速度敏感区起点开始,以步长h向前寻找曲率半径最小值近似点,如果当前点曲率半径值小于已记录最小值,则以当前点曲率半径值替换记录值,直到搜索到敏感区结束,最后得到该敏感区的曲率半径极小值近似点。

速度敏感区曲率半径极小值近似点修正思想:根据拐点其前后相邻的两点对拐点近似位置进行修正,通过最大轮廓误差约束条件对曲率半径极小值近似点进行迭代修正,得到满足加工误差限制的曲率半径极小值近似点位置。

本发明的优点在于:由于待加工nurbs曲线可能存在高曲率和尖角部分,需在正式插补前对曲线进行预先处理,以识别曲线减速特征并进行相应的速度规划调整。为提高前瞻处理实时性,提出进退法对nurbs曲线快速预读处理方法,减少预读处理过程所需曲线点数,实现快速定位速度敏感区的区间,然后通过搜索算法定位速度敏感区曲率半径极小值近似点,并对其进行修正。

该方法较传统自适应速度调整方法所需处理点数减少80%以上,极大了提高了前瞻预处理过程的实时性。

在该方法中,程序预读处理模块对输入的nurbs加工程序提取加工信息进行译码、显示等处理,将提取的nurbs曲线段存储到数据缓冲区(fifo队列)的尾部,接着进行根据机床加工约束条件,对缓冲的nurbs曲线进行快速预读。

扫描速度敏感区:以系统最大允许轮廓误差为目标比较值,从某一点出发,按一定的步长往前探索,如果探索点弓高误差不大于目标值,则以指数递增方式增长步长;当探索点弓高误差比目标值大,一方面从当前探索点继续往前以初始步长迭代探索直到找到速度敏感区终点,另一方面则缩小步长增量并向后倒退迭代寻找速度敏感区起点,为避免因步长过大而跨越速度敏感区,步长放大倍数可由步长控制因子η控制,同时为使算法收敛,缩小后的步长不小于初始步长,最终获得速度敏感区的区间相关信息。

定位速度敏感区曲率半径极小值近似点:获得速度敏感区区间后,以速度敏感区起点开始,以步长h向前寻找速度敏感区曲率半径极小值近似点,如果当前点曲率半径值小于已记录最小值,则以当前点曲率半径值替换记录值,直到搜索到敏感区结束,最后得到该敏感区的曲率半径极小值近似点位置。

速度敏感区曲率半径极小值近似点修正:根据拐点其前后相邻的两点对拐点近似位置进行修正,通过最大轮廓误差约束条件对拐点进行迭代修正,得到满足加工误差限制的曲率半径极小值近似点位置。

如图1所示,程序预读处理模块对输入的nurbs加工程序提取加工信息进行译码、显示等处理,将提取的nurbs曲线段存储到数据缓冲区(fifo队列)的尾部,接着进行根据机床加工约束条件,对缓冲的nurbs曲线进行快速预读,识别曲线的减速特征,获得对应的速度敏感区相关信息,包括速度敏感区起始点位置、速度敏感区曲率半径极小值近似点位置及进给速度等信息,最终形成预处理信息,提供给前瞻模块进行速度规划处理。

如图2所示,曲率连续曲线的速度敏感区位于曲率半径低谷处,采用进退法加快曲率平缓区域的预读处理。进退法识别速度敏感区基本思想为:以系统最大允许轮廓误差为目标比较值,从某一点出发,按一定的步长往前探索。如果探索点弓高误差比目标值小,则以指数递增方式增长步长;当探索点弓高误差比目标值大,一方面从当前探索点继续往前以初始步长迭代探索直到找到速度敏感区终点,另一方面则缩小步长增量并向后倒退迭代寻找速度敏感区起点。为避免因步长过大而跨越速度敏感区,步长放大倍数可由步长控制因子η控制,同时为使算法收敛,缩小后的步长缩不小于初始步长。

令目标值为系统最大允许轮廓误差δmax,目标函数式为插补误差函数:

其中ρ(u)表示参数矢量为u处的点c(u)曲率半径值,v(u)表示参数矢量为u处的点c(u)进给速度值,t为插补周期;

给定初始点u0,初始搜索步长h0,首先以初始步长h=h0向前搜索一步,即u=u0+h,计算fer(u)。

(1)如果fer(u)≤δmax,倍增步长前向探索,

则可知搜索区间[u-h,u]不存在速度敏感点,令h=βh,β为放大系数,且β>1,u=u+h,继续向前探索。为确保[u-h,u]不存在速度敏感区,步长控制因子η应满足η可通过试探和经验进行设定。

(2)如果fer(u)>δmax,缩小步长后向检测

则可知速度敏感区起点位于区间速度敏感区终点位于其中待求。

i为确定令u=u-h,h=λh,λ为缩小系数,且0<λ<1,令u=u+h,继续探索区间直到使得fer(u)≤δmax,从而确定速度敏感区起点为

ii为确定令步长为初始步长h=h0,从u=u+h继续向前探索,直到找到一个n值,使得fer(u'+nh0)≤δmax,从而确定速度敏感区终点为

iii探索到一个速度敏感度区区间为v,继续探索下一个速度敏感区,直到全部探索完毕。

如图2所示,具体算法步骤为:

步骤1:归一化参数区间[0,1],初始步长h=h0,步长放大因子β=2,步长缩小因子令u=h;

步骤2:计算目标函数值

步骤3:如果(fer(u)≤δmax),即误差满足要求,则:如果则倍增步长,令h=βh,否则h=h。令u=u+h,再执行步骤2;

步骤4:如果(fer(u)>δmax),即误差超限,则记录当前点ub=uf=u,执行4.1;

4.1当满足(fer(u)>δmax),循环执行寻找速度敏感区起点;

4.2令h=λh,使步长缩短λ倍;

4.3更新当前点记录,令ub=ub-h,继续执行4.1;

4.4得到第i个速度敏感区起点参数

4.5如果满足(fer(u)>δmax),循环执行,寻找速度敏感区终点;

4.6令uf=uf+h0,步长增加,继续执行4.5;

4.7得到第i个速度敏感区终点参数

步骤5:如果未到曲线尾,继续执行步骤2,否则执行步骤6;

步骤6:输出敏感区间集合

如图3所示为速度敏感区曲率极小值近似点搜索流程图。

由图1流程通过进退法快速扫描曲线,获得各速度敏感区间集合,还需要进一步定位速度敏感区曲率半径极小值近似点。由3次nurbs曲线曲率连续特点,可通过简单的搜索以获取各敏感区曲率极值点最为速度敏感区曲率半径极小值近似点。定位曲率半径极小值近似点的算法思想为:以速度敏感区起点开始,以步长h向前寻找曲率半径最小值点,如果当前计算曲率半径值小于已记录最小值,则以当前点曲率半径值替换记录值,直到搜索到敏感区结束,最后得到该敏感区曲率极值点位置。

如图3所示,具体步骤为:

步骤1:输入速度敏感区区间令起始点为区间起点,即u=us;

步骤2:根据当前点参数矢量,计算其曲率半径值ρ,初始时以该曲率半径值最为曲率半径最小值,即ρmin=ρ;

步骤3:以参数步长增量h得到下一个曲线点参数u=u+h,并计算其曲率半径值ρ',如果ρ'<ρmin,则以新曲率半径值更新ρmin,即ρmin=ρ';

步骤4:如果没有到达区间尾,则继续执行步骤3,否则执行步骤5;

步骤:5:得到速度敏感区曲率半径极小值近似点p,p点参数为u’。

由图2流程定位到的速度敏感区曲率半径极小值近似点与敏感区曲率半径极小值实际点位置存在偏差,偏差大小由探索步长h的值决定。当h越小,所获得点更接近实际位置,但是探索次数也越多;当h越大,探索次数会相应减少,但所获得点与实际位置偏差越大。因此,需要对探索到的拐点进行修正。

令速度敏感区间[us,ue],步骤2中得到曲率半径极小值近似点p,及其参数u’。令p点曲率半径为ρ(u'),最大允许轮廓误差er,可得该点进给速度为

令速度敏感区最低速度为vmin,如果p点与实际曲率极值点速率误差满足下式,则以p点作为速度敏感区曲率极小值点,

|v(u')-vmin≤ε(4-14)

如果p点与实际曲率极值点速率误差满足式(4-15),则对p点参数按式(4-16)进行修正,

|v(u')-vmin|>ε(4-15)

初始设定ub、uf为u'相邻前后曲线点,根据(4-16)对曲率半径极小值近似点进行修正。然后对修正后的值重新进行判断并迭代进行修正。,每修正一次,更新ub、uf,第n次修正后,当误差为正时,取ub=un,否则取uf=un

具体步骤为:

步骤1:已知探索到的近似曲率半径极值点u,步长公差ε,最大允许轮廓误差er,速度敏感区最小进给速度vmin,前一探索点um,后一探索点为un输出修正后的近似曲率极值点u*;

步骤2:初始化,ub=um,uf=un,

步骤3:计算当前近似点速度

步骤4:如果|v(u')-vmin≤ε,则找到满足要求近似曲率半径极值点u*=u',执行步骤6;否则执行步骤5;

步骤5:当v(u')-vmin≥0,修正u1,当v(u')-vmin<0,修正u2,令ub=u1,uf=u2,继续执行步骤3;

步骤6:结束.

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1