一种基于弧长的数控系统椭圆插补方法
技术领域
本发明应用弧长计算提出一种新的数控机床的椭圆插补方法,属数控技术领域。
背景技术
在高速发展的现代社会,制造业是一个国家发展的重要依托。数控技术是现代制造业的核心技术,插补技术是数控技术的重要支柱,它是数控制造系统实现轨迹控制的基础。在数控加工中,数控系统要解决控制刀具与工件运动轨迹的问题,在所需的路径或轮廓上的两个已知点之间根据某数学函数确定其中多个中间点位置坐标的运动过程称为插补。其实质是根据有限信息完成“数据密化”的工作。
数控系统中,常用的插补算法主要包括两大类:脉冲增量插补和数据采样插补。前者其速度与进给速度密切相关,可用硬件实现,主要在采用步进电机驱动的数控系统中使用,受到步进电机最高运行频率的限制;后者较之前者有一系列的优点:可以提高进给速度,位置控制更加精确,特别适宜于现代直流、交流伺服电机所组成的闭环或半闭环数控系统。现有的椭圆插补大多使用了早期的脉冲增量插补或者利用弦长近似弧长通过弦长计算中间点位置坐标,这些插补方法在精度和速度方面都不能很好的满足现代数控系统高精高速的要求。
发明内容
为了克服现有技术中椭圆插补算法不能高精加工或者不能高速加工椭圆曲线的不足,本发明提供了一种以近似弧长为计量方式的插补方法,通过曲率分析误差,使用不同的计量变量计算近似弧长,来保证加工的精度,同时保证了加工速度。
本发明为实现上述目的所采用的技术方案是:一种基于弧长的数控系统椭圆插补方法,包括以下步骤:
S01确定所用变量:将整个椭圆利用直角坐标轴分成四个部分,选取数值大的坐标轴为主要变量;
S02求近似弧长:利用曲线弧长积分公式计算弧长,利用高斯-勒让德求积公式简化求积公式;
S03确定进给速度;
S04建立弧长与变量的函数关系:利用分段三次多项式插值公式建立弧长与变量的函数关系;
S05逐步计算插补点坐标进行插补:调整加工速度,根据进给速度和插补周期确定每步进给步长,根据弧长与变量的函数关系和已知点的坐标值,计算各个插补点的位置坐标值。
在插补前,对于中心不在坐标原点的椭圆曲线,需要经过坐标变换到标准位置,即椭圆的横轴与X轴重合,纵轴与Y轴重合。
所述步骤S02中,利用曲线弧长积分公式计算弧长公式为
其中, xk,xk+1为任意两点的变量坐标,s为弧长。
所述步骤S02中,利用高斯-勒让德求积公式简化的求积公式为
所述步骤S03具体为:将给出的点代入到三点高斯-勒让德求积公式中,求出加工的总弧长sM,给出进给速度f,使其为满足下述条件的最大值:
(1)小于机床给出的最大进给速度;
(2)使公式sM=NfT成立;
其中,T为插补周期,N为插补中所用周期的个数。
所述步骤S04具体为:将加工的起始点的变量坐标代入到公式(1)中,求出加工的总弧长S,令n等于S取整后加1,将加工区间均分为n段,即
[xi′,xi+1′],i=0…n-1
从每一段中找到两个三等分点xi1′,xi2′,并令xi0=xi,xi3=xi+1,计算出这四个点到原加工段的起点x0的弧长,得到(xij,sij),j=0,…,3四组数,代入到插值函数:
f(x)=a0+a1x+a2x2+a3x3 (3)
中,求出系数,即可得到在第i段中弧长与横坐标的插值函数
xi=ai0+ai1s+ai2s2+ai3s3,s∈[si0,si3],i∈[1,n] (4)
所述步骤S05具体为:
判断s所在的范围;
求出第一个插补点的坐标值;
求出所有插补点的坐标值。
所述判断s所在的范围具体为:对于给定的进给步长s,找到s所在的插值变量范围,从而确定该范围的变量坐标与弧长插值函数,代入s到公式(4)中,则可求得下一个插补点的变量坐标:
x1=aj0+aj1s+aj2s2+aj3s3,j∈[1,n] (5)
其中n为加工区域的段数。
所述求出第一个插补点的坐标值具体为:将x1代入到 中,则可求得y1,继而求得第一个插补点的坐标值(x1,y1)。则利用 即可求得各轴的进给量。
所述求出所有插补点的坐标值具体为:判断2s所在的范围,代入到相应的插值函数公式(4),即可求得第二个插补点的坐标,并求得进给量;同理,判断is,i∈[1,n]的范围,代入相应的插值函数公式(4),即可求得第i个插值点的坐标及进给量。
本发明具有以下优点:
1.本发明精确地给出了弧长与坐标的关系,明确了计量的方式,保证了精度的要求。
2.确定各点落在椭圆弧上,保证了椭圆的轨迹轮廓。
3.小幅度的控制了插补的速度,既不影响高速又能保证终点的准确性。
4.可推广到其他不能直接计算弧长的曲线插补过程中。
附图说明
图1是本发明方法的整体流程图;
图2x为计量变量示意图;
图3y为计量变量示意图;
图4椭圆参数角与曲率变化关系示意图;
图5依据变量划分曲线示意图;
图6仿真实验显示图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
1 插补预处理
如附图1中的步骤S01所示,在插补之前选择使加工精度满足要求的计量变量x或者y。以第一象限的椭圆曲线插补为例,如果使用x作为计量变量,会出现附图2中的情况:当弧长s一定时,Δxn较之Δx1,Δx2…等小很多。而如果使用y作为计量变量,会出现附图3中的情况:当弧长s一定时,Δyn较之Δy1,Δy2…等小很多。这种情况出现在插补过程中,表现为每进给一步,会在x轴方向或者y轴方向有很小的进给,意味着x轴或者y轴的运动量很小,影响电机的加速度,产生振荡。由此得到结论,不能使用单一的计量变量计算弧长。
为了保证加工精度,分析曲线曲率找到划分不同计量变量的理论依据。如附图4所示,椭圆曲线的曲率k与椭圆的参数角θ的变化关系近似于余弦曲线。在四个象限的跨越处是曲率的最值点,如在第一象限内,θ在0度附近时接近最大值,会出现附图3中Δy1很小的情况,在π/2附近时接近最小值,会出现附图2中Δxn很小的情况。为了避免附图2和附图3中的情况发生,可将加工曲线按y=x和y=-x两条直线分为四个部分,如附图5所示,将椭圆对称的分为四部分,不同的部分加工使用不同的变量计算。
S01步骤的主要任务是:判断加工曲线所在的位置,根据附图5给出的划分方法,确定计量过程所需使用的变量。
2 弧长计算
附图1中的S02步骤是完成弧长的计算过程。选定了使用变量之后,需要使用变量计算弧长。根据曲线弧长积分公式,以变量是x和第一象限某段曲线为例,可得到弧长s为:
(式1),其中 xk,xk+1为任意两点的横坐标
如果给定(式1)中的xk,xk+1,可直接求出弧长s,则进一步通过其反函数在已知xk时求出s与xk+1的关系。但是由于h(x)没有原函数,即积分函数不可积,所以想通过积分直接计算s是不可行的。使用三点高斯-勒让德求积公式对(式1)进行简化,可去掉积分计算,得到:
(式2)
3 根据弧长公式计算进给速度
附图1中的步骤S03主要是为了保证插补终点的准确性。当插补到曲线给定的终点时,插补结束,如果在终点前结束或者终点后结束插补都会造成一定的误差,并且是不可弥补的。
曲线插补时会给定起点和终点,将给出的点代入到三点高斯-勒让德求积公式中,求出加工的总弧长sM。给出一个合理的机床加工速度f,使其既能保证公式sM=NfT(T为插补周期,N为插补中所用周期的个数,并且为整数)的成立,又能满足插补加工的高速要求。即能在整数个插补周期内完成加工。
确定了f之后,每一个插补周期所进给的弧长即可求出,再利用上述算法求插补点,当系统执行了N次该算法时,机床自动停止。这样既保证了机床的高速运转,也保证了插补终点的准确性,减少了不必要的误差发生的可能性。
4 建立弧长与计量变量的函数关系
如果给定了椭圆方程,并给定了s,xk的值,则利用高斯-勒让德求积公式给出弧长近似公式可求出xk+1。但是(式1)太过复杂,不能给出一个xk+1的显式表达式,这就给下一步的计算带来了困难并且阻碍了插补的实时性。所以使用插值公式来表示弧长与横坐标的关系。附图1的步骤S04即为确定函数的过程。
插值是根据给定几个点的坐标值,用比较简单的函数表达式来表示函数特性的逼近方法。中采用常用的分段三次多项式插值方法。分段的三次多项式插值思想:将插值区域分为n段区域,在每段上求出插值函数:
f(x)=a0+a1x+a2x2+a3x3(式3)。
由于是三次多项式,则可取各点为每段的三等分点,将四个已知点代入到函数中求得各系数ai,i=0,1,2,3的值,即得到了具体的分段插值函数。
先将给定加工区域分为n段
将加工的起始点的横坐标代入到(式1)中,求出加工的总弧长S,令n等于S取整后加1,则将加工区间均分为n段,即[xi′,xi+1′],i=0…n-1。
各段处理
从每一段中找到两个三等分点xi1′,xi2′,并令xi0=xi,xi3=xi+1,计算出这四个点到原加工段的起点x0的弧长,得到(xij,sij),j=0,…,3四组数,代入到(式3)中,求出系数,即可得到在第i段中弧长与横坐标的插值函数
xi=ai0+ai1s+ai2s2+ai3s3,s∈[si0,si3,i∈[1,n](式4)。
整个分段函数是连续的。
5 插补过程
附图1中的步骤S05是整个发明的重点:插补的具体过程。
(1)判断s所在的范围
以x为计量变量为例,对于给定的进给步长s,找到s所在的插值变量范围,从而确定该范围的横坐标与弧长插值函数。代入s到(式4)中,则可求得下一个插补点的横坐标:
x1=aj0+aj1s+aj2s2+aj3s3,j∈[1,n](式5)
其中n为加工区域的段数。
(2)求出第一个插补点的坐标值
将x1代入到 中,则可求得y1,继而求得第一个插补点的坐标值(x1,y1)。则利用 即可求得各轴的进给量。
(3)求出所有插补点的坐标值
判断2s所在的范围,代入到相应的插值函数(式4)中,即可求得第二个插补点的坐标,并求得进给量。
同理,判断is,i∈[1,n]的范围,代入相应的插值函数(式4)中,即可求得第i个插值点的坐标及进给量。
由于插值函数为连续的分段函数,则对s的判断只需依次往后找合适的范围即可。
为验证该算法的可行和实用性,以椭圆为例,加工其第一象限曲线部分,将其分成两块以不同的变量处理的曲线段,分割点为:x=1.6641,y=1.6641。根据(式5)分别求出两部分的弧长表达式,并求出两段的弧长s1,s2和段数n1,n2。建立分段插值函数后,对曲线进行插补,模拟仿真结果如附图6所示。其中蓝色线条表示插补结果,红色线条表示原椭圆弧线,从图中可以看出,插补得到的曲线与原曲线可以很好的吻合,证明了该插补算法的可行性。