参数曲线轨迹伺服轮廓误差的实时测定方法与流程

文档序号:14488477阅读:433来源:国知局
参数曲线轨迹伺服轮廓误差的实时测定方法与流程

本发明属于机电系统伺服控制领域,具体涉及到参数曲线轨迹控制系统中伺服轮廓误差的实时测定技术。



背景技术:

多轴轮廓运动伺服控制系统在数控机床、机器人、光刻设备等有广泛应用。在多轴伺服控制系统中,由系统控制系统引入的轮廓误差对轨迹精度具有直接影响。为了对伺服轮廓误差进行监视以便改进工艺和参数,或者对误差进行校正控制,需要对轮廓误差进行准确测定。一般需要根据各伺服电机反馈的各轴各时刻位置坐标,以及理论轨迹的数学表达式,对轮廓误差进行计算。随着多轴伺服运动控制系统的应用日趋复杂化,运动轨迹已由简单的直线、圆弧等轨迹逐渐过渡到自由参数曲线轨迹。然而,参数曲线轨迹的数学表达相对复杂,其轮廓误差的计算难度较大,更难以实现在控制中实时进行测定。

伺服轮廓误差定义为伺服系统实际位置到理论轨迹曲线的距离。此距离通常是无法直接测量的,一般是通过测量各运动轴的伺服电机的实际位置,对轮廓误差进行间接计算。对于伺服轨迹的轮廓误差测定可分为离线计算和实时测定两类方法。离线计算可根据轮廓误差的定义,列出实际轨迹中每个点到理论参数轨迹的距离方程,并通过求极值或最优化等方法进行计算。由于距离方程一般是非线性高阶方程,无法获得解析解,需要应用数值计算方法进行反复迭代。另外根据定义得到的方程含有多个解,需要解出多个候选解并进行取舍,计算量非常大。实时测定方法通常采用近似处理,通过对轮廓误差进行几何或代数上的近似处理,并利用伺服系统中各轴跟踪误差的信息,简化了轮廓误差的计算,从而能够应用于伺服轮廓误差的在线实时测定。但是现有的近似计算方法高速、高曲率复杂轨迹情况下的计算精度普遍较差,因此难以实现精确的轮廓误差实时测定。随着数字化伺服控制系统计算能力的提升,以及高速高精度运动控制器需求的日益增长,急需在实时伺服轮廓误差测定中实现更加精密、完善的计算方法,但当前尚缺少有效的实时高精度测定方法。



技术实现要素:

本发明的目的是为了克服现有技术中的不足,提供一种参数曲线轨迹伺服轮廓误差的实时测定方法,可以解决现有测定方法精度低、效率差等缺点。

本发明的目的是通过以下技术方案实现的:

参数曲线轨迹伺服轮廓误差的实时测定方法,假设轨迹的参数曲线方程为轨迹对应的参数u范围为[us,ue],算法开始前进行初始化,将足点参数变量u0初始化为曲线起点处的参数值us,同时设定邻域搜索范围变量ε1、ε2、ε3(均大于0),区间端点搜索点数n(n>1),对于给定的位置矢量定义垂直度函数f(u)为矢量与曲线切矢的内积(u∈[us,ue]),之后在每个伺服控制周期内,计算当前轮廓误差,具体步骤如下:

(1)读取当前各轴伺服电机位置反馈,确定当前实际位置设置足点丢失标志位lost为0;

(2)比较u0与当前伺服指令位置对应的曲线参数uc,若u0≥uc,令足点搜索区间左端点变量ua=uc,足点搜索区间右端点变量ub=min(ua+ε1,ue),进入步骤(9);否则,进入步骤(3);

(3)计算u0和uc处的曲线切矢

(4)计算的内积若d<0,进入步骤(5);否则,进入步骤(6);

(5)令ub=uc,ua0=max(u0-ε2,us),调用区间端点搜索方法搜索ua,即ua=ueps(ub,ua0),进入步骤(9);

(6)若f(u0)>0,令ua=u0,调用区间端点搜索方法搜索ub,即ub=ueps(ua,uc),进入步骤(9);否则,进入步骤(7);

(7)若f(u0)<0,令ub=u0,ua1=max(u0-ε3,us)调用区间端点搜索方法搜索ua,即ua=ueps(ub,ua1),进入步骤(9);否则,进入步骤(8);

(8)令u0保持不变,进入步骤(12);

(9)计算f(ua)和f(ub);若f(ua)·f(ub)>0,进入步骤(10);否则,进入步骤(11);

(10)置lost标志位为1,若|f(ua)|<|f(ub)|,令u0=ua;否则,令u0=ub;进入步骤(12);

(11)调用非线性方程数值解法在区间[ua,ub]内搜索垂直度函数方程f(u)=0的根令更新后的

(12)计算伺服轮廓误差大小

在运动控制期间,控制器在每个伺服控制周期内重复上述步骤(1)~(12),即可实现参数曲线轨迹运动中伺服轮廓误差的实时高精度测定。

