CNC插补技术(从原理、分类到具体插补算法,较为详细)

版权声明:本文为CSDN博主「qq_39887918」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

对于插补技术的理解与认识

PS:由于第一次写博客没有经验,因此一些图片和公式有所缺失,在此列出文章的目录,仅供参考,若有需要的朋友可自行在文末下载原PDF文档,

1 插补及其算法概述

1.1 什么是插补

CNC系统之所以能够控制刀具中心相对于工件以一定的速度和轨迹运动,切削出工件的轮廓,是由于CNC具有插补功能。所谓的插补就是根据零件轮廓尺寸,结合精度和工艺等方面的要求,按照一定的数学方法在理想的轨迹或者轮廓的已知点之间确定一些中间点,从而逼近理想的工件外形轮廓。也就是说,CNC系统得到的输入信息(G代码)并不是一条完整的直线或者圆弧上面的密集的坐标点,而是一些能表征相关曲线的特征参数,然后根据这些特征参数来自动的计算出这些曲线上的坐标点,从而完成插补功能。

特征点:对于直线,是指两端点的坐标;对于圆弧,是指圆弧的起点、终点、半径、圆心以及顺圆还时逆圆;对于样条曲线,是指建立样条曲线所需要的一些条件。

1.2 插补工作的过程

对于CNC系统的输入信息来说,大多是G代码的形式。而G代码是如何得到的呢?在数控技术中我们学过,可以通过人为的手动输入待加工工件的相关尺寸参数和机床参数,但是这仅限于比较简单的工件轮廓,其大多由直线和圆弧组合而成。对于比较复杂的工件轮廓,如样条曲线,手动编程就行不通了,因为你并不知道该轮廓上的一些特征点。所以对于具有复杂轮廓曲线的工件,大多是使用自动编程的形式来完成G代码的生成。

自动编程主要是借助CAM离线编程系统,将CAD所生成的零件轮廓描述信息转换为CNC系统所能接受的信息(即G代码的形式),然后CNC对G代码进行译码,并通过插补的形式产生刀具的运动轨迹,从而控制机床完成零件的加工。

1.3 插补的分类

目前来说,普遍应用的插补算法主要是分为两类:脉冲增量插补和数字增量插补(数据采样插补)。

脉冲增量插补:脉冲增量插补是指在每次插补计算结束以后产生一个行程增量,以脉冲的方式输出。在插补计算过程中不断向各坐标轴发出互相协调的进给脉冲,驱动电机运动。具体又分为逐点比较法和数字积分法等。

数据采样插补:数据采样插补又称为时间分割法,其原理是将加工一段曲线的时间划分为若干个相等的插补周期,每经过一个插补周期就进行一次插补运算,计算出该插补周期内各坐标轴的进给量,一边计算一边加工。这种算法主要分两步进行:首先是粗插补:计算出插补周期内各坐标轴的移动增量;其次是精插补:根据采样得到的实际位置增量值和指令位置增量值作比较得到跟随误差,然后得到速度指令,输出给伺服系统。

1.4 两种插补方法的比较

首先是插补速度的比较:对于脉冲增量插补来说,计算机每发出一个脉冲,工作台移动一个脉冲当量,每移动一次,系统就进行下一次的插补运算,因此其插补速度仅和插补运算的时间有关。若想要保证一定的速度要求,要么更换运算速度更快的CPU,要么增大脉冲当量。若增大脉冲当量,会使得精度降低,且速度越快,误差越大。它仅适用于中等速度和精度、以步进电机为执行器的开环数控系统。对于数据采样插补来说,插补输出的是下一周期内各轴要移动的距离,而非一个脉冲插补一次,因此这种方法的可以达到较高的进给速度。在实际工作中,刀具并不是根据程序中所设定的速度匀速运动的,而是根据曲线的情况在不断地进行加减速。因此其整体的平均进给速度主要是和控制策略以及曲线的情况有关。

其次是加工精度的比较:无论是脉冲增量插补,还是数据采样插补(又分为各种曲线插补算法),到最后的执行环节都是用微小直线段来逼近曲线,只是这个“微小”的程度不一样。脉冲增量插补的插补误差小于一个当量脉冲,至于误差的具体数值大小,主要取决于机床的制造精度。对于数据采样插补来说分为粗插补和精插补,粗插补有两种方法,一种是微小直线段来逼近曲线,另一种则是直接以曲线本身来进行插补。但是精插补环节一定是用微小直线段来逼近(这里的微小直线段比粗插补中的直线段可能小几个数量级),加工零件的最后都是归结于刀具的移动,刀具则是由电机带动,电机一般是伺服电机,而伺服电机就有一个最小的转动量——即电机收到一个脉冲,产生一个脉冲当量,所以到最微观的层面,都是用直线来逼近曲线。但是插补的误差有大有小,有的CNC系统是以脉冲增量插补(硬件)的形式进行精插补,那么其插补误差小于一个脉冲当量;而有的CNC系统则是以软件的形式进行精插补,那么一个采样周期内所移动的距离可能是几个甚至几百个脉冲当量,因此其插补误差肯定是大于等于一个脉冲当量,但是其误差的数值大小同样和机床本身的制造精度有关。

