数控机床DDA数字积分法插补第一象限直线,逐点比较法插补二三象限顺圆弧
数字积分圆弧第一二三四象限顺逆插补计算

数控技术课程设计说明书设计题目:数字积分法圆弧插补计软件设计指导老师:专业:机械设计制造及其自动化班级:机姓名:学号:目录一、课程设计题目 (1)二、课程设计的目的 (1)三、课程设计使用的主要仪器设备 (1)四、课程设计的任务题目描述和要求 (1)五、数字积分法插补原理 (2)5.1从几何角度来看积分运算 (2)5.2数字积分圆弧插补 (3)5.3数字积分法圆弧插补程序流程图 (5)5.4插补实例 (6)六、程序清单 (7)七、软件运行效果仿真 (18)八、课程小节 (21)九、参考文献 (22)一、课程设计题目数字积分法第一、二、三、四象限顺、逆圆插补计算二、课程设计的目的《数控原理与系统》是自动化(数控)专业的一门主要专业课程,安排课程设计的目的是通过课程设计方式使学生进一步掌握和消化数控原理基本内容,了解数控系统的组成,掌握系统控制原理和方法,通过设计与调试,掌握各种功能实的现方法,为今后从事数控领域的工作打下扎实的基础。
1)了解连续轨迹控制数控系统的组成原理。
2) 掌握数字积分法(DDA)插补的基本原理。
3)掌握数字积分法(DDA)插补的软件实现方法。
三、课程设计使用的主要仪器设备1、PC计算机一台2、数控机床实验装置一台3、支持软件若干(选用VB环境)四、课程设计的任务题目描述和要求数字积分法又称数字微分分析法DDA(Digital Differential Analyzer)。
数字积分法具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点,应用比较广泛。
其缺点是速度调节不便,插补精度需要采取一定措施才能满足要求。
由于计算机有较强的计算功能和灵活性,采用软件插补时,上述缺点易于克服。
本次课程设计具体要求如下:(1)掌握数字积分插补法基本原理(2)设计出数字积分(DDA)插补法插补软件流程图(3)编写出算法程序清单算法描述(数字积分法算法在VB中的具体实现)(4)要求软件能够实现第一、二、三、四象限顺、逆圆插补计算(5)软件运行仿真效果插补结果要求能够以图形模式进行输出五、数字积分法插补原理数字积分法又称数字积分分析法DDA(Digital differential Analyzer),简称积分器,是在数字积分器的基础上建立起来的一种插补算法。
数控中DDA插补的原理详解

xe
=
vx
对于直线函数来说, VX和Vy是常数,则下式 成立
vx v y = =k xe ye
k-比例系数
在△t 时间内,X、Y位移增量的参数方程为
∆x = v x ⋅ ∆t = k ⋅ xe ⋅ ∆t ∆y = v y ⋅ ∆t = k ⋅ ye ⋅ ∆t
位移量为
x = ∫ k xe dt = ∑ k xe ∆t
4、直线插补
加工线段OA, 是两个坐标轴方向的分速度, 加工线段OA,VX和VY是两个坐标轴方向的分速度, OA 方向微小增量为△ 设X、Y方向微小增量为△X、△Y 则 △ X = V X. △ t △ Y = V y. △ t 而 X e= V X. t 1 Y e= V y. t 2 ye v y t 2 所以 = xe v x t1 因为t 同时到达) 因为t 1= t 2 (同时到达) 所以 ye v y
§8.3
1、基本概念
数字积分法
采用积分运算实现插补,又称DDA法。 DDA(Digital Differential Analyzer)
2、优点
易于实现多维插补和原有系统多个坐标轴 联动的扩充,尤其多坐标联动的数控系统
3、数字积分器的工作原理
函数 x=f(t), 曲线下面0 曲线下面0到t 的面积
∑
i =1
∑
NOTE: NOTE: 插补开始时, x=0, y=0; 1)插补开始时,∑x=0,∑y=0; 被积函数寄存器分别寄存X 一直不变) 被积函数寄存器分别寄存Xe和Ye(一直不变) 插补开始后,每隔一个时间间隔△ 2)插补开始后,每隔一个时间间隔△t ,被 积函数的内容与各自的累加器中的内容相加 一次, 一次,相加后溢出的脉冲做为驱动相应坐标 轴的进给脉冲, 余数仍寄存在累加器中。 轴的进给脉冲,而余数仍寄存在累加器中。 被积函数寄存器中的数可用二进制位表示: 3)被积函数寄存器中的数可用二进制位表示: 由高到低), 2n-1、……20。(由高到低),也可用十进制 2 。(由高到低),也可用十进制 数表示。 数表示。 4)当累加出现>2N项时,则表示溢出脉冲。 当累加出现>2 项时,则表示溢出脉冲。
DDA法圆弧插补误差分析及解决办法