步骤(5)、(6)、(7)中的区间端点搜索方法uep=ueps(uss,use)包括以下步骤:

(a1)计算f(uss)。

(a2)若f(uss)=0,令搜索结果变量uep=uss,返回;否则,进入步骤(a3);

(a3)令搜索步长δu=(use-uss)/n,搜索点数计数变量i=1;

(a4)计算f(uss+i×δu);

(a5)若f(uss+i×δu)·f(uss)≤0,令uep=f(uss+i×δu),返回;

(a6)令i=i+1,若i<n,返回步骤(a4);否则,进入步骤(a7);

(a7)令uep=use,返回。

与现有技术相比,本发明的技术方案所带来的有益效果是:

(1)伺服轮廓误差计算精度高。在实时计算中,采用了数值解法代替传统的近似处理方法,通过设定迭代次数可实现高精度伺服轮廓误差测定。

(2)计算效率高,实现了实时高精度轮廓误差测定。充分利用了当前伺服指令位置对应的曲线参数uc、上一时刻的u0参数等控制器内部信息,对轮廓误差解的区间范围进行了实时跟踪和准确限定,使数值解法能快速收敛到当前时刻真实伺服轮廓误差。

(3)适应性强.本方法针对可能出现的不同情况进行了分类处理,使本方法能够适应现实中的各种轮廓误差计算初始条件。分类处理也大大减少了方程解的数量,提高了效率。

(4)对参数曲线轨迹伺服轮廓误差的实时高精度测定,可在复杂、高速的生产过程中对工艺过程进行在线优化,提升精度和效率;也可以实现加工状态在线监测,及时发现设备或工艺的问题,避免损失。伺服轮廓误差实时高精度测定也是实现误差精确补偿控制的前提。

(5)本发明方法的实施可以基于已有的伺服控制系统硬件设施,无需增加新的传感器即可实施,便于已有控制系统的升级,降低了成本。

附图说明

图1是本发明中伺服轮廓实时测定流程图。

图2是本发明中区间端点搜索方法流程图。

图3是本发明中控制系统原理示意图。

图4是本发明中轮廓测定情况1示意图。

图5是本发明中轮廓测定情况2示意图。

图6是本发明中轮廓测定情况3示意图。

图7是本发明中轮廓测定情况4示意图。

图8是本发明中轮廓测定情况5示意图。

图9是本发明中求解区间示意图。

具体实施方式

以下结合附图并通过实施例对本发明方法的实施步骤作进一步的说明。需要说明的是下述实施例是叙述性的,不是限定性的,本发明所涵盖的内容并不限于下述实施例。

本例中描述的控制系统原理如图3所示。该控制系统含有x和y共2个运动轴。控制系统中的参数曲线插补器实现对参数曲线方程进行时间采样插补(轨迹对应的参数u范围为[us,ue]),插补器在每个控制周期到来时可以输出伺服指令位置对应的曲线参数uc、x轴指令位置cx(uc)和y轴指令位置cy(uc)。x、y轴伺服系统为各自独立的位置闭环控制,x、y轴实际位置分别为px和py,各轴的开环传递函数分别gx(s)和gy(s)。以上实际位置可由安装在伺服电机上的编码器进行检测,并反馈至控制器,根据电机实际位置与指令位置的偏差产生控制信号并经放大驱动电机,实现位置闭环控制。图3中伺服轮廓误差实时测定模块接收来自参数曲线插补器的曲线参数uc信号及各轴伺服系统反馈的实际位置px和py信号。该模块采用本项发明参数曲线轨迹伺服轮廓误差的实时测定方法实时计算输出轮廓误差信号ec。

在运动开始前,伺服轮廓误差实时测定模块进行算法初始化,将足点变量u0初始化为曲线起点处的参数值us,同时设定邻域搜索范围变量ε1,ε2,ε3,区间端点搜索点数n。另外,对于给定的位置矢量定义垂直度函数f(u)为矢量与曲线切矢的内积(u∈[us,ue]),在测定方法中使用。

运动开始后,在每个伺服控制周期内,通过以下步骤实时测定当前时刻的轮廓误差:

(1)控制系统读取x、y轴伺服电机编码器计数值,获得当前各轴位置反馈,确定当前实际位置设置足点丢失标志位lost为0。

(2)比较u0与当前伺服指令位置对应的曲线参数uc。若u0≥uc,令足点搜索区间左端点变量ua=uc,足点搜索区间右端点变量ub=min(ua+ε1,ue),进入步骤(9);否则,进入步骤(3)。

(3)计算u0和uc处的曲线切矢

(4)计算的内积若d<0,进入步骤(5);否则,进入步骤(6)。

(5)令ub=uc,ua0=max(u0-ε2,us),调用区间端点搜索方法搜索ua,即ua=ueps(ub,ua0),进入步骤(9)。

(6)若f(u0)>0,令ua=u0,调用区间端点搜索方法搜索ub,即ub=ueps(ua,uc),进入步骤(9);否则,进入步骤(7)。

