本发明属于机电系统伺服控制领域,具体涉及到参数曲线轨迹控制系统中伺服轮廓误差的实时测定技术。
背景技术:
多轴轮廓运动伺服控制系统在数控机床、机器人、光刻设备等有广泛应用。在多轴伺服控制系统中,由系统控制系统引入的轮廓误差对轨迹精度具有直接影响。为了对伺服轮廓误差进行监视以便改进工艺和参数,或者对误差进行校正控制,需要对轮廓误差进行准确测定。一般需要根据各伺服电机反馈的各轴各时刻位置坐标,以及理论轨迹的数学表达式,对轮廓误差进行计算。随着多轴伺服运动控制系统的应用日趋复杂化,运动轨迹已由简单的直线、圆弧等轨迹逐渐过渡到自由参数曲线轨迹。然而,参数曲线轨迹的数学表达相对复杂,其轮廓误差的计算难度较大,更难以实现在控制中实时进行测定。
伺服轮廓误差定义为伺服系统实际位置到理论轨迹曲线的距离。此距离通常是无法直接测量的,一般是通过测量各运动轴的伺服电机的实际位置,对轮廓误差进行间接计算。对于伺服轨迹的轮廓误差测定可分为离线计算和实时测定两类方法。离线计算可根据轮廓误差的定义,列出实际轨迹中每个点到理论参数轨迹的距离方程,并通过求极值或最优化等方法进行计算。由于距离方程一般是非线性高阶方程,无法获得解析解,需要应用数值计算方法进行反复迭代。另外根据定义得到的方程含有多个解,需要解出多个候选解并进行取舍,计算量非常大。实时测定方法通常采用近似处理,通过对轮廓误差进行几何或代数上的近似处理,并利用伺服系统中各轴跟踪误差的信息,简化了轮廓误差的计算,从而能够应用于伺服轮廓误差的在线实时测定。但是现有的近似计算方法高速、高曲率复杂轨迹情况下的计算精度普遍较差,因此难以实现精确的轮廓误差实时测定。随着数字化伺服控制系统计算能力的提升,以及高速高精度运动控制器需求的日益增长,急需在实时伺服轮廓误差测定中实现更加精密、完善的计算方法,但当前尚缺少有效的实时高精度测定方法。
技术实现要素:
本发明的目的是为了克服现有技术中的不足,提供一种参数曲线轨迹伺服轮廓误差的实时测定方法,可以解决现有测定方法精度低、效率差等缺点。
本发明的目的是通过以下技术方案实现的:
参数曲线轨迹伺服轮廓误差的实时测定方法,假设轨迹的参数曲线方程为
(1)读取当前各轴伺服电机位置反馈,确定当前实际位置
(2)比较u0与当前伺服指令位置对应的曲线参数uc,若u0≥uc,令足点搜索区间左端点变量ua=uc,足点搜索区间右端点变量ub=min(ua+ε1,ue),进入步骤(9);否则,进入步骤(3);
(3)计算u0和uc处的曲线切矢
(4)计算
(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个运动轴。控制系统中的参数曲线插补器实现对参数曲线方程
在运动开始前,伺服轮廓误差实时测定模块进行算法初始化,将足点变量u0初始化为曲线
运动开始后,在每个伺服控制周期内,通过以下步骤实时测定当前时刻的轮廓误差:
(1)控制系统读取x、y轴伺服电机编码器计数值,获得当前各轴位置反馈,确定当前实际位置
(2)比较u0与当前伺服指令位置对应的曲线参数uc。若u0≥uc,令足点搜索区间左端点变量ua=uc,足点搜索区间右端点变量ub=min(ua+ε1,ue),进入步骤(9);否则,进入步骤(3)。
(3)计算u0和uc处的曲线切矢
(4)计算
(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。在伺服系统反馈控制的作用下,本时刻足点变量
图5是步骤(4)、(5)中
图6是步骤(6)中f(u0)>0的情况,这是最为普遍的情况,表示实际位置
图7是步骤(7)中f(u0)<0的情况。这种情况说明实际位置
图8是步骤(9)、(10)中f(ua)·f(ub)>0的情况,说明足点应该不在搜索区间内,设置足点丢失标志位lost=1。这种情况通常是由于实际位置
图9是步骤(11)中采用数值方法在前面步骤给定的区间[ua,ub]内求解非线性方程f(u)=0的根
运动控制期间,控制器在每个伺服控制周期内按照图1、图2中的流程执行上述步骤(1)~(12),即可计算出当前时刻伺服轮廓误差的准确值并进行输出,实现了参数曲线轨迹高速运动中伺服轮廓误差的实时高精度测定。
本发明并不限于上文描述的实施方式。以上对具体实施方式的描述旨在描述和说明本发明的技术方案,上述的具体实施方式仅仅是示意性的,并不是限制性的。在不脱离本发明宗旨和权利要求所保护的范围情况下,本领域的普通技术人员在本发明的启示下还可做出很多形式的具体变换,这些均属于本发明的保护范围之内。