数字积分插补法直线插补

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

数控原理与系统课程设计课题名称:数字积分插补法直线插补
专业:
班级:
姓名:
指导老师:
数控原理与系统课程设计任务书
班级姓名学号
课程设计的目的
1)了解连续轨迹控制数控系统的组成原理。

2) 掌握数字积分插补的基本原理。

3)掌握数字积分插补的软件实现方法。

二、课程设计的任务
数字积分法又称数字微分分析法DDA(Digital Differential Analyzer)。

数字积分法具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点,应用比较广泛。

其缺点是速度调节不便,插补精度需要采取一定措施才能满足要求。

由于计算机有较强的计算功能和灵活性,采用软件插补时,上述缺点易于克服。

本次课程设计具体要求如下:
1)数字积分插补法基本原理
2)数字积分插补法插补软件流程图
3)算法描述(逐点比较法算法在VB中的具体实现)
4)编写算法程序清单
5)软件运行仿真效果
二、课程设计报告要求
1)按课程设计任务5点要求为标题,编写课程设计报告,最后加一点:此次课程设计小结(包括设计过程中所碰到的问题、解决办法以及有关设计体会等)。

2)字数在3000字左右。

3)仿真软件一份。

三、学生分组
学 生 姓 名
数控原理与系统课程设计说明书
一、数字积分法直线插补的基本原理
数字积分法是利用数字积分的方法,计算刀具沿各坐标轴的位移,使得刀具沿着所加工的轮廓曲线运动
利用数字积分原理构成的插补装置称为数字积分器,又称数字微分分析器(Digital Differential Analyzer ),简称DDA 。

数字积分器插补的最大优点在于容易实现多坐标轴的联动插补、能够描述空间直线及平面各种函数曲线等。

因此,数字积分法插补在轮廓数控系统中得到广泛的应用。