4+3=
6
2
5
6<q
7<q
5 6+5= 11-8=
1 3 7+3= 10-8=
4
7
+X
-Y
5-1=4 11>q 3
1 3+1=4 10>q 2
4
3+4=
2+4=
8
1
4
7<q
6<q
4 7+4= 11-8=
4 6+4= 10-8=
9
+X 0
-Y 3
4-1=3 11>q 3
4+1=5 10>q 2
10
停止
乙tn
的时间,其积分值为 A 到 B 的坐标增量,即 xe -x0 =- t0 kyi
乙tn
dt,ye -y0 = t0 kxi dt,(Ⅲ)将式Ⅲ用累加和代替积分式得 xe -
n
n
Σ Σ x0 =- kyi Δt,ye -y0 = kxi Δt,若取 Δt 为一个脉冲时间间
i=1
i=1
n
n
Σ Σ 隔,即 Δt=1,则 xe -x0 =- kyi ,ye -y0 = kxi 由此可见,圆
对式求其在a到b区间的定积分t0和tn分别对应出发点和终点的时间其积分值为a到b的坐标增量即xex0tnt0乙kyidtyey0tnt0乙kxidt将式用累加和代替积分式得xenx0ni1kyityey0i1kxit若取t为一个脉冲时间间隔即t1则xex0ni1kyiyey0ni1kxi由此可见圆弧插补也可由两套数字积分器来实现圆弧插补被积函数为变量kxi和kyi且随着溢出脉冲而不断变化
逐点比较法第一象限直线圆弧插补

逐点比较法第一象限直线,圆弧插补编程逐点比较法是以折线来逼近给定的轨迹,就是每走一步控制系统都要将加工点与给定的图形轨迹相比较,以决定下一步进给的方向,使之逼近加工轨迹。
逐点比较法以折线来逼近直线或圆弧,其最大的偏差不超过一个最小设定单位。
只要将脉冲当量取得足够小,就可以达到精度要求。
逐点比较插补法在脉冲当量为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) 位置判别根据偏差值大于零、等于零、小于零确定当前加工点的位置。
数字积分圆弧第一二三四象限顺逆插补计算

数控技术课程设计说明书设计题目:数字积分法圆弧插补计软件设计指导老师:专业:机械设计制造及其自动化班级:机姓名:学号:目录一、课程设计题目 (1)二、课程设计的目的 (1)三、课程设计使用的主要仪器设备 (1)四、课程设计的任务题目描述和要求 (1)五、数字积分法插补原理 (2)5.1从几何角度来看积分运算 (2)5.2数字积分圆弧插补 (3)5.3数字积分法圆弧插补程序流程图 (5)5.4插补实例 (6)六、程序清单 (7)七、软件运行效果仿真 (18)八、课程小节 (21)九、参考文献 (22)一、课程设计题目数字积分法第一、二、三、四象限顺、逆圆插补计算二、课程设计的目的《数控原理与系统》是自动化(数控)专业的一门主要专业课程,安排课程设计的目的是通过课程设计方式使学生进一步掌握和消化数控原理基本内容,了解数控系统的组成,掌握系统控制原理和方法,通过设计与调试,掌握各种功能实的现方法,为今后从事数控领域的工作打下扎实的基础。
1)了解连续轨迹控制数控系统的组成原理。
2) 掌握数字积分法(DDA)插补的基本原理。
3)掌握数字积分法(DDA)插补的软件实现方法。
三、课程设计使用的主要仪器设备1、PC计算机一台2、数控机床实验装置一台3、支持软件若干(选用VB环境)四、课程设计的任务题目描述和要求数字积分法又称数字微分分析法DDA(Digital Differential Analyzer)。
数字积分法具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点,应用比较广泛。
其缺点是速度调节不便,插补精度需要采取一定措施才能满足要求。
由于计算机有较强的计算功能和灵活性,采用软件插补时,上述缺点易于克服。
本次课程设计具体要求如下:(1)掌握数字积分插补法基本原理(2)设计出数字积分(DDA)插补法插补软件流程图(3)编写出算法程序清单算法描述(数字积分法算法在VB中的具体实现)(4)要求软件能够实现第一、二、三、四象限顺、逆圆插补计算(5)软件运行仿真效果插补结果要求能够以图形模式进行输出五、数字积分法插补原理数字积分法又称数字积分分析法DDA(Digital differential Analyzer),简称积分器,是在数字积分器的基础上建立起来的一种插补算法。
数控机床逐点比较法圆弧插补

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)两式可知,递推偏差计算仅为加法(或者减法)运算,大大降低了计算的复杂程度。
菜鸟学四轴控制器之3:数字积分法DDA实现直线插补