优缺点比较:脉冲增量插补编程容易,其成本较低,一般不涉及到反馈控制。但是其由于进给速度的限制导致工作效率低,同时精度取决于机床的制造精度。对于数据采样插补,有一个较大的优势就是加工效率比脉冲增量插补高出许多,工件在误差允许范围内也可以达到很高的精度。由于涉及到采样和反馈控制,需要使用伺服电机而非普通的步进电机,因此机床的制造成本较高,编程相对较为复杂,对编程人员的要求较高。
鉴于以上比较,且目前在高速高精度数控系统中,数据采样插补较脉冲增量插补用的较多,因此对于脉冲增量插补不再做过多介绍。在数据采样插补算法中,对于复杂的轮廓曲线加工,其数据模型主要有两种形式,一种是小线段,另一种是参数曲线(如bezier曲线,B样条曲线,NURBS曲线等),其分别对应着两种插补算法:连续小线段插补和参数曲线直接插补。因此,后面着重介绍这两种插补方法。

2 连续小线段插补

在介绍连续小线段插补之前,首先有一个问题,在如今参数曲线(如NURBS)插补能够实现高速高精度加工且优点众多的情况下,为什么我们还要研究连续小线段插补呢?
其中一个很重要的原因和我国制造业的现状有很大的关系。虽然我国是一个机床生产和应用的大国,但是国内的数控技术与国外还存在着很大的差距。国内很多机械厂所配备的机床多是手动机床或者中等档次的数控机床,这些机床通常只具备直线和圆弧插补功能。要利用其加工复杂轮廓曲线的工件,只能用小线段插补的方式。除此之外,虽然有一部分高档机床具备一种或几种形式的曲线直接插补的功能,但是没有任何一种数控系统能够支持所有形式的曲线插补,因此小线段插补是一种有效且切合实际的解决方案。

2.1 连续小线段插补基本原理

连续小线段插补是借助于CAD和CAM工具,在给定误差的范围内,将待加工零件的曲线分割成顺序相连且长度很短的微小直线段并生成相应的G代码,然后经过CNC的解释控制机械平台的运动。如图2.1所示 ,由于小线段的长度很短,因此可以很好的近似曲线。作为描述复杂轨迹的一种标准形式,其误差可控,且数据格式简单,便于CNC进行插补处理。

其具体流程如图2.2所示,首先CNC在收到CAM的传输过来的G代码以后,经过速度前瞻预处理等得到每段直线的长度,以及各段直线端点的速度,最后根据该CNC所允许的最大进给速度和插补周期求出每一段直线上的插补点(图中的红点)。
在这里插入图片描述
的片描述
图2.2 插补点示意图

在插补过程中,首先CNC对于接收到的G代码进行译码,然后根据各轴的脉冲当量和各轴的位移计算出伺服电机的脉冲个数,并根据指定的速度和升降频曲线进行速度规划,生成各周期内的插补数据,然后由硬件产生脉冲信号和方向信号控制电机到达终点。由于每一段直线间都有一定的夹角,为了保证能精确的到达终点,常规方法是保证各衔接点速度为零。这会造成电机频繁启停从而可能导致加工精度以及加工效率的降低。

既然电机的频繁启停会导致精度和效率的降低,那么是否能够找到一种方法来改进这个问题呢?当然可以,电机之所以要频繁的启停是因为每一段直线之间有一定的夹角,由于方向的突变,如果在这个拐点处的速度较高,那么势必会造成过切或者机床振动及冲击过大的问题。如果想要在这个拐点处既能保证一定的精度,又不至于损失太多的速度,那么这个问题就回到夹角这个因素。也就是说,如果我们能够减小甚至消除这个夹角,那么在这个拐点处即可不用减速甚至停止,从而可以极大的提升加工效率及加工精度。

对于拐点处的夹角,理论上是无法消除的,只能尽可能的减小。这个夹角所影响的主要是进给速度,因此对于小线段插补,合理的调整进给速度有助于减小夹角的影响。调整进给速度的措施有多种,首先确定拐点处最小进给速度;随之借助前瞻技术提前判断拐点的位置及曲率,并计算实际的最佳进给速度。通过这两种措施,可以实现拐点处速度不突变,加速度连续等效果。在此基础上,可以做出进一步的改进:在得到拐点处的最佳进给速度以后可以引入加减速控制,使得整段曲线的速度更加平滑,精度更高。另外由于速度和精度是一对矛盾,通常在误差允许的范围内,我们还可以通过牺牲部分精度的方式来提升进给速度。为此可以再进一步的对其加以改进,使得直线段之间的连接更加柔和——即通过添加过渡段的形式来减小夹角。

2.2 拐点处最佳速度的确定

在无需改变刀具运动轨迹的情况下,我们首先可以确定拐点处的最佳速度以避免每段直线的起始和终止点速度为零的问题,一定程度的解决了电机频繁启动的问题。对于最佳速度的求解,我了解到以下几种方法:曲率、各段直线间的约束以及圆弧过渡的方法。

第一种确定拐点的最佳速度的方法,可以通过判断各段直线所对应的曲线曲率来确定。在高曲率段减小速度以保证轨迹精度,低曲率段增大速度以提高加工效率。对于复杂轨迹的插补速度一定要依据轨迹的曲率来合理的确定。

