逐点比较法


对于位于直线上方的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
∑=8 ∑=7 ∑=6 ∑=5 ∑=4 ∑=3 ∑=2 ∑=1 ∑=0
思考

1插补是锯齿形的,而肉眼看到的或者是测 量时却是直线呢? 2其它象限的偏差计算公式

逐点比较法第一象限的顺圆弧插补算法
在圆弧加工过程中,可用动点到圆心的距 离来描述刀具位置与被加工圆弧之间关系。 设圆弧圆心在坐标原点,已知圆弧起点A (Xa,Ya),终点B(Xb,Yb),圆弧半 径为R,加工点可能在三种情况出现,即圆 弧上、圆弧外、圆弧内。
Y A (Xe、Ye) P (Xi,Yi) Pi” X
Pi’ o
Y
3.偏差函数的递推计算 若Fi≥0沿+X方向进给一步,有
Xi 1 Xi 1 Yi 1 Yi 1 Fi 1 Yi 1X e Xi 1YE Fi Ye
Fi<0时,沿+Y方向进给一步,有
A (Xe、Ye)
Xi 1 Xi Yi 1 Yi 1 Fi 1 Yi 1Xe Xi 1Ye Fi X e
o
X
4. 终点判别 1)判断插补或进给的总步数:N=Xe+Ye; 2)分别判断个坐标轴的进给步数; 3)仅判断进给步数较多的坐标轴的进给步数。
例:设OA为第一象限的直线,其终点坐标为Xe=2, Ye=3。用逐点比较法加工出直线OA
Y
3 A(2,3)
2
1 o 1 2 X
逐点比较法直线插补过程
序号 0 1
偏差判别 进给 F0=0 +X +Y +Y +X +Y
2
3 4 5
F1=-3 F2=-1
F3=1 F4=-2
偏差计算 终点判别 F0=0 ∑=5 ∑=4 F1=F0-Ye=-3 F2=F1+Xe=-1 ∑=3 ∑=2 F3=F2+Xe=1 F4=F3-Ye=-2 ∑=1 ∑=0 F5=F4+Xe=0
如图示:加工曲线AB,A为起点,B为终点。
Y B
A
X
一、逐点比较法插补原理及特点
逐点比较法是一种逐点计算、判别偏差并纠正,以逼近理论轨 迹的方法,在插补过程中每走一步要完成以下四个工作节拍: 偏差判别——判别加工点对规定几何轨迹的偏离位置; 进给——根据判别结果控制某坐标工作台进给一步; 偏差函数计算——计算新的加工点对规定轨迹的偏差; 终点判别 ——判别是否到达规定轨迹的终点,到达则停止插补, 否则返回第一步;
图3-3
开始 偏差判别 坐标进给 偏差计算
3 2 1 终点判别 O 1 y
E
Y 给结束
2 N 3
4
逐点比较法工作循环图
所以加工过程为:
Y
3 A(2,3)
2
1 o 1 2 X
习题: 设欲加工第一象限直线OA,起点在原点,终点坐标 Xe=4,Ye=2,试写出插补计算过程,并绘制插补轨 迹。
Y
2
1
O 1 2 3 4 X
Y F≥0
Y
F<0
F<0
F≥0
X
X
a) 顺圆弧
b) 逆圆弧
图3-9 第一象限顺、逆圆弧
例3-2 现欲加工第一象限顺圆弧AB,如图3-11所示,起 点A(0,4),终点B(4,0),试用逐点比较法进行插 补。
Y 4 3 2 1 O 1 2 3 4 B(4,0) X A(0,4)
图3-11 圆弧插补实例
F5 F4 2Y4 1 3 F6 F5 2 X 5 1 4
F7 F6 2Y6 1 1
F8 F7 2Y7 1 0
Y
Y
NR2
NR1
X
SR2
SR1
X
O
NR3
NR4
SR3
SR4
a) 逆圆弧
b) 顺圆弧
图3-12 四个象限圆弧进给方向
表3-3 四个象限的圆弧插补计算
二:逐点比较法直线插补
1.偏差函数的构造
对于第一象限直线OA,其方 程可表示为:
Y
Pi’ A (Xe、Ye) Pi (Xi,Yi) o Pi” X 图1 逐点比较法直线插补
Y KX
Ye X Xe
YX e XYe 0
若刀具加工点Pi(Xi,Yi),则 该点的偏差函数Fi可表示为:
Fi YX i e Xi Y e
插补算法归纳为两类:脉冲增量插补算法和数字增量插补 算法。