(7)若f(u0)<0,令ub=u0,ua1=max(u0-ε3,us)调用区间端点搜索方法搜索ua,即ua=ueps(ub,ua1),进入步骤(9);否则,进入步骤(8)。

(8)令u0保持不变,进入步骤(12)。

(9)计算f(ua)和f(ub)。若f(ua)·f(ub)>0,进入步骤(10);否则,进入步骤(11)。

(10)置lost标志位为1,若|f(ua)|<|f(ub)|,令u0=ua;否则,令u0=ub。进入步骤(12)。

(11)调用非线性方程数值解法在区间[ua,ub]内搜索垂直度函数方程f(u)=0的根令更新后的

(12)计算伺服轮廓误差大小

上述轮廓误差步骤中涉及的区间端点搜索方法uep=ueps(uss,use)的具体实现步骤如下:

(a1)计算f(uss)。

(a2)若f(uss)=0,令uep=uss,返回;否则,进入步骤(a3)。

(a3)令δu=(use-uss)/n,i=1。

(a4)计算f(uss+i×δu)。

(a5)若f(uss+i×δu)·f(uss)≤0,令uep=f(uss+i×δu),返回。

(a6)令i=i+1,若i<n,返回步骤(a4);否则,进入步骤(a7)。

(a7)令uep=use,返回。

图4是步骤(2)中u0≥uc的情况,这种情况说明当前uc滞后于上一个时刻足点变量u0。在伺服系统反馈控制的作用下,本时刻足点变量将向uc方向移动。因此设置足点变量解的搜索区间的左、右端点为ua=uc,ub=min(ua+ε1,ue)。

图5是步骤(4)、(5)中的内积d<0的情况。出现这种情况说明位置指令对应的uc点进给方向和上个时刻实际位置对应的足点u0的进给方向夹角大于90度,二者方向相差大。此时在位置矢量附近可能出现2个满足f(u)=0的足点,分别靠近根据减少轮廓运动跟踪误差的要求,应优先选择靠近的足点求解轮廓误差。因此,设定搜索区间的右端点ub=uc,左端点用区间端点搜索方法从右端点向ua0=max(u0-ε2,us)方向搜索,可以优先找到靠近的足点变量的解区间。

图6是步骤(6)中f(u0)>0的情况,这是最为普遍的情况,表示实际位置对应的足点变量比上个时刻足点变量u0更接近当前伺服指令位置对应的曲线参数uc。此时设定搜索区间左端点为ua=u0,调用区间端点搜索方法从左端点开始向uc方向搜索右端点ub,即ub=ueps(ua,uc)。

图7是步骤(7)中f(u0)<0的情况。这种情况说明实际位置对应的足点变量向位置指令对应的uc相反的方向移动了。因此,设定搜索区间右端点为ub=u0,左端点用区间端点搜索方法从右端点从向ua1=max(u0-ε3,us)方向搜索。步骤(8)只有在f(u0)=0的情况下才进入。这种情况说明实际位置没有发生变化,因此足点变量也不变。

图8是步骤(9)、(10)中f(ua)·f(ub)>0的情况,说明足点应该不在搜索区间内,设置足点丢失标志位lost=1。这种情况通常是由于实际位置对应足点已经超出运动轨迹对应的参数范围[us,ue],搜索区间某个端点已到达极限和us或ue重合。此时轮廓误差为曲线上距离最近的端点,根据步骤(10)可由|f(ua)|和|f(ub)|的关系判断出。

图9是步骤(11)中采用数值方法在前面步骤给定的区间[ua,ub]内求解非线性方程f(u)=0的根的示意图。图中可以看出,由于f(ua)和f(ub)符号相反,因此在[ua,ub]内必然有满足f(u)=0的根可以采用数值方法求解。在本实施例中,数值解法采用brent方法,具有收敛速度快的优点。数值方法的迭代次数根据控制器的精度要求确定,迭代次数越高则测定的伺服轮廓误差精度越高。步骤(12)根据轮廓误差的定义,由计算更新后的足点到实际位置的距离计算出轮廓误差大小。搜索范围变量ε1,ε2,ε3,区间端点搜索点数n可作为控制器的用户参数,它们决定了解区间搜索的运算时间和区间的精度。

运动控制期间,控制器在每个伺服控制周期内按照图1、图2中的流程执行上述步骤(1)~(12),即可计算出当前时刻伺服轮廓误差的准确值并进行输出,实现了参数曲线轨迹高速运动中伺服轮廓误差的实时高精度测定。

本发明并不限于上文描述的实施方式。以上对具体实施方式的描述旨在描述和说明本发明的技术方案,上述的具体实施方式仅仅是示意性的,并不是限制性的。在不脱离本发明宗旨和权利要求所保护的范围情况下,本领域的普通技术人员在本发明的启示下还可做出很多形式的具体变换,这些均属于本发明的保护范围之内。

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