但是CNC所收到的来自CAM的轨迹信息都是由微小的直线段组成,每一段的曲率信息被丢失。由于CAM软件是在给定的误差范围内将曲线分割成长短不一的小线段的过程,因此但是通过每段直线的长度可以大概的得到曲率的大小,如图2.3所示。由于曲线轨迹上的一个微小直线段等效于一个圆弧,因此小线段的长度可以由勾股定理得到
$ L\approx 2\sqrt{2R\delta} $
其中L为弦长,R为圆弧半径,为给定径向误差。由此可知较长的线段对应较低的曲率,反之,较短线段对应较高曲率。
PS:(这种方法来自王世勇的博士论文第二章——《高性能激光机工控制关键技术研究》)
在这里插入图片描述
第二种确定拐点处最佳速度的方法,是通过分析各段直线的长度及端点处的速度、加速度等关系,推导出了衔接点进给速度的全部约束条件,并结合前瞻技术,建立递归不等式模型,找出衔接点的最佳速度。

小线段插补路径如图2.4所示,具体约束条件经过简化以后得到一个递归不等式方程组,如图2.5所示,其中,,分别为两直线段端点处的速度,为实际运动加速度,为最大允许加速度,为最大理论进给速度,、分别为相邻直线段的长度,T为插补周期,这里方程中的Ti是指图中的夹角。
在这里插入图片描述
在这里插入图片描述
这个递归不等式组中,不仅和之前的、有关,还受到下一段的、的约束,因此对于一个有N段的路径,若要找出的最优解,那么就需要迭代N-i次,但是这种方法在N很大时,实时性得不到保证,因此,可以提前设定最大的预处理段数(即为前瞻技术),使得迭代的最大次数不超过,由该论文中的仿真数据可知,当数目越大时,衔接速度就越光滑,进给速度也可以越大,一般情况下取4左右即可达到很好的效果。

PS:(该方法来自王宇晗的文章——《小线段高速加工速度衔接数学模型》)

第三种是用圆弧过渡的方法来确定拐点处最佳速度。受到机床自身机械特性的约束,机床的最大允许法向进给加速度是有限的,因此加工曲率较小的曲线段,实际需要的法向进给加速度可能超过机床允许的最大值,法向进给加速度和进给速度V及曲线圆弧半径r之间有如下关系:
过渡小圆弧可以理解为计算过程中需要的一个模型或者作的辅助线。只是用来限制拐点处的速度,而并不改变刀具的实际路径。如图2.6所示,所做的圆弧圆心在两线段的角平分线上,设拐点到圆弧的最短距离为,则有以下公式成立:
若或者,则取

其中S1,S2分别为直线段的长度,由此再次反求出,最后代入上面(2)式即可求出V。在不变的情况下,对于不同的可以求出不同的r,以满足不同的加工精度。
PS:(该方法来自张得礼的文章——《数控加工运动的平滑处理》)

2.3加减速控制算法

加减速控制是CNC插补速度规划环节中最重要的一环,对于保证机床的平稳性和零件的加工质量起着重要的作用。如果脱离速度控制谈插补算法,那么插补只能用于计算机图形学中,只有将加减速控制与插补算法有机的结合起来才能构成完整的CNC系统运动控制模块。加减速可以分为前加减速和后加减速,前加减速处理在插补运算之前,是对合成速度进行控制,因此不影响位置精度,但是要进行减速点的预测。后加减速是在插补后进行,是对各轴分别进行加减速控制,因此很难保证各坐标轴的精确联动关系。

比较常用的加减速控制算法主要有直线加减速、指数加减速等,这两种算法比较容易实现,但是存在不足。首先但是这两种算法在系统启停阶段的加速度均存在一定的突变,会产生较大的冲击,影响加工精度;其次这种方法和伺服电机的特性不能很好的配合,因为伺服电机转速较高的时候,必然会导致转矩的降低,而直线加减速的方法在加减速过程中加速度保持不变,这就要求伺服系统无论在何种转速下都要提供同样的加速转矩,因此在设计时只能按照电机最高转速的输出转矩来选取加速度,使得电机的特性不能充分发挥。

高速加工要求在进给过程中的速度变化尽可能的平稳,为此国内外对于柔性加减速控制算法进行了一定的研究,如S曲线加减速控制、多项式加减速控制以及三角函数加减速控制等方法。目前很多高档的数控系统都使用了S曲线加减速,其速度曲线和加速度曲线均连续,在加减速过程中避免了柔性冲击。但是其加加速度并不连续,因此柔性受到一定的限制,与此,S曲线加减速控制算法的表达式是分段表达式,涉及的参数较多,因此方程的形式难以确定,甚至可能产生无理方程或者高次方程,难以在微处理器中求解。总的来说,S曲线加减速的柔性不够,且对于程序实现起来较为复杂。

对于S曲线的问题,有的学者提出了多项式(常使用三次)加减速和三角函数加减速控制算法。三次多项式经过两次求导以后得到的加加速度仍然是连续的,解决了柔性的问题,除此之外,多项式在不涉及到分段的问题,因此其算法实现起来相对较为简单。对于三角函数加减速,和多项式类似,经过两次求导以后,其加加速度仍然连续,因此在变速过程中具有更高的柔性,但是涉及到三角函数的计算,因此其计算更加复杂,对于处理器的要求可能更高。

