逐点比较法计算
逐点比较法
对于位于直线上方的Pi’点,有 Fi=YiXe -XiYe>0
对于位于直线上的Pi点,有 Fi=YiXe -XiYe=0 对于位于直线下方的Pi”点,有 Fi=YiXe -XiYe<0 Y Pi’ A (Xe、Ye) Pi (Xi,Yi) o Pi” X
2. 进给控制 当Fi>0时,向+X方向进给一步,使动点接近直线OA; 当Fi<0时,向+Y方向进给一步,使动点接近直线OA; 当Fi=0时,向任意方向进给一步,但通常归于Fi>0 处理;
逐点比较法第一象限的顺圆弧插补算法
当动点Pi(Xi,Yi)位于圆弧上时有 Xi2+Yi2-R2=0
Y B
当Pi点在圆弧外侧时,则OPi大于圆弧半径R,即(Xb,Yb) F<0 Ri 2 2 2 Xi +Yi -R >0 当Pi点在圆弧内侧时,则OPi小于圆弧半径R,即 Xi2+Yi2-R2<0
1 2 3 4 5 6 7 8
F0=0 F1<0 F2<0 F3<0 F4>0 F5<0 F6>0 F7>0
-Y +X +X +X -Y +X -Y -Y
F1 F0 2Y0 1 7
F2 F1 2 X 1 1 6
F3 F2 2 X 2 1 3
F4 F3 2 X 3 1 2
表3-2 圆弧插补过程
步数 起点 偏差判别 坐标进给 偏差计算 坐标计算 终点判别
F0 0
X0=0,Y 0=4 X1=0,Y 1=3 X2=1,Y 2=3 X3=2,Y 3=3 X4=3,Y 4=3 X5=3,Y 5=2 X6=4,Y 6=2 X7=4,Y 7=1 X8=4,Y 8=0
3.1数控插补原理(2)逐点比较法
开始 初始化 Xe→X,Ye→Y 0→Fi ,N =|Xe|+|Ye|
Y 进给方向:+X
F≥0 N 进给方向: +Y
Fi- Ye → Fi+1
Fi+ Xe → Fi+1
N = N -1
N =0
N
Y 结束
继续
逐点比较法Ⅰ象限直线插补流程图
例题:设欲加工第一象限直线OE,起点为坐标原点,
终点坐标为Xe=4,Ye=3,用逐点比较法插补之,并画出
+Y F6 F5 2Y5 1 4
-X F7 F6 2X6 1 1
8
F7>0
-X
F8 F7 2X7 1 0
坐标计算
X0=4,Y0=0 X1=3,Y1=0 X2=3,Y2=1 X3=3,Y3=2 X4=3,Y4=3 X5=2,Y5=3 X6=2,Y6=4 X7=1,Y7=4
X8=0,Y8=4
Fi 0, 朝 x 增大方向, Fi1 Fi ye Fi 0, 朝 y 增大方向, Fi1 Fi xe
5.2 脉冲增量插补 其它象限插补流程:
3.逐点比较法Ⅰ象限逆圆插补
(1)基本原理
①偏差判别 关键:寻找偏差函数F(x,y)
当动点N(Xi,Yi)位于圆弧上时有下式成立
Y
E(XeYe) Nˊ
X i2 Yi2 Xe2 Ye2 R2
当动点N(Xi,Yi)在圆弧外侧时,有下式成立
X i2 Yi2 Xe2 Ye2 R2
当动点N(Xi,Yi)在圆弧内侧时,有下式成立
O
N(Xi,Yi) R
N〞 S(XSYS)
X
X i2 Yi2 Xe2 Ye2 R2
I象限逆圆与动点之间的关系
逐点比较法
即
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.目的①掌握逐点比较法插补的原理及过程;②掌握利用计算机高级语言,设计及调试“插补运算轨迹”模拟画图的程序设计方法;③进一步加深对插补运算过程的理解;二、实验仪器计算机一台三、实验原理①逐点比较法插补运算的原理首先粗略的简单介绍一下机床是如何按照规定的图形加工出所需的工件的。
例如,现在要加工一段圆弧(图2-1),起点为A,终点为B,坐标原点就是圆心,Y轴、X轴代表纵、横拖板的方向,圆弧半径为R。
如从A点出发进行加工,设某一时刻加工点在M1,一般来说M1和圆弧有所偏离。
因此,可根据偏离的情况确定下一步加工进给的方向,使下一个加工点尽可能向规定图形(即圆弧)靠拢。
若用R M1表示加工点M1到圆心O的距离,显然,当R M1<R时,表示加工点M1在圆内,这时应控制纵拖板(Y拖板)向圆外进给一步到新加工点M2,由于拖板被步进电机带动,进给一步的长度是固定的(1微米),故新的加工点也不一定正好在圆弧上。
同样,当M2≥R时,表示加工点M2在圆外或圆上,这时应控制横拖板(X拖板)向圆内进给一步。
如此不断重复上述过程,就能加工出所需的圆弧。
图2-1 插补原理可以看出,加工的结果是用折线来代替圆弧,为了清楚起见,在图2-1中,每步的步长画的很大,因此加工出来的折线与所需圆弧的误差较大。
若步长缩小,则误差也跟着缩小,实际加工时,进给步长一般为1微米,故实际误差时很小的。
②计算步骤由上述可以看出,拖板每进给一步都要完成四个工作节拍。
偏差判别:判别偏差符号,确定加工点是在要求图形外还是在图形内。
工作台进给:根据偏差情况,确定控制X坐标(或Y坐标)进给一步,使加工点向规定的图形靠拢,以缩小偏差。
偏差计算:计算进给一步后加工点与要求图形的新偏差,作为下一步偏差判别的依据。
终点判断:判定是否到达终点,如果未达到终点,继续插补,如果以到达终点,停止插补。
例题:逐点比较法
-、逐点比较法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)绘制进给脉冲图(略)。
(完整版)圆弧插补
Fi<0
O Fi≥0
X Fi<0 Fi≥0
2、圆弧插补的象限处理
前面的圆弧插补(顺圆、逆圆)只限于第一象限,其他 情况如图所示: Y
O
X
代入偏差函数,得Pi+1点的偏差为: Fi+1 = Fi-2Xi + 1
当Fi<0时,向+Y方向进给一步。动点由Pi(Xi,Yi) 移动到 Pi+1(Xi,Yi +1)则新动点的坐标为 Yi+1=Yi +1
代入偏差函数,得Pi+1点的偏差为:
Fi+1 = Fi + 2Yi + 1
所以,第一象限逆时针圆弧插补加工时偏差加工的递推 公式为:
6 F5= -7 +Y F6=F5+2Y5+1 =0, X6=3,Y6=4 ∑=4
7 F6=0 -X F7=F6-2X6+1 = -5, X7=2,Y7=4 ∑=3 8 F7= -5 +Y F8=F7+2Y7+1 =4, X8=2,Y8=5 ∑=2
9 F8=4 -X F9=F8-2X8+1 = 1, X9=1,Y9=5 ∑=1
若P点在圆弧上,则有 (Xi2 +Yi2 ) — (Xo2 +Yo2) = 0,我们定义偏差函数Fi为 Fi = (Xi2 +Yi2 ) — (Xo2 +Yo2 )
Y
B(Xe,Ye)
Pi(Xi,Yi)
A(Xo,Yo) O
X
可见,若Fi=0,表示动点位于圆弧上;若Fi>0,表示动 点位于圆弧外;Fi<0,表示动点位于圆弧内。
(2)进给控制
把Fi=0和若Fi>0合在一起考虑,当Fi≥0时,向-X方向进 给一步;当Fi<0时,向+Y方向进给一步。
逐点比较法的性能和数字积分法
的速度分量为Vx,Vy,
则有
Y
V Vx Vy k OE X e Ye
Vy V E(Xe,Ye)
(k为常数) (3-16)
各坐标轴的位移量为
Vx
X Vxdt kXedt
O
X
Y Vydt kYedt (3-17)
图3-19 DDA直线插补
数字积分法是求式(3-17)从 O到E区间的定积分。此积分值等 于由O到E的坐标增量,因积分是 从原点开始的,所以坐标增量即是 终点坐标。
1. 数字积分法直线插补 例子:
若要产生直线OE,其起点为坐标原点O, 终点坐标为E(7,4)。设寄存器和累加 器容量为1,将Xe=7,Ye=4分别分成8
段,每一段分别为7/8,4/8,将其存入
X和Y函数寄存器中。
第一个时钟脉冲来到时,累加器里 的值分别为7/8,4/8,因不大于累加器 容量,没有溢出脉冲。
停止插补。
例题
设欲加工第一象限直线OE,起点在原点,终点坐标Xe=5, Ye=4,试写出插补计算过程并绘制插补轨迹。
步数 偏差判别 坐标进给
偏差计算
终点判别
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
F0=0
+X
F1.= F0 - Ye =0-4=-4
Ⅱ Ⅲ
-X -X
+Y -Y
Fm1 Fm Ye Fபைடு நூலகம்1 Fm Xe
Ⅳ
+X
-Y
不同象限直线的逐点比较插补
二、圆弧插补 1.偏差计算公式
因为
Rm2
X
2 m
Ym2
取
逐点比较法课程设计--逐点比较法第一二象限的顺圆插补
****学院课程设计说明书设计题目:逐点比较法第一二象限的顺圆插补系部:机电工程系专业:自动化(数控技术)班级:姓名:学号:指导老师:起止时间:年月日至年月日共周年月日目录一、课程设计的目的 (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 )。
逐点比较法第一象限直线圆弧插补
逐点比较法第一象限直线,圆弧插补编程逐点比较法是以折线来逼近给定的轨迹,就是每走一步控制系统都要将加工点与给定的图形轨迹相比较,以决定下一步进给的方向,使之逼近加工轨迹。
逐点比较法以折线来逼近直线或圆弧,其最大的偏差不超过一个最小设定单位。
只要将脉冲当量取得足够小,就可以达到精度要求。
逐点比较插补法在脉冲当量为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) 位置判别根据偏差值大于零、等于零、小于零确定当前加工点的位置。
逐点比较法圆弧插补
逐点比较法圆弧插补逐点比较法圆弧插补过程与直线插补过程类似,每进给一步也都要完成四个工作节拍:偏差判别、坐标进给、偏差计算、终点判别。
但是,逐点比较法圆弧插补以加工点距圆心的距离大于还是小于圆弧半径来作为偏差判别的依据。
如图5-7所示的圆弧AB,其圆心位于原点O(0,0),半径为R,令加工点的坐标为P(xi,yj),则逐点比较法圆弧插补的偏差判别函数为当F=0时,加工点在圆弧上;当F>0时,加工点在圆弧外;当F<0时,加工点在圆弧内。
同插补直线时一样,将Fi,j=0同Fi,j>0归于一类。
下面以第一象限圆弧为例,分别介绍顺时针圆弧和逆时针圆弧插补时的偏差计算和坐标进给情况。
1.插补第一象限逆圆弧1)当Fi,j≥0时,加工点P(xi,yj)在圆弧上或圆弧外,-X方向进给一个脉冲当量,即向趋近圆弧的圆内方向进给,到达新的加工点Pi-1,j,此时xi -1=xi-1,则新加工点Pi-1,j的偏差判别函数Fi-1,j为(2)当Fi,j<0时,加工点P(xi,yj)在圆弧内,+Y方向进给一个脉冲当量,即向趋近圆弧的圆外方向进给,到达新的加工点Pi,j+1,此时yj+1=yj+1,则新加工点Pi,j+1的偏差判别函数Fi,j+12.插补第一象限顺圆弧1)当Fi,j≥0时,加工点P(xi,yj)在圆弧上或圆弧外,-Y方向进给一个脉冲当量,即向趋近圆弧的圆内方向进给,到达新的加工点Pi,,j-1,此时yj-1=yj-1,则新加工点Pi,j-1的偏差判别函数Fi,j-1为2)当Fi,j<0时,加工点P(xi,yj)在圆弧内,+X方向进给一个脉冲当量,即向趋近圆弧的圆外方向进给,到达新的加工点Pi+1,j,此时xi+1=xi +1,则新加工点Pi+1,j的偏差判别函数为Fi+1,j由以上分析可知,新加工点的偏差是由前一个加工点的偏差Fi,j及前一点的坐标值xi、yj递推出来的,如果按式(5-6)、(5-7)、(5-8)、(5-9)计算偏差,则计算大为简化。
逐点比较法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()值相等时,发出终点到达信号,停止插补。
轮廓插补原理——逐点比较法
第二节 逐点比较法逐点比较法的基本原理是,在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具沿着坐标轴向减小偏差的方向进给,且只有一个方向的进给。
也就是说,逐点比较法每一步均要比较加工点瞬时坐标与规定零件轮廓之间的距离,依此决定下一步的走向,如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部, 则下一步要向轮廓外面走,以缩小偏差,周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的刀具中心轨迹。
逐点比较法既可实现直线插补,也可实现圆弧插补。
其特点是运算简单直观,插补过程的最大误差不超过一个脉冲当量,输出脉冲均匀,而且输出脉冲速度变化小,调节方便,但不易实现两坐标以上的联动插补。
因此,在两坐标数控机床中应用较为普遍。
一般来讲,逐点比较法插补过程每一步都要经过如图3-1所示的四个工作节拍:(1)偏差判别 判别刀具当前位置相对于给定轮廓的偏差情况,即通过偏差值符号确定加工点处在理想轮廓的哪一侧,并以此决定刀具进给方向。
(2)坐标进给 根据偏差判别结果,控制相应坐标轴进给一步,使加工点向理想轮廓靠拢,从而减小其间的偏差。
(3)偏差计算 刀具进给一步后,针对新的加工点计算出能反映其偏离理想轮廓的新偏差,为下一步偏差判别提供依据。
(4)终点判别 每进给一步后都要判别刀具是否达到被加工零件轮廓的终点,若到达了则结束插补,否则继续重复上述四个节拍的工作,直至终点为止。
一、逐点比较法I 象限直线插补(一)基本原理设第一象限直线OE ,起点为坐标原点O(0,0),终点为E (X e ,Y e ),另有一个动点为N (X i ,Y i ),如图3-2所示。
其中,各个坐标值均是以脉冲当量为单位的整数,以便于后面的推导与讲解,并且在脉冲增量式插补算法中都是这样约定的。
ee i i X Y X Y = (3-1a ) 即 X e Y i —X i Y e =0 (3-1b ) 当动点N 处于直线OE 的下方N ′处时,直线N O '的斜率小于直线OE 的斜率,从而有ii X Y <e e X Y (3-2a )即 X e Y i —X i Y e <0 (3-2b ) 当动点N 处于直线OE 的上方N ″处时,直线N O ''的斜率大于直线OE 的斜率,从而有ee i i X Y X Y > (3-3a ) 即 X e Y i —X i Y e >0 (3-3b ) 由上述关系可以看出,表达式(X e Y i —X i Y e )的符号就能反映出动点N 相对直线OE 的偏离情况,为此取偏差函数F 为F =X e Y i —X i Y e (3-4)根据上述过程可以概括出如下关系:当F =0时,动点N (X i ,Y i )正好处在直线OE 上;当F >0时,动点N (X i ,Y i )落在直线OE 上方区域;当F <0时,动点N (X i ,Y i )落在直线OE 下方区域。
轮廓插补原理——逐点比较法
现假设第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所示。
逐点比较法既可实现直线插补,也可实现圆弧插补。其特点是运算简单直观,插补过程的最大误差不超过一个脉冲当量,输出脉冲均匀,而且输出脉冲速度变化小,调节方便,但不易实现两坐标以上的联动插补。因此,在两坐标数控机床中应用较为普遍。
逐点比较法直线插补算法总结
F− 2`,1 = F−1,1 + ye = −1 + 3 = 2 F− 2`, 2 = F− 2,1 + xe = 2 − 4 = −2 F−3`, 2 = F− 2, 2 + ye = −2 + 3 = 1 F−3`,3 = F−3, 2 + xe = 1 − 4 = −3 F− 4,3 = F−3,3 + ye = −3 + 3 = 0
E−1,0 = 7 − 1 = 6 E−1,1 = 6 − 1 = 5 E−2,1 = 5 − 1 = 4 E− 2, 2 = 4 − 1 = 3 E − 3, 2 = 3 − 1 = 2 E − 3, 3 = 2 − 1 = 1 E− 4,3 = 1 − 1 = 0
3
2
1
-4
-3
-2
-1
象限第一拍判别第二拍进给第三拍运算第四拍比较试用逐点比较法写出起点为原点终点坐标为43的插补过程并画出插补轨迹序号第一拍第二拍进给第三拍运算第四拍比较4321
逐点比较法直线插补算法总结
偏差判别函数: 偏差判别函数: Fij = xe y j − xi ye
象限 第一拍 判别 第二拍进给 第三拍 运算 第四拍比较
序号 第一拍 判 别 第二拍 进给 第三拍 运算 第四拍比较
1 2 3 4 5 6 7
F0, 0 = 0
F−1`,0 > 0
F−1`,1 < 0 F− 2`,1 > 0 F− 2`, 2 < 0 F−3`, 2 > 0 F−3`,3 < 0
-X +Y 0 + ye = 3
逐点比较法(代数运算法、醉步法)图解
逐点比较法(代数运算法、醉步法)图解1、逐点比较法直线插补第Ⅰ象限一加工直线,起点坐标原点O,终点坐标为A(xe,ye),则直线方程可表示为,即令Fi,j=xeyj-yexi为偏差判别函数,则有:(1)当Fi,j≥0时,向+X方向进给一个脉冲当量,到达点Pi+1,j,此时xi+1=xi+1,则点Pi+1,j的偏差判别函数Fi+1,j为(2)当Fi,j<0时,向+Y方向进给一个脉冲当量,到达点Pi,j +1,此时yj+1=yj+1,则点Pi,j+1的偏差判别函数Fi,j+1为可见,新加工点的偏差Fi+1,j或Fi,j+1是由前一个加工点的偏差Fi,j和终点的坐标值递推出来的,假如按前两式计算偏差,则计算大为简化。
终点判别三种方法:(1)判别插补或进给的总步数:N=Xe+Ye;(2)分别判别各坐标轴的进给步数;(3)仅推断进给步数较多的坐标轴的进给步数。
总结:第一拍判别其次拍判别第三拍判别第四拍比较Fij≥0+ΔxFi+1,j= Fi,j-yeEi+j=E终-1Fij0+ΔyFi,j+1= Fi,j+xe第Ⅰ象限直线插补流程图:例5-1 设加工第一象限直线,起点为坐标原点O(0,0),终点A (6,4),用逐点比较法对其进行插补,并画出插补轨迹。
终点判别寄存器E=6+4=10,每进给一步减1,E=0时停止插补。
步数偏差判别坐标进给偏差计算终点判别起点F0,0=0E=101F0,0=0+XF1,0=F0,0-ye=0-4=-4 E=10-1=92F1,0<0+YF1,1= F1,0+xe=-4+6=2 E=9-1=83F1,1>0+XF2,1= F1,1-ye=2-4=-2 E=8-1=74F2,1<0+YF2,2= F2,1+xe=-2+6=4 E=7-1=65F2,2>0+XF3,2= F2,2-ye=4-4=0 E=6-1=56F3,2=0+XF4,2= F3,2-ye=0-4=-4 E=5-1=47F4,2<0+YF4,3= F4,2+xe=-4+6=2 E=4-1=38F4,3>0+XF5,3= F4,3-ye=2-4=-2 E=3-1=29F5,3<0+YF5,4= F5,3+xe=-2+6=4E=2-1=110F5,4>0+XF6,4= F5,4-ye=4-4=0E=1-1=02、其他象限直线插补的方法:1)分别处理法分别建立其他三个象限偏差函数计算公式。
逐点比较法——直线插补
Fm+1=Fm-ye
L2、L3
-X
Fm<0
直线线型
进给方向偏差计算L1、 Nhomakorabea2+Y
Fm+1=Fm+xe
L3、L4
-Y
课堂总结
1、逐点比较法的优点、概念和工作节拍;
2、逐点比较法直线插补计算与推导。
布置作业和辅导答疑
1、逐点比较法的概念和工作节拍分别是什么?
2、设加工第一象限直线,起点为坐标原点,终点坐标分别为(5,4)、(5,5)、(4,5),试进行插补计算并画出走步轨迹图。
学生通过思考和训练,提高对插补计算的熟练程度
5分
15分
10分
5分
5分
3分
通过用提问的方式检测学生掌握情况,调动学生积极性,使其引导到课堂上来
要求学生认真作好记录
采用图解法,通过分析图解使学生明确插补计算过程
采用图解法,讨论公式推导,增强记忆
4分
4分
8分
14分
15
教与学互动设计
教师活动内容
学生活动内容
时间
2、逐点比较法直线插补流程图
3、例题
设加工第一象限直线,起点为坐标原点,终点坐标xe=6,ye=4,试进行插补计算并画出走步轨迹图。
学生活动内容
时间
导入新课
下面我们来复习以下上节课所学的内容:
1、脉冲当量的概念是什么?计算脉冲当量的公式是什么?
2、插补的概念是什么?它有哪些插补方法?
讲授新课
一、逐点比较法的优点
主要采用讲解法和讨论法,让学生积极参与讨论。首先让学生回想利用单放机播放磁带听歌的例子,然后说明它与磁栅的原理是相似的进行教与学的活动。
逐点比较法三、四象限逆圆插补计算
逐点比较法三、四象限逆圆插补计算第三象限第四象限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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二节逐点比较法插补(数控基础第三章插补计算原理、刀具半径补偿与速度控制)
发布:2009-7-19 19:24 | 作者:唐义| 来源:本站| 查看:6次| 字号: 小中大
逐点比较法的基本原理是被控对象在按要求的轨迹运动时,每走一步都要与规定的轨迹进行比较,由此结果决定下一步移动的方向。
逐点比较法既可以作直线插补又可以作圆弧插补。
这种算法的特点是,运算直观,插补误差小于一个脉冲当量,输出脉冲均匀,而且输出脉冲的速度变化小,调节方便,因此在两坐标数控机床中应用较为普遍。
一、逐点比较法直线插补
1.逐点比较法的直线插补原理
在图3-1所示平面第一象限内有直线段以原点为起点,以为终点,直线方程为:
改写为:
如果加工轨迹脱离直线,则轨迹点的、坐标不满足上述直线方程。
在第一象限中,对位于直线上方的点,则有:
对位于直线下方的点B,则有:
因此可以取判别函数来判断点与直线的相对位置,为
当加工点落在直线上时,;
当加工点落在直线上方时,;
当加工点落在直线下方时,。
我们称为“直线插补偏差判别式”或“偏差判别函数”,的数值称为“偏差”。
例如图3-2待加工直线,我们运用下述法则,根据偏差判别式,求得图中近似直线(由折线组成)。
若刀具加工点的位置处在直线上方(包括在直线上),即满足≥0时向轴方向发出一个正向运动的进给脉冲(),使刀具沿轴坐标动一步(一个脉冲当量δ),逼近直线;若刀具加工点的位置处在直线下方,即满足<0时,向轴发出一个正向运动的进给脉冲(),使刀具沿轴移动一步逼近直线。
但是按照上述法则进行运算判别,要求每次进行判别式运算——乘法与减法运算,这在具体电路或程序中实现不是最方便的。
一个简便的方法是:每走一步到新加工点,加工偏差用前一点的加工偏差递推出来, 这种方法称“递推法”。
若≥0时,则向轴发出一进给脉冲,刀具从这点向方向迈进一步,新加工点的偏差值为
根据式(3-1)及式(3-2)可以看出,新加工点的偏差值完全可以用前一点的偏差递推出来。
2.节拍控制和运算程序流程图
(1)直线插补的节拍控制综上所述,逐点比较法直线插补的全过程,每走一步要进行以下四个拍节:第一节拍——偏差判别判别刀具当前位置相对于给定轮廓的偏离情况,以此决定刀具移动方向;
第二节拍——进给根据偏差判别结果,控制刀具相对于工件轮廓进给一步,即向给定的轮廓靠拢,减少偏差;
第三节拍——偏差计算由于刀具进给已改变了位置,因此应计算出刀具当前位置的新偏差,为下一次判别作准备;
第四节拍——终点判别判别刀具是否已到达被加工轮廓线段的终点。
若已到达终点,则停止插补;若未到达终点,则继续插补。
如此不断重复上述四个节拍就可以加工出所要求的轮廓。
(2)直线插补的运算程序流程图逐点比较法第一象限直线插补软件流程图如图3-3所示。
3.不同象限的直线插补
对第二象限,只要用| |取代,就可以变换到第一象限,至于输出驱动,应使轴向步进电动机反向旋转,而轴步进电动机仍为正向旋转。
同理,第三、四象限的直线也可以变换到第一象限。
插补运算时,用| |和| |代替、。
输出驱动则是:在第三象限,点在直线上方,向- 方向进给,点在直线下方,向- 方向进给;在第四象限,点在直线上方,向- 方向进给,点在直线下方,向+ 方向进给。
四个象限的进给方向如图3-4所示。
现将直线4种情况偏差计算及进给方向列于表3-1中,其中用表示直线,四个象限分别用数字1、2、3、4标注。
4.直线插补举例
例3-1 设欲加工第一象限直线,终点坐标为=5,=3,试用逐点比较法插补该直线。
解:总步数n=5+3=8
开始时刀具在直线起点,即在直线上,故=0,表3-2列出了直线插补运算过程,插补轨迹见图3-2。
二、逐点比较法圆弧插补
1.逐点比较法的圆弧插补原理
加工一个圆弧,很容易令人想到用加工点到圆心的距离与该圆弧的名义半径相比较来反映加工偏差。
设要加工图3-5第一象限逆时针走向的圆弧,半径为,以原点为圆心,起点坐标为,在坐标平面第一象限中,点的加工偏差有以下三种情况。
若点在圆弧外侧或圆弧上,即满足≥0的条件时,向轴发出一负向运动的进给脉冲(- );若点在圆弧内侧,即满足的条件时,则向轴发出一正向运动的进给脉冲(+ )。
为了简化偏差判别式的运算,仍用递推法来推算下一步新的加工偏差。
设加工点在圆弧外侧或在圆弧上,则加工偏差为
≥0
故轴须向负向进给一步(- ),移到新的加工点,其加工偏差为
(3-3)
设加工点在圆弧的内侧,则。
那么轴须向正向进给一步(+ ),移到新的加工点,其加工偏差为
(3-4)
根据式(3-3)及式(3-4)可以看出,新加工点的偏差值可以用前一点的偏差值递推出来。
递推法把圆弧偏差运算式由平方运算化为加法和乘2运算,而对二进制来说,乘2运算是容易实现的。
2.圆弧插补的运算过程
圆弧插补的运算过程与直线插补的过程基本一样,不同的是,圆弧插补时,动点坐标的绝对值总是一个增大,另一个减小。
如对于第一象限逆圆来说,动点坐标的增量公式为
圆弧插补运算每进给一步也需要进行偏差判别、进给、偏差计算、终点判断四个工作节拍,其运算过程的流程图如图3-6所示。
运算中寄存偏差值;x和y分别寄存和动点的坐标值,开始分别存放和;寄存终点判别值:
3.圆弧插补举例
例3-2 设有第一象限逆圆弧,起点为(5,0),终点为(0,5),用逐点比较法插补。
解:n =|5-0|+|0-5|=10
开始加工时刀具在起点,即在圆弧上,=0。
加工运算过程见表3-3,插补轨迹见图3-7。
4.圆弧插补的象限处理与坐标变换
(1)圆弧插补的象限处理上面仅讨论了第一象限的逆圆弧插补,实际上圆弧所在的象限不同,顺逆不同,则插补公式和进给方向均不同。
圆弧插补有8种情况,如图3-8所示。
根据图3-8可推导出用代数值进行插补计算的公式如下:
现将圆弧8种情况偏差计算及进给方向列于表3-4中,其中用表示圆弧,表示顺时针,表示逆时针,四个象限分别用数字1、2、3、4标注,例如1表示第一象限顺圆,3表示第三象限逆圆。
(2)圆弧自动过象限所谓圆弧自动过象限,是指圆弧的起点和终点不在同一象限内,如图3-9所示。
为实现一个程序段的完整功能,需设置圆弧自动过象限功能。
要完成过象限功能,首先应判别何时过象限。
过象限有一显著特点,就是过象限时刻正好是圆弧与坐标轴相交的时刻,因此在两个坐标值中必有一个为零,判断是否过象限只要检查是否有坐标值为零即可。
过象限后,圆弧线型也改变了,以图3-9为例,由2变为1。
但过象限时象限的转换是有一定规律的。
当圆弧起点在第一象限时,逆时针圆弧过象限后转换顺序是1→2→3→4→1,每过一次象限,象限顺序号加1,当从第四象限向第一象限过象限时,象限顺序号从4变为1;顺时针圆弧过象限的转换顺序是1→4→3→2→1,即每过一次象限,象限顺序号减1,当从第一象限向第四象限过象限时,象限顺序号从1变为4。
(3)坐标变换前面所述的逐点比较法插补是在平面中讨论的。
对于其他平面的插补可采用坐标变换方
法实现。
用代替,代替,即可实现平面内的直线和圆弧插补;用代替而坐标不变,就可以实现平面内的直线与圆弧插补。