基于VB逐点比较法一、二象限逆圆插补计算与仿真
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第Ⅰ象限逆圆弧插补计算公式
偏差函数
动点位置
进给方向
新偏差计算
动点坐标修正
Fi≥0
在圆上或圆外
-X
FFi+1=Fi-2Xi+1
Xi+1=Xi-1,
Yi+1=Yi
Fi<0
在圆内
+Y
F Fi+1=Fi+2Yi+1
Xi+1=Xi,
Yi+1=Yi+1
和直线插补一样,圆弧插补过程也有终点判别问题。当圆弧轮廓仅在一个象限区域内,其终点判别仍可借用直线终点判别的三种方法进行,只是计算公式略不同。
因此,可求得新的偏差函数为
∴Fi+1=Fi+2Yi+1
将上式进行比较,可以看出两点不同:第一,递推形式的偏差计算公式中仅有加/减法以及乘2运算,而乘2可等效成该二进制数左移一位,这显然比平方运算来得简单。第二,进给后新的偏差函数值与前一点的偏差值以及动点坐标N(Xi,Yi)均有关系。由于动点坐标值随着插补过程的进行而不断变化,因此,每插补一次,动点坐标就必须修正一次,以便为下一步的偏差计算作好准备。至此,将第Ⅰ象限逆圆弧插补的规则和计算公式汇总,见表(表2-1)
ElseIf Option2.Value = True ThenOr c >= 0 Or d < 0 Or m <> n Then
Print MsgBox("非法数据!", 48, "提示信息")
Else
Picture1.Line (5500, 500)-(5500, 6500)
x = Int(Text1)
y = Int(Text2)
c = Int(Text3)
d = Int(Text4)
a = Atn(Abs(y / x))
b = Atn(Abs(d / c))
pi = 3.14159
m = x * x + y * y
n = c * c + d * d
Picture1.ForeColor = vbBlack
综上所述,现将逐点比较法第Ⅰ象限逆圆插补规则概括如下:
当F>0时,即 >0,动点落在圆外,则向(-X)轴方向进给一步;
当F=0时,即 =0,动点正好落在圆上,约定向(-X)轴方向进给一步;
当F<0时,即 <0,动点落在圆内,则向(+Y)轴方向进给一步。
由偏差函数表达式可知,计算偏差F值,就必须进行动点坐标、圆弧半径的平方运算。显然,在用硬件或汇编语言实现时不太方便。为了简化这些计算,按逐点比较法直线插补的思路,也可以推导出逐点比较法圆弧插补过程中偏差函数计算的递推公式。
第一象限逆圆弧插补程序框图
五.程序清单
Private Sub Command1_Click()
Dim r As Single, x As Integer, y As Integer, c As Integer, d As Integer, a As Single, b As Single, pi As Single, m As Integer, n As Integer
三.逐点比较法基本原理
逐点比较法I象限逆圆插补
在加工圆弧过程中,人们很容易联想到使用动点到圆心的距离与该圆弧的名义半径进行比较来反映加工偏差。
假设被加工零件的轮廓为第Ⅰ象限逆走向圆弧SE,,圆心在O(0,0),半径 为R,起点为S(XS,YS),终点为E(Xe,Ye),圆弧上任意加工动点为N(Xi,Yi)。当比较该加工动点到圆心的距离 与圆弧半径R的大小时,可获得刀具与圆弧轮廓之间的相对位置关系。
1)当Fi≥0或Fi<0时,对应的进给方向不同;
2)插补计算公式中动点坐标的修正也不同,以至于偏差计算公式也不相同。
进一步还可根据上述方法推导出其他象限不同走向圆弧的插补公式。现将各种相应偏差计算见表(表2-2)
四个象限圆弧插补偏差计算与进给方向
线型
F≥0
F<0
偏差计算
坐标进给
偏差计算
坐标进给
SR1
a = Int(Text1)
b = Int(Text2)
c = Int(Text3)
d = Int(Text4)
m = 0
l = 0
k = 0
f(m) = 0
x(m) = a
y(m) = b
Picture1.ForeColor = vbGreen
Picture1.DrawWidth = 3
j = Abs(Abs(a) - Abs(c)) + Abs(Abs(b) - Abs(d))
Picture1.Line (500, 6500)-(5500, 6500)
Picture1.Line (5400, 6530)-(5500, 6500)
Picture1.Line (5400, 6470)-(5500, 6500)
Picture1.Line (530, 600)-(500, 500)
Σ=|Xe-Xs|+|Ye-Ys|
Σ=max{|Xe-Xs|,|Ye-Ys|}
Σ1=|Xe-Xs| ,Σ2=|Ye-Ys|
式中 XS、Ys —— 被插补圆弧轮廓的起点坐标;
Xe、Ye —— 被插补圆弧轮廓的终点坐标。
b、插补象限和圆弧走向
前面所讨论的逐点比较法直线和圆弧插补,均是针对第一象限直线和逆圆插补这种特定情况进行的。然而,任何数控机床都应具备处理不同象限、不同走向曲线的能力。
Picture1.Line (470, 600)-(500, 500)
Picture1.ForeColor = vbRed
Picture1.DrawWidth = 5
r = Sqr(x * x + y * y) * 400
Picture1.Circle (500, 6500), r, , a, b
End If
End If
End If
End Sub
Private 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 Integer
二.课程设计的任务……………………………………….1
三.逐点比较法基本原理………………………………....2
四.软件流程图………………………………………………7
五.程序清单…………………….........……………………8
六.仿真结果…………............……………………………13
七.课程设计小结……………………………………………..15
Form1.CurrentX = 200
Form1.CurrentY = 200
Print "初始", "进给方向 ", "F(0)=0", " X0 =" & Int(Text1), " Y0=" & Int(Text2), " Xe = " & Int(Text4), " Ye = " & Int(Text3), " ∑ = " & j
Picture1.Line (500 + 400 * (a - l), 6500 - 400 * (b + k))-(500 + 400 * (a - l + 1), 6500 - 400 * (b + k))
二.课程设计的任务
逐点比较法插补是最简单的脉冲增量式插补算法之一,其过程清晰,速度平稳,但一般只用于一个平面内两个坐标轴的插补运算。其基本原理是在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给,且只有一个方向的进给。也就是说,逐点比较法每一步均要比较加工点瞬时坐标与规定零件轮廓之间的距离,依此决定下一步的走向。如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部,则下一步要向轮廓外面走,以缩小偏差,这样周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的轨迹。逐点比较法插补过程中的每进给一步都要经过偏差判别、坐标进给、偏差计算和终点判别四个节拍的处理,其工作流程图如图所示。
当Fi≥0时,向-Y)轴方向进给一步,则新的动点坐标为
Xi+1=Xi , Yi+1=Yi-1
新动点的偏差函数为
∴Fi+1=Fi-2Yi+1
当Fi<0时,向+X)轴方向进给一步,则新的动点坐标为
Xi+1=Xi+1, Yi+1=Yi
新动点的偏差函数为
∴Fi+1=Fi+2Xi+1
现将上式比较,可以看出它们有两点不同:
八.参考文献……………………...………………………..16
逐点比较法插补的连续轨迹控制设计
一、课程设计目的及主要仪器
课程设计目的:
1)了解连续轨迹控制数控系统的组成原理。
2) 掌握逐点比较法插补的基本原理。
3)握逐点比较法插补的软件实现方法。
主要仪器:
1)PC计算机一台
2)数控机床实验装置一台
3)VB软件
宿 迁 学 院
课程设计说明书
设计题目:
基于VB逐点比较法一、二象限逆圆插补计算与仿真
系(部):机电工程系
专业:
班级:
姓名:
学号:
指导老师(签名):
起止时间:2012年12月3日至2012年12月7日共1周
2012年12月6日
一.课程设计目的及主要仪器设备................................1
Picture1.DrawWidth = 2
If Option1.Value = True Then
If x <= 0 Or y < 0 Or c <= 0 Or d < 0 Or m <> n Then
Print MsgBox("非法数据!", 48, "提示信息")
Else
Picture1.Line (500, 500)-(500, 6500)
Picture1.Line (5470, 600)-(5500, 500)
Picture1.ForeColor = vbRed
Picture1.DrawWidth = 5
r = Sqr(x * x + y * y) * 400
Picture1.Circle (5500, 6500), r, , pi - a, pi - b
四个象限中圆弧插补
圆弧插补情况比直线插补复杂,不仅有象限问题,而且还有圆弧走向问题。现以第Ⅰ象限顺圆SR1插补为例,介绍圆弧插补的特性。
假设圆弧SE起点为S(XS,YS),终点为E(Xe,Ye),圆心在坐标原点上。与逆圆插补相似,当某一时刻动点N(Xi,Yi)在圆弧的外侧时,有F≥0成立,应向-Y)轴方向进给一步,以减小误差;若动点N(Xi,Yi)在圆弧内侧,则应向+X)轴方向进给一步。由此可推导出第Ⅰ象限顺圆插补偏差函数的递推公式如下:
假设第i次插补后,动点坐标为N(Xi,Yi),其对应偏差函数为
当Fi≥0,向(-X)轴方向进给一步,则新的动点坐标值为
Xi+1=Xi-1, Yi+1=Yi
因此,新的偏差函数为
∴Fi+1=Fi-2Xi+1
同理,当Fi<0,则向(+Y)轴方向进给一步,则新的动点坐标值为
Xi+1=Xi, Yi+1=Yi+1
Picture1.Line (500, 6500)-(5700, 6500)
Picture1.Line (5600, 6530)-(5700, 6500)
Picture1.Line (5600, 6470)-(5700, 6500)
Picture1.Line (5530, 600)-(5500, 500)
当动点N(Xi,Yi)正好落在圆弧上时,则有下式成立
当动点N(Xi,Yi)落在圆弧外侧时,则有下式成立
当动点N(Xi,Yi)落在圆弧内侧时,则有下式成立
由此可见,取逐点比较法圆弧插补的偏差函数表达式为
当动点落在圆外时,为了减小加工误差,应向圆内进给,即向(-X)轴方向走一步;当动点落在圆内时,应向圆外进给,即向(+Y)轴方向走一步。当动点正好落在圆弧上且尚未到达终点时,为了使加工继续下去,理论上向(+Y)轴或(-X)轴方向进给均可以,但一般情况下约定向(-X)轴方向进给。
If Option1.Value = True Then
For n = 1 To j
If f(m) >= 0 And j > 0 Then
m = m + 1
l = l + 1
f(m) = f(m - 1) - 2 * Abs(x(m - 1)) + 1
x(m) = x(m - 1) - 1
y(m) = y(m - 1)
NR2
SR3
NR4
F-2|Y|+1→F
|Y|-1→|Y|
-ΔY
-ΔY
+ΔY
+ΔY
F+2|X|+1→F
|X|+1→|X|
+ΔX
-ΔX
-ΔX
+ΔX
NR1
SR2
NR3
SR4
F-2|X|+1→F
|X|-1→|X|
-ΔX
+ΔX
+ΔX
-ΔX
F+2|Y|+1→F
|Y|+1→|Y|
+ΔY
+ΔY
-ΔY
-ΔY
四.软件流程图
偏差函数
动点位置
进给方向
新偏差计算
动点坐标修正
Fi≥0
在圆上或圆外
-X
FFi+1=Fi-2Xi+1
Xi+1=Xi-1,
Yi+1=Yi
Fi<0
在圆内
+Y
F Fi+1=Fi+2Yi+1
Xi+1=Xi,
Yi+1=Yi+1
和直线插补一样,圆弧插补过程也有终点判别问题。当圆弧轮廓仅在一个象限区域内,其终点判别仍可借用直线终点判别的三种方法进行,只是计算公式略不同。
因此,可求得新的偏差函数为
∴Fi+1=Fi+2Yi+1
将上式进行比较,可以看出两点不同:第一,递推形式的偏差计算公式中仅有加/减法以及乘2运算,而乘2可等效成该二进制数左移一位,这显然比平方运算来得简单。第二,进给后新的偏差函数值与前一点的偏差值以及动点坐标N(Xi,Yi)均有关系。由于动点坐标值随着插补过程的进行而不断变化,因此,每插补一次,动点坐标就必须修正一次,以便为下一步的偏差计算作好准备。至此,将第Ⅰ象限逆圆弧插补的规则和计算公式汇总,见表(表2-1)
ElseIf Option2.Value = True ThenOr c >= 0 Or d < 0 Or m <> n Then
Print MsgBox("非法数据!", 48, "提示信息")
Else
Picture1.Line (5500, 500)-(5500, 6500)
x = Int(Text1)
y = Int(Text2)
c = Int(Text3)
d = Int(Text4)
a = Atn(Abs(y / x))
b = Atn(Abs(d / c))
pi = 3.14159
m = x * x + y * y
n = c * c + d * d
Picture1.ForeColor = vbBlack
综上所述,现将逐点比较法第Ⅰ象限逆圆插补规则概括如下:
当F>0时,即 >0,动点落在圆外,则向(-X)轴方向进给一步;
当F=0时,即 =0,动点正好落在圆上,约定向(-X)轴方向进给一步;
当F<0时,即 <0,动点落在圆内,则向(+Y)轴方向进给一步。
由偏差函数表达式可知,计算偏差F值,就必须进行动点坐标、圆弧半径的平方运算。显然,在用硬件或汇编语言实现时不太方便。为了简化这些计算,按逐点比较法直线插补的思路,也可以推导出逐点比较法圆弧插补过程中偏差函数计算的递推公式。
第一象限逆圆弧插补程序框图
五.程序清单
Private Sub Command1_Click()
Dim r As Single, x As Integer, y As Integer, c As Integer, d As Integer, a As Single, b As Single, pi As Single, m As Integer, n As Integer
三.逐点比较法基本原理
逐点比较法I象限逆圆插补
在加工圆弧过程中,人们很容易联想到使用动点到圆心的距离与该圆弧的名义半径进行比较来反映加工偏差。
假设被加工零件的轮廓为第Ⅰ象限逆走向圆弧SE,,圆心在O(0,0),半径 为R,起点为S(XS,YS),终点为E(Xe,Ye),圆弧上任意加工动点为N(Xi,Yi)。当比较该加工动点到圆心的距离 与圆弧半径R的大小时,可获得刀具与圆弧轮廓之间的相对位置关系。
1)当Fi≥0或Fi<0时,对应的进给方向不同;
2)插补计算公式中动点坐标的修正也不同,以至于偏差计算公式也不相同。
进一步还可根据上述方法推导出其他象限不同走向圆弧的插补公式。现将各种相应偏差计算见表(表2-2)
四个象限圆弧插补偏差计算与进给方向
线型
F≥0
F<0
偏差计算
坐标进给
偏差计算
坐标进给
SR1
a = Int(Text1)
b = Int(Text2)
c = Int(Text3)
d = Int(Text4)
m = 0
l = 0
k = 0
f(m) = 0
x(m) = a
y(m) = b
Picture1.ForeColor = vbGreen
Picture1.DrawWidth = 3
j = Abs(Abs(a) - Abs(c)) + Abs(Abs(b) - Abs(d))
Picture1.Line (500, 6500)-(5500, 6500)
Picture1.Line (5400, 6530)-(5500, 6500)
Picture1.Line (5400, 6470)-(5500, 6500)
Picture1.Line (530, 600)-(500, 500)
Σ=|Xe-Xs|+|Ye-Ys|
Σ=max{|Xe-Xs|,|Ye-Ys|}
Σ1=|Xe-Xs| ,Σ2=|Ye-Ys|
式中 XS、Ys —— 被插补圆弧轮廓的起点坐标;
Xe、Ye —— 被插补圆弧轮廓的终点坐标。
b、插补象限和圆弧走向
前面所讨论的逐点比较法直线和圆弧插补,均是针对第一象限直线和逆圆插补这种特定情况进行的。然而,任何数控机床都应具备处理不同象限、不同走向曲线的能力。
Picture1.Line (470, 600)-(500, 500)
Picture1.ForeColor = vbRed
Picture1.DrawWidth = 5
r = Sqr(x * x + y * y) * 400
Picture1.Circle (500, 6500), r, , a, b
End If
End If
End If
End Sub
Private 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 Integer
二.课程设计的任务……………………………………….1
三.逐点比较法基本原理………………………………....2
四.软件流程图………………………………………………7
五.程序清单…………………….........……………………8
六.仿真结果…………............……………………………13
七.课程设计小结……………………………………………..15
Form1.CurrentX = 200
Form1.CurrentY = 200
Print "初始", "进给方向 ", "F(0)=0", " X0 =" & Int(Text1), " Y0=" & Int(Text2), " Xe = " & Int(Text4), " Ye = " & Int(Text3), " ∑ = " & j
Picture1.Line (500 + 400 * (a - l), 6500 - 400 * (b + k))-(500 + 400 * (a - l + 1), 6500 - 400 * (b + k))
二.课程设计的任务
逐点比较法插补是最简单的脉冲增量式插补算法之一,其过程清晰,速度平稳,但一般只用于一个平面内两个坐标轴的插补运算。其基本原理是在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给,且只有一个方向的进给。也就是说,逐点比较法每一步均要比较加工点瞬时坐标与规定零件轮廓之间的距离,依此决定下一步的走向。如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部,则下一步要向轮廓外面走,以缩小偏差,这样周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的轨迹。逐点比较法插补过程中的每进给一步都要经过偏差判别、坐标进给、偏差计算和终点判别四个节拍的处理,其工作流程图如图所示。
当Fi≥0时,向-Y)轴方向进给一步,则新的动点坐标为
Xi+1=Xi , Yi+1=Yi-1
新动点的偏差函数为
∴Fi+1=Fi-2Yi+1
当Fi<0时,向+X)轴方向进给一步,则新的动点坐标为
Xi+1=Xi+1, Yi+1=Yi
新动点的偏差函数为
∴Fi+1=Fi+2Xi+1
现将上式比较,可以看出它们有两点不同:
八.参考文献……………………...………………………..16
逐点比较法插补的连续轨迹控制设计
一、课程设计目的及主要仪器
课程设计目的:
1)了解连续轨迹控制数控系统的组成原理。
2) 掌握逐点比较法插补的基本原理。
3)握逐点比较法插补的软件实现方法。
主要仪器:
1)PC计算机一台
2)数控机床实验装置一台
3)VB软件
宿 迁 学 院
课程设计说明书
设计题目:
基于VB逐点比较法一、二象限逆圆插补计算与仿真
系(部):机电工程系
专业:
班级:
姓名:
学号:
指导老师(签名):
起止时间:2012年12月3日至2012年12月7日共1周
2012年12月6日
一.课程设计目的及主要仪器设备................................1
Picture1.DrawWidth = 2
If Option1.Value = True Then
If x <= 0 Or y < 0 Or c <= 0 Or d < 0 Or m <> n Then
Print MsgBox("非法数据!", 48, "提示信息")
Else
Picture1.Line (500, 500)-(500, 6500)
Picture1.Line (5470, 600)-(5500, 500)
Picture1.ForeColor = vbRed
Picture1.DrawWidth = 5
r = Sqr(x * x + y * y) * 400
Picture1.Circle (5500, 6500), r, , pi - a, pi - b
四个象限中圆弧插补
圆弧插补情况比直线插补复杂,不仅有象限问题,而且还有圆弧走向问题。现以第Ⅰ象限顺圆SR1插补为例,介绍圆弧插补的特性。
假设圆弧SE起点为S(XS,YS),终点为E(Xe,Ye),圆心在坐标原点上。与逆圆插补相似,当某一时刻动点N(Xi,Yi)在圆弧的外侧时,有F≥0成立,应向-Y)轴方向进给一步,以减小误差;若动点N(Xi,Yi)在圆弧内侧,则应向+X)轴方向进给一步。由此可推导出第Ⅰ象限顺圆插补偏差函数的递推公式如下:
假设第i次插补后,动点坐标为N(Xi,Yi),其对应偏差函数为
当Fi≥0,向(-X)轴方向进给一步,则新的动点坐标值为
Xi+1=Xi-1, Yi+1=Yi
因此,新的偏差函数为
∴Fi+1=Fi-2Xi+1
同理,当Fi<0,则向(+Y)轴方向进给一步,则新的动点坐标值为
Xi+1=Xi, Yi+1=Yi+1
Picture1.Line (500, 6500)-(5700, 6500)
Picture1.Line (5600, 6530)-(5700, 6500)
Picture1.Line (5600, 6470)-(5700, 6500)
Picture1.Line (5530, 600)-(5500, 500)
当动点N(Xi,Yi)正好落在圆弧上时,则有下式成立
当动点N(Xi,Yi)落在圆弧外侧时,则有下式成立
当动点N(Xi,Yi)落在圆弧内侧时,则有下式成立
由此可见,取逐点比较法圆弧插补的偏差函数表达式为
当动点落在圆外时,为了减小加工误差,应向圆内进给,即向(-X)轴方向走一步;当动点落在圆内时,应向圆外进给,即向(+Y)轴方向走一步。当动点正好落在圆弧上且尚未到达终点时,为了使加工继续下去,理论上向(+Y)轴或(-X)轴方向进给均可以,但一般情况下约定向(-X)轴方向进给。
If Option1.Value = True Then
For n = 1 To j
If f(m) >= 0 And j > 0 Then
m = m + 1
l = l + 1
f(m) = f(m - 1) - 2 * Abs(x(m - 1)) + 1
x(m) = x(m - 1) - 1
y(m) = y(m - 1)
NR2
SR3
NR4
F-2|Y|+1→F
|Y|-1→|Y|
-ΔY
-ΔY
+ΔY
+ΔY
F+2|X|+1→F
|X|+1→|X|
+ΔX
-ΔX
-ΔX
+ΔX
NR1
SR2
NR3
SR4
F-2|X|+1→F
|X|-1→|X|
-ΔX
+ΔX
+ΔX
-ΔX
F+2|Y|+1→F
|Y|+1→|Y|
+ΔY
+ΔY
-ΔY
-ΔY
四.软件流程图