PS:这部分内容由于计算公式较多,因此不做具体的推导,但是以下文章可以作为参考:
1、张得礼等——数控加工运动的平滑处理
2、郭新贵等——一种新型柔性加减速算法
3、冷洪斌等——三次多项式型微段高速自适应前瞻插补方法
4、黄艳等——CNC系统S型曲线加减速算法的设计与实现
5、石川等——数控系统S曲线加减速规划研究

2.4 前瞻控制技术

在高速加工复杂轮廓工件时,加工路径不可避免会遇到拐角或者高曲率点,此时的刀具进给方向可能发生突变,如果速度没有及时的降低,就可能会引起过切,从而影响加工精度。而前瞻控制技术是指CNC在实时插补的同时向前预插补一段距离,提前获知待加工零件的轮廓进给方向上是否有突变点,以及计算出通过该点的最佳速度,使得CNC在正式插补这些点时能够及时的调整进给速度从而避免过切,提高加工精度。

CNC系统中的预插补是什么意思呢?其主要是通过提前读取存储器中的程序段来获取路径信息,并且生成相应的插补信息,根据相应的插补信息实时的调整进给速度以达到自适应的目的。其工作过程如下:CNC在预先得到了加工轨迹的情况下,对轨迹信息进行分析,看小线段之间是否有拐点,若存在拐点,则依据夹角的大小来计算通过该点的最佳进给速度;在计算得到初步的速度以后,再结合线段间的若干个速度约束对当前速度进行修正,最后取满足所有约束的最小速度为通过该点的最佳进给速度。对于前瞻程序段的数目不同,其约束条件的数目便发生改变,进给速度也随之改变,理论上,前瞻程序段越多,即约束条件越多,最后得到的进给速度也更加合适,线段间的速度衔接也变得更加的平滑,这对于提升加工精度和效率有着较为明显的改善。但是实际操作中我们不可能预读太多的程序段,程序段越多,也就意味着需要处理的信息也就越多,需要占用的存储空间也就越多,具体的程序段数需要根据加工的要求来决定。

因此对于前瞻控制算法,其研究内容主要是三个方面,即如何发现速度突变点,如何确定拐角的最佳进给速度,以及如何确定前瞻程序段的数目。

对于前瞻控制技术部分的参考文献:
1、张得礼等——数控加工运动的平滑处理
2、徐志明等——连续微小路径段的高速自适应前瞻插补算法
3、王宇晗等——小线段高速加工速度衔接数学模型
4、朱明等——S型加减速算法前瞻处理研究

2.5 拐角平滑过渡算法

对于复杂轮廓曲线的加工,CAM系统通常是将其用一系列的微小折线段来逼近原设计曲线,并生成由大量微小直线段所组成的数控加工程序。若在高速切削中,CNC按照编程指令进行加工,则势必面临电机频繁启停、冲击较大的问题。对此,前面介绍了几种可以在一定程度上减小此问题的措施。但是前面所介绍的加减速控制算法以及前瞻控制技术等都没有改变刀具的实际移动轨迹,只是对于刀具的移动速度进行约束,使得刀具在拐角处的速度能够实现平滑过渡而不至于减速到零,从而提高加工效率。某些学者将之称为直接过渡法。但是这种方法存在以下问题:转接点的所允许的加工速度仍然较低;转接点的位置和速度难以精确的预测。为解决直接过渡的相关问题,于是许多学者提出在相邻线段之间插入几何元素来实现拐角的平滑过渡——即用精度换取速度。

在相邻线段间插入几何元素过渡是指在保证控制精度的前提下对刀具的轨迹进行一定量的偏移,使得整段曲线的刀具轨迹更加平滑。这种方法比起单纯对速度的平滑效果较好。目前来说,主要有以下几种过渡曲线:微小直线段、圆弧以及样条曲线。

对于使用微小直线段来进行过渡,其实就是之前介绍的直接减小线段间的夹角的方式。其原理图如图2.7所示。以二维平面为例,两段连续的直线段AB和BC,其运动方向为A—>B—>C,一个周期内的位移为。在直线段AB的插补过程中,上一周期结束点为A1,剩余长度为A1B,若其长度大于且小于时,本周期插补结束点为B1,由于直线B1B小于,如果不改变速度方向,则下一插补周期结束以后将到达B2点,造成过切。因此应该在线段BC上寻找一点B3,使得B1B3,从而实现两段连续直线AB和BC之间的平稳过渡。由于BB2=BB3,因此便可以很容易的找到B3点。由于一般的数控系统插补周期很短(一般为8-10ms左右,高档的为1-2ms),且两段直线间的夹角本身就很小,加上过渡曲线以后,其夹角变得更小,因此在下一插补周期中,速度大小可以基本保持不变,只是改变X、Y轴的速度分配比例即可从而实现平滑过渡。
PS:(该方法来自叶佩青的文章——《微小直线段的连续插补控制算法研究》)

对于微小直线段过渡的方法,其算法相对简单,但是其运动轨迹不光滑,一阶导不连续,速度上还是有较大的波动,对于此问题,提出了圆弧过渡的方法。圆弧过渡的关键问题在于求解微小线段的转角点、圆弧的半径以及过渡圆弧所允许的最大加工速度,从而在满足精度的前提下,最大限度的提高微小线段的加工速度。