脉冲增量插补算法 该插补为行程标量插补,常用于开环系统。每次插补结 束产生一个行程增量,以脉冲的方式输出。一个脉冲所 产生的坐标轴移动量叫做脉冲当量,通常用δ 表示。 普通精度机床 δ =0.01mm,较精密机床取 δ =1um,0.5um 。 •数字增量插补算法 •该插补为时间标量插补,分两步进行。首先计算出插补周 期内各坐标轴的增量值,称为粗插补;然后再跟据采样得 到的实际位置增量计算跟随误差,得到速度指令输出给伺 服驱动系统,称为精插补。适用于闭环或半闭环系统。
Fm≥0,- X X O
SR4
Fm≥0,+ X
Fm<0,+ X
NR1
Fm<0,- Y
Fm≥0,+ Y
NR2
+ΔX
-ΔYFΒιβλιοθήκη 0Pi (Xi,Yi)
F>0
R X
A(Xa,Ya)
O
用 Fi 表示Pi点的偏差值,定义圆弧偏差函数判别式为:
Fi X i 2 Yi 2 R2
四个工作节拍
1、偏差判别: Fi=Xi2+Yi2-R2 Fi=0,插补点恰在圆弧上(on); Fi>0,插补点在圆弧上方(up); Fi<0,插补点在圆弧下方(down); 2、进给控制: 当Fi > 0时,向Y负向进给一步; 当Fi < 0时,向X正向进给一步; 3、偏差计算: 如果向X正向进给一步,则 Fi+1=(Xi+1)2 +(Yi+1)2-R2 =(Xi+1) 2 +Yi2 -R2= Fi+2Xi+1 同理,如果向Y负向进给一步,则 Fi+1=(Xi+1)2 +(Yi+1)2-R2 =Xi2 +(Yi-1)2 -R2=Fi-2Yi+1 4、终点判别: 与直线插补判别方法相同。
Fm ≥0 时: Fm+1=Fm -2Ym +1 Ym+1=Ym -1 Fm <0 时: Fm+1=Fm +2Xm +1 Xm+1=Xm +1
NR4
Y
+ΔY
+ΔX
Fm≥0,- Y 逆圆(NR) Fm<0,- X
Fm<0,+ Y
SR2
+ΔX -ΔX -ΔX
+ΔY -ΔY +ΔY Fm ≥0 时: Fm+1=Fm -2Xm +1 Xm+1=Xm -1 Fm <0 时: Fm+1=Fm +2Ym +1 Ym+1=Ym +1
数控技术
机电系
第四章 计算机数控装置的插补原理
第一节 插补原理与程序设计 一. 插补及其算法 插补的任务就是在一段零件轮廓的起点和终点之间,计算 出若干个中间点的坐标值。 直线和圆弧是构成工件轮廓的基本线条,大多数CNC系统 都具有直线和圆弧的插补功能。高档CNC系统还具有抛物 线、螺旋线等插补功能。
Fm<0,+ Y 顺圆(SR) Y Fm≥0,- Y
线型
Fm ≥0 时, 进给方向 -ΔY +ΔY -ΔY
Fm <0 时 进给方向 +ΔX -ΔX -ΔX
偏差计算公式
SR1
Fm≥0,+ X O Fm<0,- X Fm<0,+ X X Fm≥0,- X
SR3
NR2
Fm≥0,+ Y Fm<0,- Y
合集下载

直线逐点比较插补原理的实现

直线逐点比较插补原理的实现