菜鸟学四轴控制器之3:数字积分法DDA实现直线插补上⼀篇的逐点⽐较法显然是⽆法画⼀条有倾⾓的直线的。
因为X轴和Y轴永远都不同步,也就是像打台球⼀样,你打⼀个,我打⼀个,如果我进了球,我再接着打⼀个。
也就是说,如果直线为45度,也是没有办法画出来的,只能是锯齿形状。
如何实现X和Y同时动?也就是说,如果要画⼀条45度的线,X和Y同时动不就⾏了么?⽐如起点为0,0,终点为5,5,如果采⽤逐点⽐较法,则需要运动10次,如果两轴同时运动,则5步就可以实现了。
实现的途径如下:初始值为0,0,然后下⼀步,我们每个坐标增加5,则结果为5,5,这样会溢出,也就是说,溢出来出发运动⼀步。
溢出以后清零,下⼀步再加5,⼜溢出,继续同时运动⼀步。
⼀共5步就可以实现了。
等等,当然可以设置寄存器的溢出值为5,这样的寄存器使⽤3位就⾏了,但是如果要移动到(3,7)的坐标呢?显然,我们⽤的寄存器则可以选⽤溢出值为7.这样的话,我们要⽤的寄存器其实需要3个,⼀个是存(3,7)的初始值,⼀个存7这个阀值,⼀个则是累加器。
我们可以直接省掉⼀个阀值的寄存器。
也就是说,直接⽤3位的寄存器,阀值为8.步数X累加X余数X是否溢出Y累加Y余数Y是否溢出000000013007002600146139111351440012415700113161021102175009118801801也就是说,当X轴和Y轴同时溢出的时候,X和Y轴是在同步运动的。
问题来了,⽐如我们要运动从(0,0)运动到(2554,47)这个点,实际需要多少步?也就是说,只要能装的下2554这个的寄存器位数就可以了,也就是说,⽤4096来作为累加器。
移动的速度则是4096*脉冲当量的周期。
实际上,这个时间⽐2554+47慢了很多了。
但是这样做的好处显⽽易见,我们不是每⼀个图形,都是锯齿形了。
我们可以轻松的实现直接的实际⼑路如上⾯的图形从⽽实现了多座标联动,多坐标曲线插补,在轮廓控制⽅⾯得到了⼴泛的应⽤。
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)。
3.2 执行计算
在右侧面板中有参数输入区,方式选择区以及执行按钮等操作。
若输入参数和符合要求则出现错误对话框;“参数有误”
若不选择插补对象为‘直线’或‘圆弧’直接按下‘复位’按钮会出现警示对话框提示“请选择插补对象”
注:在直线插补中,对起始点坐标和终点坐标不作要求,但步长必须不能为0;在圆弧插补中,起始点坐标必须为二三象限的点,且终止点必须在起始点下侧,这事保证圆弧为劣弧的条件之一。步长在任何情况下不能为0 。
4.2 主要算法的实现
4.2.1参数声明
起点坐标(sx,sy);终点坐标(ex,ey);
圆心坐标(cx,cy);步长bc;
4.2.2复位操作程序:
functionfw_Callback(hObject, eventdata, handles)
globalsx sy ex ey cx cy bc m vx1 vy1 rx1 ry1
3.2 执行计算……………………………………………………………5
3.3DDA法直线插补实例………………………………………………6
3.4逐点比较法插补第二三象限逆时针圆弧…………………………7
四、主要算法及源程序
4.1 程序设计概述………………………………………………………8
set(gca,'YTick',[-10:1:10]);
axis([-10 10 -10 10]);
axismanual;
ifs_1==0&&s_2==0
warndlg('请选择插补对象');
else
ifget(handles.zx,'value')
m=str2double(get(handles.m,'String'));
vx1=ex-sx;
vy1=ey-sy;
rx1=0;
ry1=0;
x1=[sx ex];
y1=[sy ey];
holdoff;图像清除
plot(x1,y1,'k');
set(gca,'XTick',[0:1:10]);
set(gca,'YTick',[0:1:10]);
axis([0 10 0 10]);
axismanual;
axison;
gridon;
holdon;
else
if((sx-cx)^2+(sy-cy)^2)~=((ex-cx)^2+(ey-cy)^2)
s_1=get (handles.zx,'value');
s_2=get (handles.yh,'value');
cx=str2double(get(handles.cx,'String'));
cy=str2double(get(handles.cy,'String'));
sx=str2double(get(handles.sx,'String'));
(2)圆弧插补:PA23,逐点比较法二三象限顺圆弧插补。
1.2、要求:(1)具有数据输入界面,如:起点,终点,圆心,半径及插补步长。
(2)具有插补过程的动态显示功能,如:但单步插补,连续插补,插补步长可调。
本课程设计的题目要求是DDA数字积分法插补第一象限直线,逐点比较法插补二三象限顺圆弧。由于本课设要求只为二三象限,故默认为劣弧插补。此外,对于两种插补对象均可根据需要改变插补步长,以表现不同的插补效果。在插补显示过程中,有两种插补显示方式,即手动单步插补和自动连续插补动态显示。
3.3DDA法直线插补实例
单步直线插补:
连续直线插补:
左移一位:
半加载:
全加载:
不加载:
单步圆弧插补:
连续圆弧插补:
四、程序设计及主要算法实现
4.1 程序设计概述:
首先从编辑文本框中获取输入的数据,包括起点终点坐标,圆心位置,步长,寄存器位数等需要输入的值。然后通过面板选择插补对象,插补方式,执行操作。
4.2.5 辅助操作………………………………………………………………13
五、本设计的特点……………………………………………………13
六、课程设计的感想…………………………………………………13
七、主要参考文献……………………………………………………14
一、课程设计介绍
1.1、任务说明:(1)直线插补:DL1,DDA法第一象限直线插补。
sy=str2double(get(handles.sy,'String'));
ex=str2double(get(handles.ex,'String'));
ey=str2double(get(handles.ey,'String'));
bc=str2double(get(handles.bc,'String'));
warndlg('参数有误');参数有误
else
y2=sy:(ey-sy)/100:ey;
r=(ex-cx)^2+(ey-cy)^2;
x2=cx-(r-(y2-cy).*(y2-cy)).^0.5;
holdoff;
plot(x2,y2,'k');
set(gca,'XTick',[-10:1:10]);
4.2 主要算法的实现……………………………………………………8
4.2.1 参数声明……………………………………………………………………8
4.2.2复位操作………………………………………………………………9
4.2.3单步操作………………………………………………………11
4.2.4 连续插补………………………………………………………………11
二、程序操作及算法流程图
2.1 DDA法插补直线流程
DDA插补第一象限的直线流程图
2.2逐点比较法插补逆时针圆弧流程
逐点比较法插补二三象限逆圆弧
参数说明:sx、sy为起点坐标
ex、ey为终点坐标
n为进给总次数
cx、cy为圆心坐标
bc为步长
m为寄存器位数
s_1表示按下直线选项,s_2表示按下圆弧按钮
三、用户使用说明——软件运行说明及结果显示
一、课程设计介绍
1.1任务说明……………………………………………………………3
1.2要求…………………………………………………………………3
二、程序操作及算法流程图
2.1 DDA法插补直线流程………………………………………………3
2.2逐点比较法插补逆时针圆弧流程…………………………………4
三、 用户使用说明