如图2.8所示,在由分别构成的两相邻小线段之间,插入一段圆弧作为小线段之间的过渡曲线,分别为圆弧的转出点、中点和转入点,其中转出点和转入点处的圆弧分别和两直线段相切。然后在由两直线段所构成的平面内,以点为原点建立平面直角坐标系来计算各点的相对位置,如图2.9所示。
由图中可知,圆心在两线段的角平分线上,由此可以推出距离相等,且其长度即为圆弧过渡的最小距离,根据几何知识可以得到下式。

其中分别为圆心角、两直线段间夹角、圆弧半径、Pi到圆弧的最短距离及过渡距离,通过加上各种约束条件后可以算出实际的转角点位置、圆弧半径以及最佳进给速度。
PS:(该方法来自张晓辉的文章——《面向高速加工的微小线段平滑过渡算法研究》)

除此之外,吕强等人的《数控连续加工中提高鬼几段转接速度的方法研究》中也根据各种限制条件提出使用圆弧过渡的方法来提高转接速度,其数学模型如下图所示。

对于圆弧过渡的方法,其转接点处的曲率可能存在不连续的问题,从而提出使用样条曲线来进行过渡。这种方法的关键在于过渡曲线的次数以及系数的确定,然后选取合适的几何不变量,经过坐标系的变换得到相关点位的坐标,由于其过程相对较为复杂,因此不再做过多的介绍,具体可以参考张晓辉的文章《面向微段高速加工的拐角曲线过渡插补算法》

2.6 小线段插补小结

总结起来,在小线段插补中所要解决的问题主要就是一点——即拐点处速度的平滑过渡。在这个过程中,采取了不少的措施,有直接过渡法,或者是过渡曲线间接过渡法。直接过渡是指进给对整段曲线的速度进行一定的调整,使得其能够在不改变加工轨迹的情况下尽可能的提高加工效率。但是这种方法毕竟有限,于是提出插入几何元素的方式进一步的提高加工速度,这种方式相比前一种来说,效率有所提升,但是程序算法的复杂度也相应的提高。回过头来看,这种插入过渡曲线的方式无非是为了减小直线段间的夹角而进一步的缩短了每段直线的长度,换句话说,可以理解为将CAM系统生成的微小直线段作了进一步的细分,将两段直线分割成了三段来插补,从而使得曲线段更加的光滑。但是这种方式同时也对误差有所放大,如果浏览整条曲线,可以发现这种方式更像是对原设计曲线向内部进行了微量的平移,或者说缩小可能更为贴切。

即使这种插补算法有很多的不足,但是在误差的允许范围内,其加工的零件经济效益仍然较高。因为这种算法在多数数控机床上都能够运行,而无需为了追求高精度和高效率而换用更加高档的具有参数曲线直接插补的数控系统,从而节省了大部分的成本。

3 参数曲线直接插补

对于具有复杂轮廓曲线工件的加工,传统的数控系统必须借助于CAM离线编程系统,将CAD生成的待加工零件的曲线轮廓离散成大量的微段直线或者圆弧进行编程加工。这种方式不仅使得编程复杂、效率低、代码量较大,而且不可避免的会带来逼近误差影响零件的加工精度、表面质量和生产效率。为了克服以上缺点,对此引入一种新型的插补方法——参数曲线直接插补,即让刀具直接沿着几何体本身的复杂路径移动,这不仅减少了离散的数据量,缩减了代码长度,而且可以有效的改善速度和加速度的平滑程度,从而改善工件表面加工质量。

参数插补是指CNC接收到控制点或者型值点序列信息以后,直接生成切削轨迹,并按照给定的进给速度及加速度,换算成各坐标轴的插补周期内的进给量,然后经过实时插补运算,速度规划等输出刀具运动控制指令来加工出零件的轮廓。目前常见的参数插补方法主要有hermite曲线插补、bezier曲线插补、B样条曲线插补、以及NURBS插补。其中B样条曲线插补和NURBS插补是在前面两种曲线插补的基础上发展而来的。目前应用较多的主要是B样条曲线插补和NURBS插补,而NURBS插补又是B样条曲线插补的一次改进,因此其本质都是差不多的。

3.1 B样条曲线插补的基本原理

要实现样条插补,首先必须用样条函数来描述刀具轨迹。其轨迹表达式可以写成如下参数方程的形式:
其中(i=0、1、2、3)为B样条控制点所确定的方程系数,u为参变量,且[0,1]。首先按照给定的插补周期将时间轴分成等间隔的小区间,插补过程中根据进给速度、加速度的要求和允许误差,在各插补周期产生空间小直线段去逼近被插补曲线,从而逐步求得伺服控制所需的各插补直线段端点Pi的坐标值。由于这一插补过程的直接控制量是参变量u,而最终的被控量是插补点的坐标位置以及插补点沿着插补轨迹的移动速度和加速度,因此这个过程涉及到坐标变换(轨迹空间和参变量空间)及逆变换才能实现。

为此在每一个插补周期,首先根据进给速度,加速度以及误差的要求,求出轨迹空间的插补直线段,然后将此直线映射到参变量空间,得到与之相对应的参变量的增量,再进一步将参变量代入参数方程即可求得插补轨迹中当前点的坐标值。

为了提高插补速度,在实时插补之前需要进行预插补处理,其主要任务是根据数控系统得到的输入信息确定插补公式中的待定系数。预插补分为两类:输入信息为控制点或型值点。当输入信息为控制点时,可以直接将控制点的信息代入轨迹方程即可求得方程系数。但是当输入信息为型值点时,需要根据型值点序列和边界条件反求出控制点,然后再计算方程系数。