从几何角度来看,积分运算就是求出函数Y = f (t )曲线与横轴所围成的面积,从
t =t 0到t n 时刻,函数Y= f (t )的积分值可表述为
⎰⎰==n n t
t t t dt )t (Ydt S 0
0f
如果进一步将t ∈[t 0,t n ]的时间区划分为若干个等间隔Δt 的小区间,当Δt 足
够小时,函数Y 的积分可用下式近似表示
t Y Ydt S n i i t
t n ∆∑⎰-=≈=1
在几何上就是用一系列的小矩形面积之和来近似表示函数f (t )以下的积分面积。

进一步如果在式中,取Δt 为基本单位“1”,则上式可演化成数字积分器算式:
∑-==1
0n i i Y S
由此可见,通过假设Δt =“1”,就可将积分运算转化为式所示的求纵坐标值的累加
运算。

若再假设累加器容量为一个单位面积值,则在累加过程中超过一个单位面积时立
即产生一个溢出脉冲。

这样,累加过程所产生的溢出脉冲总数就等于所求的总面积,即所求的积分值。

下面就以直线和圆弧轨迹为例详细介绍数字积分法在轮廓插补中的具体应用。

数字积分法直线插补 a 、插补原理
设将要加工的直线为XOY 平面内第Ⅰ象限直线OE ,直线的起点在坐标原点,终点为E (X e ,Y e )。

同样,假设坐标值均为以脉冲当量为单位的整数。

若此时刀具在两坐标轴上的进给速度分量分别为V X 、V Y ,则刀具在X 轴、Y 轴方向上位移增量分别为
ΔX =V X Δt ΔY =V Y Δt
由几何关系可以看出
K Y V X V OE
V e
Y
e X ===
(常数) 现将式中的V X 、V Y 分别代入式可得
ΔX =KX e Δt ΔY =KY e Δt
可见,刀具由原点O 走向终点E 的过程,可以看作是每经过一个单位时间间隔Δt ,就分别以增量 [KX e ]、 [KY e ]同时在两个坐标轴累加的结果。

也可以这样认为,数字积分法插补实际上就是利用速度分量,进行数字积分来确定刀具在各坐标轴上位置的过程,即
i n
i e n
i i t KX X X ∆∆∑∑====1
1
i n
i e n
i i t KY Y Y ∆∆∑∑====1
1
当取Δt i =“1”(一个单位时间间隔),则式将演变为e i n
i e nKX t KX X ==∑=∆1
e i n
i e nKY t KY Y ==∑=∆1
设经过n 次累加后,刀具正好到达终点E (X e ,Y e ),即要求式中常量满足下式
nK =1 或 n =1/K
从上式可以看出,比例常数K 和累加次数n 之间的关系是互为倒数,即两者相互制约,不能独立自由选择。

也就是说只要选定了其中一个,则另一个随之确定了。

由于式中n 是累加次数,必须取整数,这样K 就必须取小数。

为了保证每次分配给坐标轴的进给脉冲不超过1个单位(一般指1个脉冲当量),则
ΔX =KX e <1 ΔY =KY e <1
上式中X e 、Y e 的最大允许值受系统中相应寄存器的容量限制。

现假设寄存器为N 位,
则其容量为2N,对应存储的最大允许数字量为(2N-1),将其代入式中X
e 、Y
e
,则可得
到 K<1/(2N-1)
现不妨取K=2N,显然它满足式和式的约束条件,再将K值代入式,可得累加次数为
n=1/K=2N
也就是说,经过n=2N次累加后,动点(刀具)将正好到达终点E。

事实上,如果将n、K值代入式,则动点坐标为
X=KX
e n=(1/2N)X
e
2N=X
e
Y=KY
e
n=(1/2N)Y
e
2N=Y
e
根据前面的分析,在进行直线插补时,先开辟两个被积函数寄存器J
VX 、J
VY
分别存放
终点坐标值X
e 、Y
e
,还有两个余数寄存器J
RX
和J
RY。

然后,当脉冲源每发送一个控制脉
冲信号Δt,X轴积分器和Y轴积分器各累加一次。

当累加结果超出余数寄存器容量2N-1时,就产生一个溢出脉冲ΔX(或ΔY)。

这样,经过2N次累加后,每个坐标轴溢出脉冲
的总数就等于该轴的被积函数值(X
e 和Y
e
),从而控制刀具到达了终点E。

二、数字积分法直线插补的软件流程图
三、数字积分法直线插补的算法描述
\ If i <> q Then
sx = sx + xa
If sx >= q Then
flagx = True
sx = sx - q
Else
flagx = False
End If
sy = sy + ya
If sy >= q Then
flagy = True
sy = sy - q
Else
flagy = False
End If
If flagx And flagy Then 'sx>=q sy>=q
Picture1.Line -Step(1, 1), vbRed
End If
If Not flagy And flagx Then
Picture1.Line -Step(1, 0), vbRed
End If
If flagy And Not flagx Then
Picture1.Line -Step(0, 1), vbRed
End If
i = i + 1
End If
四、数字积分法直线插补的算法程序清单
Private Sub a1_Click()
form1.Hide
Form12.Show
End Sub
Private Sub a2_Click()
form1.Hide
Form13.Show
End Sub
Private Sub a3_Click()
form1.Hide
Form11.Show
End Sub
Option Explicit
Public i As Integer
Public xa As Integer
Public ya As Integer
Public sx As Integer
Public sy As Integer
Public q As Integer
Public xe As Integer
Public ye As Integer
Public Sub p1(xe)
Picture1.Scale (-xe, xe)-(xe, -xe) Picture1.Line (xe, 0)-(-xe, 0) Picture1.Line (0, -xe)-(0, xe) End Sub
Public Sub p2(xe)
Picture1.Scale (xe, -xe)-(-xe, xe) Picture1.Line (xe, 0)-(-xe, 0) Picture1.Line (0, -xe)-(0, xe)
End Sub
Private Sub Command3_Click()
i = 0
sx = 0
sy = 0
Dim max As Integer
Picture1.Refresh
xa = Val(Text1.Text)
ya = Val(Text2.Text)
q = Val(Text4.Text)
'第一象限
If xa >= 0 And ya >= 0 Then
max = xa - ya
If max > 0 Then
p1 (xa)
Else
p1 (ya)
End If
End If
'第二象限
If xa < 0 And ya > 0 Then
max = Abs(xa) - ya
If max > 0 Then
p2 (xa)
Else
p1 (ya)
End If
End If
'第三象限
If xa < 0 And ya < 0 Then
max = Abs(xa) - Abs(ya)
If max > 0 Then
p2 (xa)
Else
p2 (ya)
End If
End If
'第四象限
If xa > 0 And ya < 0 Then
max = xa - Abs(ya)
If max > 0 Then
p1 (xa)
Else
p2 (ya)
End If
End If
'设置脉冲频率
Timer1.Enabled = True
Timer1.Interval = Val(Text3.Text)
'画直线
Picture1.Line (xa, ya)-(0, 0)
End Sub
Private Sub Command6_Click()
form1.Show
szjfzxcb1.Hide
End Sub
Private Sub Timer1_Timer()
Dim flagx, flagy As Boolean
If i <> q Then
sx = sx + xa
If sx >= q Then
flagx = True
sx = sx - q
Else
flagx = False
End If
sy = sy + ya
If sy >= q Then
flagy = True
sy = sy - q
Else
flagy = False
End If
If flagx And flagy Then 'sx>=q sy>=q
Picture1.Line -Step(1, 1), vbRed
End If
If Not flagy And flagx Then
Picture1.Line -Step(1, 0), vbRed
End If
If flagy And Not flagx Then
Picture1.Line -Step(0, 1), vbRed
End If
i = i + 1
End If
End Sub
五、数字积分法直线插补的软件运行仿真效果
1、仿真开始前的软件界面如图5-1所示
图5-1
2、基本原理的界面如图5-2所示
图5-2
3、算法描述的界面如图5-3所示
图5-3
4、程序框图的界面如图5-4所示
图5-4
5、仿真效果的界面如图5-5所示
图5-5
六、课程设计小结
这份设计我从总体的数控原理软件效果图到数控原理分析,再从数字积分法原理到软件实现,作了一个尽可能详细的解释。

数控原理插补软件的实现,使得我们在数控原理的学习上和理解上更进一步了,他在我们的直观上给我们做了一个很好的模拟。

这主要靠的是可视化程序设计语言Visual Basic.它是开发图形用户界面的方法,不需要编写大量的代码去描写界面元素的外观和位置,只要把预先建立的对象拖放到窗口即可。

所以说,对于初学者,这是很适合我们的,为我们节省时间的同时,也更让我们理解。

最后,我学到的是大家同学之间的相互帮助。

相关文档
最新文档