逐点比较法象限处理共48页
逐点比较法的象限处理
2018/12/24
数控技术 12
第 3章
例:
计算机数控装置的插补原理
对于第一象限直线OA,终点 坐标Xa=6 ,Ya=4,插补从直 线起点O开始,故F0=0 。终 点判别是判断进给总步数 N=6+4=10,将其存入终点判 别计数器中,每进给一步减 1,若N=0,则停止插补。
Y 10 A
4
8 5 3 4 6 7
第三章
长春工业大学机电学院
2018/12/24 1
第 3章 主要内容
概述
计算机数控装置的插补原理
基准脉冲插补 数据采样插补
2018/12/24
数控技术 2
第 3章
3.1 概 述
3.1.1
计算机数控装置的插补原理
插补的基本概念
数控系统根据零件轮廓线型的有限信息,计算出刀具 的一系列加工点、完成所谓的数据“密化”工作。 插补有二层意思: 一是用小线段逼近产生基本线型(如直线、圆弧等); 二是用基本线型拟和其它轮廓曲线。 插补运算具有实时性,直接影响刀具的运动。插补运算 的速度和精度是数控装置的重要指标。插补原理也叫轨迹 控制原理。五坐标插补加工仍是国外对我国封锁的技术。 下面以基本线型直线、圆弧生成为例,论述插补原理。
计算机数控装置的插补原理
(3)终点判别 终点判别可采用与直线 插补相同的方法 1)判断插补或进给的总步数: N=|Xa-Xb|+|Ya-Yb|; 2)分别判断各坐标轴的进给步数: Nx=|Xa-Xb| Ny=|Ya-Yb| 例:对于第一象限圆弧AB,起点A(4, 0),终点B(0,4),如右图所示。要求 采用逆圆插补方法,其运算过程如表所 示,插补轨迹如右图所示。
F1=F0-ye=0-4=-4 F2=F1+xe=-4+6=2 F3=F2-ye=2-4=-2 F4=F3+xe=-2+6=4 F5=F4-ye=4-4=0
逐点比较法
即
Fi1 Fi X e
6
在插补计算、进给的同时还要进行终点判别。常用终点判 别方法是:
设置一个长度计数器,从直线的起点走到终点,刀具沿
X 轴应走的步数为X e,沿Y 轴走的步数为Ye,计数器中存入 X和Y两坐标进给步数总和∑=∣Xe∣+∣Ye∣,当X 或Y
坐标进给时,计数长度减一,当计数长度减到零时,即∑= 0时,停止插补,到达终点。
终点判别:判断是否到达终点,若到 达x ,结束插补;否则,继续以上四个
步骤(如图3-3所示)。
图3-3 逐点比较法工作循环图
3
2. 直线插补
图3-4所示第一象限直线OE为给定轨迹,其方程为
XeY-XYe=0
(3-1)
P(X,Y)为动点坐标,与直线的关系有三种情况:
(1)若P1点在直线上方,则有XeY-XYe>0 E (2) 若P点在直线上,则有 XeY-XYe=0
2.由偏差方程确定加工动点引起的偏 差符号(若要计算偏差量,则偏差方程系数不能简 化)。
3.下一步插补方向确定原则:向使加 工偏差减小、并趋向轨迹终点的方向插补
.(将偏差等于零的情况并入偏差大于零的情况)。
4.关于插补量:每次插补一个脉冲当 量的位移
12
3. 圆弧插补
在圆弧加工过程中,可用动点到圆心的距离来描述刀具位置与 被加工圆弧之间关系。
b) 逆圆弧
图3-9 第一象限顺、逆圆弧
14
偏差递推简化:对第一象限顺圆,Fi≥0,动点Pi(Xi,Yi)应 向-Y向进给,新的动点坐标为(Xi+1,Yi+1),且Xi+1=Xi,Yi +1=Yi-1,则新点的偏差值为:
15
若Fi<0时,沿+X向前进一步,到达(Xi+1,Yi)点,新点
逐点比较法计算
第二节逐点比较法插补(数控基础第三章插补计算原理、刀具半径补偿与速度控制)发布:2009-7-19 19:24 | 作者:唐义| 来源:本站| 查看:6次| 字号: 小中大逐点比较法的基本原理是被控对象在按要求的轨迹运动时,每走一步都要与规定的轨迹进行比较,由此结果决定下一步移动的方向。
逐点比较法既可以作直线插补又可以作圆弧插补。
这种算法的特点是,运算直观,插补误差小于一个脉冲当量,输出脉冲均匀,而且输出脉冲的速度变化小,调节方便,因此在两坐标数控机床中应用较为普遍。
一、逐点比较法直线插补1.逐点比较法的直线插补原理在图3-1所示平面第一象限内有直线段以原点为起点,以为终点,直线方程为:改写为:如果加工轨迹脱离直线,则轨迹点的、坐标不满足上述直线方程。
在第一象限中,对位于直线上方的点,则有:对位于直线下方的点B,则有:因此可以取判别函数来判断点与直线的相对位置,为当加工点落在直线上时,;当加工点落在直线上方时,;当加工点落在直线下方时,。
我们称为“直线插补偏差判别式”或“偏差判别函数”,的数值称为“偏差”。
例如图3-2待加工直线,我们运用下述法则,根据偏差判别式,求得图中近似直线(由折线组成)。
若刀具加工点的位置处在直线上方(包括在直线上),即满足≥0时向轴方向发出一个正向运动的进给脉冲(),使刀具沿轴坐标动一步(一个脉冲当量δ),逼近直线;若刀具加工点的位置处在直线下方,即满足<0时,向轴发出一个正向运动的进给脉冲(),使刀具沿轴移动一步逼近直线。
但是按照上述法则进行运算判别,要求每次进行判别式运算——乘法与减法运算,这在具体电路或程序中实现不是最方便的。
一个简便的方法是:每走一步到新加工点,加工偏差用前一点的加工偏差递推出来, 这种方法称“递推法”。
若≥0时,则向轴发出一进给脉冲,刀具从这点向方向迈进一步,新加工点的偏差值为根据式(3-1)及式(3-2)可以看出,新加工点的偏差值完全可以用前一点的偏差递推出来。
例题:逐点比较法
-、逐点比较法1、直线L1:起点坐标O (0, 0),终点坐标A (4, 6)(1)分析1)直线L1为第一象限内直线2)插补总步数:M=x e+y e=4+6=103)若偏差任0,则刀具向+A x方向进给一步,偏差f i+1j = f.. - y e4)若偏差f<0,则刀具向+A y方向进给一步,偏差f. .+1= f.. + x e(2)列表计算(3)2、直线L2:起点坐标O (0, 0),终点坐标A (-6, 3)(1)分析1)直线L2为第二象限内直线2)插补总步数:M=l x e l+y e=6+3=93)若偏差任0,则刀具向-A x方向进给一步,偏差f i+1j = f.. - y e4)若偏差f<0,则刀具向+A y方向进给一步,偏差f, .+1= f.. +lx e\ (2)(3)3、直线L3:起点坐标O (0, 0),终点坐标A (-5, -8)(1)分析1)直线L3为第三象限内直线2)插补总步数:M=l x e l+l y e l=5+8=133)若偏差任0,则刀具向-A x方向进给一步,偏差f,+1. = f.. -\y\4)若偏差f<0,则刀具向-A y方向进给一步,偏差f,,+1 = f.. +\x\(2)列表计算(3)绘制进给脉冲图(略)4、直线L4:起点坐标O (0, 0),终点坐标A (7, -4)(1)分析1)直线L4为第四象限内直线2)插补总步数:M=x+\y\=7+4=113)若偏差任0,则刀具向+A x方向进给一步,偏差f i+1j = f.. -\y\4)若偏差f<0,则刀具向-A y方向进给一步,偏差f. .+1= f.. + x e(2)(3)5、圆弧NR1:起点坐标A (4, 0),终点坐标E (0, 4)(1)分析1)圆弧NR1为第一象限逆圆2)插补总步数:M=\(x0-x e)\+\(y0-y e)\=4+4=83)若偏差任0,则刀具向-A x方向进给一步,偏差f,+1 . = f.. ~2x. + 14)若偏差f<0,则刀具向+A y方向进给一步,偏差f, .+1 = f.. + 2y.+ 1 (2)列表计算(3)绘制进给脉冲图(略)6、圆弧NR2:起点坐标A (0, 5),终点坐标E (-5, 0)(1)分析1)圆弧NR2为第二象限逆圆2)插补总步数:M=l(x0-x e)l+l(j0-j e)l=5+5=103)若偏差任0,则刀具向-颂方向进给一步,偏差f.,+1 = f.. - 2y.+ 14)若偏差f<0,则刀具向-A x方向进给一步,偏差f,+1 . = f.. ~2x. + 1 (2)列表计算(3)绘制进给脉冲图(略)7、圆弧NR3:起点坐标A (-6, 0),终点坐标E (0, -6)(1)分析1)圆弧NR3为第三象限逆圆2)插补总步数:M=l(x0-x g)l+l(y0-y g)l=6+6=123)若偏差任0,则刀具向+A x方向进给一步,偏差f i+1j = f.. + 2x. + 14)若偏差f<0,则刀具向-A y方向进给一步,偏差f. .+1 = f.. - 2y. + 1 (2)列表计算(3)8、圆弧NR4:起点坐标A (0, -7),终点坐标E (7, 0)1)圆弧NR4为第四象限逆圆2)插补总步数:M=\(x Q-x e)\+\(y Q-y e)\=7+7=143)若偏差任0,则刀具向+A y方向进给一步,偏差f.,+1 =f.. + 2y.+ 14)若偏差f<0,则刀具向+A x方向进给一步,偏差f i+1j =加+ 2x. + 1(2)(3)9、圆弧SR1:起点坐标A (0, 4),终点坐标E (4, 0)(1)分析1)圆弧SR1为第一象限顺圆2)插补总步数:M=\(x0-x e)\+\(y0-y e)\=4+4=83)若偏差f N0,则刀具向-A y方向进给一步,偏差f, .+1 = f.. ~2y.+ 14)若偏差f<0,则刀具向+A x方向进给一步,偏差f.+1. = f.. + 2x. + 1(2)(3)绘制进给脉冲图(略)10、圆弧SR2:起点坐标A (-5,0),终点坐标E (0,5)(1)分析1)圆弧SR2为第二象限顺圆2)插补总步数:M=\(x0-x e)\+\(y0-y e)\=5+5=103)若偏差f N0,则刀具向+A x方向进给一步,偏差f,+1. = f.. + 2x. + 14)若偏差f<0,则刀具向+A y方向进给一步,偏差f, .+1 = f.. + 2y.+ 1 (2)列表计算(3)绘制进给脉冲图(略)11、圆弧SR3:起点坐标A (0, -6),终点坐标E (-6, 0)(1)分析1)圆弧SR3为第三象限顺圆2)插补总步数:M=l(x0-x e)l+l(y0-y e)l=6+6=123)若偏差任0,则刀具向+颂方向进给一步,偏差f i+1j = f,. + 2y.+ 14)+1= "j - 2x.+ 1 (2)列表计算(3)12、圆弧SR4:起点坐标A (7, 0),终点坐标E (0, -7)(1)分析1)圆弧SR4为第四象限顺圆2)插补总步数:M=l(x0-x e)l+l(y0-y e)l=7+7=143)若偏差任0,则刀具向-A x方向进给一步,偏差f. .+1 = f.j - 2x. + 14)+1.(3二、数值积分法(DDA)1、直线L1:起点坐标O (0, 0),终点坐标A (4, 6)(1)分析1)直线L1为第一象限内直线2)x e=4=100B;y e=6=110B3)取积分累加器容量N=3位4)x被积函数寄存器J vx= x e;y被积函数寄存器J vy= y e5)初始时:x累加器J Rx= 0;y累加器J Ry= 06)当J Rx累加超过3位溢出时,则在x方向分配一进给脉冲+A x7)当J Ry累加超过3位溢出时,则在y方向分配一进给脉冲+颂(2)列表计算:(3)绘制进给脉冲图(略)2、直线L2:起点坐标O(0,0),终点坐标A(-6,3)(1)分析1)直线L2为第二象限内直线2)x e=l-6l=110B;y e=3=011B3)取积分累加器容量N=3位4)x被积函数寄存器J vx= x e;y被积函数寄存器J vy= y e5)初始时:x累加器J Rx= 0;y累加器J Ry= 06)当J Rx累加超过3位溢出时,则在x方向分配一进给脉冲-A x 7)当J Ry累加超过3位溢出时,则在y方向分配一进给脉冲+A y (2)列表计算二进制累加:累加N3):累加(3)绘制进给脉冲图(略)3、直线L3:起点坐标O(0,0),终点坐标A(-5,-8)(1)分析1)直线L3为第三象限内直线2)x e=|-5|=101B;y e=|-8|=1000B3)取积分累加器容量N=4位4)x被积函数寄存器J vx= x e;y被积函数寄存器J vy= y e5)初始时:x累加器J Rx= 0;y累加器J Ry= 06)当J Rx累加超过4位溢出时,则在x方向分配一进给脉冲-A x 7)当J Ry累加超过4位溢出时,则在y方向分配一进给脉冲-A y (2)列表计算二进制累加:(3)绘制进给脉冲图(略)4、直线L4:起点坐标O (0, 0),终点坐标A (7, -4)(1)分析1)直线L4为第四象限内直线2)x e=7=111B;y e=l-4l=100B3)取积分累加器容量N=3位4)x被积函数寄存器J vx= x e;j被积函数寄存器J vy= y e5)初始时:x累加器J Rx= 0;j累加器J Ry= 06)当J Rx累加超过3位溢出时,则在x方向分配一进给脉冲+A x 7)当J Ry累加超过3位溢出时,则在j方向分配一进给脉冲-颂(2)列表计算二进制累加:N3):(3)绘制进给脉冲图(略)5、圆弧NR1:起点坐标A (4, 0),终点坐标E (0, 4)(1)分析1)圆弧NR1为第一象限逆圆2)x0=4=100B;y0=0=000B3)取积分累加器容量N=3位4)初始时:x被积函数寄存器J vx= y0;y被积函数寄存器J vy= x05)初始时:x累加器J Rx= 0;y累加器J Ry= 06)当J Rx累加超过3位溢出时,则在x方向分配一进给脉冲-A x,相应在J vy中对x 坐标的修正为减一7)当J Ry累加超过3位溢出时,则在y方向分配一进给脉冲+A y,相应在J vx中对y 坐标的修正为加一(2)列表计算(3)绘制进给脉冲图(略)7、圆弧NR3:起点坐标A (-6, 0),终点坐标E (0, -6)(1)分析1) 圆弧NR3为第三象限逆圆 2) 扁=I-6I=110B ; y 0=0=000B 3) 取积分累加器容量N=3位4) 初始时:x 被积函数寄存器J vx = y 0; y 被积函数寄存器J vy = x 0 5) 初始时:x 累加器J Rx = 0; y 累加器J Ry = 06) 当J Rx 累加超过3位溢出时,则在x 方向分配一进给脉冲+A x ,相应在J vy 中对x 坐标的修正为减一7) 当J Ry 累加超过3位溢出时,则在y 方向分配一进给脉冲-颂,相应在J vx 中对y坐标的修正为加一(2)列表计算_8_ 9 10 11 12 1314(-44) (-4,4) (-5,3) (-5,3)(-3+4=7 7+4=11 (3)停止累加2+4=6 6+4=10(2) 2+5=7 7+5=12(4) 4+6=10(2) 2+6=8(0)停止累加0 1 0 1 1 1 0(3) 绘制进给脉冲图(略)8、圆弧NR4:起点坐标A (0, -7),终点坐标E (7, 0)(1)分析1) 圆弧NR4为第四象限逆圆 8) x 0=0=000B ; j 0=|-7l=111B 9) 取积分累加器容量N=3位10) 初始时:x 被积函数寄存器J vx = y 0; y 被积函数寄存器J vy = x 0 11) 初始时:x 累加器J Rx = 0; y 累加器J Ry = 012) 当J Rx 累加超过3位溢出时,则在x 方向分配一进给脉冲+A x ,相应在J vy 中对 x 坐标的修正为加一2) 当J Ry 累加超过3位溢出时,则在y 方向分配一进给脉冲+A y ,相应在J vx 中对y 坐标的修正为减一(2)列表计算10 11 12 13 14 15(-4,-6) (-3,-6) (-2,-6) (-1,-7+6=13(5) 5+6=11(3) 3+6=9 (1) 1+6=7 7+6=13 (5)停止累加1 1 1 0 1 0停止累加(3)绘制进给脉冲图(略)9、圆弧SR1:起点坐标A (0, 4),终点坐标E (4, 0)(1)分析1) 圆弧SR1为第一象限顺圆 2) x 0=0=000B ; j 0=4=100B 3) 取积分累加器容量N=3位4) 初始时:x 被积函数寄存器J vx = y 0; y 被积函数寄存器J vy = x 0 5) 初始时:x 累加器J Rx = 0; y 累加器J Ry = 06) 当J Rx 累加超过3位溢出时,则在x 方向分配一进给脉冲+A x ,相应在J vy 中对x坐标的修正为加一7) 当J Ry 累加超过3位溢出时,则在y 方向分配一进给脉冲-颂,相应在J vx 中对y坐标的修正为减一(2)列表计算11 12 13 1415(7, -4) (7, - 3) (7, - 2)-6+5=11⑶3+7=10(2) 2+7=9(1) 1+7=8(0) 0+7=7 7+7=14(6)停止累加1 1 0 1 0(3)绘制进给脉冲图(略)10、圆弧SR2:起点坐标A (-5, 0),终点坐标E (0, 5)(1)分析1)圆弧SR2为第二象限顺圆 2) x 0=l-5l=101B ; j 0=0=000B 3) 取积分累加器容量N=3位4) 初始时:x 被积函数寄存器J vx = y 0; y 被积函数寄存器J vy = x 0 5) 初始时:x 累加器J Rx = 0; y 累加器J Ry = 06) 当J Rx 累加超过3位溢出时,则在x 方向分配一进给脉冲+A x ,相应在J vy 中对x 坐标的修正为减一7) 当J Ry 累加超过3位溢出时,则在y 方向分配一进给脉冲+A y ,相应在J vx 中对y 坐标的修正为加一(2)列表计算12 13 1415(4,2)g (41) (4,1) (4,0)3+4=7 7+4=11(3) 3+4=7 7+4=11(3)停止累加1 0 1 0(3)绘制进给脉冲图(略)11、圆弧SR3:起点坐标A (0, -6),终点坐标E (-6, 0)(1)分析1)圆弧SR3为第三象限顺圆 2) x 0=0=000B ; y 0=l-6l=110B 3) 取积分累加器容量N=3位4) 初始时:x 被积函数寄存器J vx = y 0; y 被积函数寄存器J vy = x 0 5) 初始时:x 累加器J Rx = 0; y 累加器J Ry = 06) 当J Rx 累加超过3位溢出时,则在x 方向分配一进给脉冲-A x ,相应在J vy 中对x 坐标的修正为加一7) 当J Ry 累加超过3位溢出时,则在y 方向分配一进给脉冲+A y ,相应在J vx 中对y 坐标的修正为减一(2)列表计算141514(-6,-1)15(-6,0)停止累加0(3)绘制进给脉冲图(略)12、圆弧SR4:起点坐标A (7, 0),终点坐标E (0, -7)(1)分析1)圆弧SR4为第四象限顺圆2)x0=7=111B;j0=0=000B3)取积分累加器容量N=3位4)初始时:x被积函数寄存器J vx= y0;y被积函数寄存器J vy= x05)初始时:x累加器J Rx= 0;y累加器J Ry= 06)当J Rx累加超过3位溢出时,则在x方向分配一进给脉冲-A x,相应在J vy中对x 坐标的修正为减一7)当J Ry累加超过3位溢出时,则在y方向分配一进给脉冲-A y,相应在J vx中对y 坐标的修正为加一(2)列表计算(3)绘制进给脉冲图(略)。
逐点比较法直线插补
§2—1 逐点比较法逐点比较法是我国数控机床中广泛采用的一种插补方法,它能实现直线、圆弧和非圆二次曲线的插补,插补精度较高。
逐点比较法,顾名思义,就是每走一步都要将加工点的瞬时坐标同规定的图形轨迹相比较,判断其偏差,然后决定下一步的走向,如果加工点走到图形外面去了,那么下一步就要向图形里面走;如果加工点在图形里面,那么下一步就要向图形外面走,以缩小偏差。
这样就能得出一个非常接近规定图形的轨迹,最大偏差不超过一个脉冲当量。
在逐点比较法中,每进给一步都须要进行偏差判别、坐标进给、新偏差计算和终点比较四个节拍。
下面分别介绍逐点比较法直线插补和圆弧插补的原理。
一、 逐点比较法直线插补如上所述,偏差计算是逐点比较法关键的一步。
下面以第Ⅰ象限直线为例导出其偏差计算公式。
图 2-1 直 线 差 补 过 程e )OY图2-1 直线插补过程点击进入动画观看逐点比较法直线插补如图2—1所示,假定直线 OA 的起点为坐标原点,终点A 的坐标为e e i j A(x ,y ),P(x ,y )为加工点,若P 点正好处在直线OA 上,那么下式成立:e j i e x y - x y 0若任意点i j P(x ,y )在直线 OA 的上方(严格地说,在直线OA 与y 轴所成夹角区域内),那么有下述关系成立:jei ey y x x >亦即:e j i e x y - x y 0>由此可以取偏差判别函数ij F 为:ij e j i e F x y - x y =由 ij F 的数值(称为“偏差”)就可以判别出P 点与直线的相对位置。
即: 当 ij F =0时,点i j P(x ,y )正好落在直线上;当 ij F >0时,点i j P(x ,y )落在直线的上方;当ij F <0时,点i j P(x ,y )落在直线的下方。
从图2—1看出,对于起点在原点,终点为A ( e e x ,y )的第Ⅰ象限直线OA 来说,当点P 在直线上方(即ij F >0)时,应该向+x 方向发一个脉冲,使机床刀具向+x 方向前进一步,以接近该直线;当点P 在直线下方(即ij F <0)时,应该向+y 方向发一个脉冲,使机床刀具向+y 方向前进一步,趋向该直线;当点P 正好在直线上(即 ij F =0)时,既可向+x 方向发一脉冲,也可向+y 方向发一脉冲。
第04讲-逐点比较法(直线)
+△y进给: Fi , j 1 xe ( y j 1) xi ye xe y j xi ye xe Fi , j xe
终点判别: 在插补计算、进给的同时还要进行终点判别。
利用动点(Xi,Yj)与终点坐标(Xe,Ye)进行比较,若二 者相等则说明达到终点。
1. 常用终点判别方法,是设置一个长度计数器,存入进给步数总 和∑=∣Xe∣+∣Ye∣,当X或Y坐标进给时,计数长度减1,当 计数长度减到零时,即∑=0时,停止插补,到达终点。 2. 设置X, Y方向两个计数器, 分别存入终点坐标值。当X,或Y坐 标方向每进给一步时,就在相应的计数器中减去1,直到两个计数 器的数对减为零时,停止插补。 3. 选终点坐标值较大的坐标作为计数坐标。当其对应的轴进给时, 计数器减1,直至为零。
逐点比较法工作循环图
逐点比较法插补算法例题
设欲加工的直线位于XY平面的第一象限,直线的起点坐标为坐标原点,终点坐标为Xe=5,Ye=3。 试用逐点比较法对该段直线进行插补,并画出插补轨迹。 解:插补过程运算过程如下表所示,表中Xe,Ye是直线终点坐标,n为总步数,n = | Xe | + | Ye | =8。
L1 F0 F<0 x F<0 F0 L4
四个象限直线的偏差符号和插补进给方向如图所示, 用L1、L2、L3、L4分别表示第Ⅰ、Ⅱ、Ⅲ、Ⅳ象限的直线。 为适用于四个象限直线插补,插补运算时用∣X∣,∣Y∣ 代替X,Y,偏差符号确定可将其转化到第一象限,动点与 直线的位置关系按第一象限判别方式进行判别。 由图可见,靠近Y轴区域偏差大于零,靠近X轴区域 偏差小于零。F≥0时,进给都是沿X轴,不管是+X向还是 -X向,X的绝对值增大;F<0时,进给都是沿Y轴,不论 +Y向还是-Y向,Y的绝对值增大。
逐点比较法直线插补
•在CNC数控机床上,各种曲线轮廓加工都是通过插补计算实现的, 插补计算的任务就是对轮廓线的起点到终点之间再密集的计算出有 限个坐标点,刀具沿着这些坐标点移动,用折线逼近所要加工的曲 线。
•插补方法可以分为两大类:脉冲增量插补和数据采样插补。
•脉冲增量插补是控制单个脉冲输出规律的插补方法,每输出一个脉 冲,移动部件都要相应的移动一定距离,这个距离就是脉冲当量, 因此,脉冲增量插补也叫做行程标量插补。如逐点比较法、数字积 分法。该插补方法通常用于步进电机控制系统。
Fm 0 Fm1 xe ( ym 1) xm ye xe ym xm ye xe Fm xe
(2)终点判断方法
①设置Nx和Ny两个减法计数器,在加工开始前,在Nx和 Ny计数器中分别存入终点坐标值xe和ye,在x坐标(或y坐 标)进给一步时,就在Nx计数器(或Ny计数器)中减去1, 直到这两个计数器中的数都减到零时,到达终点。 ②用一个终点计数器,寄存x和y两个坐标进给的总步数Nxy, x或y坐标进给一步,Nxy就减1,若Nxy=0,则就达到终点。
•数控系统中完成插补工作的部分装置称为插补器。
3.2.1 逐点比较法直线插补
• 逐点比较法插补: 每走一步都要和给定轨迹上 的坐标值进行比较,看这点在给定轨迹的上方 或下方,或是给定轨迹的里面或外面,从而决 定下一步的进给方向。比较一次,决定下一步 走向,以便逼近给定轨迹,即形成逐点比较插 补。
• 加工精度: 逐点比较法规定的加工直线或圆弧 之间的最大误差为一个脉冲当量,因此只要把 脉冲当量(每走一步的距离即步长)取得足够 小,就可达到加工精度的要求。
终点判断
起点
F0=0
Nxy=1
0
1 F0= +x F1=F0-ye=-4 Nxy=9 0
逐点比较法三、四象限逆圆插补计算
逐点比较法三、四象限逆圆插补计算第三象限第四象限Private Sub Command1_Click()Picture1.ForeColor = vbBlackPicture1.DrawWidth = 2Picture1.Line (500, 1000)-(8500, 1000) '画直线坐标轴Picture1.Line (4500, 1000)-(4500, 5000)Picture1.CurrentX = 230 '当前位置Picture1.CurrentY = 900Picture1.Print "-X" '坐标轴标注Picture1.CurrentX = 4300Picture1.CurrentY = 800Picture1.Print "(0,0)"Picture1.CurrentX = 8650Picture1.CurrentY = 900Picture1.Print "X"Picture1.CurrentX = 4400Picture1.CurrentY = 5100Picture1.Print "-Y"Picture1.Line (500, 1000)-(600, 950) '箭头Picture1.Line (500, 1000)-(600, 1050)Picture1.Line (8500, 1000)-(8400, 950)Picture1.Line (8500, 1000)-(8400, 1050)Picture1.Line (4500, 5000)-(4450, 4900)Picture1.Line (4500, 5000)-(4550, 4900)End SubPrivate Sub 坐标判别_Click()If Not (Option1.V alue = True Or Option2.V alue = True) Thenans = MsgBox("出错了,请选择象限", 48, "提示信息")End IfDim a, b, c, d, n, m As IntegerDim r As Singlea = V al(Text1.Text)b = V al(Text2.Text)c = V al(Text3.Text)d = V al(Text4.Text)n = a * a + b * bm = c * c + d * dr = Sqr(n)If Option1.V alue = True ThenIf Not (a <= 0 And b <= 0 And c <= 0 And d <= 0) ThenGoTo wwElseIf Not (a < c And b > d) ThenGoTo ww1ElseIf n <> m ThenGoTo ww2End IfEnd IfIf Option2.V alue = True ThenIf Not (a >= 0 And b <= 0 And c >= 0 And d <= 0) ThenGoTo wwElseIf Not (a < c And b < d) ThenGoTo ww1ElseIf n <> m ThenGoTo ww2End IfEnd IfGoTo ww4ww: ans = MsgBox("出错了,逆圆弧起点、终点不在该象限,请重新输入", 48, "提示信息")GoTo ww3ww1: ans = MsgBox("出错了,逆圆弧起点、终点位置错误,请重新输入", 48, "提示信息") GoTo ww3ww2: ans = MsgBox("出错了,该象限所绘圆弧不以原点为圆心,请重新输入", 48, "提示信息")ww3: Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text1.SetFocusGoTo ww4ww4:End SubPrivate Sub Command4_Click()If Not (Option1.V alue = True Or Option2.V alue = True) Thenans = MsgBox("出错了,请选择象限", 48, "提示信息")End IfDim a, b, c, d, n, m As IntegerDim r As Singlea = V al(Text1.Text)b = V al(Text2.Text)c = V al(Text3.Text)d = V al(Text4.Text)n = a * a + b * bm = c * c + d * dr = Sqr(n)If Option1.V alue = True ThenIf Not (a <= 0 And b <= 0 And c <= 0 And d <= 0) ThenGoTo wwElseIf Not (a < c And b > d) ThenGoTo ww1ElseIf n <> m ThenGoTo ww2End IfEnd IfIf Option2.V alue = True ThenIf Not (a >= 0 And b <= 0 And c >= 0 And d <= 0) ThenGoTo wwElseIf Not (a < c And b < d) ThenGoTo ww1ElseIf n <> m ThenGoTo ww2End IfEnd IfPicture1.ForeColor = vbBluePicture1.DrawWidth = 2If Option1.V alue = True ThenIf b = 0 ThenIf c = 0 ThenPicture1.Circle (4500, 1000), r * 300, , 3.14159, 3 * 3.14159 / 2ElsePicture1.Circle (4500, 1000), r * 300, , 3.14159, Atn(d / c) + 3.14159End IfElseIf c = 0 ThenPicture1.Circle (4500, 1000), r * 300, , Atn(b / a) + 3.14159, 3 * 3.14159 / 2 ElsePicture1.Circle (4500, 1000), r * 300, , Atn(b / a) + 3.14159, Atn(d / c) + 3.14159 End IfEnd IfIf Option2.V alue = True ThenIf a = 0 ThenIf d = 0 ThenPicture1.Circle (4500, 1000), r * 300, , 3 * 3.14159 / 2, 2 * 3.14159ElsePicture1.Circle (4500, 1000), r * 300, , 3 * 3.14159 / 2, Atn(d / c) + 3.14159 * 2 End IfElseIf d = 0 ThenPicture1.Circle (4500, 1000), r * 300, , Atn(b / a) + 3.14159 * 2, 2 * 3.14159 ElsePicture1.Circle (4500, 1000), r * 300, , Atn(b / a) + 3.14159 * 2, Atn(d / c) + 3.14159 * 2End IfEnd IfGoTo ww4ww: ans = MsgBox("出错了,逆圆弧起点、终点不在该象限,请重新输入", 48, "提示信息")GoTo ww3ww1: ans = MsgBox("出错了,逆圆弧起点、终点位置错误,请重新输入", 48, "提示信息") GoTo ww3ww2: ans = MsgBox("出错了,该象限所绘圆弧不以原点为圆心,请重新输入", 48, "提示信息")ww3: Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text1.SetFocusGoTo ww4ww4:End SubPrivate Sub Command2_Click()Dim k, m, j, l, n, F(30), X(30), Y(30) As Integer, a As Integer, b As Integer, c As Integer, d As Integera = Int(Text1)b = Int(Text2)c = Int(Text3)d = Int(Text4)m = 0l = 0k = 0F(m) = 0X(m) = aY(m) = bPicture1.ForeColor = vbGreenPicture1.DrawWidth = 3j = Abs(Abs(a) - Abs(c)) + Abs(Abs(b) - Abs(d))Form1.CurrentX = 200Form1.CurrentY = 200Print "初始", "进给方向", "F(0)=0", " X(0) =" & Int(Text1), " Y(0)=" & Int(Text2), " Xe = " & Int(Text4), "Y e = " & Int(Text3), " ∑= " & jIf Option1.V alue = True Then '第三象限插补For n = 1 To jIf F(m) >= 0 And j > 0 Thenm = m + 1l = l + 1F(m) = F(m - 1) - 2 * Abs(X(m - 1)) + 1X(m) = X(m - 1) + 1Y(m) = Y(m - 1)Picture1.Line (4500 + 300 * (a + l - 1), 1000 - 300 * (b - k))-(4500 + 300 * (a + l), 1000 - 300 * (b - k))Form1.CurrentX = 200Form1.CurrentY = 200 + m * 300Print "第" & m & "步", " -△X ", "F(" & m & ")=" & F(m), " X(" & m & ")=" & X(m), " Y(" & m & ")=" & Y(m), " Xe = " & Int(Text4), " Y e = " & Int(Text3), " ∑= " & j - nElsek = k + 1m = m + 1F(m) = F(m - 1) + 2 * Abs(Y(m - 1)) + 1Y(m) = Y(m - 1) - 1X(m) = X(m - 1)Picture1.Line (4500 + 300 * (a + l), 1000 - 300 * (b - k + 1))-(4500 + 300 * (a + l), 1000 - 300 * (b - k))Form1.CurrentX = 200Form1.CurrentY = 200 + m * 300Print "第" & m & "步", " +△Y", "F(" & m & ")=" & F(m), "X(" & m & ")=" & X(m), " Y(" & m & ")=" & Y(m), " Xe = " & Int(Text4), "Y e = " & Int(Text3), " ∑= " & j - n; ""End IfNext nElseIf Option2.V alue = True Then '第四象限插补For n = 1 To jIf F(m) >= 0 And j > 0 Thenm = m + 1k = k + 1F(m) = F(m - 1) - 2 * Abs(Y(m - 1)) + 1X(m) = X(m - 1)Y(m) = Y(m - 1) + 1Picture1.Line (4500 + 300 * (a + l), 1000 - 300 * (b + k - 1))-(4500 + 300 * (a + l), 1000 - 300 * (b + k))Form1.CurrentX = 200Form1.CurrentY = 200 + m * 300Print "第" & m & "步", " -△Y", "F(" & m & ")=" & F(m), "X(" & m & ")=" & X(m), " Y(" & m & ")=" & Y(m), " Xe = " & Int(Text4), " Y e = " & Int(Text3), " ∑= " & j - nElsel = l + 1m = m + 1F(m) = F(m - 1) + 2 * Abs(X(m - 1)) + 1Y(m) = Y(m - 1)X(m) = X(m - 1) + 1Picture1.Line (4500 + 300 * (a + l - 1), 1000 - 300 * (b + k))-(4500 + 300 * (a + l), 1000 - 300 * (b + k))Form1.CurrentX = 200Form1.CurrentY = 200 + m * 300Print "第" & m & "步", " +△X ", "F(" & m & ")=" & F(m), " X(" & m & ")=" & X(m), " Y(" & m & ")=" & Y(m), " Xe = " & Int(Text4), " Y e = " & Int(Text3), " ∑= " & j - nEnd IfNext nEnd IfEnd SubPrivate Sub Command3_Click() '清除Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Picture1.ClsForm1.ClsText1.SetFocus。
逐点比较法课程设计--逐点比较法第一二象限的顺圆插补
****学院课程设计说明书设计题目:逐点比较法第一二象限的顺圆插补系部:机电工程系专业:自动化(数控技术)班级:姓名:学号:指导老师:起止时间:年月日至年月日共周年月日目录一、课程设计的目的 (3)二、课程设计的任务 (3)三、逐点比较法基本原理 (4)四、逐点比较法插补软件流程图 (8)五、算法描述(在VB中的具体实现) (9)六、编写算法程序清单 (9)七、软件运行仿真效果 (12)八、参考文献 (15)九、设计小结 (15)逐点比较法第一二象限的顺圆插补一、课程设计的目的1)了解连续轨迹控制数控系统的组成原理。
2) 掌握逐点比较法插补的基本原理。
3)掌握逐点比较法插补的软件实现方法。
二、课程设计的任务逐点比较法插补是最简单的脉冲增量式插补算法之一,其过程清晰,速度平稳,但一般只用于一个平面内两个坐标轴的插补运算。
其基本原理是在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给,且只有一个方向的进给。
也就是说,逐点比较法每一步均要比较加工点瞬时坐标与规定零件轮廓之间的距离,依此决定下一步的走向。
如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部,则下一步要向轮廓外面走,以缩小偏差,这样周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的轨迹。
逐点比较法插补过程中的每进给一步都要经过偏差判别、坐标进给、偏差计算和终点判别四个节拍的处理,其工作流程图如图所示。
三、基本原理(1)逐点比较法I 象限顺圆插补基本原理在加工圆弧过程中,人们很容易联想到使用动点到圆心的距离与该圆弧的名义半径进行比较来反映加工偏差。
假设被加工零件的轮廓为第Ⅰ象限顺走向圆弧SE ,,圆心在O (0,0),半径为R ,起点为S (X S ,Y S ),终点为E (X e ,Y e ),圆弧上任意加工动点为N (X i ,Y i )。
逐点比较法
else
{
ZF=4;
X=X;
Y=Y-1;
printf("X=%d,Y=%d\n",X,Y);
}
FM=FM+XE;
}
NXY=NXY-1;
}
}
2.5运行结果
3.数字积分直线插补
3.1数字积分法直线插补的基本原理
数字积分法是利用数字积分的方法,计算刀具沿各坐标轴的位移,使得刀具沿着所加工的轮廓曲线运动
利用数字积分原理构成的插补装置称为数字积分器,又称数字微分分析器(Digital Differential Analyzer),简称DDA。数字积分器插补的最大优点在于容易实现多坐标轴的联动插补、能够描述空间直线及平面各种函数曲线等。因此,数字积分法插补在轮廓数控系统中得到广泛的应用。
积分器作直线插补时,不论各段程序的被积函数大小,都必须经过m=2n次累加运算才能到达终点。这样各个坐标溢出脉冲的速度受被积函数的大小影响。被积函数愈大,溢出脉冲速度愈快,因而机床的进给速度也愈快;反之,被积函数愈小,速度愈低,机床的进给速度愈慢。即加工尺寸大,走刀快,加工尺寸小,走刀慢。所以各程序段的进给速度是不一致的,这将影响加工的表面质量,特别是行程短的程序段,生产效率低控制积分器的溢出速度的方法——左移规格化
第四步:终点判别,判断刀具是否到达被加工零件的终点,若到达终点,则结束插补,否则继续插补,如此不断循环以上四个节拍就可加工出所要求的曲线。
2.3直线插补程序流程图
图2直线插补程序流程图
2.4直线插补程序
#include<stdio.h>
main()
{
int X=0,Y=0,XE,YE,XOY,NXY,FM=0,ZF;
逐点比较法1
§2—1逐点比较法逐点比较法是我国数控机床中广泛采用的一种插补方法,它能实现直线、圆弧和非圆二次曲线的插补,插补精度较高。
逐点比较法,顾名思义,就是每走一步都要将加工点的瞬时坐标同规定的图形轨迹相比较,判断其偏差,然后决定下一步的走向,如果加工点走到图形外面去了,那么下一步就要向图形里面走;如果加工点在图形里面,那么下一步就要向图形外面走,以缩小偏差。
这样就能得出一个非常接近规定图形的轨迹,最大偏差不超过一个脉冲当量。
在逐点比较法中,每进给一步都须要进行偏差判别、坐标进给、新偏差计算和终点比较四个节拍。
下面分别介绍逐点比较法直线插补和圆弧插补的原理。
一、逐点比较法直线插补如上所述,偏差计算是逐点比较法关键的一步。
下面以第Ⅰ象限直线为例导出其偏差计算公式。
图2-1 直线插补过程点击进入动画观看逐点比较法直线插补如图2—1所示,假定直线的起点为坐标原点,终点A的坐标为为加工点,若P点正好处在直线上,那么下式成立:若任意点在直线的上方(严格地说,在直线与y轴所成夹角区域内),那么有下述关系成立:亦即:由此可以取偏差判别函数为:由的数值(称为“偏差”)就可以判别出P点与直线的相对位置。
即:当=0时,点正好落在直线上;当>0时,点落在直线的上方;当<0时,点落在直线的下方。
从图2—1看出,对于起点在原点,终点为A()的第Ⅰ象限直线OA来说,当点P 在直线上方(即>0)时,应该向+x方向发一个脉冲,使机床刀具向+x方向前进一步,以接近该直线;当点P在直线下方(即<0)时,应该向+y方向发一个脉冲,使机床刀具向+y方向前进一步,趋向该直线;当点P正好在直线上(即=0)时,既可向+x方向发一脉冲,也可向+y方向发一脉冲。
因此通常将>0和=0归于一类,即≥0。
这样从坐标原点开始,走一步,算一次,判别,再趋向直线,逐点接近直线,步步前进。
当两个方向所走的步数和终点坐标A()值相等时,发出终点到达信号,停止插补。
轮廓插补原理——逐点比较法
现假设第i次插补后,动点坐标为N(Xi,Yi),偏差函数为
Fi=XeYi—XiYe
Fi+1=XeYi+1—Xi+1Ye=XeYi—XiYe+Xe
∴Fi+1=Fi+Xe(3-6)
由式(3-5)和式(3-6)可以看出,采用递推公式计算偏差函数F,将不涉及动点坐标与乘法运算,仅与直线的终点坐标以及前一点的偏差函数值有关,并且算法简单,易于实现。
要说明的是,通过坐标平移的方式可以使每个直线轮廓段的起点总处在坐标系的原点上。另外,在开始加工之前,应通过人工方式将刀具移至加工起点,这一过程称为“对刀”。由于刀具就在直线上,因此,偏差函数的初始值为F0=0。
当F<0时,Y1输出0,Y2输出1,向+Y进给一步,并使J-1→J。
第三个时序脉冲t3:完成偏差函数的计算。t3为移位脉冲序列,其数量等于参与运算的寄存器位数。至于当前的移位脉冲t3送往哪个寄存器,却由偏差符号触发器TF的状态决定。凡是允许移位的坐标寄存器,在t3每发送来一个移位脉冲时,将和偏差函数寄存器JF一道移出一位内容,进入全加器Σ进行加法运算,随后将运算结果回送至JF保存待用,直至t3发送完本次插补计算的所有脉冲。另外,坐标寄存器存放的是终点坐标值,每一次插补运算其值都不变,因此,坐标寄存器为循环移位寄存器。全加器Σ只能作加法运算,至于减法可通过补码转化为加法。偏差计算的逻辑关系如表3-2所示。
逐点比较法既可实现直线插补,也可实现圆弧插补。其特点是运算简单直观,插补过程的最大误差不超过一个脉冲当量,输出脉冲均匀,而且输出脉冲速度变化小,调节方便,但不易实现两坐标以上的联动插补。因此,在两坐标数控机床中应用较为普遍。
2单元 逐点比较法插补原理
表 2-4 逐点比较法逆圆弧插补运算过程
序号 偏差判别 坐标进给 偏差计算
坐标计算
1
F0=0
∆x
F1=02×4+1=7 x1=3,y1=3
2
F1=7<0 +∆y
F2=7+2×3+1=0 x2=3,y2=4
3
F2=0
∆x
F3=02×3+1=5 x3=2,y3=4
Fm ≥ 0 时: Fm 1 Fm 2 xm 1 xm 1 xm 1 ym 1 ym Fm 0 时: Fm 1 Fm 2 xm 1 xm 1 xm ym 1 ym 1
令瞬时加工点为 m(xm, ym) ,它与圆心的距离 为 Rm 加工点可能在三种情况出现,即圆弧上、 圆弧外、 圆弧内。当动点m位于圆弧上时有
Rm2 xm2 ym2
R2 x02 y02
图2-6 第一象限逆圆
三、圆弧插补:
偏差判别
Fm Rm2 R2 xm2 ym2 R2
坐标进给
偏差计算
1
F0 0
2
F1 0
3
F2 0
4
F3 0
5
F4 0
6
F5 0
7
F6 0
8
F7 0
9
F8 0
10
F9 0
11
F10 0
12
F11 0
13
F12 0
14
F13 0
x
F1 F0 ye 0 6 6
y
F2 F1 xe 6 10 4
偏差计算公式
逐点比较法
Y
A(0,4) 4 3
2
1
B(4,0)
O 1 2 34
X
图3-11 圆弧插补实例
18
表3-2 例3-2圆弧插补计算过程
19
四个象限中圆弧插补
第一象限逆圆弧CD的运动趋势是X轴绝对值减少,Y 轴绝对值增大,当动点在圆弧上或圆弧外,即Fi≥0时,X
轴沿负向进给,新动点的偏差函数为: (3-8)
Fi<0时,Y轴沿正向进给,
位移。
22
/10/29
图34动点与直线位置关系1若p1点在直线上方则有xeyxye02若p点在直线上则有xeyxye03若p2点在直线下方则有xeyxye0因此可以构造偏差函数为图34所示第一象限直线oe为给定轨迹其方程为pxy为动点坐标与直线的关系有三种情况f0时表示动点在oe上如点p可向x向进给也可向y向进给可归入f0的情况一同考虑
(1) 当动点P(X,Y)位于圆弧上时有 X 2+Y 2-R 2=0
(2) P点在圆弧外侧时,即 X 2+Y 2-R 2>0
(3) P点在圆弧内侧时,,即 X 2+Y 2-R 2<0 用F表示P点的偏差值,定义圆弧偏差函数判别式为
当动点落在圆弧上时,一般约定将其和F>0一并考虑。 13
a) 顺圆弧
(3)若P2点在直线下方,则有XeY-XYe<0 因此,可以构造偏差函数为
图3-4 动点与直线位置关系
F= XeY-XYe
(3-2)
4
对于第一象限直线,其偏差符号与进给方向的关系为:
(1) F=0时,表示动点在OE上,如点P,可向+X向进给, 也可向+Y向进给,可归入F >0的情况一同考虑。
(2) F >0时,表示动点在OE上方,应向+X向进给。 (3) F <0时,表示动点在OE下方,应向+Y向进给。
逐点比较法第一象限直线插补
逐点比较法第一象限直线插补编程逐点比较法是以折线来逼近给定的轨迹,就是每走一步控制系统都要将加工点与给定的图形轨迹相比较,以决定下一步进给的方向,使之逼近加工轨迹。
逐点比较法以折线来逼近直线或圆弧,其最大的偏差不超过一个最小设定单位。
只要将脉冲当量取得足够小,就可以达到精度要求。
逐点比较插补法在脉冲当量为0.01mm,系统进给速度小于3000mm/min时,能很好的满足要求。
一、逐点比较法直线插补如下图所示设直线 oA 为第一象限的直线,起点为坐标原点o (0 , 0) ,终点坐标为, A( ) , P() 为加工点。
若 P 点正好处在直线 oA 上,由相似三角形关系则有即点在直线 oA 上方 ( 严格为直线 oA 与 y 轴正向所包围的区域 ) ,则有即若 P 点在直线 oA 下方 ( 严格为直线 oA 与 x 轴正向所包围的区域 ) ,则有图 3 — 1 逐点比较法第一象限直线插补即令则有:①如,则点 P 在直线 oA 上,既可向 +x 方向进给一步,也可向 +y 方向进给一步;②如,则点 P 在直线 oA 上方,应向 +x 方向进给一步,以逼近oA直线;③如,则点 P 在直线 oA 下方,应向 +y 方向进给一步,以逼近 oA直线一般将及视为一类情况,即时,都向 +x 方向进给一步。
当两方向所走的步数与终点坐标相等时,停止插补。
这即逐点比较法直线插补的原理。
对第一象限直线 oA 从起点 ( 即坐标原点 ) 出发,当 F时, +x 向走一步;当 F<0 时,y 向走一步。
特点:每一步都需计算偏差,这样的计算比较麻烦。
递推的方法计算偏差:每走一步后新的加工点的偏差用前一点的加工偏差递推出来。
采用递推方法,必须知道开始加工点的偏差,而开始加工点正是直线的起点,故。
下面推导其递推公式。
设在加工点 P( ) 处,,则应沿 +x 方向进给一步,此时新加工点的坐标值为新加工点的偏差为即若在加工点 P( ) 处,,则应沿 +y 方向进给一步,此时新加工点的坐标值为,新加工点的偏差为即综上所述,逐点比较法直线插补每走一步都要完成四个步骤 ( 节拍 ) ,即:(1) 位置判别根据偏差值大于零、等于零、小于零确定当前加工点的位置。
逐点比较法计算
第二节逐点比较法插补(数控基础第三章插补计算原理、刀具半径补偿与速度控制)发布:2009-7-19 19:24 | 作者:唐义|来源:本站|查看:6次|字号:小中大逐点比较法的基本原理是被控对象在按要求的轨迹运动时,每走一步都要与规定的轨迹进行比较,由此结果决定下一步移动的方向。
逐点比较法既可以作直线插补又可以作圆弧插补。
这种算法的特点是,运算直观,插补误差小于一个脉冲当量,输岀脉冲均匀,而且输岀脉冲的速度变化小,调节方便,因此在两坐标数控机床中应用较为普遍。
一、逐点比较法直线插补 1 .逐点比较法的直线插补原理在图3-1所示平面第一象限内有直线段以原点为起点,以为终点,直线方程为:第一象限直线插,改写为:如果加工轨迹脱离直线,则轨迹点的、坐标不满足上述直线方程。
在第一象限中,对位于直线上方的点则有:对位于直线下方的点B,则有:当加工点落在直线上时,;当加工点落在直线上方时,;当加工点落在直线下方时,。
我们称为直线插补偏差判别式”或偏差判别函数”,的数值称为偏差例如图3-2待加工直线,我们运用下述法则,根据偏差判别式,求得图中近似直线(由折线组成)。
若刀具加工点的位置处在直线上方(包括在直线上),即满足>0时向轴方向发岀一个正向运动的进给脉冲(),使刀具沿轴坐标动一步(一个脉冲当量5),逼近直线;若刀具加工点的位置处在直线下方, 即满足V0时,向轴发出一个正向运动的进给脉冲(),使刀具沿轴移动一步逼近直线。
但是按照上述法则进行运算判别,要求每次进行判别式运算一一乘法与减法运算,这在具体电路或程序中实现不是最方便的。
一个简便的方法是:每走一步到新加工点,加工偏差用前一点的加工偏差递推岀来,这种方法称递推法”。
若>0时,则向轴发岀一进给脉冲,刀具从这点向方向迈进一步,新加工点的偏差值为叽•=耳儿-E +1)兀p=耳丹-否几-y』二% -儿p眼昌疑j =昌j -儿(3-1)屮如果某一时刻加工点玖花申)的骂j<0时,则向》瞬岀一进给脉冲,刀具从这点向丿方向迈进一歩,新加工点P(耳儿J的偏差值尬耳护 1 二兀+1)一 3 *=兀片-咼几+ 2眼恥产% +兀(3-2h根据式(3-1 )及式(3-2 )可以看出,新加工点的偏差值完全可以用前一点的偏差递推出来。
2--插补象限圆弧走向处理以及逐点比较法合成进给速度
为叙述方便,首先定义一些符号如下。 L SR :直线 :顺圆弧
NR
:逆圆弧
脚标数字:曲线所在象限。 L1、 L2、 L3 和 L4 :第1、2、3和4象限直线。
Y
(0,4) (1,3)
Y
X
X
图1
图2
为减少误差,对于 F = 0 的情况,可分别进行以下处理。 ① 对于 |Ye|>|Xe| 的直线,约定在Y轴方向走一步。 ② 对于 |Xe|>|Ye| 的直线,约定在X轴方向走一步。 根据改进后算法设计的直线插补流程图如下。
开始 ① F=0 ② ∑=|Xe|+ |Ye| F=0? N Y F > 0 ? N Y +X Xe > 0? N -X Y +Y Ye > 0? N -Y Y |Ye|≥|Xe|? Y Ye > 0? N -Y N
Fi 1 Fi 2 | X i | 1 | X i 1 || X i | 1
NR1
SR2 NR3 SR4
-X
+X +X -X
F F 2 | X i | 1 i 1 i | X i 1 || X i | 1
+Y
+Y -Y -Y
Fi 1 Fi 2 | Yi | 1 | Yi 1 || Yi | 1
可见第一象限顺圆弧的插补问题可转换为第一象限逆圆弧的插 补问题,转换方法就是将X轴和Y轴对调,具体操作如下。 ① 将圆弧起点的X、Y坐标对调,作为第一象限逆圆弧的起点, 再将圆弧终点的X、Y坐标对调,作为第一象限逆圆弧的终点。 ② 对转换后得到的第一象限逆圆弧进行插补运算。 当计算结果为-X方向进给时,发出-Y方向的实际控制信号。 当计算结果为+Y方向进给时,发出+X方向的实际控制信号。
逐点比较法的工作节拍
逐点比较法的工作节拍逐点比较法是一种常见的软件测试方法,其主要目的是通过比较实际输出和预期输出来检查软件是否正常工作。
在逐点比较法中,测试人员需要编写测试用例,执行测试用例,并将实际输出与预期输出进行比较。
本文将介绍逐点比较法的工作节拍。
1. 编写测试用例在逐点比较法中,首先需要编写测试用例。
测试用例是一组输入和预期输出的组合,它们被设计为覆盖软件的不同方面和功能。
编写测试用例时需要考虑以下因素:- 输入数据:输入数据应该包括各种可能的情况,例如无效输入、有效输入、特殊字符等。
- 预期输出:预期输出应该基于软件规格说明书或设计文档,并且应该包括所有可能的结果。
- 测试条件:测试条件应该明确说明在何种环境下进行测试,例如操作系统、硬件配置等。
2. 执行测试用例执行测试用例时需要按照预定计划进行。
在执行过程中,需要注意以下事项:- 记录结果:记录每个测试用例的实际输出,并与预期输出进行比较。
- 解决问题:如果出现任何问题或错误,请记录并及时报告给相关人员。
- 调整计划:如果测试过程中出现延迟或其他问题,请及时调整计划。
3. 比较实际输出和预期输出在执行测试用例后,需要将实际输出与预期输出进行比较。
这通常需要进行手动比较,但也可以使用自动化测试工具来完成。
在比较过程中,需要注意以下事项:- 精确度:比较应该非常精确,并且应该检查每个字符和每个标点符号。
- 一致性:比较应该是一致的,并且应该使用相同的方法和工具来进行。
- 记录结果:记录每个测试用例的比较结果,并将其报告给相关人员。
4. 分析结果并报告在完成所有测试用例的比较后,需要对结果进行分析并报告给相关人员。
分析包括以下方面:- 错误率:计算错误率并确定是否符合软件规格说明书或设计文档。
- 问题列表:列出所有问题,并按照优先级进行排序。
- 建议改进措施:提供建议改进措施,并解决所有问题。
总结逐点比较法是一种有效的软件测试方法,它可以帮助开发人员和测试人员发现软件中存在的问题。