著录项信息
专利名称 | 样条曲线实时插补方法 |
申请号 | CN200910012583.9 | 申请日期 | 2009-07-16 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2011-01-26 | 公开/公告号 | CN101957611A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G05B19/41 | IPC分类号 | G;0;5;B;1;9;/;4;1查看分类表>
|
申请人 | 中国科学院沈阳计算技术研究所有限公司;沈阳高精数控技术有限公司 | 申请人地址 | 辽宁省沈阳市浑南新区南屏东路16号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国科学院沈阳计算技术研究所有限公司 | 当前权利人 | 中国科学院沈阳计算技术研究所有限公司 |
发明人 | 林浒;于东;孙玉娥;李建伟;张晓辉 |
代理机构 | 沈阳科苑专利商标代理有限公司 | 代理人 | 李晓光 |
摘要
本发明涉及一种样条曲线实时插补方法,包括:对加工程序进行样条曲线段预处理,得到曲线长度和突变点信息;根据上述曲线长度和突变点信息进行速度规划,得到加工速度;根据得到的加工速度计算下一点坐标,输出至伺服控制装置;样条曲线段预处理包括:输入加工程序,设置当前曲线段的初始速度;根据误差约束、加速度约束以及加加速度约束规划当前速度;规划的当前速度如果是突变点,则将该突变点加入突变点数组;求出下一插补点坐标;如结束,将处理结果输出至实时插补模块,并读入加工程序的下一段;返回设置当前程序段的初始速度步骤。本发明能够保证每个插补周期实时输出一个可靠的插补点,所求减速点精度高,可交互性好,能实时响应修调操作。
1.一种样条曲线实时插补方法,其特征在于包括以下步骤:
样条曲线段预处理:对加工程序进行样条曲线段预处理,得到曲线长度和突变点信息;
实时前瞻:根据上述曲线长度和突变点信息进行速度规划,得到加工速度;
插补计算:根据得到的加工速度计算下一点坐标,输出至伺服控制装置;
所述对加工程序进行样条曲线段预处理包括以下步骤:
输入加工程序,设置当前曲线段的初始速度;
根据误差约束、加速度约束以及加加速度约束规划当前速度;
判断规划的当前速度是否是突变点,
如果是突变点,则将该突变点加入突变点数组;
求出下一插补点坐标;
判断当前曲线段是否结束;
如结束,将处理结果输出至实时插补模块,并读入加工程序的下一段;
返回设置当前程序段的初始速度步骤;
所述实时前瞻包括以下步骤:
设置加工的初始速度;
根据误差约束、加速度约束、加加速度约束及编程进给速度约束条件计算加工的约束速度;
根据约束速度求下一点位置;
根据编程进给速度更新突变点数组;
判断下一点位置与所有突变点之间的剩余路径长度是否均大于所需的减速距离;
如上述判断结果为否,则从当前点开始减速,并重新计算当前速度;
将当前速度输出至插补计算步骤,并转至根据误差约束、加速度约束、加加速度约束及编程进给速度约束条件计算加工的约束速度步骤;
如果一点位置与所有突变点之间的剩余路径长度均大于所需的减速距离,则接续将当前速度输出至插补计算步骤,并转至根据误差约束、加速度约束、加加速度约束及编程进给速度约束条件计算加工的约束速度步骤;
如果当前曲线段没有结束,则转至根据误差约束、加速度约束以及加加速度约束规划当前速度步骤;
如果不是突变点,则直接进入求出下一插补点坐标步骤。
2.按权利要求1所述的样条曲线实时插补方法,其特征在于:判断下一点位置与所有突变点之间的剩余路径长度是否均大于所需的减速距离包括以下步骤:
从突变点数组中依次取出突变点;
根据预处理得到的曲线长度信息计算从下一点位置到该突变点的距离;
根据下一点的加速度和速度、突变点的加速度和速度依次判断下一点位置与突变点之间的剩余路径长度是否大于所需的减速距离。
样条曲线实时插补方法\n技术领域\n[0001] 本发明涉及数控系统的速度处理技术,具体地说是一种样条曲线实时插补方法。\n背景技术\n[0002] 在 商 用 CAD/CAM(computer-aided design/computer-aidedmanufacturing,电脑辅助设计与电脑辅助制造)软件中,自由型曲线曲面是由样条来表示的。但是CNC(Computer numerical control,计算机数字控制)系统的发展要滞后于CAD/CAM系统,传统的CNC系统只具备圆弧和直线插补功能,限制了数控加工精度和效率的进一步提高。\n为了克服传统的直线、圆弧插补带来的弊端,需要在数控装置中直接对CAD/CAM装置输出的样条曲线进行插补计算。\n[0003] 与小线段相比,样条曲线的形状更为复杂,它的曲率是不断变化的,且存在曲率不连续点,这就给速度规划带来了很多问题。首先,减速点难以精确计算。在对小线段进行速度规划时,我们一般先求出当前规划段路径的总长度,然后根据剩余路径长度进行速度规划,求出减速点。对样条曲线进行实时插补时,是用实际步长去逼近原有的样条曲线,不同的逼近方法计算出来的路径长度也不同,而具体的逼近方法又与速度规划相关,因此难以精确求出减速点位置。同时在速度规划过程中,在每一个插补点首先根据加工精度求出当前曲率下允许的最大速度值,然后根据机床的加减速能力进行调整。但是样条曲线中存在曲率的突变点(曲率不连续的点),这也就造成了所求的速度会发生突变。采用预处理的方法可以提前求出速度和加速度的突变点,并规划出速度曲线。但在加工过程中进行修调操作时,会导致规划出的速度曲线失效,需要重新计算,不能实时响应用户的需求。采用实时前瞻的方法可以实时响应修调等操作,但由于样条曲线计算量大,速度规划复杂,所有计算完全靠实时前瞻完成,难以满足实时性要求。\n[0004] 近年来,国内外已有大量相关的理论研究并取得了较大的进展。样条曲线的实时插补技术经历了恒定进给速度、自动调节进给速度和预处理这几个阶段。所考虑的问题也从最初的加工效率、精度扩展到机床的实际加减速能力。但是这些算法存在计算量大,难以满足实时性要求,减速点计算不够准确以及不能实时处理加工过程中出现的修调等问题,因此不能直接移植到现有数控系统中。\n发明内容\n[0005] 针对现有技术中存在的上述不足之处,本发明要解决的技术问题是提供一种能够实现速度平滑过渡的样条曲线实时插补算法,以保证各运动轴的平稳运行,从而满足柔性化加工的要求。\n[0006] 为解决上述技术问题,本发明采用的技术方案是:\n[0007] 本发明一种样条曲线实时插补方法包括以下步骤:\n[0008] 样条曲线段预处理:对加工程序进行样条曲线段预处理,得到曲线长度和突变点信息;\n[0009] 实时前瞻:根据上述曲线长度和突变点信息进行速度规划,得到加工速度;\n[0010] 插补计算:根据得到的加工速度计算下一点坐标,输出至伺服控制装置。\n[0011] 所述对加工程序进行样条曲线段预处理包括以下步骤:\n[0012] 输入加工程序,设置当前曲线段的初始速度;\n[0013] 根据误差约束、加速度约束以及加加速度约束规划当前速度;\n[0014] 判断规划的当前速度是否是突变点?\n[0015] 如果是突变点,则将该突变点加入突变点数组;\n[0016] 求出下一插补点坐标;\n[0017] 判断当前曲线段是否结束;\n[0018] 如结束,将处理结果输出至实时插补模块,并读入加工程序的下一段;\n[0019] 返回设置当前程序段的初始速度步骤。\n[0020] 所述实时前瞻包括以下步骤:\n[0021] 设置加工的初始速度;\n[0022] 根据误差约束、加速度约束、加加速度约束及编程进给速度约束条件计算加工的约束速度;\n[0023] 根据约束速度求下一点位置;\n[0024] 根据编程进给速度更新突变点数组;\n[0025] 判断下一点位置与所有突变点之间的剩余路径长度是否均大于所需的减速距离;\n[0026] 如上述判断结果为否,则从当前点开始减速,并重新计算当前速度;\n[0027] 将当前速度输出至插补计算步骤,并转至根据误差约束、加速度约束、加加速度约束及编程进给速度约束条件计算加工的约束速度步骤。\n[0028] 判断下一点位置与所有突变点之间的剩余路径长度是否均大于所需的减速距离包括以下步骤:\n[0029] 从突变点数组中依次取出突变点;\n[0030] 根据预处理得到的曲线长度信息计算从下一点位置到该突变点的距离;\n[0031] 根据下一点的加速度和速度、突变点的加速度和速度依次判断下一点位置与突变点之间的剩余路径长度是否大于所需的减速距离。\n[0032] 如果一点位置与所有突变点之间的剩余路径长度均大于所需的减速距离,则接续将当前速度输出至插补计算步骤,并转至根据误差约束、加速度约束、加加速度约束及编程进给速度约束条件计算加工的约束速度步骤。\n[0033] 如果当前曲线段没有结束,则转至根据误差约束、加速度约束以及加加速度约束规划当前速度步骤。\n[0034] 如果不是突变点,则直接进入求出下一插补点坐标步骤。\n[0035] 本发明具有以下有益效果及优点:\n[0036] 1.实时性好。结合前瞻和预处理的优点,采用预处理+前瞻的实现方式,把计算量大且不受修调操作影响的工作放在预处理完成,从而减少了实时前瞻的计算量,使每个周期的前瞻段数足够长,能够保证每个插补周期实时输出一个可靠的插补点。\n[0037] 2.所求减速点精度高。采用避免误差累计和实时前瞻等技术使所求减速点的位置更加精确,不会出现因减速距离不够而造成部分点不满足加工精度的现象。\n[0038] 3.可交互性好,能实时响应修调操作。\n附图说明\n[0039] 图1为本发明方法流程图;\n[0040] 图2样条曲线中的曲率不连续点示例;\n[0041] 图3是样条预处理模块流程图;\n[0042] 图4实时插补模块流程图;\n[0043] 图5待加工曲线示例图;\n[0044] 图6期望的加速度曲线;\n[0045] 图7(a)~7(d)为从当前速度、加速度减速到突变点的速度、加速度的可能过渡方式(一)~(四);\n[0046] 图8加工样件示图;\n[0047] 图9本发明方法的误差曲线效果图;\n[0048] 图10本发明方法的速度曲线效果图;\n[0049] 图11本发明方法的加速度曲线图;\n[0050] 图12本发明方法的加速度曲线部分放大效果图。\n具体实施方式\n[0051] 下面结合附图对本发明作进一步详细说明。\n[0052] 本发明方法包括以下步骤:\n[0053] 样条曲线段预处理:对加工程序进行样条曲线段预处理,得到曲线长度和突变点信息;\n[0054] 实时前瞻:根据上述曲线长度和突变点信息进行速度规划,得到加工速度;\n[0055] 插补计算:根据得到的加工速度计算下一点坐标,输出至伺服控制装置。\n[0056] 如图1所示,在本实施方式中,从CAD/CAM装置中输出的加工程序首先进入数控装置的解释器,解释器分为加工程序解释和样条曲线段预处理两部分,它对加工程序进行解释并预处理,并将处理好数据通过共享缓存发给运动控制器。运动控制器是实时的,每个插补周期它通过实时前瞻和插补计算进行速度规划并计算出下一个插补点坐标,最后将该坐标发送给伺服装置,驱动电机运动。\n[0057] 参照图2所示,样条曲线中存在曲率不连续的点,而且当曲率变化过快时,也会出现超出机床减速能力的点。为了保证实际加工时在这些点加速度是连续的,需要在样条曲线段预处理阶段将这些点记录下来。\n[0058] 样条曲线段预处理的系统流程图如图3所示,所述对加工程序进行样条曲线段预处理包括以下步骤:\n[0059] S1:输入加工程序,设置当前曲线段的初始速度;\n[0060] S2:根据误差约束、加速度约束以及加加速度约束规划当前速度;\n[0061] S3:判断规划的当前速度是否是突变点?如果是突变点,则将该突变点加入突变点数组;\n[0062] S4:求出下一插补点坐标;\n[0063] S5:判断当前曲线段是否结束;\n[0064] S6:如结束,将处理结果输出至实时插补模块,并读入加工程序的下一段,返回设置当前程序段的初始速度步骤。\n[0065] 由于样条曲线是分段的,而曲率的突变点大多存在于分段链接处,为了避免由于修调等操作导致的预处理结果失效问题,我们在预处理时将样条曲线看成是分段独立的。\n[0066] 在每一个分段起点,步骤S1认为初始速度为上一分段最后一点误差允许的最大速度。设ER(ui),ρ(ui)和V(ui)分别是插补点ui处的弓高误差、曲率半径和速度,Ts是机床的插补周期,ER为允许的弓高误差最大值,Jmax为允许的最大加加速度,Amax为允许的最大加速度。ui处误差、最大加速度、加加速度允许的最大速度Ve(ui)、Va(ui)和Vj(ui)分别为:\n[0067] 误差约束公式:\n[0068] 加速度约束公式:Va(ui)=V(ui-1)+AmaxTs (2)\n[0069] 加加速度约束公式:Vj(ui)=V(ui-1)+(a(ui-1)+JmaxTs)Ts (3)[0070] 在步骤S2根据上述各公式求约束速度时,不考虑编程进给速度约束,当前速度为V(ui)=min(Ve(ui),Va(ui),Vj(ui))。同时记录下该点的节点矢量,加速度、速度和起点到该点的累积路径长度。步骤S3将同时满足以下条件的点判定为突变点:1)根据加工精度、最大加速度、加加速度等约束条件求出的速度取最小值作为当前点速度,该速度与前一点速度相比超出机床加减速能力;2)当前点速度小于前一点速度,需要减速。若当前插补点为突变点,则将该点的节点信息,速度、加速度等信息记录到另一个数组中,按插补顺序在突变点数组中依次添加。\n[0071] 所述实时前瞻包括以下步骤:\n[0072] P1:设置加工的初始速度;根据误差约束、加速度约束、加加速度约束及编程进给速度约束条件计算加工的约束速度;\n[0073] P2:根据约束速度求下一点位置;\n[0074] P3:根据编程进给速度更新突变点数组;\n[0075] P4:判断下一点位置与所有突变点之间的剩余路径长度是否均大于所需的减速距离;\n[0076] P5:如上述判断结果为否,则从当前点开始减速,并重新计算当前速度;\n[0077] P6:将当前速度输出至插补计算步骤,并转至根据误差约束、加速度约束、加加速度约束及编程进给速度约束条件计算加工的约束速度步骤。\n[0078] 实时前瞻根据预处理记录下来的信息进行精确的速度规划,如图4所示,设置初始速度为0,假设编程进给速度为F,每个周期首先根据误差、编程进给速度、最大加速度、加加速度等约束条件计算约束速度V(ui)=min(F,Ve(ui),Va(ui),Vj(ui)),并根据该速度求出下一点位置Pi+1。\n[0079] 由于在实时前瞻中要根据编程进给速度对实时插补速度进行限制,会产生新的突变点,因此需要在步骤P3中更新突变点数组,即增加新的突变点。因为这种突变点只可能在速度的极大值点附近会出现,所以具体实现方法为:记第一个超过编程进给速度的点为入点,最后一个超过编程进给速度的点为出点。把入点和出点的加速度设为零,速度设为编程进给速度。如果入点或出点的下一个点的加速度变化量绝对值大于JmaxT,则将其加入到突变点数组中。\n[0080] 步骤P4是判断Pi+1点与前瞻曲线段上的所有突变点之间的剩余路径长度是否满足所需的减速距离,具体判定方法如下:\n[0081] 首先计算所需的减速距离,假设图5是一段待加工样条曲线,其中ui是样条曲线段预处理时得到的一个突变点,它的下一个插补点加速度为ai+1,uj是采样点ui的减速点,它的前一个插补点加速度为aj-1。要实现整个加工过程加速度的连续性,如图6所示,需要保证减速段起点和终点加速度都是连续的。因此在步骤P2是根据从当前的速度和加速度过渡到突变点的速度和加速度所需的最小加工路径长度与它们之间的剩余路径长度之间的关系来判断是否需要减速的。所需的最小加工路径长度的计算方法如下所示:\n[0082] 假设当前速度为Vi,加速度为ai,突变点所需的速度为Vj,加速度为aj。从当前的速度和加速度过渡到突变点的速度和加速度可能存在图7(a)~(d)所示的四种过渡方式。\n如果突变点为如图7(a)所示的加速度突变点,从Vi过渡到Vj所需的距离S和时间t为:\n[0083] \n[0084] \n[0085] 如果从当前点过渡到突变点加速度曲线如图7(b)所示,从Vi过渡到Vj所需的距离S和时间t为:\n[0086] \n[0087] \n[0088] 如果从该突变点与当前点的速度变化较大,则减速时存在图7(c)和图7(d)两种情况。首先来看存在以加速度-Amax匀减速的情况,为了保证加速度的连续性,整个减速过程分为加加速度为-Jmax的变加速、加速度为-Amax匀加速和加加速度为Jmax的变加速过程。\n其中加加速度为-Jmax的变加速阶段的位移S1,终点速度V1和时间t1分别为:\n[0089] \n[0090] \n[0091] \n[0092] 加速度为-Amax匀加速阶段的位移S2和终点速度V2分别为:\n[0093] \n[0094] V2=V1-Amaxt2 (12)\n[0095] 加加速度为Jmax的变加速阶段的位移S3和该阶段持续时间t3为:\n[0096] \n[0097] \n[0098] 每个阶段的速度增量之和满足如下关系式:\n[0099] \n[0100] 因此可得第二阶段的时间t2:\n[0101] \n[0102] 减速所需的总位移S等于:\n[0103] S=S1+S2+S3 (16)\n[0104] 如图7(d)所示,当没有加速度-Amax匀减速段时,假设第一阶段结束时加速度值为ap,则上述公式应改写为:\n[0105] \n[0106] \n[0107] \n[0108] \n[0109] S=S1+S2 (21)\n[0110] 分别求出从当前点的速度和加速度过渡到所有突变点的速度和加速度所需的最小加工路径后,若发现存在当前点到任意突变点间的剩余路径长度小于所需的减速距离,则证明需要从第i周期开始减速;否则,按照步骤P1规划的速度运行。最后将规划好的速度发给插补计算模块,计算出下一插补点的位置,发给伺服装置,驱动电机运动。\n[0111] 本发明方法结合预处理和实时前瞻的优点,采用预处理加前瞻的方法,将计算量大但不受修调影响的数据放在预处理中计算,实时前瞻根据预处理计算出的数据进行精确的速度规划,以同时满足实时性和实时响应修调操作的要求。同时实时前瞻根据预处理时记录下来的每个插补点的路径长度信息动态修正当前点与突变点之间的剩余路径长度,可以有效避免累计误差的产生,提高所求减速点的精度。\n[0112] 由于样条曲线是分段的,而曲率的突变点大多存在于分段链接处,为了避免由于修调操作导致的预处理结果失效问题,在预处理时将样条曲线看成是分段独立的,并且认为每一段的初始速度是上一分段最后一点误差允许的最大速度。这样需要减速且超出机床加减速能力时,将该点作为速度突变点记录下来;若需要加速,则按照机床的实际加减速能力向上加速。这样求出的路径长度既不受修调操作影响,又尽可能地贴近实际加工路径长度。\n[0113] 从上面可以看出,预处理的目的并不是规划出实际的速度曲线,只是计算出实时插补时所需要知道的突变点信息和较为精确的路径长度,便于在实时前瞻中进行速度规划。在实时前瞻模块的每个插补周期,根据加工精度和加速度、加加速度约束求出当前插补周期的速度Vi,以保证加速度的连续性。\n[0114] 假设前瞻k段样条曲线,则认为第k段曲线的终点速度为0。判断从位置点Pi+1与所有突变点以及第k段曲线终点之间的剩余路径长度是否满足所需的减速距离,若存在任意两点间的剩余路径长度小于所需的减速距离,则证明需要第i个周期开始减速;否则,按照上面求出的速度运行,进入下一个插补周期。\n[0115] 由于预处理所求路径长度小于实际路径长度,虽然能够保证不会出现减速距离不够的问题,但可能会过早进入减速区。为了减少提前减速给加工效率带来的负面影响,前瞻阶段根据预处理时保存的每个插补点的累计路径信息来计算当前点的剩余路径,可以消除加工路径的累计误差。这样在实际加工时就能够及时发现过早减速问题并对其动态修正。\n[0116] 本发明方法的测试是在三轴数控铣床,通过加工具有代表性的工件测试程序来完成的。所用装置采用编码器反馈,形成全闭环控制系统,驱动交流伺服电机。装置的主要参数如下:\n[0117] 数控系统:CPU Pentium M-1.6GHz、RAM-512M、HD-40G、I/O-32/24、编码器输入-4,D/A输出-4、显示-10.4”彩色液晶显示;安川∑-2伺服与电机;\n[0118] 进给率F=24m/min;最大加速度Amax=5000m/s2;最大加加速度Jmax=500m/s3;\n插补周期T=1ms;轮廓误差Emax=0.000001m。\n[0119] 本发明方法及实现装置效果的评价以加工图8所示的曲线为评测依据。而采用本发明方法与实现装置,误差曲线如图9所示,速度规划曲线如图10所示,加速度曲线及部分放大图如图11所示。从上述加工效果图中可以看到:\n[0120] 1.所述的样条插补方法能够满足加工精度的要求,较好的处理了速度突变点,解决了由于减速距离不够造成的部分点加工精度超出允许值的问题;\n[0121] 2.如图11中加速度曲线的部分放大图即图12所示,所述方法采用消除累计误差的方法提高所求减速点精度,当发现提前进入减速区时,能不断及时修正当前速度;\n[0122] 3.所述方法得到的加速度曲线基本连续,速度曲线平滑。
法律信息
- 2015-08-26
专利权的转移
登记生效日: 2015.08.07
专利权人由中国科学院沈阳计算技术研究所有限公司变更为中国科学院沈阳计算技术研究所有限公司
地址由110171 辽宁省沈阳市浑南新区南屏东路16号变更为110171 辽宁省沈阳市浑南新区南屏东路16号
专利权人由沈阳高精数控技术有限公司变更为空
- 2012-05-23
- 2011-03-23
实质审查的生效
IPC(主分类): G05B 19/41
专利申请号: 200910012583.9
申请日: 2009.07.16
- 2011-01-26
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |