逐点比较法顺圆弧插补
逐点比较法圆弧插补算法

二、 逐点比较法圆弧插补加工一个圆弧,很容易联想到把加工点到圆心的距离和该圆的名义半径相比较来反映加工偏差。
这里,我们以第Ⅰ象限逆圆弧为例导出其偏差计算公式。
设要加工图2—3所示第Ⅰ象限逆时针走向的圆弧,半径为R ,以原点为圆心,起点坐标为A(00x ,y ),对于圆弧上任一加工点的坐标设为P( i j x ,y ),P 点与圆心的距离 P R 的平方为 222Pi j R =x +y ,现在讨论这一加工点的加工偏差。
图 2 - 2 圆 弧 差 补 过 程图2-3 圆弧插补过程点击进入动画观看逐点比较法圆弧插补若点P(i j x ,y )正好落在圆弧上,则下式成立:22222i j 00x +y =x +y =R若加工点P(i j x ,y )在圆弧外侧,则P R >R ,即:2222i j 00x +y >x +y若加工点P(i j x ,y )在圆弧内侧,则P R <R ,即:2222i j 00x +y >x +y将上面各式分别改写为下列形式:2222i 0j 0(x -x )+(y -y )=0(加工点在圆弧上) 2222i 0j 0(x -x )+(y -y )>0(加工点在圆弧外侧)2222i 0j 0(x -x )+(y -y )<0(加工点在圆弧内侧)取加工偏差判别式为:2222ij i 0j 0F =(x -x )+(y -y )运用上述法则,利用偏差判别式,即获得图2—2折线所示的近似圆弧。
若P(i j x ,y )在圆弧外或圆弧上,即满足 ij F ≥0的条件时,应向x 轴发出一个负向运动的进给脉冲(—Δx),即向圆内走一步。
若P(i j x ,y )在圆弧内侧,即满足ij F <0的条件,则向y 轴发出一个正向运动的进给脉冲(+Δy),即向圆弧外走一步。
为了简化偏差判别式的运算,仍用递推法来推算下一步新的加工偏差。
设加工点P(i j x ,y )在圆弧外侧或圆弧上,则加工偏差为2222ij i 0j 0F =(x -x )+(y -y )0≥x 坐标需向负方向进给一步(—Δx),移到新的加工点P(i+1j x ,y )位置,此时新加工点的x 坐标值为i x -1,y 坐标值仍为 i y ,新加工点P( i+1j x ,y )的加工偏差为:22222i+1,j i 0j 0F =(x -1)-x +y -y经展开并整理,得:i +1,j i j F =F 21i x -+(2-3)设加工点P(i j x ,y )在圆弧的内侧,则:ij F <0那么,y 坐标需向正方向进给一步(+Δy),移到新加工点P( i j+1x ,y ),此时新加工点的x 坐标值仍为i x ,y 坐标值则改为 j y 1+,新加工点P( i j+1x ,y )的加工偏差为:2222i,j+1i 0j 0F =x -x +(y +1)y -,展开上式,并整理得:i,j+1ij F =F 21i y ++综上所述可知:当ij F ≥0时,应走—Δx ,新偏差为 i+1,j ij F =F 21i x -+,动点(加工点)坐标为i+1i x =x -1, j j y y =;当 ij F <0时,应走+Δy ,新偏差为 i,j+1ij F =F 21i y ++,动点坐标为 j j y y =, i+1i =y +1y 。
实验一 逐点比较法圆弧和直线插补实验

Y B(xe,ye)
M(xm,ym)
Rm R
A(x0,y0)
O 图3 圆弧插补原理图 X
圆弧插补原理参见上图,对于第一象限逆圆,设圆弧的起点为 A(x0,y0),终点为 B(xe,ye), 圆弧半径为 R。加工点为 M(xm,ym),它与圆心的距离为 Rm,则
(1)偏差计算
Fm
=
Rm2
− R2
=
xm2
p102=p102-p104 p101=p101+1 x-0.1 else p102=p102+p103 p101=p101+1 y0.1
;计算新的偏差值(Fi+1=Fi-ya) ;步数计数器加一 ;X方向进分别是(-0.1 -0.5 -1.0) ;偏差判别(若P102小于0表示刀具在直线下方) ;计算新的偏差值(Fi+1=Fi+xa) ;步数计数器加一 ;Y方向进给分别是(0.1 0.5 1.0)
endif
endwhile
close
(3)根据直线插补编成格式,编写所给圆弧插补程序。 各组的圆弧的插补任务是: u 第一组:圆弧半径 50,第二象限顺圆;
第二组:圆弧半径 50,第二象限逆圆; 第三组:圆弧半径 60,第三象限顺圆; 第四组:圆弧半径 60,第三象限逆圆; 第五组:圆弧半径 70,第四象限顺圆; 第六组:圆弧半径 70,第四象限逆圆; open prog7 clear linear inc p101=0 p102=0 p103=0 p104=50 while(p101!>100) if(p102!<0) y0.5 p101=p101+1 p102=p102-2*p104+1 p104=p104-1 else -x0.5 p101=p101+1 p102=p102-2*p103+1 p103=103-1 endif endwhile close
答案版《数控技术》复习题

一、单项选择题1.在逐点比较法圆弧插补中,若偏差函数大于零,则刀具位于( B )A.圆B.圆外C.圆内D.圆心2.第一象限的一段圆弧AB的起点坐标为(0,5),终点坐标为(5,0),采用逐点比较法顺圆插补完这段圆弧时,沿两坐标轴走的总步数是( B )A.5B.10C.15D.203.脉冲增量插补法适用于( A )A.以步进电机作为驱动元件的开环数控系统B.以直流电机作为驱动元件的闭环数控系统C.以交流电机作为驱动元件的闭环数控系统D.以直线或交流电机作为驱动元件的闭环数控系统4.数控机床有不同的运动形式,需要考虑工件与刀具相对运动关系及坐标系方向,编写程序时,采用()的原则编写程序。
A.刀具固定不动,工件移动B. 工件固定不动,刀具移动C.分析机床运动关系后再根据实际情况定D. 由机床说明书说明5.( )是无法用准备功能字G来规定或指定的。
A.主轴旋转方向B.直线插补C.刀具补偿D.增量尺寸6、.基于教材JB3298—83标准,一般表示逆圆插补的G功能代码是( C )A.G02B.G01C.G03D.G047、.在确定数控机床坐标系时,首先要指定的是( )A.X轴B.Y轴C.Z轴D.回转运动的轴8、.根据加工零件图样选定的编制零件程序的原点是()A 机床原点B编程原点C加工原点D刀具原点9、.下列刀具中,()的刀位点是刀头底面的中心。
A. 车刀B.镗刀C. 立铣刀D. 球头铣刀10、对步进电机驱动系统,当输入一个脉冲后,通过机床传动部件使工作台相应地移动一个( D )A.步距角B.导程C.螺距D.脉冲当量11、.步进电动机转子前进的步数多于电脉冲数的现象为( C )A.丢步B.失步C.越步D.异步12、.若数控冲床的快速进给速度v=15m/min,快进时步进电动机的工作频率f=5000Hz,则脉冲当量为( C )A.0.01mmB.0.02mmC.0.05mmD.0.1mm13、.与交流伺服电机相比,直流伺服电机的过载能力( B )A.差B.强C.相当D.不能比较14、.直接数控系统又称为群控系统,其英文缩写是( B )CB.DNCC.CIMSD.FMS15、、根据控制运动方式不同,机床数控系统可分为( ) BA、开环控制系统、闭环控制系统和半闭环控制系统B、点位控制系统和连续控制系统C、多功能数控系统和经济型数控系统D、NC系统和CNC系统16、、数控机床的优点是( ) DA、加工精度高、生产效率高、工人劳动强度低、可加工复杂面、减少工装费用B、加工精度高、生产效率高、工人劳动强度低、可加工复杂面、工时费用低C、加工精度高、专用于大批量生产、工人劳动强度低、可加工复杂面、减少工装费用D、加工精度高、生产效率高、对操作人员的技术水平要求高、可加工复杂型面、减少工装费17、、每次通电之后,都要让刀具返回:( )A、刀位点B、换刀点C、机械原点D、参考点18、、车削加工程序中,直线插补指令为( )A、G00B、G01C、G32D、G0219、使用G71指令车削的路径必须是( ),即不可有内凹的轮廓外形。
数控技术及应用试题

数控技术及应用试题一、单项选择题(本大题共20小题,每小题2分,共40分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.采用逐点比较法对第一象限的圆弧进行顺圆插补时,若偏差值是-10,那么刀具的下一步的进给方向为()A.+XB.+YC.-XD.-Y2.在CNC系统的I/O接口电路中,采用光电耦合器的主要作用是为了()A.数模转换B.频率转换C.抗干扰和电平转换D.功率放大C系统的CMOSRAM常配备有高能电池,其作用是()A.RAM正常工作所必须的供电电源B.系统掉电时,保护RAM不被破坏C.系统掉电时,保护RAM中的信息不丢失D.加强RAM供电,提高其抗干扰能力4.数控机床坐标系建立时,首先要指定的轴是()A.X轴B.Y轴C.Z轴D.W轴5.数控机床开环控制系统的伺服电动机多采用()A.直流伺服电机B.交流伺服电机C.交流变频调速电机D.功率步进电动机6.在需要无级调速的场合,主轴驱动动力源通常是()A.液压马达B.交流感应电动机C.永磁式直流电动机D.步进电动机7.若数控冲床的快速进给速度v=15m/min,快进时步进电动机的工作频率f=5000Hz,则脉冲当量δ为()A.0.01mmB.0.02mmC.0.05mmD.0.1mm8.在直流电动机的速度控制电路中,反馈信号V f是由速度传感器反馈到()CB.速度调节器C.电流调节器D.PWM调制器9.数控机床加工过程中,“恒线速切削控制”的目的是()A.保持主轴转速的恒定B.保持进给速度的恒定C.保持切削速度的恒定D.保持金属切除率的恒定10.闭环数控系统中,采样系统的采样周期T应满足()A.T>π/ωmaxB.T>2π/ωmaxC.T<π/ωmaxD.T≤π/ωmax11.采用开环进给伺服系统的机床上,通常不.安装()A.伺服系统B.制动器C.数控系统D.位置检测器件12.斜坡位置指令函数,没有限制的参数是()A.速度B.加速度C.位移置D.频率13.在下列相位比较式进给位置伺服系统的四个环节中,用来计算位置跟随误差的是()A.脉冲/相位变换器B.鉴相器C.正余弦函数发生器D.位置控制器14.一增量式脉冲发生器每转输出脉冲数为5000,如果单次脉冲的脉冲宽度不能小于6微秒,则该脉冲发生器最高允许的转速为()A.1000转/分B.2000转/分C.4000转/分D.120000转/分15.当感应同步器采用鉴相型工作方式时,如果定、滑尺保持相对静止不动,则定尺上的感应电势()A.为零B.不为零的常量C.有规律的变化量D.无规律的变化量16.目前直线感应同步器标准型定尺节距为()A.1mmB.2mmC.3mmD.4mm17.闭环控制系统的定位误差主要取决于()A.机械传动副的间隙及制造误差B.机械传动副弹性变形产生的误差C.检测元件本身的误差及安装引起的阿贝误差D.滚珠丝杠副热变形所产生的误差18.下面哪项精度是在机床实际切削状态下进行检验的()A.定位精度B.几何精度C.工作精度D.主轴回转精度19.数控机床利用软件误差补偿时,下面说法正确的是()A.只可以补偿系统的常值系统性误差B.只可以补偿系统的变值性误差C.既可以补偿系统的常值系统性误差,又可以补偿系统的变值性误差D.既可以补偿系统性误差,又可以补偿随机性误差20.在FANUC15系统中所采用的高分辨率绝对脉冲编码器,其每转输出脉冲数为10万个,最高允许转速可达每分钟1万转。
(完整版)圆弧插补

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方向进给一步。
数控机床逐点比较法圆弧插补

3数控机床逐点比较法圆弧插补:与直线初步相似,圆弧插补加工是将加工点到圆心距离与被加工圆弧的名 义半径相比较,并根据偏差大小确定坐标进给方向,以 逼近被加工圆弧。
下面 以 第一象限逆圆弧为例,讨论圆弧的插补方法。
如图8-4所示,设要加工圆弧为第一象限逆圆弧 AB ,原点为圆心0,起点 y o ),终点为B (X e , y e )半径R ,瞬时加工点为P (X i ,y i ),点P 到圆<0 -<0‘—开始—若点P 正好在圆弧上,则有2 2 2 2X i +y j =R p =R即X i 2+y j 2-R 2=0若点P 在圆弧外则,则有2 2 2 2X i +y j =R p >R即X i 2+y j 2-R 2 > 0若点 P 在圆弧内则,则有2 2 2 2x i +y j =R p <R心距离为Rp------ X >0]+△*为 A (xo , <0* <7 F>0 ?*+X 走 一步 |] -y 走一y f1 FT -Ye ||FJF -Xe图8-2第一象限一象限直线插补轨迹图图8-3第一象限直线插补程序框图图初始化Xe , Ye ,JJ J J-1J =0 ?结束即x i2+y j2-R2 < 0显然,若令F i,j = x i2+y j2-R2( 8-4) 图8-4 逆圆弧插补则有:(1)F i,j= F i,j=0,则点P在圆弧上( 2 )F i,j >0 则点P 在圆弧外则( 3 )F i,j<0 则点P 在圆弧不则常将8-4称为圆弧插补偏差判别式。
当F i,j>时,为逼近圆弧,应向-x方向进给一步;当F i,j<0时,应向+y方向走一步。
这样就可以获得逼近圆弧的折线图。
与直线插补偏差计算相似,圆弧插补的偏差的计算也采用递推的方法以简化计算。
若加工点P (X i, y i)在圆弧外或者圆弧上,则有:F i,j=x i2+y j2-R2> 0为逼近该圆沿-X方向进给一步,移动到新加工点P( X i=1,y i),此时新加工点的坐标值为x i+1=x i-1 ,y i=y i新加工点的偏差为:F i+1,j= (x i-1) 2+y i2-R2=x i2-2x i+1+ y i2-R22 2 2= x i + y i -R +1F i+I,j= F i,j-2x i+1(8-5)若加工P (X i, y i)在圆弧内,则有F i,j=x i2+y j2-R2<0若逼近该圆需沿+y方向进给一步,移到新加工点P (X i, y i),此时新加工点的坐标值图8-5第一象限圆弧插补程序框图为新加工点的偏为:F i,j+i =X i2+(y i+1)2-R2=X i2+ y i2+1 -R22 2 2=X i + y i -R +1+2y iF i,j+i = F i,j -2y i+1 (8-6)从(8-5)和式(8-6)两式可知,递推偏差计算仅为加法(或者减法)运算,大大降低了计算的复杂程度。
基于FPGA的逐点比较圆弧插补算法设计

基于FPGA的逐点比较圆弧插补算法设计摘要:随着数字化控制技术的发展,FPGA作为可编程逻辑设备,被广泛应用于了工业控制系统中。
本文通过分析圆弧插补算法的原理和特点,设计了一种基于FPGA的逐点比较圆弧插补算法,并进行了硬件实现。
通过实验验证,该算法可以准确地实现圆弧插补功能,并具有较高的计算速度和运行效率。
关键词:FPGA;圆弧插补;逐点比较算法1.引言在数控系统中,圆弧插补是一种常见的运动控制方式。
圆弧插补可以实现工件在空间中沿着预定的曲线轨迹移动,从而实现复杂的形状加工。
目前,圆弧插补算法主要有计算细分点的数学法和逐点比较法两种。
其中,逐点比较法是一种基于离散点的插值方式,具有较高的计算速度和运行效率。
本文将基于FPGA的逐点比较圆弧插补算法进行设计与实现。
2.圆弧插补算法原理圆弧插补是通过计算圆弧上一系列离散点的坐标,从而实现工件的平滑运动。
在逐点比较法中,圆弧插补算法主要包括以下几个步骤:(1)确定圆弧的起点、终点和中心点,并计算圆弧的半径;(2)根据离散点的间距,计算出圆弧的总点数;(3)计算圆弧上每个离散点的坐标,并保存在一个数据缓存区中;(4)将数据缓存区中的坐标输出。
3.算法设计(1)数据输入模块:接收圆弧的起点、终点和中心点坐标,并计算圆弧的半径;(2)总点数计算模块:根据离散点的间距,计算出圆弧的总点数;(3)坐标计算模块:根据圆弧的起点、终点、中心点和总点数,计算出每个离散点的坐标,并保存在一个数据缓存区中;(4)数据输出模块:将数据缓存区中的坐标输出。
4.硬件实现本文采用Xilinx FPGA作为硬件开发平台,Verilog HDL作为硬件描述语言。
根据设计的算法原理和模块设计,完成了逐点比较圆弧插补算法的硬件实现。
5.实验结果与分析通过对比实验,验证了基于FPGA的逐点比较圆弧插补算法的正确性和有效性。
与传统的数学法相比,该算法具有更高的计算速度和运行效率,适用于高性能的工业控制系统。
2--插补象限、圆弧走向处理以及逐点比较法合成进给速度

于是,X轴方向和Y轴方向的进给速度为
vx 60 f X
v
y
60
fY
刀具的合成进给速度为
v vx2 vy2 60 f X 2 fY 2
当刀具沿着平行于坐标轴的方向进行切削时,其进给速度最大,该速度 称为脉冲源进给速度。
vMF 60 fMF 60 ( f X fY ) vx vy
② |Y|=|Y|-1
② |X|=|X|-1 ② |Y|=|Y|+ 1
② |X|=|X|+1
Y SR3、NR4
N +Y -Y
Y SR2、NR3
N
+X
-X
Y SR2、NR1
N +Y -Y
Y SR1、NR4
N
+X
-X
∑= ∑-1
∑= 0
N
Y
结束
(三)圆弧过象限 直线只可能处于一个象限中,因此不存在过象限问题。但是圆弧有可能 跨越几个象限,这时需要在两象限的交接处做相应的处理,此即圆弧过象限 问题。 当圆弧过象限时,具有如下特点: ① 在过象限前后,动点坐标的符号会发生改变; ② 在过象限后,圆弧的走向不变。 逆圆弧过象限的顺序为:NR1 → NR2 → NR3 → NR4 → NR1 →• • • 顺圆弧过象限的顺序为:SR1 → SR4 → SR3 → SR2 → SR1 →• • • ③ 过象限圆弧与坐标轴必有交点,当动点处在坐标轴上时必有一个坐 标值为零。此点可以作为过象限的标志。 ④ 终点判别不能简单地直接使用前述的三种方法,否则将丢失一部分 圆弧轮廓。
Y (0,5)
(3,4) (4,3)
X (5,0)
第一象限顺圆弧的插补问题可转换为第一象限逆圆弧的插补问题,转换方 法如下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数控原理与系统课程设计课题名称:逐点比较法顺圆弧插补专业:班级:姓名:指导老师:数控原理与系统课程设计说明书班级姓名学号一、课程设计的目的1)了解连续轨迹控制数控系统的组成原理。
2) 掌握逐点比较法插补的基本原理。
3)掌握逐点比较法插补的软件实现方法。
二、课程设计的任务逐点比较法插补是最简单的脉冲增量式插补算法之一,其过程清晰,速度平稳,但一般只用于一个平面内两个坐标轴的插补运算。
其基本原理是在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给,且只有一个方向的进给。
也就是说,逐点比较法每一步均要比较加工点瞬时坐标与规定零件轮廓之间的距离,依此决定下一步的走向。
如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部,则下一步要向轮廓外面走,以缩小偏差,这样周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的轨迹。
逐点比较法插补过程中的每进给一步都要经过偏差判别、坐标进给、偏差计算和终点判别四个节拍的处理,其工作流程图如图所示。
本次课程设计具体要求如下:1)逐点比较法基本原理2)逐点比较法插补软件流程图3)算法描述(逐点比较法算法在VB中的具体实现)4)编写算法程序清单5)软件运行仿真效果三、课程设计报告要求1.按课程设计任务5点要求为标题,编写课程设计报告,最后加一点:此次课程设计小结(包括设计过程中所碰到的问题、解决办法以及有关设计体会等)2.字数在3000字左右3.仿真软件一份四、学生分组数控原理与系统课程设计一、逐点比较法基本原理逐点比较法I象限逆圆插补基本原理在加工圆弧过程中,人们很容易联想到使用动点到圆心的距离与该圆弧的名义半径进行比较来反映加工偏差。
假设被加工零件的轮廓为第Ⅰ象限逆走向圆弧SE,,圆心在O(0,0),半径为R,起点为S(XS ,YS),终点为E(Xe,Ye),圆弧上任意加工动点为N(Xi,Yi)。
当比较该加工动点到圆心的距离ON与圆弧半径R的大小时,可获得刀具与圆弧轮廓之间的相对位置关系。
当动点N(Xi ,Yi)正好落在圆弧上时,则有下式成立22222RYXYXeeii=+=+当动点N(Xi ,Yi)落在圆弧外侧时,则有下式成立22222RYXYXeeii=+>+当动点N(Xi ,Yi)落在圆弧内侧时,则有下式成立22222RYXYXeeii=+<+由此可见,取逐点比较法圆弧插补的偏差函数表达式为222R Y X F i i -+=当动点落在圆外时,为了减小加工误差,应向圆内进给,即向(-X)轴方向走一步;当动点落在圆内时,应向圆外进给,即向(+Y)轴方向走一步。
当动点正好落在圆弧上且尚未到达终点时,为了使加工继续下去,理论上向(+Y)轴或(-X)轴方向进给均可以,但一般情况下约定向(-X)轴方向进给。
综上所述,现将逐点比较法第Ⅰ象限逆圆插补规则概括如下:当F >0时,即222R Y X F i i -+=>0,动点落在圆外,则向(-X)轴方向进给一步;当F =0时,即222R Y X F i i -+==0,动点正好落在圆上,约定向(-X)轴方向进给一步;当F <0时,即222R Y X F i i -+=<0,动点落在圆内,则向(+Y)轴方向进给一步。
由偏差函数表达式可知,计算偏差F 值,就必须进行动点坐标、圆弧半径的平方运算。
显然,在用硬件或汇编语言实现时不太方便。
为了简化这些计算,按逐点比较法直线插补的思路,也可以推导出逐点比较法圆弧插补过程中偏差函数计算的递推公式。
假设第i 次插补后,动点坐标为N (X i ,Y i ),其对应偏差函数为222R Y X F i i i -+=当F i ≥0,向(-X)轴方向进给一步,则新的动点坐标值为X i +1=X i -1, Y i +1=Y i因此,新的偏差函数为()2222212111R Y X R Y X F i i i i i -+-=-+=+++∴ F i +1=F i -2X i +1同理,当F i <0,则向(+Y)轴方向进给一步,则新的动点坐标值为X i +1=X i , Y i +1=Y i +1因此,可求得新的偏差函数为()2222212111R Y X R Y X F i i i i i -++=-+=+++∴F i +1=F i +2Y i +1将上式进行比较,可以看出两点不同:第一,递推形式的偏差计算公式中仅有加/减法以及乘2运算,而乘2可等效成该二进制数左移一位,这显然比平方运算来得简单。
第二,进给后新的偏差函数值与前一点的偏差值以及动点坐标N(Xi ,Yi)均有关系。
由于动点坐标值随着插补过程的进行而不断变化,因此,每插补一次,动点坐标就必须修正一次,以便为下一步的偏差计算作好准备。
至此,将第Ⅰ象限逆圆弧插补的规则和计算公式汇总,见表(表2-1)第Ⅰ象限逆圆弧插补计算公式表2-1和直线插补一样,圆弧插补过程也有终点判别问题。
当圆弧轮廓仅在一个象限区域内,其终点判别仍可借用直线终点判别的三种方法进行,只是计算公式略不同。
Σ=|Xe -Xs|+|Ye-Ys|Σ=max{|Xe -Xs|,|Ye-Ys|}Σ1=|Xe-Xs| ,Σ2=|Ye-Ys|式中 XS 、Ys——被插补圆弧轮廓的起点坐标;X e 、Ye——被插补圆弧轮廓的终点坐标。
b、插补象限和圆弧走向前面所讨论的逐点比较法直线和圆弧插补,均是针对第一象限直线和逆圆插补这种特定情况进行的。
然而,任何数控机床都应具备处理不同象限、不同走向曲线的能力。
四个象限中圆弧插补圆弧插补情况比直线插补复杂,不仅有象限问题,而且还有圆弧走向问题。
现以第Ⅰ象限顺圆SR1插补为例,介绍圆弧插补的特性。
假设圆弧SE起点为S(XS ,YS),终点为E(Xe,Ye),圆心在坐标原点上。
与逆圆插补相似,当某一时刻动点N (X i ,Y i )在圆弧的外侧时,有F ≥0成立,应向-Y)轴方向进给一步,以减小误差;若动点N (X i ,Y i )在圆弧内侧,则应向+X)轴方向进给一步。
由此可推导出第Ⅰ象限顺圆插补偏差函数的递推公式如下:当F i ≥0时,向-Y)轴方向进给一步,则新的动点坐标为X i +1=X i , Y i +1=Y i -1新动点的偏差函数为()2222212111R Y X R Y X F i i i i i --+=-+=+++∴ F i +1=F i -2Y i +1当F i <0时,向+X)轴方向进给一步,则新的动点坐标为X i +1=X i +1, Y i +1=Y i新动点的偏差函数为()2222212111R Y X R Y X F i i i i i -++=-+=+++∴ F i +1=F i +2X i +1现将上式比较,可以看出它们有两点不同: 1)当F i ≥0或F i <0时,对应的进给方向不同;2)插补计算公式中动点坐标的修正也不同,以至于偏差计算公式也不相同。
进一步还可根据上述方法推导出其他象限不同走向圆弧的插补公式。
现将各种相应偏差计算见表(表2-2)四个象限圆弧插补偏差计算与进给方向线型F ≥0F <0偏差计算坐标进给 偏差计算坐标进给 SR 1 NR 2 SR 3 NR 4F -2|Y|+1→F |Y|-1→|Y|-ΔY -ΔY +ΔY +ΔYF +2|X|+1→F |X|+1→|X| +ΔX -ΔX -ΔX +ΔX表2-2从表可以看出,当按第Ⅰ象限逆圆NR1进行插补运算时,现若有意将X轴进给反向,则可以走出第Ⅱ象限顺圆SR2来;或者若将Y轴进给反向,则可以走出SR4来;或者将X轴和Y轴的进给均反向,则可以走出NR3来;并且这四种线型(NR1、SR2、NR3、SR4)使用的偏差计算公式都相同,无须改变。
进一步还可以看出,当按第Ⅰ象限逆圆NR1线型插补时,现若将计算公式坐标X与Y对调,即把X当作Y,把Y当作X,那么就可得到SR1的走向。
类似地通过改变进给方向,利用SR1的公式就可获得其余三种线型(NR2、SR3、NR4)的走向。
下面,我们对圆弧逐点比较法作一个简要的介绍。
二、逐点比较法插补软件流程图三、算法描述(逐点比较法在VB中的具体实现)根据上述基本原理,我们可以知道逐点比较法圆弧插补需要设置两个终点计数器J∑X =|X e– X s|和J∑Y=|Y e - Y s|,分别对X轴和Y轴进行终点监控。
每当X轴或Y轴产生一个溢出脉冲,相应的终点计数器就作减1修正,直到为零,表明该坐标已到终点,并停止其坐标的累加运算。
只有当两个坐标轴均到达终点时,圆弧插补才结束。
如下图所示,圆弧起点S(4,-1),终点(-1,4),且寄存器位数N=3,当插补开始时,被积函数寄存器初值分别为J VX=Y s=-1和J VY=X s=4,终点判别寄存器J∑X=|X e– X s|=-1和J∑Y=|Y e - Y s|=5.该圆弧插补运算过程如下表所示,插补轨迹如下图折线所示。
序号工作节拍第一拍偏差判别第二拍坐标进给第三拍第四拍终点判别偏差计算坐标修改起点F0=0 X0=5,Y0=-1 ∑0=111 F0=0 -△X F1=0-2*5+1=-9 X1=4,Y1=-1 ∑1=∑0-1=102 F1=-9<0 +△Y F2=-9+2*(-1)+1=-10 X2=4,Y2=0 ∑2=∑1-1=93 F2=-10<0 +△Y F3=-10+2*0+1=-9 X3=4,Y3=1 ∑3=∑2-1=84 F3=-9<0 +△Y F4=-9+2*1+1=-6 X4=4,Y4=2 ∑4=∑3-1=75 F4=-6<0 +△Y F5=-6+2*2+1=-1 X5=4,Y5=3 ∑5=∑4-1=66 F5=-1<0 +△Y F6=-1+2*3+1=6 X6=4,Y6=4 ∑6=∑5-1=57 F6=6>0 -△X F7=6-2*4+1=-1 X7=3,Y7=4 ∑7=∑6-1=48 F7=-1<0 +△Y F8=-1+2*4+1=8 X8=3,Y8=5 ∑8=∑7-1=39 F8=8>0 -△X F9=8-2*3+1=3 X9=2,Y9=5 ∑9=∑8-1=210 F9=3>0 -△X F10=3-2*2+1=0 X10=1,Y10=5 ∑10=∑9-1=111 F10=0 -△X F11=0-2*1+1=-1 X11=0,Y11=5 ∑11=∑10-1=0四、编写算法程序清单数字积分法逆圆弧插补算法程序清单如下:Option ExplicitPublic q As DoublePublic n, flag As IntegerPublic xa As IntegerPublic ya As IntegerPublic xb As IntegerPublic yb As IntegerPublic x As DoublePublic y As DoublePublic sx As DoublePublic sy As DoubleDim c As IntegerPublic Function max(a, b)If a > b Thenmax = aElsemax = bEnd IfEnd FunctionPrivate Sub Command1_Click()caidan.ShowUnload MeEnd SubPrivate Sub Command5_Click()Picture1.Refreshxa = Val(Text1.Text)ya = Val(Text2.Text)xb = Val(Text3.Text)yb = Val(Text4.Text)q = Val(Text6.Text)c = max(Abs(yb), max(Abs(xb), max(Abs(xa), Abs(ya))))Picture1.Scale (-2 * c, 2 * c)-(2 * c, -2 * c)Picture1.Line (-2 * c, 0)-(2 * c, 0)Picture1.Line (0, 2 * c)-(0, -2 * c)If xa = 0 ThenPicture1.Circle (0, 0), Sqr(xa * xa + ya * ya), , 3.14159 / 2, Atn(yb / xb) ElseIf xb = 0 ThenPicture1.Circle (0, 0), Sqr(xa * xa + ya * ya), , Atn(ya / xa), 3.14159 / 2 ElsePicture1.Circle (0, 0), Sqr(xa * xa + ya * ya), , Atn(ya / xa), Atn(yb / xb) End IfTimer1.Enabled = TrueTimer1.Interval = Val(Text5.Text)'Timer1.Enabled = True'Timer1.Interval = Val(Text5.Text) Picture1.Line -(xa, ya)n = 0x = xay = yasx = 0sy = 0End SubPrivate Sub Timer1_Timer()Dim flagx, flagy As BooleanIf n < Abs(xb - xa) + Abs(yb - ya) Then sx = sx + yIf sx >= q Thenflagx = Truesx = sx - qn = n + 1Elseflagx = FalseEnd Ifsy = sy + xIf sy >= q Thenflagy = Truesy = sy - qn = n + 1Elseflagy = FalseEnd IfIf flagx And flagy Then 'sx>=q sy>=q x = x - 1y = y + 1Picture1.Line -Step(-1, 1), vbRedEnd IfIf Not flagy And flagx Thenx = x - 1Picture1.Line -Step(-1, 0), vbRedEnd IfIf flagy And Not flagx Theny = y + 1Picture1.Line -Step(0, 1), vbRedEnd IfEnd IfEnd Sub五、软件运行仿真效果1.顺圆弧插补界面如图2所示图2 顺圆弧插补界面2.点击插补演示按钮,运行效果如图2所示图2 顺圆弧插补六、设计小结在本次设计中,我们重点分析了逐点比较法的基本原理,这是实现软件插补的基础,有了这个基础,我们可以画出逐点比较法插补软件的流程图,然后根据流程图再对逐点比较法在软件中的插补算法进行描述,由此找出其中的规律,最后在VB软件中设计出一个小巧的软件,并在其中添加插补算法程序,最后导出软件。