发明内容
本发明的目的是解决现有五轴数控装置传统插补算法带来的缺陷,提出一种适用于五轴数控装置的轨迹平滑处理方法,以满足五轴数控装置的高速高精加工。
本发明为实现上述目的所采用的技术方案是:适用于五轴数控装置的轨迹平滑处理方法,其特征在于,包括以下步骤:
步骤1:连续读取一段数控指令点序列,识别出满足平滑曲线插补条件的程序段;所述平滑曲线插补条件为程序段的长度介于最小程序段长度和最大程序段长度之间,程序段间夹角大于程序段间允许的最小夹角,弓高误差不大于容差;所述程序段由相邻的两个指令点构成;
步骤2:对满足平滑曲线插补条件的程序段,在相邻指令点间估计出内插点的位置作为第一次修正指令点;
步骤3:对第一次修正指令点进行参数化;
步骤4:利用最小二乘法对参数化的第一次修正指令点的各个坐标轴分量分别拟合成三次样条曲线,求出拟合曲线,利用拟合曲线对第一次修正指令点进行再修正,生成第二次修正指令点,求出该点处的一阶导数矢量和二阶导数矢量;
步骤5:对相邻的第二次修正指令点间的各坐标分量分别构造五次样条曲线,连接成一条完整的平滑曲线,在平滑曲线上进行曲线插补。
所述识别出满足平滑曲线插补条件的程序段的步骤为:连续读取一段数控指令点序列,判断程序段的长度是否短于最小程序段长度,如果程序段的长度不短于最小程序段长度,就判断程序段的长度是否长于最大线程序段长度,如果程序段的长度不长于最大线程序段长度,就判断程序段间的夹角是否小于程序段间允许的最小夹角,如果程序段间的夹角不小于程序段间允许的最小夹角,就判断程序段的弓高误差是否大于容差,如果程序段的弓高误差不大于容差,则该程序段满足平滑曲线插补条件。
如果程序段的长度短于最小程序段长度,则取该程序段的两个指令点的中点作为新的指令点,并滤除该程序段的两个指令点;如果程序段的长度长于最大程序段长度,或者程序段间夹角小于程序段间允许的最小夹角,或者程序段的弓高误差大于容差,则该程序段不满足平滑曲线插补条件。
所述最小程序段长度,最大程序段长度,最小夹角和弓高误差均为数控系统设定的阈值。
所述步骤3采用向心参数化方法,即
式中,i=1,2,3…n-1,为相邻的两个第一次修正指令点的长度。
所述步骤4中,对第一次修正指令点序列Q0,Q1,Q2…Qi-1,Qi…Qn-1,利用最小二乘法对参数化的第一次修正指令点的各个坐标轴分量分别拟合成三次样条曲线,求出拟合曲线的步骤为:
对第一次修正指令点的五个坐标轴分量分别拟合成三次样条曲线;
读入连续的五个第一次修正指令点Qi-2,Qi-1,Qi,Qi+1,Qi+2,对应的参变量为ui-2,ui-1,ui,ui+1,ui+2,五个坐标轴分量所求解的目标函数曲线分别为X(u),Y(u),Z(u),A(u),C(u),构造
其中,j=2,3…n-3,Qjx(uj),Qjy(uj),Qjz(uj),Qja(uj),Qjc(uj)分别为第一次修正指令点Qj的五个坐标轴分量;
令式中目标函数对其系数的偏导数为0,即
将已知Qjx(uj),Qjy(uj),Qjz(uj),Qja(uj),Qjc(uj)的各坐标轴分量值和与之对应参变量值代入式(10),可求出各目标函数系数向量,即确定了拟合曲线。
所述步骤4中利用拟合曲线对第一次修正指令点进行再修正,生成第二次修正指令点的步骤为:
读入连续的五个第一次修正指令点Qi-2,Qi-1,Qi,Qi+1,Qi+2;
令中间三个第一次修正指令点Qi-1,Qi,Qi+1的各坐标分量落在拟合曲线上,求出该拟合曲线对指令点Qi-1,Qi,Qi+1的修正值;
对每五个连续的第一次修正指令点重复上述两步,每个第一次修正指令点Qi,i=3,4…n-4,有三个修正值;
取所述三个修正值的平均值作为指令点Qi的第二次修正指令点Oi。
所述i=2时,取指令点Q2作为第二个第一次修正指令点和第三个第一次修正指令点时,相应的拟合曲线对指令点Q2的修正值Qk+1(u2)、Qk(u2)的平均值作为第二次修正指令点O2;
所述i=n-3,取指令点Qn-3作为第三个第一次修正指令点和第四个第一次修正指令点时,相应的拟合曲线对指令点Qn-3的修正值Qk(un-3)、Qk-1(un-3)的平均值作为第二次修正指令点On-3;
所述i=1时,取指令点Q1作为第二个第一次修正指令点时,相应的拟合曲线对指令点Q1的修正值Qk+1(u1)作为第二次修正指令点O1;
所述i=n-2,取指令点Qn-2作为第四个第一次修正指令点时,相应的拟合曲线对指令点Qn-2的修正值Qk-1(un-2)作为第二次修正指令点On-2;
所述i=0时,直接取第一次修正指令点Q0作为第二次修正指令点O0;
所述i=n-1时,直接取第一次修正指令点Qn-1作为第二次修正指令点On-1。
所述步骤5中在平滑曲线上进行曲线插补的具体方法为,对该平滑曲线采用二阶泰勒展开式计算第i个插补周期插补点的参数值。
本发明具有以下有益效果及优点:
1.提高五轴数控装置的加工效率。本发明将直线轴和旋转轴的折线轨迹转化为样条曲线,插补点的计算是在拟合后的样条曲线上进行,因此,在加工过程中大幅度缩短了折线轨迹部分中相邻指令点间的转接速度,从而缩短加工时间,提高加工效率。
2.提高五轴数控装置的加工精度。本发明在分析CAD/CAM系统产生公差原理的基础上,通过估计直线轴与旋转轴的内插点位置修正原指令点,进而利用最小二乘法恢复原待加工工件的轨迹轮廓,提高加工精度。
3.本发明消除了因折线轨迹而产生的拐角现象,将直线轴和旋转轴的折线轨迹最终转化成C2连续的平滑曲线,在该平滑曲线上计算插补点坐标。该发明有利于保持加工过程速度与加速度的连续性,通过对直线轴与旋转轴进行整体平滑,更有利于五轴数控装置在加工过程中刀具的平稳,提高加工质量。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
如图1所示的总体流程图,本发明采取的步骤如下:
加工轨迹的识别:连续读取一段数控指令点序列,通过对指令点构成的程序段间的长度、夹角、以及弓高误差等因素的计算与分析,识别出满足平滑曲线插补条件的部分
内插点的估计:对上述步骤满足平滑曲线插补的部分,在相邻指令点间估计出内插点的位置作为修正指令点,以使通过内插点构造出来的样条曲线更加接近期望曲线。
指令点参数化:在构造平滑曲线之前,需先对每个指令点进行参数化。
指令点的再修正:利用最小二乘法对上述所求的第一次修正指令点的各个坐标轴分量分别拟合成三次样条曲线,然后利用拟合曲线对第一次修正指令点进行再修正生成第二次修正指令点,并求出该点处的一阶导数矢量和二阶导数矢量。
平滑样条曲线的构造与插补:利用上述步骤所求结果,对相邻的第二次修正指令点间的各坐标分量分别构造五次样条曲线,以连接成一条完整的平滑曲线,最后在该平滑曲线上进行曲线插补。
设五个轴为X轴,Y轴,Z轴,A轴和C轴。
1.加工轨迹的识别
指令点轨迹平滑涉及距离、夹角、以及弓高误差等因素的限制,因此需要先对加工轨迹进行识别,识别过程如图2。首先采用公式(1)来计算相邻指令点间的距离,采用公式(2)计算相邻指令点间的夹角。
指令点间距离计算公式:
指令点间夹角计算公式:
其中L
i为程序段|P
iP
i+1|的长度,
为P
i指向P
i-1的五维矢量,α
i为程序段P
iP
i-1与P
iP
i+1之间的夹角。
设一段待加工指令点序列为P0,P1,P2…Pi-1,Pi…Pn-1,指令点间允许的最小程序段长度为lmin(数控系统设定的一个阈值,可通过给定的参数进行配置)。如果加工指令点序列中间某程序段|Pi-1Pi|<lmin,如图4,则取Pi-1,Pi的中点:
作为新的指令点,同时滤除指令点Pi-1,Pi;若加工指令点序列起始程序段|P0P1|<lmin,则将指令点P1滤除;若加工指令点序列末尾程序段|Pn-2Pn-1|<lmin,则将指令点Pn-2滤除。
设允许的最大线程序段长度为lmax(数控系统设定的一个阈值,可通过给定的参数进行配置)。若加工指令点序列中出现某程序段长度Li>lmax,如图5,则表明该段是一个长直线段,需要保留其几何形状不做平滑处理,遵照原指令点精确加工。
设程序段间允许的最小夹角为αmin(数控系统设定的一个阈值,可通过给定的参数进行配置),当加工指令点序列中出现程序段间夹角过小时,即αi<αmin,如图6,则该部分不符合平滑处理条件,需要遵照原指令点精确加工。
如图7,弓高误差求解示意图,连续读取三个指令点Pi-1,Pi,Pi+1确定一段圆弧,设该圆弧半径为R,程序段Pi-1Pi与PiPi+1之间夹角为θ,δ1与δ2分别为程序段Pi-1Pi与PiPi+1形成的弓高误差,则由此可以得出:
如果求出的弓高误差δ1,δ2均不大于δmin(数控系统设定的一个阈值,可通过给定的参数进行配置),δmin为给定允许的最大容差,则表明该部分符合平滑处理条件;否则,保留相应程序段,遵照原指令点精确加工。
2.内插点的估计
CAD/CAM装置生成指令点往往会落在误差带范围内。此时,多数指令点落在外误差边界曲线上,为了使构造的平滑曲线与期望曲线更加接近,就需要对指令点进行修正,使其落在期望曲线附近。本发明采用求内插点代替原指令点构造平滑曲线的办法,即在相邻指令点间插入内插点作为第一次修正指令点。其求解过程如图8所示。设期望曲线为圆弧,内误差曲线半径为R,指令点落在外误差曲线圆弧上,系统的容差为δ,相邻指令点组成的程序段与内误差曲线相切,切点为M,通过对△AOM和△BOM的计算,便可计算出|AB|和|BM|的比值,从而推导出内插点B、C的位置。
3.指令点参数化
设经过第一次修正后的一段指令点(即内插点)序列为Q0,Q1,Q2…Qi-1,Qi…Qn-1。在拟合成平滑曲线之前,需要先对指令点进行参数化,使得对于每个指令点Qi都对应一个参数ui值。在对指令点平滑处理过程中,鉴于指令点数量大,指令点间距离不均匀等因素,本发明采用向心参数化方法,即:
其中i=1,2,3…n-1,|Li-1|为指令段Qi-1Qi的长度。
4.指令点的再修正
设经过第一次修正后的一段指令点(即内插点)序列为Q0,Q1,Q2…Qi-1,Qi…Qn-1。虽然该序列已经分布于期望曲线附近,但其几何轮廓仍然无法保证是光滑的。因此需要对指令点做进一步修正,实施平滑处理。本发明采用最小二乘法拟合的方法对修正指令点的五个坐标轴分量分别拟合成三次样条曲线:
然后对各个坐标轴分量分别进行第二次修正,最后合成第二次修正指令点。具体过程如下:
读入连续的五个第一次修正指令点Qi-2,Qi-1,Qi,Qi+1,Qi+2,与之对应的参变量为ui-2,ui-1,ui,ui+1,ui+2,设五个坐标轴分量所求解的目标函数曲线分别为X(u),Y(u),Z(u),A(u),C(u),依据最小二乘法拟合的定义,构造:
满足ΔX,ΔY,ΔZ,ΔA,ΔC最小。
其中j=2,3…n-3,Qjx(uj),Qjy(uj),Qjz(uj),Qja(uj),Qjc(uj)分别为第一次修正指令点Qj的五个坐标轴分量。为了满足ΔX,ΔY,ΔZ,ΔA,ΔC最小,即满足目标函数对其系数的偏导数为零:
将已知Qjx(uj),Qjy(uj),Qjz(uj),Qja(uj),Qjc(uj)的各坐标轴分量值和与之对应参变量值代入式(10),即可求出各目标函数系数向量。
确定各坐标轴分量的目标函数曲线之后,利用该曲线对第一次修正指令点进行再修正,其修正过程如图9。让第三个第一次修正指令点各坐标分量落在相应的拟合曲线上,求出新的修正点Oi,并通过对应的曲线几何信息,求出Oi点处的一阶导数矢量O′i和二阶导数矢量O″i。
鉴于最小二乘法满足的仅仅满足距离平方和最小,拟合曲线可能会对某个点的修正值偏大的问题,如图10。本发明采用取平均的办法,即该点作为第二个第一次修正指令点、第三个第一次修正指令点以及第四个第一次修正指令点时拟合曲线对该点的修正值取平均值:
其中,Qk(ui)表示Qk作为第三个第一次修正指令点拟合的曲线对第一次修正指令点Qi修正后的坐标值,i=3,4…n-4。
当i=2时,取该点作为第二个第一次修正指令点,第三修正指令点时拟合的曲线对该点的修正值取平均值。
当i=n-3时,取该点作为第三个第一次修正指令点,第四个第一次修正指令点时拟合的曲线对该点的修正值取平均值。
当i=1时,取该点作为第二个第一次修正指令点拟合的曲线对该点修正的坐标值。
当i=n-2时,取该点作为第四个第一次修正指令点拟合的曲线对该点修正的坐标值。
当i=0或者i=n-1时,保留第一次修正指令点Q0,Qn-1不做进一步修正。
5.平滑样条曲线的构造与插补
设经第二次修正后的一段指令点序列为:O0,O1,O2…Oi-1,Oi…On-1,对各个轴分量分别用n-1段五次样条曲线段进行连接,构造一条完整的C2连续的光滑曲线,最后在该曲线上完成曲线插补。设Oi-1,Oi之间连接的五次样条曲线矢量表达式为:
Oi(u)=Aiu5+Biu4+Ciu3+Diu2+Eiu+Fi (12)
由式(12)可知,五次样条曲线有6个系数,因此,确定曲线需要6个已知条件,而这6个条件由式(11)给出,分别为两个端点的坐标值,一阶导数矢量和二阶导数矢量。五次样条曲线对参变量u的一二阶导数表达式分别为:
O′i(u)=5Aiu4+4Biu3+3Ciu2+2Diu+Ei (13)
O″i(u)=20Aiu3+12Biu2+6Ciu+2Di (14)
因此,可推导出系数求解的矩阵为:
由此,将求解的五次样条曲线进行连接,变可生成一条完整的C2连续的平滑曲线。为了满足插补的实时性,对该曲线采用二阶泰勒展式的办法近似计算第i个插补周期插补点的参数ui值,其计算方式如下:
其中ui-1为第i-1个插补周期的参数值,Vi-1和Ai-1分别为第i-1个插补周期已规划的进给速度和加速度,O′i(ui-1)和O″i(ui-1)分别为在ui-1出的一阶导数矢量和二阶导数矢量,其结果由式(11)给出,其模|O′i(ui-1)|和|O″i(ui-1)|的计算方式如下:
其中Oix(ui-1),Oiy(ui-1),Oiz(ui-1),Oia(ui-1),Oic(ui-1)分别为ui-1处的五个坐标分量。
将各已知量代入式(16)即可求出第i个插补周期的ui值,再将ui代入相应的五次样条曲线表达式中,即可求出第i个插补周期的插补点值。