在预处理之后即进行实时插补运算,实时插补运算的任务是在每一个插补周期中计算插补轨迹上当前点Pi的坐标值(xi,yi,zi),由于插补计算不是一种静态的几何计算,它不但要使当前插补点与前一插补点间的距离满足进给速度和加减速要求,还要保证插补误差在允许的范围内,因此实时插补中以速度为控制目标,允许误差为约束条件来保证插补的精度和效率。

3.2 B样条曲线插补方法

在CNC数控系统中,常见的样条曲线插补方法有以下几种:均匀参数插补、匀速插补和自动调节进给速度插补等。

均匀参数法是指在每个周期T中,利用相等的微小参数增量来计算下一个插补参数。这种插补方法相对来说简单易行,每一次只需要在上一次的基础上增加一个固定的参数增量,并将其代入参数方程,即可解出下一个插补点的坐标值。但是该方法难以确定一个合适值,太大会造成较大的位置误差,使得加工精度降低,太小会导致插补速度较慢,影响加工效率。除此之外,对于样条曲线来说,在每一个插补周期内,其曲率往往并不相同,因此相同的参数增量,却不会将曲线分割成相等的弦长,从而导致刀具的瞬时速度不恒定,插补步长不均匀,引起机床的震动。

既然插补速度不恒定会导致机床震动,那么匀速插补便可以有效的抑制这个问题。但是在另一方面,匀速插补由于没有考虑到加减速过程中的速度变化要求,因此难以保证插补的精度,存在误差难以控制的问题。

针对匀速插补的问题,又提出了一种限定误差的自动调节进给速度的插补算法。该算法在大多数时间内的进给速度是不变的,只有在弓高误差超出允许的范围时才进行调节。这种方法是基于参数递推预估、误差控制、参数校正三个步骤来有效的保证工件的加工精度和加工效率。

3.3 插补参数计算方法

无论是哪种插补方法,回到最本质的问题上还是对于插补参数的求解。目前常用的插补参数计算方法有以下几种:Taylor展开法、微分方程的数值法、迭代逼近法和参数弧长拟合法。

aylor展开法是目前应用最多的插补参数计算方法,一般可以分为一阶Taylor展开、二阶Taylor展开及Taylor预测修正法等。对于一阶Taylor展开求插补参数,首先设为待加工的曲线,曲线参数u的时间函数记为,将参数u对时间t进行一阶Taylor展开可以得到近似计算式:。由此可得下一参数点,可以看到其截断误差为0(T2),误差较大,因此为了减小误差提出二次Taylor展开,其截断误差比一阶Taylor展开小了一个数量级,相对来说精度较高。但是Taylor展开存在一个问题,想要更加精确的下一插补参数点,那就得求更高阶的Taylor展开,这就伴随着更高次的求导。计算比较复杂。

为了避免高次求导,可以将插补参数的计算问题转化为一阶常微分方程来求解,如常用的方法有Adams法。Adams方法首先给定一个插补参数的迭代初值,然后用Adams迭代式进行迭代计算,满足迭代终止条件后,便可以获得新的插补参数,其截断误差为0(T5),因次该方法的精度较高。但是Adams方法计算下一个插补参数时也用到了求导计算,所以计算量同样较大。

基于前两种方法的计算量较大,影响插补的实时性,并且用户无法自主设定误差限,一些学者提出将迭代求值的思想运用到插补计算中,该方法主要是基于“预测—校正”的方法。这种方法避开了样条曲线的导数计算,计算量大大减小,运算效率较高,且允许用户自己设定迭代的终止条件,有利于实现高精度插补。

最后一种是参数弧长拟合法,在参数u与弧长s没有精确的解析式的情况下,直接用样条曲线拟合刀具轨迹,难以高校的计算下一个插补参数。因此可以首先建立参数弧长对应关系,然后采用拟合的方法对下一个插补参数进行估计。

3.4 B样条插补算法的优缺点

对于B样条插补算法来说,其比NURBS插补拥有更简单的参数表达式,而且同样具有局部修改性,但是由于B样条曲线的参数一般都是均匀的,因此其不能很好的通过某个确定的点(主要是起始点和终止点),若需要通过某个点,则控制点两边的曲线会退化成直线,因此灵活性降低。

3.5 NURBS插补

NURBS插补就其本质而言还是属于B样条曲线插补,不过是在B样条曲线插补的基础上添加了一些新的东西。首先就是在插补参数上做出了改动,变成不均匀的参数,这种好处在于可以很灵活的经过某些插值点。其次添加了权因子,使得曲线的控制更加的灵活。某种程度上来说,其更具有一般性,而B样条曲线或者bezier曲线都是其特殊形式。

3.6 NURBS插补原理

对于NURBS刀具轨迹的生成主要是有两种方式,第一种首先是将CAM生成的小线段直线插补轨迹在给定的误差范围内处理成NURBS插补刀轨,再由数控系统对其进行插补运算,这种方式更像是对小线段直线的轨迹平滑策略。在从线性刀轨处理成NURBS刀轨的过程中,说到底还是对小线段轨迹的平滑,因此其增大了误差。如下图所示。

