什么叫插补?和上面所介绍的轨迹方程法一样,插补也是用一小段一小段直线来近似代替曲线的一种控制方法。轨迹方程控制是运用曲线的参数方程直接进行计算来控制X轴或Y轴位移的,插补则是在曲线(不能用参数方程表示)的起点和终点之间插入一系列中间点(也叫插值),然后对每两点之间的曲线用一小段直线或圆弧来代替。这种完成曲线轨迹的位移的方法叫做插补,如图1-76所示。
图1-76 插补
常用的插补方法有直线插补和圆弧插补两种。这两种插补仅是替代的方法不同,直线插补用直线来近似代替曲线上两个插值之间的线段,而圆弧插补用一小段圆弧来近似代替两个插值之间的线段,但不论是直线插补还是圆弧插补都不是X轴和Y轴同时联动完成的,而是由一小段一小段的X轴或Y轴的位移完成的,如同轨迹方程控制一样。
如何去协调X轴或Y轴的运动使之完成直线或圆弧插补控制,这种算法称为插补算法。常用的算法有脉冲增量插补算法(又叫逐点比较法),它适用于步进电动机和伺服电动机,另一种是数据采样插补算法,比较复杂,适用于伺服电动机。不论哪种算法用PLC去设计插补程序控制X轴和Y轴完成曲线的位移,对一般工控技术人员都是一件较为困难的任务。因为本书是针对初学定位控制的读者所编写的,所以这里仅对插补进行一些知识性的介绍,不讲解具体程序的编制,读者如需进一步学习,可参考相关资料。
下面将分别介绍采用逐点比较法的直线插补和圆弧插补算法,使大家对插补的控制过程有进一步的了解。
不论是直线插补还是圆弧插补,其基本原理都是采用逐点比较法,在叙述直线插补和圆弧插补前先对逐点比较法做一个大概了解。
逐点比较法的基本原理是:在工件(动点)运行过程中不断地将工件与插补直线或圆弧进行相对位置比较,并根据比较结果使工件朝着偏差减小的方向进行平行于X轴或Y轴的阶梯形直线运动,直到到达直线或圆弧的终点为止。
逐点比较法可以通过图1-77进行说明,图中,MN是插补直线,P点是动点,动点只能在X轴方向上或Y轴方向上移动,当P在MN的下方时,P点只能在Y轴方向上进行位移才能减小它与MN的偏差,而当P在MN的上方时也同样可以分析,P点只能在X轴方向上进行位移才能减小它与MN的偏差,就这样逐点与直线比较,不断在X轴或Y轴方向上一点一点移动,直到到达终点N为止。插补实质上就是用这样一小段一小段平行于X轴或Y轴的阶梯折线代替MN的。只要这一小段一小段阶梯折线进给相当微小(如仅一个脉冲当量),那么插补的折线与直线MN的位置误差也不会超过1个脉冲当量。只要把脉冲当量取得相当小,用到机床加工上,精度可以做到相当高。
直线插补和圆弧插补都采用逐点比较法,但它们的算法不同。先介绍直线插补的算法。设第一象限直线ON,终点坐标N(X N ,Y N ),工件位于动点P(X,Y),动点P通过插补方式完成直线ON的位移。如图1-78所示。
图1-77 逐点比较法
图1-78 直线插补
由图可见,动点P的位置可以有3种情况:一是在ON的下方,这时工件应进行Y轴方向上的位移才能减小与ON的偏差;二是在ON的上方,这时工件应进行X轴方向上的位移才能减小与ON的偏差;三是工件正好处于ON直线上,那么如何来判断工件所处的位置呢?
假定动点P在ON的下方,连接OP可以从图中看出,OP的斜率tanθ p 一定小于ON的斜率tanθ N ,即
tanθ p <tanθ N
则有:
整理得:YX N -Y N X <0
式中,X,Y为动点P坐标值,X N ,Y N 为N点坐标值。同样,对P点位于ON线上和ON上方进行类似分析,就会得到:
YX N -Y N X <0 (P点位于ON下方)
YX N -Y N X=0 (P点位于ON上)
YX N -Y N X >0 (P点位于ON上方)
令F=YX N -Y N X,定义为偏差位置判别式,因此只要计算出 F 值的大小就可以控制工件的位移方向,如图1-79所示。
当F=0时,工件可以进行X轴方向上的位移,也可进行Y轴方向上的位移。通常规定为向X轴方向上的位移。
当F<0,工件进行Y轴方向上的位移。
当F>0,工件进行X轴方向上的位移。
图1-79 直线插补偏差位置判别
工件每位移一步后都必须将工件的新坐标值代入判别式F,算出新的F值,确定工件下一步的运行方向,如此反复下去,直到到达终点为止。这种以上述算法为基础的用阶梯形线段替代ON直线的方法叫直线插补。
上述算法需要进行二次乘法和一次减法,运算还是复杂,会直接影响插补速度。为了简化运算,对判别式做一些变换。在图1-79中,当F≥0时,沿X轴方向运行1步(1个脉冲当量值)到达点(X+1,Y),令新的位置偏差为F′,则由代入判别式F得到。
当F<0时,工件向Y轴方向运行1步到达(X,Y+1),令新的偏差值为F′,同样可以得到:
上述两式为简化后的偏差计算公式,进行X轴方向上的运行后用式(1-8)求出新的偏差值作为F进一步运行方向上的判别式。走完Y轴方向上的运行后用式(1-8)求出新的偏差值作为下一步运行方向的判别。这种新的偏差位置判别式的计算方式始终与上一个偏差值(F)有关,新的偏差是由上一个偏差递推出来的,称为递推法。显然,递推法的运算量远远小于原来的运算方法,插补速度得到很大提高。
当工件到达终点N时必须自动停止运行。因此,每运行1步都必须进行终点判断。最常用的终点判断是设计一个长度计数器,其计数长度为X轴方向和Y轴方向上的运行步数之和。工件无论在X轴方向上还是在Y轴方向上每运行1步,计数器当前值都减1,当计数器长度为0时表示已到达终点,插补结束。
综上所述,可以画出逐点比较法直线插补子程序框图,如图1-80所示。
图中,初始化的内容为输入终点坐标X N 、Y N ,设定长度计数器值n=X N +Y N ,设置初始偏差值F 0 =0。
下面举例说明直线插补的过程。对第一象限直线ON进行插补,N点坐标为(4,3),直线插补的起点为原点,这时F 0 =0,长度计数器值为7,共7步。其插补过程如图1-81和表1-2所示。
图1-80 逐点比较法直线插补子程序框图
以上介绍的是第一象限直线,但如果直线在第二、第三、第四象限,则工件在X轴及Y轴的位移方向上会有所不同。如图1-82所示。例如,当F ≥ 0时,工件在第一、第四象限向X轴正方向移动,而在第二、第三象限则向X轴负方向移动。同样,当F < 0时,工件在一、二象限向Y轴正方向移动,而在三、四象限向Y轴负方向移动。但是,不管在哪个象限都采用与第一象限相同的偏差计算公式,只是式中的终点坐标均取绝对值代入计算。当然,插补子程序也需要根据象限不同而适当变化。
图1-81 直线插补过程图
图1-82 四种不同的直线插补处理
表1-2 插补过程计算表
理解了直线插补的原理与工作流程后圆弧插补就比较容易掌握了。圆弧插补利用圆弧代替曲线,而工件则是在圆弧附近朝着偏差减小的方向做阶梯形的直线移动。圆弧插补中也存在一个工件位置的判别。圆弧的逐点比较法插补一般以圆心为坐标原点。在第一象限里给出逆时针圆弧MN,M为起点坐标,为(X 0 ,Y 0 ),N为终点坐标,为(X N ,Y N ),P为动点(工件),坐标为(X,Y),如图1-83所示。
图1-83 圆弧插补逐点比较法
根据圆的解析方程有:
式中,R为圆弧MN的半径,OP为P点到圆心的距离。动点P与圆弧MN的关系有三种情况:在圆弧外、圆弧上和圆弧内。插补时,动点必须朝与圆弧MN偏差减小的方向运行。设偏差判别式为 ,则根据动点P(X,Y)的三种情况有下列结论。
P(X,Y)在圆外,这时OP > R,得到F > 0。
P(X,Y)在圆上,这时OP=R,得到F=0。
P(X,Y)在圆内,这时OP < R,得到F < 0。
不难看出,偏差的判别式以圆弧MN为界,如在界外,则P点只有向X轴负方向移动才能减小与圆弧的偏差,而在界内,则P点只有向Y轴正方向移动才能减小与圆弧的偏差,而在界上,可以向X轴负方向或向Y轴正方向移动。一般规定向X轴负方向移动。这样,插补的位移方向就变成:
同样偏差判别式 ,运算工作量太大。通常采用递推公式计算进行运算。
如F ≥ 0,则动点向X轴负方向运行1步。有:
如F < 0,则动点向Y轴正方向运行1步,有:
所以,第一象限逆时针圆弧插补的递推公式为:
圆弧插补也存在终点判断问题,其方法和直线插补一样,设计一个长度计数器,其计数长度为在X轴和Y轴上所走的总步数,为|X N -X 0 |+|Y N -X 0 |。每走一步对计数器进行减1计算,当计数值为0时,表示到达终点。
圆弧插补也存在象限不同处理方式不同的问题,但它比直线插补复杂的是同一象限还有顺时针和逆时针圆弧之分,这样就形成8种不同的处理。
这些处理的区别仅在于X轴和Y轴移动的方向不同,它们的偏差判别式及其计算过程都是相同的。8种不同的圆弧插补处理可参见图1-84。
图1-84 八种不同的圆弧插补处理
相比直线插补,圆弧插补的优点是达到相当的精度,曲线的插值点可相对少一些。除此之外,有的还用二次曲线插补,运算更加复杂。
关于插补的知识就介绍到这里。在平面上两个坐标点之间走曲线,通过编制上述插补程序送入PLC来控制X轴和Y轴完成控制任务,从理论上说是可以实现的,但仔细分析一下却十分困难。首先,一条曲线要分成多少段才能满足精度要求?每一段的坐标都要送入PLC事先存储起来,数据量相当大,占用大量内存,而每一小段都必须进行插补运算,运算量又非常大。如果PLC的运算速度不够快,效率则会非常低。因此,完全用PLC编制插补程序来完成曲线运动的控制基本上没有人采用。多数是采用硬件插补器(由数字逻辑电路组成)和软件插补配合组成,如各种运动控制卡就是如此。