逐点比较插补原理的实现1 数字程序控制基础数字程序控制,就是计算机根据输入的指令和信息,控制生产机械按规定的工作程序、运动轨迹、运动距离和运动速度等规律自动地完成工作的自动控制。

世界上第一台数控机床是1992年由MIT伺服机构实验室开发出来的,主要的目的是为了满足高精度和高效率加工复杂零件的需要一般来说,三维轮廓零件,即使二维轮廓零件的的加工也是很困难的,而数控机床则很容易实现早期的数控(NC)以数字电路技术为基础,现在的数控(CNC)以计算机技术为基础。

数控系统由输入装置、输出装置、控制器、插补器等四部分组成。

随着计算机技术的发展,开环数字程序控制得到了广泛的应用,如各类数控机床、线切割机低速小型数字绘图仪等,它们都是利用开环数字程序控制原理实现控制的设备。

开环数字程序控制的结构如图1.1所示。

图1.1 开环数字程序控制的结构图这种结构没有反馈检测元件,工作台由步进电机驱动。

步进电机接收驱动电路发来的指令作相应的运动,把刀具移动到与指令脉冲相当的位置,至于刀具是否到达了指令脉冲规定的位置,它不作任何检查,因此这种控制的可靠性和精度基本上由步进电机和传动装置来决定。

开环控制结构简单、可靠性高、成本低、易于调整和维护等,应用最为广泛。

2 步进电机控制技术步进电机又叫脉冲电机,它是一种将电脉冲信号转换为角位移的机电式数模转换器。

在开环数字程序控制系统中,输出部分常采用它作为驱动元件。

步进电机接收计算机发来的指令脉冲,控制步进电机作相应的转动,步进电机驱动数控系统的工作台或刀具。

显然,指令脉冲的总数就决定了数控系统的工作台或刀具的总移动量,指令脉冲的频率就决定了移动的速度。

因此,指令脉冲能否被可靠地执行,基本上取决于步进电机的性能。

2.1 步进电机的工作原理步进电机的工作就是步进转动。

在一般的步进电机工作中,电源都是采用单极性的直流电源。

要使步进电机转动,就必须对步进电机定子的各相绕组以适当的时序进行通电。

逐点比较法的象限处理

逐点比较法的象限处理

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

01-3.逐点比较法圆弧插补

01-3.逐点比较法圆弧插补

a)顺圆弧
b)逆圆弧
图5-14 四个象限圆弧进给方向
机电工程学院
圆弧过象限,即圆弧的起点和终点不
在同一象限内。若坐标采用绝对值进行插补
运算,应先进行过象限判断,当X=0或Y=0 时过象限。如前图所示,需将圆弧AC分成两 段圆弧AB 和BC,到X=0时,进行处理,对应
调用顺圆2和顺圆1的插补程序。
若用带符号的坐标值进行插补计算,在 插补的同时,比较动点坐标和终点坐标的代 数值,若两者相等,插补结束,其计算过程
见下表。
机电工程学院
y C
A
图5-15 跨象限圆弧
表: 圆弧插补计算过程
进给
坐标计算
偏差计算
终点判别
+X
Xi1 Xi 1
Fi1 Fi 2Xi1
Xe Xi1 0
-X
Xi1 Xi 1
Fi1 Fi 2Xi1
Xe Xi1 0
+Y
Yi1 Yi 1
Fi1 Fi2Yi 1
如下图a、b所示,用SR1、SR2、SR3、SR4分别表 示第Ⅰ、Ⅱ、Ⅲ、Ⅳ象限的顺时针圆弧,用NR1、NR2、 NR3、NR4分别表示第Ⅰ、Ⅱ、Ⅲ、Ⅳ象限的逆时针圆 弧,四个象限圆弧的进给方向表示在图中。
机电工程学院
四个象限中圆弧插补
Y
SR2
SR1
NR2
X
Y NR1 X
SR3
SR4
NR3
NR4
R
2
经整理得偏差计算递推公式:
Fi1=Fi+2Yi+1
机电工程学院
例5-2 设加工第一象限逆圆弧AB,起点A(6,0),终点B(0,6)。 试用逐点比较法对其进行插补并画出插补轨迹图。 插补从圆弧的起点开始,故F0,0=0;终点判别寄存器E存入X和 Y两个坐标方向的总步数,即E=6+6=12,每进给一步减1,E=0 时停止插补。应用第一象限逆圆弧插补计算公式,其插补运算过 程如表5-2所示,插补轨迹如图所示。

逐点比较法的性能和数字积分法

逐点比较法的性能和数字积分法

的速度分量为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

基于FPGA的逐点比较圆弧插补算法设计

基于FPGA的逐点比较圆弧插补算法设计

基于FPGA的逐点比较圆弧插补算法设计摘要:随着数字化控制技术的发展,FPGA作为可编程逻辑设备,被广泛应用于了工业控制系统中。

本文通过分析圆弧插补算法的原理和特点,设计了一种基于FPGA的逐点比较圆弧插补算法,并进行了硬件实现。

通过实验验证,该算法可以准确地实现圆弧插补功能,并具有较高的计算速度和运行效率。

关键词:FPGA;圆弧插补;逐点比较算法1.引言在数控系统中,圆弧插补是一种常见的运动控制方式。

圆弧插补可以实现工件在空间中沿着预定的曲线轨迹移动,从而实现复杂的形状加工。

目前,圆弧插补算法主要有计算细分点的数学法和逐点比较法两种。

其中,逐点比较法是一种基于离散点的插值方式,具有较高的计算速度和运行效率。

本文将基于FPGA的逐点比较圆弧插补算法进行设计与实现。

2.圆弧插补算法原理圆弧插补是通过计算圆弧上一系列离散点的坐标,从而实现工件的平滑运动。

在逐点比较法中,圆弧插补算法主要包括以下几个步骤:(1)确定圆弧的起点、终点和中心点,并计算圆弧的半径;(2)根据离散点的间距,计算出圆弧的总点数;(3)计算圆弧上每个离散点的坐标,并保存在一个数据缓存区中;(4)将数据缓存区中的坐标输出。

3.算法设计(1)数据输入模块:接收圆弧的起点、终点和中心点坐标,并计算圆弧的半径;(2)总点数计算模块:根据离散点的间距,计算出圆弧的总点数;(3)坐标计算模块:根据圆弧的起点、终点、中心点和总点数,计算出每个离散点的坐标,并保存在一个数据缓存区中;(4)数据输出模块:将数据缓存区中的坐标输出。

4.硬件实现本文采用Xilinx FPGA作为硬件开发平台,Verilog HDL作为硬件描述语言。

根据设计的算法原理和模块设计,完成了逐点比较圆弧插补算法的硬件实现。

5.实验结果与分析通过对比实验,验证了基于FPGA的逐点比较圆弧插补算法的正确性和有效性。

与传统的数学法相比,该算法具有更高的计算速度和运行效率,适用于高性能的工业控制系统。

数控逐点比较法直线插补原理

数控逐点比较法直线插补原理
Fi, j1 xe ( y j 1) xi ye xe y j xi ye xe Fi, j xe
若F< 0x时i ,刀1具向y方(向xi进1,1)偏差值
( x Fi, j1 Fi, j xe i 1) xi 1
同理对第三,四象限得课本表3-8的规律。 Conclusion对所有象限的判别式: F y xe x ye
ya xe xa ye
ya ye xa xe
ka ke
y ya x xa
y ye x xe
同理 ka ke
ya ye xa xe
F ya xe xa ye 0
判别式 F y xe x ye
理由二:“递推法”
对于第一象限 若 F≥ 0时,刀具向x方向进1,
偏差值
Fi1, j xe y j ( xi 1) ye
逐点比较法直线插补原理的理解
姓名 学号 专业班级 所在学院 指导教师
xxx xx xx dzkdzsc lmh
课本(机床数控技术第二版)P184
对于第二象限,只要用 x 取代x,就可以变换到第一象限。三,四象限同理。
As I see it:判别式 F y xe x ye
Why? 理由一:
为什么 ya xe xa ye 0 ?
That’s all ! Thank you!
xe y j xi ye ye
Fi, j ye
对于第二象限 若F≥ 0时,刀具向-x方向进1,偏差值
( xi 1) ye
xe y j xi ye ye
Fi, j ye
若F< 0时,刀具向y方向进1,偏差值

第02章 逐点比较法直线插补原理


第2章 直线插补原理
即:在对数控系统输入有点坐标点(起点、终 点)的情况下,计算机根据线段的特征(直线、 圆弧、椭圆等),运用一定的算法,自动地在 有限坐标点之间生成一系列的坐标数据,从而 自动地对各坐标轴进行脉冲分配,完成整个线 段的轨迹运行,以满足加工精度的要求。
插补的任务就是根据进给速度的要求,在一段 零件轮廓的起点和终点之间“插入”和“补上” 运动轨迹中各个中间点的坐标。
② 如果刀具加工点Pi ( Xi,Yi )处于直线下方 时( Fi≦0ቤተ መጻሕፍቲ ባይዱ),应该向+Y方向发一个脉冲,使 机床刀具向+Y方向前进一步,以接近该直线。
第2章 直线插补原理
通常为简化运算,我们一般采用偏差函数的递推 式(迭代式)进行计算,即由前一点计算后一点。

若 Fi , 则y向i xXe 轴发x出i y一e 个进给脉冲,刀具从该点向
2.1.4 插补的实质
曲线方程:Y=F(X) 函数关系表示X与Y一一对应,对于曲线上的某一点的 邻域,其坐标增量关系也是确定的,即给X1一个增量 △X存在一个△Y使Y1+△Y=F(X1+△X)这使△X与 △Y之间有一种制约,那就是由△X找到一个△Y使F (X1+△X)等于或接近于Y1+△Y,插补就是这种寻 找△X与△Y之间制约的方法。
2.2 逐点比较法插补原理
2.2.1 逐点比较法的基本思想
每走一步都要将加工点的瞬时坐标同规定的图 形轨迹相比较,判断其偏差,然后决定下一步 的走向,如果加工点走到图形外面去了,那么 下一步就要向图形里面走;如果加工点在图形 里面,那么下一步就要向图形外面走,以缩小 偏差。
第2章 直线插补原理
2.2.2 逐点比较法的四个基本步骤

逐点比较法直线插补程序

逐点比较法直线插补程序
一、实验目的
1、进一步理解逐点比较法直线插补的原理
2、掌握在计算机环境中完成直线逐点比较法插补的软件实现方法。

二、实验设备
1、计算机及其操作系统
2、VB 6.0软件
三、实验原理
机床数控系统依据一定方法确定刀具运动轨迹,进而产生基本廓形曲线,如直线、圆弧等。

其它需要加工的复杂曲线由基本廓形逼近,这种拟合方式称为“插补”(Interpolation)。

“插补”实质是数控系统根据零件轮廓线型的有限信息(如直线的起点、终点,圆弧的起点、终点和圆心等),在轮廓的已知点之间确定一些中间点,完成所谓的“数据密化”工作。

四、实验方法
本次实验是在VB6.0环境下完成了直线逐点比较法插补的软件实现。

软件中实现,主要分为两部分,一是人际交互,用户采集数据和演示其插补过程;二是插补的计算过程,此为这次实验的核心。

逐点比较法的插补有四个工作节拍:偏差判别、进给、偏差计算和终点判别,第一象限直线插补的偏差判别公式如下:
Fi = Xe Yi -Y e Xi
Fi≥0时,偏差判别公式为Fi+1= Fi-Y e,向X正方向进给
Fi< 0时,偏差判别公式为Fi+1= Fi+Xe,向Y正方向进给
其工作流程图如下所示:
根据流程编写合理的界面和控制主程序代码。

逐点比较法三、四象限逆圆插补计算

逐点比较法三、四象限逆圆插补计算第三象限第四象限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 )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档