发明内容
本发明的目的是针对上述技术方案的不足,提供一种能对曲率急剧变化点进行有效S型加减速控制的NURBS曲线插补算法。
为了实现上述目的,本发明提供的技术方案为:一种速度敏感点分段NURBS曲线的S型加减速控制插补算法,包括如下步骤:
对NURBS曲线表达式进行处理;
对NURBS曲线进行预插补;
在曲线速度敏感点处对NURBS曲线分段处理;
采用S型加减速控制方法对各分段曲线进行速度规划。
上述对NURBS曲线表达式进行处理的步骤为:将三次NURBS曲线采用矩阵形式表达,并根据NURBS曲线的特征参数计算系数,具体地,
三次NURBS曲线第i段的矩阵表达式为:
其中,Pi(t)为位置矢量,wi为权因子,di为控制点,i=0,1,2,…n-4,n为控制顶点数目,Mi为四阶系数矩阵,t=(u-ui)/(ui+1-ui),节点矢量U=[u0,u1,...,un+k+1],k为曲线阶次,u∈[ui,ui+1];
整理上述表达式得到:
Pi(t)=(ai0+bi0t+ci0t2+ei0t3)/(ai1+bi1t+ci1t2+ei1t3),
其中,
根据已知参数wi,di,且Mi仅与节点矢量U有关,可计算出ai0,bi0,ci0,ei0,ai1,bi1,ci1,ei1的值。
上述对NURBS曲线进行预插补的步骤为:
(3-1)采用下述二阶泰勒插补计算公式计算插补点参数u值:
其中Vi为对应插补点的进给速度,T为插补周期,(x',y',z')及(x",y",z")为分别对应插补点坐标值(x,y,z)的一阶和二阶偏导数;
(3-2)确定进给速度和弦高误差的关系:
针对当前插补点参数ui计算曲率半径ρi和弦高误差δi,
其中Li为弦长,
设定最大加工误差为δmax,则当前进给速度Vi与弦高误差δi的关系为:
其中F是进给速度指令值,如果曲线上当前插补点曲率半径足够小,则弦高差可能超过最大值,此时需要对进给速度Vi调整为以满足弦高误差要求,否则以给定进给速度F进行插补;
(3-3)将步骤(3-2)中得到的V代入步骤(3-1)中的二阶泰勒插补公式计算下一插补点参数u1+1;
(3-4)重复以上(3-1),(3-2),(3-3)步骤,直到完成整个NURBS曲线的预插补。
上述在曲线速度敏感点处对NURBS曲线分段处理的步骤为:
(4-1)获取整个NURBS曲线上任意一点Pi曲率值,找出曲率值的极大值点对应参数u的集合U1;
(4-2)在极大值点集合U1中,选择对应向量与间夹角θ大于90度的点作为曲线速度敏感点的集合U2;
(4-3)以曲线速度敏感点的集合U2为分段点对NURBS曲线进行分段;
(4-4)根据预插补步骤的计算结果,计算各分段曲线的轨迹长度Lseg。
上述采用S型加减速控制方法对各分段曲线进行速度规划的步骤为:
(5-1)S型加减速控制方法位移公式为:
式中,
其中,A为最大加速度,J为最大加加速度,t1,t2,t3为加速段时间,t4为匀速段时 间,t5,t6,t7为减速时间;
(5-2)各分段曲线闭区间内进给速度顺序经历加速、匀速和减速三个阶段,利用步骤(5-1)中S型加减速控制方法根据插补周期T分别对加速和减速阶段进行速度规划,得到各分段曲线在每一个插补周期内的进给速度;
(5-3)将获得的进给速度代入预插补公式计算出插补点参数u,再将插补点参数u代入NURBS曲线的矩阵表达式,得到各插补点的坐标值。
本发明在速度敏感点处对NURBS曲线进行分段处理,再采用S型加减速控制方法,使得速度敏感点处进给速度符合加减速运动规律,避免了敏感点处加工对系统的冲击,使进程平稳运行,提高了加工质量。
具体实施方式
下面结合具体的实施方式及附图对本发明作进一步的详细描述。
一种速度敏感点分段NURBS曲线的S型加减速控制插补算法,包括如下步骤:
对NURBS曲线表达式进行预处理;
对NURBS曲线进行预插补;
在曲线速度敏感点处对NURBS曲线分段处理;
采用S型加减速控制方法对各分段曲线进行速度规划。
上述对NURBS曲线表达式进行预处理的步骤为:将三次NURBS曲线采用矩阵形式表达,并根据NURBS曲线的特征参数计算系数,具体地,
三次NURBS曲线第i段的矩阵表达式为:
其中,Pi(t)为位置矢量,wi为权因子,di为 控制点,i=0,1,2,…n-4,n为控制顶点数目,t=(u-ui)/(ui+1-ui),节点矢量U=[u0,u1,...,un+k+1],k为曲线阶次,u∈[ui,ui+1],Mi为四阶系数矩阵,其中 ,以此类推,特别的
整理上述表达式得到:
Pi(t)=(ai0+bi0t+ci0t2+ei0t3)/(ai1+bi1t+ci1t2+ei1t3),
其中,
根据已知参数wi,di,且Mi仅与节点矢量U有关,可计算出ai0,bi0,ci0,ei0,ai1,bi1,ci1,ei1的值。
上述对NURBS曲线进行预插补的步骤为:
(3-1)采用下述二阶泰勒插补计算公式计算插补点参数u值:
其中Vi为对应插补点的进给速度,T为插补周期,(x',y',z')及(x",y",z")为分别对应插补点坐标值(x,y,z)的一阶和二阶偏导数;
(3-2)确定进给速度和弦高误差的关系:
针对当前插补点参数ui计算曲率半径ρi和弦高误差δi,
其中Li为弦长,
如图1所示,设定最大加工误差为δmax,则当前进给速度Vi与弦高误差δi的关系为:
其中F是进给速度指令值,如果曲线上当前插补点曲率半径足够小,则弦高差可能超过最大值,此时需要对进给速度Vi调整为以满足弦高误差要求,否则以给定进给速度F进行插补;
(3-3)将步骤(3-2)中得到的V代入步骤(3-1)中的二阶泰勒插补公式计算下一插补点参数u1+1;
(3-4)重复以上(3-1),(3-2),(3-3)步骤,直到完成整个NURBS曲线的预插补。
上述在曲线速度敏感点处对NURBS曲线分段处理的步骤为:
(4-1)获取整个NURBS曲线上任意一点Pi曲率值,找出曲率值的极大值点对应参数u的集合U1;
(4-2)在极大值点集合U1中,选择对应向量与间夹角θ大于90度的点作为曲线速度敏感点的集合U2;
(4-3)以曲线速度敏感点的集合U2为分段点对NURBS曲线进行分段;
(4-4)根据预插补步骤的计算结果,计算各分段曲线的轨迹长度Lseg。
上述采用S型加减速控制方法对各分段曲线进行速度规划的步骤为:
(5-1)S型加减速控制方法速度公式为:
式中,
对应地,S型加减速控制方法位移公式为:
式中,
其中,A为最大加速度,J为最大加加速度,t1,t2,t3为加速段时间,t4为匀速段时间,t5,t6,t7为减速时间;
(5-2)各分段曲线闭区间内进给速度顺序经历加速、匀速和减速三个阶段,利用步骤(5-1)中S型加减速控制方法根据插补周期T分别对加速和减速阶段进行速度规划,得到各分段曲线在每一个插补周期内的进给速度;
(5-3)将获得的进给速度代入预插补公式计算出插补点参数u,再将插补点参数u代入NURBS曲线的矩阵表达式,得到各插补点的坐标值。
上述步骤(5-2)中具体调整方法为:
读取当前加工分段曲线轨迹长度Lseg,并记当前加工分段曲线已加工轨迹长度为S,进给速度由最大降为0所需最短轨迹长度为so。
(a)进行加加速段速度规划。若v1<v1,且Lseg-s>s继续步骤(a);若v1>v1,且Lseg-s>s转入步骤(b);若v1<v1,且Lseg-s<s转入步骤(g)。
(b)进行匀加速段速度规划。若v1<v2,且Lseg-s>s继续步骤(b);若v1>v2,且Lseg-s>s转入步骤(c);若v1<v2,且Lseg-s<s转入步骤(f)。
(c)进行减加速段速度规划。若v1<v3,且Lseg-s>s继续步骤(c);若v1≥v3,且Lseg-s>s转入步骤(d);若v1<v3,且Lseg-s<s转入步骤(e)。
(d)进行匀速段速度规划。若Lseg-s>so继续步骤(d);若Lseg-s<so转 入步骤(e)。
(e)进行加减速段速度规划。若v1>v5,继续步骤(e);若v1<v5转入步骤(f)。
(f)进行匀减速段速度规划。若v1>v6,继续步骤(f);若v1<v6转入步骤(g)。
(g)进行减减速段速度规划。循环步骤(g)直至v1=0。
对每分段曲线进行步骤(a)~(g)的S型加减速速度规划以完成整个NURBS曲线的插补。
本发明在速度敏感点处对NURBS曲线进行分段处理,再采用S型加减速控制方法,使得速度敏感点处进给速度符合加减速运动规律,避免了敏感点处加工对系统的冲击,使进程平稳运行,提高了加工质量。
以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。