第二种方式即我们常常所说的NURBS插补,也是真正意义上的直接插补。首先CAM系统将CAD中的模型轮廓转化为NURBS曲线,然后CNC根据该曲线中的三类参数(控制点,权因子,节点矢量)进行NURBS插补运算,在内部计算并直接生成了NURBS曲线。由于这种方式不存在将线性刀轨转化为NURBS刀轨的转化误差,因此精度更高。如下图所示。

NURBS曲线的数学模型定义为:

其中Pi为控制顶点;ki为权因子;u为节点矢量。

控制顶点主要是用于确定曲线的位置,通常曲线不经过控制顶点;权因子主要是用于确定控制点的权值,相当于控制点的“引力”,权因子越大,则曲线越接近该控制点,如下图a所示;节点矢量是NURBS曲线中独有的,因为对于B样条曲线来说,其参数分布均匀,因子节点矢量并无用武之地。NURBS曲线随着参数u的变化而变化,与控制顶点相对应的参数点ui为节点,而节点的并集称为节点矢量,NURBS曲线在节点矢量的变化很小时像水流一样短时间内流速很慢,反之变成像急流一样的形状,如图b所示。

可见一条NURBS曲线由三个参数定义,将这三个参数作为NC指令的一部分(如下图所示),由CNC系统内部进行实时计算并生成NURBS曲线,并按照给定速度要求驱动机床运动加工出NURBS曲线,即NURBS曲线的实时插补。

由于NURBS曲线中的节点参数沿着参数轴的分布是不等距的,因此不同节点矢量形成的调配函数(基函数)各不相同,需要单独计算,且算法中增加了权因子,所以曲线轨迹的计算比较复杂。为了提高NURBS曲线插补的实时性,在插补前需要进行必要的预处理。同B样条曲线类似,NURBS插补的预处理同样是为了计算轨迹公式中的有关系数,从而简化实时插补的计算量。

根据CNC系统数据采样插补的工作原理可知,预插补之后需要进行实时插补。实时插补的任务是根据给定的进给速度产生插补直线段,用以逼近实际曲线,求得各坐标轴的进给增量。一般实时插补为了保证速度与精度,常常采用基于参数递推预估与校正的参数曲线插补算法。首先是插补点的预估,采用Taylor展开的方式求插补点参数,然后将参数代入公式计算实际的插补步长,再结合允许误差来判断是否需要对其进行校正,最后取希望步长和误差限定下的步长中的较小值作为实际的插补步长。

3.7 NURBS插补中的速度控制

对于NURBS插补,速度仍然是最重要的因素。无论是加工精度还是加工效率都和进给速度密不可分。目前对于速度控制,主要有两种方式:前瞻控制和基于误差约束的控制。

前瞻控制技术:

NURBS曲线高速插补的前瞻控制技术的基本原理是:首先在预处理过程中,通过对刀具路径文件(G代码)的预处理分析,找到NURBS曲线上刀具进给方向的突变点(曲率极大值处);然后分析机床的加减速性能,找到突变点与机床的动态特性相匹配的进给速度和加速度,并将其作为曲线插补的前瞻控制信息,最后用此前瞻控制信息优化实时插补时的进给速度。前瞻控制信息主要是包含3项内容:曲率极大值点处的参数值、通过该极大值点处的最佳进给速度以及亚降速点的参数值。

曲率极大值点处参数的求解可以对曲线求导来获得,但是其求导过程非常复杂。因此提出另一种方法——遗传算法,可以通过两次使用遗传算法来获得结果,第一次是全局寻优,将曲率曲线划分为多个单峰值区间,第二次为区间寻优,分别对每个区间进行求解来找到极大值。 在找到曲率极大值点后,则开始计算通过该点的最佳进给速度,该速度是基于曲线的几何特性和机床的动力学特性计算出来的。几何特性即为曲线曲率,进给速度与插补精度之间的关系:。其中为满足精度的最大进给合成速度;T为插补周期,为当前的曲率半径;为插补精度公差。除此之外,极大值点速度还必须与机床动态特性相匹配,主要是和机床系统所受的力矩、摩擦力和切削力相关,最后建立凯恩方程可得各轴的运动约束方程。对于求最佳进给速度,首先根据几何特性求出一个预估极大值点速度,然后根据曲线当前的点法矢将合成速度分解为各轴分速度,最后计算各轴的加速度,并将各轴分速度及加速度代入凯恩方程,若符合其不等式,则退出,若不符合则进行修正,直到满足凯恩方程为止,重复多次即可得到极大值点的最佳进给速度。另外在到达极值点之前首先要进行减速处理,因此减速点的求解也显得异常关键,对于减速点的求解同样是基于曲线特性和机床动力学特性来进行,设当前极值点坐标为Pi,参数为ui,极大值点速度为vi,前一个极值点坐标为P i-1,参数为ui-1,则临界弧长为Lc=4(vi-vi-1)T,然后根据下满四个步骤即可求得亚降速点(减速点)。

基于约束条件:

另外一种调节进给速度的方法是根据加工中的弓高误差和机床所能承受的法向加速度等因素,使进给速度既符合加减速的要求,又能随曲线曲率自适应调整。

