DDA法圆弧插补误差分析及解决办法
DDA法圆弧插补软件的设计研究
内容
动点 JVX 修正 JV Y 进给 ∃x 方向 ∃y
L 1 L 2 L 3 L 4 N R 1N R 2N R 3N R 4 SR 1 SR 2 SR 3 SR 4
+1- 1+1- 1- 1+1- 1+1 - 1+1- 1+1+1- 1+1- 1 +- - +- - ++++- ++- - +- - +- ++-
性或变频器直流环节中滤波电感及电容之间发生能量 交换造成的。 3 结束语
变频系统应用于车床数控化改造中的主轴调速控 制系统, 由于其技术先进、 功能齐全、 效率高、 调速 范围大、 精度高、 节电效果显著以及无级调速和体积 小, 因此是一种理想的调速控制方式。 它既提高了设 备效率, 满足了生产工艺要求, 又提高了能源利用率, 降低了能源损耗, 经济效益十分显著。
(上接第 75 页)
D esign and Research of Arc In terpola tion Sof tware in DDA Law
XU L iang-yuan
(Eng ineering Co llege , A nhu i A g ricu ltu ral U n iversity, H efei 230036, Ch ina) Abstract: T h is p ap er ana lyzed the p rincip le of a rc in terpo la tion in DDA , in troduced the p rog ramm ing m ethod of a rc in terpo la tion in DDA. B y m ean s of th is softw a re, w e can im p rove CN C m ach ine too ls on p rocessing efficience, so the softw a re ha s a p ractica l va lue. Key w o rd s: DDA ; m ove to left and standa rd ize; in terpo la tion softw a re
数字积分法
Numerical Control
Date: 2006-04 File: interpolation.22
MECHINCAL ENGINEERING, TUST
Interpolation
4.数字积分法合成进给速度
V=F?
F——编程速度 v——插补合成速度
Numerical Control
Date: 2006-04 File: interpolation.23
Interpolation
数,字插积补分直法线的的特终点点是坐,标脉为冲E源(X每e产,生Ye一)个,脉则冲X,,Y作方一向次的累平加均计进算给,频如率果fx,脉f冲y为源频率为fg(Hz)
fx
Xe 2n
fg
式中 m—累加次数 。
fy
Ye 2n
fg
假设脉冲当量为(mm/脉冲),可求得X和Y方向进给速度(mm/min)
则
k(2n 1) 1
k 1 2n 1
为使上式成立,不妨取
1 k
代入得累加次数
2n
m 1 2n k
2n 2n
1
1
上式表明,若寄存器位数是n,则直线整个插补过程要进行2n 次累加才能 到达终点。
Numerical Control
Date: 2006-04 File: interpolation.10
MECHINCAL ENGINEERING, TUST
Interpolation
例 见P22页例2-4
y
B
5 4 3 2 1
0 1 2 3 4 5 Ax
Numerical Control
Date: 2006-04 File: interpolation.18
DDA圆弧插补算法改进研究
2021 年 2 月 1 日 第 44 卷第 3 期
现代电子技术 Modern Electronics Technique
DOI:10.16652/j.issn.1004⁃373x.2021.03.019
引用格式:游达章,谈太振,张业鹏,等 .DDA 圆弧插补算法改进研究[J]. 现代电子技术,2021,44(3):87⁃90.
法,设计一种精度快速评价插补算法的方法,利用该方法对传统 DDA 和改进 DDA 进行拟合效果评价,证明了改进 DDA 的有
效性。
关键词:算法改进;数控系统;插补计算;圆弧插补;离散点拟合;最小二乘圆;快速评价
中图分类号:TN911.1⁃34;TG659
文献标识码:A
文章编号:1004⁃373X(2021)03⁃0087⁃04
数 字 积 分 法(DDA)具 有 逻 辑 能 力 强 、运 算 速 度 快 、 易实现多标联动等特点。现阶段圆弧插补算法在应用
收稿日期:2020⁃04⁃14
修回日期:2020⁃04⁃30
基金项目:国家自然科学基金:基于时序溯源的嵌入式数
控系统软件可靠性评估方法研究(5等缺点。文献[2] 通 过 非 对 称 累 加 器 赋 值 ,使 得 轴 上 脉 冲 分 配 更 均 匀 ,同 时减少了插补次数,插补算法难度不变。但是通过累加 器改变初值的方式造成程序段进给速度不一致,影响加 工表面质量。
2DDA圆弧插补改进算法
其中提出了一个基于传统DDA圆弧插补算法的改进算法,并通过比较证明了该算法相对于弦线插补算法的优越性。实践表明DDA圆弧插补改进算法精简了计算步骤,提高了计算速度。
2DDA圆弧插补改进算法及其实现传统DDA圆弧插补计算过程简单,但是用切线逼近圆弧造成误差。该改进算法使用割线逼近圆弧,可以降低径向误差。改进算法的思想如图3所示,下面以顺圆为例说明。
IK坐标系原点A即切割枪位置,随着切割枪而移动,圆心C相对于原点A的坐标值为(K,I)。第i次迭代之后,切割枪按照插补命令移动到A i点,这时圆心C的坐标为(K i,I i)。
1传统DDA圆弧插补算法在用户编制的零件程序中,对于圆弧插补的程序段,提供了圆弧在XZ平面中的起点、终点以及圆心相对于起点的偏移量I 0、K 0值。现以第一象限的顺圆为例,说明传统DDA圆弧插补算法的实现。
在机床XZ坐标系中,设圆弧起点为A,圆心为C,坐标轴原点平移A点后构成IK坐标系。IK坐标系原点A即切割枪位置,随着切割枪而移动,圆心C相对于原点A的坐标值为(K,I)。第i次迭代之后,切割枪按照插补命令移动到A i点,这时圆心C的坐标为(K i,I i)。在第i+1次迭代中,切割枪将沿着切线A i C′方向移动,于是将按斜率为-K i/I i的切线进行插补迭代一步,切割枪移动到A i+1点。此时圆心C相对于A i+1,的坐标为(I i+1,K i+1)。
式(1)X和Z轴的进给步长可以根据编程速度按斜率为-K i/I i;的直线A i C′计算如下:△X i+1=v(3)因此,第一象限顺圆的传统DDA圆弧插补迭代公式如下式(4)I i=I i-1-△X i K i=K i-1-△Z i)式(5)X i=X i-1-△X i Z i=Z i-1-△Z i)式(6)上述公式中第一个公式用来计算第I次插补周期中坐标轴的进给步长,第二个公式用来修正圆心相对于切割枪位置的现时坐标,第三个公式用来计算切割枪应该达到的命令位置。图2中轨迹是根据传统DDA圆弧插补算法形成的轨迹曲线,包括8个插补点。由切线逼近圆弧的插补算法本身的误差所引起的径向误差较大。
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且随着溢出脉冲而不断变化
(完整版)圆弧插补
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方向进给一步。
数控机床DDA数字积分法插补第一象限直线,逐点比较法插补二三象限顺圆弧
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'));
DDA直线插补和圆弧插补VB程序
ElseIf f * Di = 0 Then
If Di = 1 Then
f = f + 2 * y * Di + p
y = y + p
Else
f = f - 2 * x * Di + p
End If
f = f + Abs(xe - x0)
End If
obj.Line -(x, y), vbRed '画折线
n = n - 1
DoEvents
For i = 1 To 2000000 * p
'延时
Next i
Exit Sub
End If
pic.Cls '清屏
axis pic '画坐标轴
p = Val(Combo1.Text) '读取脉冲当量
cmdShow.Enabled = False
If Option1.Value Then '演示直线插补
Text1(2) <> "" And Text1(3) <> "" Then
x1 = Val(Text1(0)): y1 = Val(Text1(1))
x2 = Val(Text1(2)): y2 = Val(Text1(3))
Else
MsgBox "输入坐标不完整!"
Private Sub Text1_Change(Index As Integer)
If Abs(Val(Text1(Index).Text)) > 9 Then
数控中DDA插补的原理详解
∑
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 项时,则表示溢出脉冲。
∑ ∑
∑ ∑
例3:当函数寄存器位数N=3,对第一象限直 当函数寄存器位数N=3, N=3 OE进行DDA插补 起点( 进行DDA插补, 线OE进行DDA插补,起点(0,0), 终点E ),写出插补过程并画出插补轨 终点E(5,3),写出插补过程并画出插补轨 迹。 解: 1)基本参数 N=3,则累加次数m=2 =8, N=3,则累加次数m=23=8, =5, Xe=5,Ye =3, ∑x=000, ∑x=000,∑y=000 。
t 0 i =1 n
n
y = ∫ k y e dt = ∑ k y e ∆t
t 0 i =1
取单位时间 Δt=1,则公式化为
x = k ⋅ ∑ xe i =1 n y = k ⋅ y ∑ e i =1
n
插补公式
平面直线的插补运算框图
累加多少次,才能到达加工终点呢?m=? K=? 累加多少次,才能到达加工终点呢?m=? K=?
DDA插补的高级语言实现
DDA插补的高级语言实现The Realization of DDA Interpolation In Advanced Computer Languaget王健强摘要:DDA(数字积分法)是开环数控系统常用的插补方法,文中主要分析、讨论直线和圆弧DDA插补的高级语言(C++语言)实现算法和技巧。
用半加载法和极值比较法对DDA法进行修正,有效地提高了圆弧DDA法的插补精度。
关键词:DDA插补C++语言软件插补Abstract:DDA Interpolation is a commonly used method of in terpolation.The algori thm and mechanics of DDA Interpo-lati on of line and arc in advanced computer language is mainly discussed and analyzed.The precision of Interpolation is im-proved by means of the method of half Load and the method of comparison of maxi mu m.Keywords:DDA Interpolation Advanced Computer Language Software Interpolation1引言随着计算机技术和微电子技术的迅猛发展,数控机床在现代机械加工业中已占有越来越大的比重。
近年来,以IPC(PC总线工控机)为控制主机的机床数控系统正以前所未有的速度发展,其性能稳定、可靠的各种类型的功能接口模板几乎应有尽有,这无疑为IPC的应用提供了坚实的硬件保障:同时又降低了硬件开发成本。
自从微机进入数控领域后,硬件数控正在被软件数控C NC所代替,其中包括数控系统重要的插补功能的代替。
众所周知,数控机床的运动(直线、圆弧等)通过插补实现。
轨迹插补
DDA第一象限逆圆硬件插补过程: X轴被积函数初始值置Y0, Y轴被积函数初始值置X0 ; X轴积分累加器溢出到-X方向, Y轴积分累加器溢出到+Y方向;
X轴方向每发出一个进给脉冲,Y轴被积函数 寄存器值减1; Y轴方向每发出一个进给脉冲,X轴被积函数 寄存器值加1; 当其中一个轴到达终点后,该轴不再迭代, 该方向到达终点。另一个轴也到达终点时, 迭代停止,插补结束。
软件DDA圆弧插补举例——未置初值
软件DDA圆弧插补举例——置初值
软件DDA圆弧插补举例——置初值
软件DDA圆弧插补举例——置初值
软件DDA圆弧插补举例——置初值
软件DDA圆弧插补举例——置初值
软件DDA圆弧插补举例——置初值
软件DDA圆弧插补举例——置初值
软件DDA圆弧插补举例——置初值
软件DDA圆弧插补举例——未置初值
软件DDA圆弧插补举例——未置初值
软件DDA圆弧插补举例——未置初值
软件DDA圆弧插补举例——未置初值
软件DDA圆弧插补举例——未置初值
软件DDA圆弧插补举例——未置初值
软件DDA圆弧插补举例——未置初值
软件DDA圆弧插补举例——未置初值
软件DDA圆弧插补举例——未置初值
所以,各坐标轴的位移量为:
"1 X KX e dt K X e t 取t" K X e t 0 i 1 i 1 n n
Y KYe dt K Ye t K Ye
t 取t "1" 0 i 1 i 1
n
n
在硬件DDA电路中,若积分累加器的字长为n 位,则当累加器内的数值到达2n时,就有一个 溢出脉冲,终点坐标值越大(长轴),则该轴 方向上溢出脉冲的速度越快,即该轴的运行速 度越快。
3.5.2 直线和圆弧DDA法插补原理
JY-1 JY 5
5 5 5 5-1=4 4-1=3 3-1=2 2-1=1
终点判 别 NX NY
+Y +Y +Y -X,+Y 10-8=2 -X,+Y 10-8=2 -X -X 12-8=4 9-8=1
10-8=2 12-8=4 9-8=1 11-8=3 11-8=3
2012-5-30
数字积分法直线插补运算过程(前五步)
累加 次数 X积分器 Y积分器 终点计 数 器 JE 000
JRX+JVX
1 0+101=101
溢出 △X 0 1
0 1 1
JRY+JVY
0+010=010
溢 出 △Y 0 0
0 1 0
2
3 4 5
101+101=010
010+101=111 111+101=100 100+101=001
一 插补的基本概念; 二 插补方法的分类; 三 逐点比较法; 四 数字积分法; 五 数据采样法(时间分割法); 六 插补算法中的速度处理。
2012-5-30
四 数字积分法插补
特点:
易于实现多坐标联动插补 Y 1 数字积分法的工作原理 如右图,函数在[t0 , tn ]的定 积分,即为函数在该区间 的面积: O t0 t1 t2 如果从t=0开始,取自变量 t的一系列等间隔值为△t, 当△t足够小时,可得
2 设圆弧AB为第一象限逆圆弧,起点A (3,0),终点为B(0,3),用DDA法加工圆弧 AB。
2012-5-30
《讲DDA圆弧插补》课件
应用场景的不断扩展
随着各行各业对曲线路径运 动的需求增加,DDA圆弧插 补的应用场景将不断扩展和 丰富。
总结
DDA圆弧插补在控制运动方面具有重要的作用,通过精确计算和控制,实现 曲线路径的平滑插补,将受益于其发展而越来越广泛的应用。
DDA圆弧插补的未来发展充满前景,硬件技术、软件技术以及应用场景的不 断改进将为其带来更多可能性。
3 基础设施的要求
进行DDA圆弧插补运动需要具备适当的硬件设备和控制系统,以满足运动控制的需求。
DDA圆弧插补的未来发展方向
硬件技术的进步
随着硬件技术的不断进步, 包括传感器、控制器等设备 的发展,DDA圆弧插补的运 动控制能力将会得到进一编程技术的发展 将推动DDA圆弧插补的应用 更加智能化和自动化。
圆弧算法基于DDA算法,并结合数学几何的概念,通过计算圆弧的圆心、半 径和起始点终点角度等参数,实现对圆弧路径的插补运动。
DDA圆弧插补的应用场景
CNC加工
DDA圆弧插补在数控机床领 域的应用非常广泛,在工件 加工过程中,可以实现高精 度、高效率的曲线插补运动。
机器人运动控制
机器人的自动控制依赖于运 动学算法,DDA圆弧插补可 以实现机器人的曲线轨迹插 补,提高运动精度和稳定性。
参考文献
1. 张三,李四(2019)。《从DDA到Bresenham算法:图形学基础与应用》。 机械工业出版社。 2. 王五,赵六(2020)。《计算机辅助制造基础与实践》。清华大学出版社。
《讲DDA圆弧插补》PPT 课件
本PPT课件将详细介绍DDA圆弧插补的概念、原理、应用场景、注意事项、未 来发展方向,并总结其重要性和前景。
什么是DDA圆弧插补?
DDA圆弧插补是一种用于控制运动的算法,通过计算机控制,实现在二维平面上按照指定轨迹进行曲线插补运 动。
DDA插补法的VHDL语言描述及应用
南京工程学院自动化学院专科毕业设计(论文)题目:DDA插补法的VHDL语言描述及应用专业:数控技术应用班级: G数控Z051学号:141050303 学生姓名:刘翠萍指导教师:张建华副教授起迄日期:2008.4~2008.6设计地点:实验楼 _Graduation Design (Thesis)Describeration And Application of VHDL LanguageFor DDAByLIU CuipingSupervised byAssociate Prof. ZHANG JianhuaSchool of AutomationNanjing Institute of TechnologyJune, 2008摘要本论文设计完成的芯片由VHDL编程设计,它能按照程序设计要求,实现利用DDA插补法对直线和圆弧各个象限的插补。
本论文主要介绍了DDA插补法的插补原理、芯片设计及在Maxplus2文本编辑环境下的仿真。
基于数控智能芯片的架构和软件硬化的理念,利用FPGA设计插补模块,既保留了硬件电路运算速度快(纳秒级)、插补思路清晰的特点,又克服了原有数字逻辑插补电路灵活性差的缺点。
选用美国Altera公司的Maxplus Π工具进行编译仿真,实现了脉冲增量式插补中的DDA插补法轮廓插补运算,定义出了芯片的输入/输出接口,通过VHDL语言进行编程仿真,获得了输出脉冲波形,完成了直线和圆弧轮廓4个象限的插补功能。
第一章绪论1.1数控系统插补数控就是数字控制(Number Control,NC)的简称。
从广义上讲,是指利用数字化信息实行控制,也就是利用数字控制技术实现自动控制系统,其被控对象可以是各种生产过程。
而这里主要从侠义上理解,也就是利用数字化信息对数控机床轨迹和状态实行控制,例如数控车床、数控铣床、数控线切割机床、数控加工中心等。
在数控机床加工过程中,刀具只能以折线去逼近将要加工的曲线轮廓,所以它的运动轨迹并不是光滑的曲线。
数控系统中的逐点比较法和DDA运算过程
2. 数字积分法
Digital Differential Analyzer (数字微分分析器)
基本原理
利用数字积分的方法,计算刀具沿各坐标轴的位移,使得刀具 沿着所加工的轨迹运动。
Y
y f (t)
△t
t
•直线插补
① 原理
设要加工一条直线OE,Vx, Vy表示刀具在 x,y方向的移动速度
刀具在x,y方向上移动距离的微小增量为:
X
和直线插补一样,除偏差计算外,还要进行终点判别,方法与前同。
0
n, 0
Fi
插补流程图
时插 钟补 Y
原地等待 F≥0? N
进给方向+y
Fi 2Yi 1 Fi 1
X i X i 1
进给方向-x
Fi 2 X i 1 Fi 1
X i 1 X i 1
Yi Yi 1
即 设某时刻刀具运动到P(Xi ,Yi)偏差函数为Fi,则 Fi X eYi X iYe F的数值称为该点的“偏差值”
综上所述,在直线插补中,偏差函数与刀具位置的关系是 F>0 F=0 刀具在直线上方 刀具在直线上
F<0
刀具在直线下方
Y
F >0 A( Xe,Ye)
O
P ( X i ,Yi ) F <0
3、了解软件插补基本思路。
【重点与难点】
重点:插补概念;直线和圆弧插补的基本算法。 难点:DDA插补。
在数控加工中,一般已知运动轨迹的起点 坐标、终点坐标和曲线方程,如何使切削加 工运动沿着预定轨迹移动呢?数控系统根据 这些信息实时地计算出各个中间点的坐标, 通常把这个过程称为“插补”。
插补实质上是根据有限的信息完成“数据点 的密化”工作。
数控机床DDA数字积分法插补第一象限直线,逐点比较法插补二三象限顺圆弧
数控机床DDA数字积分法插补第⼀象限直线,逐点⽐较法插补⼆三象限顺圆弧⽬录⼀、课程设计介绍1.1 任务说明 (3)1.2要求 (3)⼆、程序操作及算法流程图2.1 DDA法插补直线流程 (3)2.2逐点⽐较法插补逆时针圆弧流程 (4)三、⽤户使⽤说明3.1 程序开始运⾏时显⽰介⾯ (5)3.2 执⾏计算 (5)3.3 DDA法直线插补实例 (6)3.4 逐点⽐较法插补第⼆三象限逆时针圆弧 (7)四、主要算法及源程序4.1 程序设计概述 (8)4.2 主要算法的实现 (8)4.2.1 参数声明 (8)4.2.2复位操作 (9)4.2.3单步操作 (11)4.2.4 连续插补 (11)4.2.5 辅助操作 (13)五、本设计的特点 (13)六、课程设计的感想 (13)七、主要参考⽂献 (14)⼀、课程设计介绍1.1、任务说明:(1)直线插补:DL1, DDA 法第⼀象限直线插补。
(2)圆弧插补:PA23,逐点⽐较法⼆三象限顺圆弧插补。
1.2、要求:(1)具有数据输⼊界⾯,如:起点,终点,圆⼼,半径及插补步长。
(2)具有插补过程的动态显⽰功能,如:但单步插补,连续插补,插补步长可调。
本课程设计的题⽬要求是DDA数字积分法插补第⼀象限直线,逐点⽐较法插补⼆三象限顺圆弧。
由于本课设要求只为⼆三象限,故默认为劣弧插补。
此外,对于两种插补对象均可根据需要改变插补步长,以表现不同的插补效果。
在插补显⽰过程中,有两种插补显⽰⽅式,即⼿动单步插补和⾃动连续插补动态显⽰。
⼆、程序操作及算法流程图 2.1 DDA 法插补直线流程初始化sx sy ex ey 步长bc 寄存器vx1 vy1 累加器 rx1 ry1rx1=rx1+vx1 ry1=ry1+vy1ry1是否溢出rx1是否溢出是否到达终点结束 +x ⾛⼀个步长 +y ⾛⼀个步长NY NYNY开始DDA 插补第⼀象限的直线流程图2.2逐点⽐较法插补逆时针圆弧流程逐点⽐较法插补⼆三象限逆圆弧参数说明:sx 、sy 为起点坐标ex 、ey 为终点坐标开始初始化sx ex sy sy bc 弧半径平⽅rY21>=0r>=0r>=0向—y ⾛⼀步向x ⾛⼀步向—y ⾛⼀步向—x ⾛⼀步是否到达终点结束yyynnnn yn为进给总次数cx、cy为圆⼼坐标bc为步长m为寄存器位数s_1表⽰按下直线选项,s_2表⽰按下圆弧按钮三、⽤户使⽤说明——软件运⾏说明及结果显⽰3.1 程序开始运⾏时显⽰介⾯3.2 执⾏计算在右侧⾯板中有参数输⼊区,⽅式选择区以及执⾏按钮等操作。
DDA圆弧插补
jx=abs(ya),jy=abs(xa);/*给累加变量赋初值*/
rx=ry=dx=dy=0;
ix=xa,iy=ya;/*定义刀具起点*/
ex=abs(xa-xe);
ey=abs(ya-ye);
/*调用顺弧计算程序*/
if (w==1)
半加载及左移规格化逆弧第二象限:
半加载及左移规格化逆弧第四象限:
全加载及左移规格化顺弧第一象限:
全加载及左移规格化顺弧第三象限:
全加载及左移规格化逆弧第二象限:
全加载及左移规格化逆弧第四象限:
分析:
本程序默认寄存器是5位,圆弧圆心在原点,圆弧在但一象限内的情况,不考虑其他情况。
a=1,b=1,c=-1,d=1;
/*给不同象限走刀的变量赋值*/
if(ex!=0)
{
rx=rx+jx;
dx=a*rx/32;
if(dx!=0)/*x方向走刀的计算*/
{ix=ix+dx;
ex=ex-1;
rx=rx%32;
}
}
if(ey!=0)/*y方向走刀的计算*/
{
ry=ry+jy;
dy=b*ry/32;
else if((xa<0&&ya<0)||(xa==0&&ya<0))
a=-1,b=1,c=-1,d=1;
else if((xa>0&&ya<0)||(xa>0&&ya==0))
a=-1,b=-1,c=1,d=-1;
第九讲DDA圆弧插补
判断题: 1、刀具补偿功能包括刀补的建立、刀补的执行和刀补 的取消三个阶段 2、在插补过程中,每走一步都要完成“偏差判别,进给 计算,新偏差计算,终点判别”四个节拍. 3、由数据采样插补得出的是二进制表示的进给量,而 不是进给脉冲. 4、数据采样法中的采样周期是插补周期的整数倍。 5、数据采样法中,为使插补误差尽可能小,进给速度 尽可能大,插补周期应尽可能大。
3、DDA法圆弧插补
X KYt Y KXt
特点: 1)各累加器初始值为零,各寄存器为起点坐标值; 2)X被寄函数积存器存Yi,Y被寄函数积存器存Xi,为动 点坐标; 3) Xi 、Yi在积分过程中,产生进给脉冲△X、△Y时, 要对相应坐标进行加1或减1的修改; 4) DDA圆弧插补的终点判别要有二个计数器,哪个坐 标终点到了, 哪个坐标停止积分迭代;
14、在数控编程时,使用( )指令后,就可以按工件的轮廓尺 寸进行编程,而不需按刀具的中心线运动轨迹来编程。 A.刀具半径补偿 B.刀具偏置 C.圆弧插补 D.预置寄存 15、在逐点比较插补法中,确定刀具进给方向的依据是( ) A、被积函数的大小 B、被积函数的正负 C、偏差函数的大小 D、偏差函数的正负 16、用时间分割法进行圆弧插补时,逼近误差与( )无关 A、圆弧角度 B、圆弧半径 C、插补方向 D、插补周期
采用弦线l逼近时,见左 图。半径为r的被逼近圆弧 最大半径误差er,其对应 的圆心角为δ
FT l er 8r 8r
2
2
时间分割法直线插补
1)插补计算过程 (1)插补准备 主要是计算轮廓步长及其相应 的坐标增量。 (2)插补计算 实时计算出各插补周期中的插 补点(动点)坐标值。 (3)终点判别
DDA法插补改进
四、 改进DDA 插补质量的措施使用DDA 法插补时,其插补进给速度 v 不仅与系统的迭代频率 g f (即脉冲源频率)成正比,而且还与余数寄存器的容量 N 成反比,与直线段的长度 L(或圆弧半径R )成正比。
它们之间有下述关系成立:160gv f N δ= (2-12)式中 v ——插补进给速度;δ——系统脉冲当量;L ——直线段的长度; N ——寄存器的容量;g f ——迭代频率。
显然,即使编制同样大小的速度指令,但针对不同长度的直线段,其进给速度是变化的(假设g f 和N 为固定),必须设法加以改善。
常用的改善方法是左移规格化和进给速率编程(FRN )。
由上面DDA 圆弧插补例子可以看出,当插补第Ⅰ象限逆圆时, y 坐标率先到达。
这时若不强制y 方向停止迭代,将会出现超差,不能到达正确的终点。
为了改善这一情况,常用余数寄存器预置数的办法来解决。
以下就来讨论使DDA 法从原理走向实用必须解决的速度和精度控制问题。
1.进给速度的均匀化措施——左移规格化从上述可知,数字积分器溢出脉冲的频率与被积函数寄存器中的存数成正比。
如用DDA 作直线插补时,每个程序段的时间间隔是固定不变的,因为不论加工行程长短,都必须同样完成2n m =次的累加运算。
就是说行程长,走刀快;行程短,走刀慢。
所以各程序段的进给速度是不一致的。
这样影响了加工的表面质量,特别是行程短的程序段生产率低。
为了克服这一缺点,使溢出脉冲均匀,溢出速度提高,通常采用左移规格化处理。
所谓“左移规格化”处理,是当被积函数的值比较小时,如被积函数寄存器有 i 个前零时,若直接迭代,那么至少需要2i 次迭代,才能输出一个溢出脉冲,致使输出脉冲的速率下降。
因此在实际的数字积分器中,需把被积函数寄存器中的前零移去即对被积函数实现“左移规格化”处理。
经过左移规格化的数就成为规格化数——寄存器中的数其最高位为“1”时,该数即称为规格化数;反之最高位为“0”的数称为非规格化数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
· 53 ·
DDA 法圆弧插补误差分析及解决办法
Error Analysis of DDA Circular Interpolation and Solution
张丙星 ZHANG Bing-xing
(山东万杰医学院,淄博 255213) (Shandong Wanjie Medical College,Zibo 255213,China)
插补是指数据密化的过程。在对数控系统输入有限坐
标点(例如起点、终点)的情况下,计算机根据线段的特性
(直线、圆弧、椭圆等),运用一定的算法,自动地在有限坐
标点之间生成一系列的坐标数据,从而自动地对各坐标轴
进行脉冲分配,完成整个线段的轨迹运行,使机床加工出
所要求的轮廓曲线。
圆弧插补:零件程序提供圆弧起点、终点、圆心坐标,
摘要: 插补是指数据密化的过程。DDA 法插补是比较常用的一种插补方式,但在实际应用中易出现插补误差,本文通过实例解
析,通过增加终点判别器的方法很好的解决了这个问题。
Abstract: Interpolation is index close process. DDA interpolation is quite a common interpolation way. However, in the actual
为动点 P 在 y 方向的分速度。将(Ⅰ)式写成参量方程,则
— —— —— —— —— —— —— —— —— —— —— —— 作者简介 :张丙星(1978-),男,山东德州人,讲师,研究方向为机
电自动化。
有 dxi dt
=-kyi
,dyi dt
=kx(i Ⅱ)式中,k
为比例系数。对Ⅱ式求
其在 A 到 B 区间的定积分,t0 和 tn 分别对应出发点和终点
数控装置将起点、终点之间空间进行数据密化,用一个个
脉冲把这一空间填补成近似理想的圆弧,即对圆弧段进行
数据密化。
插补分为二维插补和多维插补。
二维插补:对于平面曲线,通过二个坐标的插补运算,
就能控制两个坐标轴走出所需轨迹。
多维插补:对于空间曲线(三维、四维…),需要多个坐
标轴联动,也就需要多个坐标的插补运算。
坐标都达到终点的,才停止插补计算。
按照上述原理对圆弧进行插补易出现误差,例如:一
段圆弧起点 S(0,5),终点为 E(5,0)。我们对其应用 DDA
法进行插补:
q 的取值应满足 q≥max(0,5,5,0)=5 取 q 为 8,即三
位寄存器,插补完这段圆弧刀具沿 X,Y 轴应走的总步数
为 N=|Xe-Xs|+|Ye-Ys|=10,插补过程如表 1 所示。
个脉冲,则 Y 积分器的 JVy 寄存器应该减“1”。
此外,在圆弧插补时,x 坐标值(x)i 累加的溢出脉冲作
为 y 轴的进给脉冲,而 y 坐标值(y)i 累加的溢出脉冲作为
x 轴的进给脉冲。在终点判别时,因圆弧插补的两个坐标
不一定同时到达终点,故在两个方向上都要进行终点判
别,其判别条件分别为 Jx = xe -x0 ,Jy = ye -y0 只有当两个
i=1
i=1
弧插补也可由两套数字积分器来实现,圆弧插补被积函数
为变量(kxi 和 kyi),且随着溢出脉冲而不断变化。在出发
点时 JVx、JVy 分别存放出发点坐标值 y0、x0。在插补过程中,
Y 积分器的累加器 JRy,每溢出一个脉冲,则 x 积分器的 JVx
寄存器应该加“1”;反之,X 积分器的累加器 JRx 每溢出一
application, it always occurs interpolation error. This paper solves the problem through case analysis, by increasing the terminal discriminant
device.
乙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 由此可见,圆
关键词: DDA 法插补;刀具误差;运动轨迹;终点判别器
Key words: DDA interpolation;tool error;trajectory;terminal discriminant device
中 图 分 类 号 :TH12
文 献 标 识 码 :A
文 章 编 号 :1006-4311(2013)02-0053-02
0
最终导致了运动轨迹与实 际圆弧产生误差。
表1
图2 4 E
E′ X
脉冲 个数
X 积分器
Y 积分器
终点差 别
Y=Y-1 SX=SX+Y SX=SX-q 溢出 X=X+1 SY=SY+Y SY=SY+Y 溢出
常用的插补方法有逐点比较法、数字积分法(DDA)、
ห้องสมุดไป่ตู้
数据采样法,本文就数字积分法对圆弧插补出现的问题进
行讨论,下面以第一象限逆圆为例讨论数字积分法圆弧插
补的原理。
y
如右图所示,设要加工
圆 弧 为 AB, 出 发 点 为 A
x0 ,y0 ,终点为 B xe ,ye ,
B(xe,y)e v vx
vy P(xi,y)i
圆心在坐标原点,半径为
R
R。P xi ,yi 为动点,则圆弧
A(x0,y0)
22 2
AB 的方程式为 xi +yi =R , o
图1
x
将左式对时间 t 求导得 2xi
dxi dt
+2y i
dyi dt
=0, dyi /dt dxi /dt
= xi yi
(Ⅰ)式中,dx/dt=vx 为动点 P 在 x 方向的分速度;dy/dt=vy
刀具运动轨迹如图2。
由图 2 显然看出插补轨迹未到达终点,为什么出现这
种问题哪,由上图看出刀具在 X 轴运动超过了终点 E,而
在 Y 轴则未到达 X 轴。再看一看插补过程中第 9 个脉冲
· 54 ·
价值工程
到来时,刀具在 X 轴方向 y 已到达终点,应该就此停 5 S 止。而没有停,从而多运行 了一步,而刀具在 X 轴和 3 Y 轴方向上运动的总步数 一定,这就导致了刀具在 Y 轴方向少运动一步,从而