在插补计算中,插补步长是直接按照插补周期和插补速度生成的,与传统CNC离线插补相比,在相同的进给速度下,它是CNC原理上的最短直线,因此可以获得最高的加工精度,但是尽管如此,对于高精高速加工仍然有轮廓误差。由于插补点均在曲线上,因此没有径向误差,而是以步长为单位的短直线逼近实际曲线的弓高误差,其误差的大小随着插补步长和曲线曲率的增大而增大,因此在实际加工中引入了轮廓误差监控系统来实时监测轮廓误差的大小。当误差在允许范围内时,仍然按照给定的速度计算插补步长,若误差超出了允许范围,则按照允许误差求插补步长,使得插补步长能够随着曲线曲率的变化而自适应的调整以确保轮廓误差不超差。

除了弓高误差以外,还有机床允许的法向加速度也是限制进给速度的因素之一。随着高速切削的发展,机床的切削速度也越来越高,当采用高速切削来加工曲线曲面时,由于曲率的存在,必然会引起较大的进给加速度,若加速度过大,超过机床进给系统动态刚度的设计承受能力,就会给整个系统和零件的加工质量造成严重的影响,因此必须将法向加速度限制在允许的范围内。因此在高速加工时,当它超出允许范围时,就要按照给定的进给加速度要求及时的调整进给速度,且以给定的允许加速度为约束条件,计算相应的进给步长,来代替原来的无约束进给步长。在这两项约束下,都能计算出相应的约束插补步长,因此在同时满足轮廓误差(弓高误差)和法向加速度得约束条件下,取无约束、轮廓误差约束和法向加速度约束这三种情况下的最小插补步长作为最后调整以后的插补步长,然后由插补步长和插补周期反推处约束下的插补进给速度,由此实现自适应控制。

3.8 NURBS插补的特点

NURBS插补之所以能够被广泛的推广使用,是因为其拥有很多其他插补算法所没有的优势:
(1)NC程序量小,NURBS插补以G06.2插补开始,CNC读入G06.2后面的三种参数值,然后进行插补运算,这样只需要给出定义NURBS曲线的三种参数值就能实现NURBS插补。而直线插补时要面对大量的点位信息,这种情况下,要减小误差,那么程序的规模就得扩大,若误差变为原来的一半,则插补程序量就得扩大为原来的2倍。因此NURBS插补程序量比直线插补小得多。
(2)加工精度高,NURBS插补避免了以直代曲,NURBS插补时,CNC自己计算生成NURBS曲线,插补点的计算时间非常短,因此被插补的各点之间间隔也变短,以此提高加工精度,改善了表面质量。
(3)加工效率高,由于机床存在惯性,在小线段插补时,为了在直线段的连接拐角处避免碰撞或者过切,那么要对该点的速度和轨迹进行平滑过渡,加减速处理,因此每到衔接点就要进行降速处理,然后再加速这样一系列的重复动作,使得平均进给速度降低。而NURBS插补在允许的速度方向变化范围内,且曲率一定的情况下,NURBS无需频繁的加减速,从而提高了平均进给速度。

3.9 小结

对于参数曲线插补来说,和小线段插补不同的地方在于这种方式是直接对曲线进行插补,而小线段插补时先将曲线分割成小线段,然后在小线段上再进行插补,每一段小线段上都由若干个插补周期构成,而参数曲线直接插补则是以插补周期内的插补步长为小线段,因此精度较高。

另外和小线段插补相比较,这两种方式在控制上还是有很多的相似之处的,例如都要研究加减速的方法以保证速度的平滑,同时,利用前瞻控制技术,使得加工中的速度能够跟随曲线轨迹特征而自适应的做出相应的调整。

现在参数曲线直接插补方法使用的越来越广泛,并不是因为小线段插补过时了,而是因为现代的处理器运算速度变得更快了,能够很好的将这种插补方法变为实际的生产力,以提高[

参数曲线直接插补部分相关参考文献:

彭芳瑜——NURBS曲线高速插补中的前瞻控制
游有鹏——NURBS曲线高速高精度加工的插补控制
李思益——NURBS曲线高速高精度插补及加减速控制方法研究
杜道山——一种实时前瞻的自适应NURBS插补算法
田锡天——样条插补技术在CNC系统中的应用
盖荣丽——样条曲线插补方法综述
周凯 —— 样条曲线采样插补技术
黄翔——NURBS插补技术在高速加工中的应用研究
游有鹏——参数曲线的自适应插补算法
赵鸿——NURBS曲线插补技术的应用
叶伯生——CNC系统中三次B样条曲线的高速插补方法研究
李国龙——NURBS插补应用研究
孙海洋——CNC参数曲线实时插补进给速度控制方法
金建新——机床系统中任意空间曲线的可控步长插补方法
伍胡平——数据采样插补算法的研究
彭芳瑜——NURBS曲线机床动力学特性自适应直接插补
赵彤——三次均匀B样条曲线高速实时插补研究
杨萍——高速数控加工中NURBS曲线拟合及插补技术的研究
赵国勇——高速高精度数控加工中的NURBS曲线插补的研究
张力——基于三次多项式加减速的NURBS插补前瞻控制算法

下载地址如下:
下载连接
大家如果有积分尽量用积分下载吧,设置的几分很少,意思一下,如果确实没有积分可以留言,可以发邮箱。

  • 112
    点赞
  • 475
    收藏
    觉得还不错? 一键收藏
  • 117
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 117
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值