VB软件模拟逐点比较法逆圆弧插补的程序设计.docx
《VB软件模拟逐点比较法逆圆弧插补的程序设计.docx》由会员分享,可在线阅读,更多相关《VB软件模拟逐点比较法逆圆弧插补的程序设计.docx(13页珍藏版)》请在冰豆网上搜索。
![VB软件模拟逐点比较法逆圆弧插补的程序设计.docx](https://file1.bdocx.com/fileroot1/2023-8/3/ec35a2c0-c78f-4823-972c-a8126adce620/ec35a2c0-c78f-4823-972c-a8126adce6201.gif)
VB软件模拟逐点比较法逆圆弧插补的程序设计
VB软件-模拟逐点比较法逆圆弧插补的程序设计
xxxx学院
课程设计说明书
设计题目:
逐点比较法逆圆弧插补的程序设计
系(部):
机电工程系
专业:
自动化(数控技术)
班级:
08数控本
(1)班
姓名:
学号:
指导老师(签名):
起止时间:
2011年12月5日至2011年12月9日共1周
2011年12月11日
一.课程设计的目的……………………………………….1
二.课程设计的任务……………………………………….1
三.逐点比较法基本原理………………………………....1
四.算法描述………………………………………………6
五.具体算法程序…………………………………………10
六.各象限选例展示………………………………………17
七.心得体会……………………………………………..19
八.参考文献……………………………………………..19
正文:
数控原理与系统课程设计说明书
一、课程设计的目的
1)了解连续轨迹控制数控系统的组成原理。
2)掌握逐点比较法插补的基本原理。
3)握逐点比较法插补的软件实现方法。
二.课程设计的任务
逐点比较法插补是最简单的脉冲增量式插补算法之一,其过程清晰,速度平稳,但一般只用于一个平面内两个坐标轴的插补运算。
其基本原理是在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给,且只有一个方向的进给。
也就是说,逐点比较法每一步均要比较加工点瞬时坐标与规定零件轮廓之间的距离,依此决定下一步的走向。
如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部,则下一步要向轮廓外面走,以缩小偏差,这样周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的轨迹。
逐点比较法插补过程中的每进给一步都要经过偏差判别、坐标进给、偏差计算和终点判别四个节拍的处理,其工作流程图如图所示。
三.逐点比较法基本原理
逐点比较法I象限逆圆插补
在加工圆弧过程中,人们很容易联想到使用动点到圆心的距离与该圆弧的名义半径进行比较来反映加工偏差。
假设被加工零件的轮廓为第Ⅰ象限逆走向圆弧SE,,圆心在O(0,0),半径为R,起点为S(XS,YS),终点为E(Xe,Ye),圆弧上任意加工动点为N(Xi,Yi)。
当比较该加工动点到圆心的距离
与圆弧半径R的大小时,可获得刀具与圆弧轮廓之间的相对位置关系。
当动点N(Xi,Yi)正好落在圆弧上时,则有下式成立
当动点N(Xi,Yi)落在圆弧外侧时,则有下式成立
当动点N(Xi,Yi)落在圆弧内侧时,则有下式成立
由此可见,取逐点比较法圆弧插补的偏差函数表达式为
当动点落在圆外时,为了减小加工误差,应向圆内进给,即向(-X)轴方向走一步;当动点落在圆内时,应向圆外进给,即向(+Y)轴方向走一步。
当动点正好落在圆弧上且尚未到达终点时,为了使加工继续下去,理论上向(+Y)轴或(-X)轴方向进给均可以,但一般情况下约定向(-X)轴方向进给。
综上所述,现将逐点比较法第Ⅰ象限逆圆插补规则概括如下:
当F>0时,即
>0,动点落在圆外,则向(-X)轴方向进给一步;
当F=0时,即
=0,动点正好落在圆上,约定向(-X)轴方向进给一步;
当F<0时,即
<0,动点落在圆内,则向(+Y)轴方向进给一步。
由偏差函数表达式可知,计算偏差F值,就必须进行动点坐标、圆弧半径的平方运算。
显然,在用硬件或汇编语言实现时不太方便。
为了简化这些计算,按逐点比较法直线插补的思路,也可以推导出逐点比较法圆弧插补过程中偏差函数计算的递推公式。
假设第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
因此,可求得新的偏差函数为
∴Fi+1=Fi+2Yi+1
将上式进行比较,可以看出两点不同:
第一,递推形式的偏差计算公式中仅有加/减法以及乘2运算,而乘2可等效成该二进制数左移一位,这显然比平方运算来得简单。
第二,进给后新的偏差函数值与前一点的偏差值以及动点坐标N(Xi,Yi)均有关系。
由于动点坐标值随着插补过程的进行而不断变化,因此,每插补一次,动点坐标就必须修正一次,以便为下一步的偏差计算作好准备。
至此,将第Ⅰ象限逆圆弧插补的规则和计算公式汇总,见表(表2-1)
第Ⅰ象限逆圆弧插补计算公式
偏差函数
动点位置
进给方向
新偏差计算
动点坐标修正
Fi≥0
在圆上或圆外
-X
FFi+1=Fi-2Xi+1
Xi+1=Xi-1,
Yi+1=Yi
Fi<0
在圆内
+Y
FFi+1=Fi+2Yi+1
Xi+1=Xi,
Yi+1=Yi+1
表2-1
和直线插补一样,圆弧插补过程也有终点判别问题。
当圆弧轮廓仅在一个象限区域内,其终点判别仍可借用直线终点判别的三种方法进行,只是计算公式略不同。
Σ=|Xe-Xs|+|Ye-Ys|
Σ=max{|Xe-Xs|,|Ye-Ys|}
Σ1=|Xe-Xs|,Σ2=|Ye-Ys|
式中XS、Ys——被插补圆弧轮廓的起点坐标;
Xe、Ye——被插补圆弧轮廓的终点坐标。
b、插补象限和圆弧走向
前面所讨论的逐点比较法直线和圆弧插补,均是针对第一象限直线和逆圆插补这种特定情况进行的。
然而,任何数控机床都应具备处理不同象限、不同走向曲线的能力。
四个象限中圆弧插补
圆弧插补情况比直线插补复杂,不仅有象限问题,而且还有圆弧走向问题。
现以第Ⅰ象限顺圆SR1插补为例,介绍圆弧插补的特性。
假设圆弧SE起点为S(XS,YS),终点为E(Xe,Ye),圆心在坐标原点上。
与逆圆插补相似,当某一时刻动点N(Xi,Yi)在圆弧的外侧时,有F≥0成立,应向-Y)轴方向进给一步,以减小误差;若动点N(Xi,Yi)在圆弧内侧,则应向+X)轴方向进给一步。
由此可推导出第Ⅰ象限顺圆插补偏差函数的递推公式如下:
当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
现将上式比较,可以看出它们有两点不同:
1)当Fi≥0或Fi<0时,对应的进给方向不同;
2)插补计算公式中动点坐标的修正也不同,以至于偏差计算公式也不相同。
进一步还可根据上述方法推导出其他象限不同走向圆弧的插补公式。
现将各种相应偏差计算见表(表2-2)
四个象限圆弧插补偏差计算与进给方向
线型
F≥0
F<0
偏差计算
坐标进给
偏差计算
坐标进给
SR1
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
表2-2
从表可以看出,当按第Ⅰ象限逆圆NR1进行插补运算时,现若有意将X轴进给反向,则可以走出第Ⅱ象限顺圆SR2来;或者若将Y轴进给反向,则可以走出SR4来;或者将X轴和Y轴的进给均反向,则可以走出NR3来;并且这四种线型(NR1、SR2、NR3、SR4)使用的偏差计算公式都相同,无须改变。
进一步还可以看出,当按第Ⅰ象限逆圆NR1线型插补时,现若将计算公式坐标X与Y对调,即把X当作Y,把Y当作X,那么就可得到SR1的走向。
类似地通过改变进给方向,利用SR1的公式就可获得其余三种线型(NR2、SR3、NR4)的走向。
下面,我们对圆弧逐点比较法作一个简要的介绍。
四.算法描述(逐点比较法在VB中的具体实现)
根据上述基本原理,我们可以知道逐点比较法圆弧插补需要设置两个终点计
器J∑X=|Xe–Xs|和J∑Y=|Ye-Ys|,分别对X轴和Y轴进行终点监控。
每当X轴或Y轴产生一个溢出脉冲,相应的终点计数器就作减1修正,直到为零,表明该坐标已到终点,并停止其坐标的累加运算。
只有当两个坐标轴均到达终点时,圆弧插补才结束。
如下图所示,圆弧起点S(4,-1),终
点(-1,4),且寄存器位数N=3,当插补开
始时,被积函数寄存器初值分别为JVX=Ys=-1和JVY=Xs=4,终点判别寄存器J∑X=|Xe–Xs|=-1和J∑Y=|Ye-Ys|=5.该圆弧插补运算过程如下表所示,插补轨迹如下图折线所示。
序号
工作节拍
第一拍
偏差判别
第二拍
坐标进给
第三拍
第四拍
终点判别
偏差计算
坐标修改
起点
F0=0
X0=5,Y0=-1
∑0=11
1
F0=0
-△X
F1=0-2*5+1=-9
X1=4,Y1=-1
∑1=∑0-1=10
2
F1=-9<0
+△Y
F2=-9+2*(-1)+1=-10
X2=4,Y2=0
∑2=∑1-1=9
3
F2=-10<0
+△Y
F3=-10+2*0+1=-9
X3=4,Y3=1
∑3=∑2-1=8
4
F3=-9<0
+△Y
F4=-9+2*1+1=-6
X4=4,Y4=2
∑4=∑3-1=7
5
F4=-6<0
+△Y
F5=-6+2*2+1=-1
X5=4,Y5=3
∑5=∑4-1=6
6
F5=-1<0
+△Y
F6=-1+2*3+1=6
X6=4,Y6=4
∑6=∑5-1=5
7
F6=6>0
-△X
F7=6-2*4+1=-1
X7=3,Y7=4
∑7=∑6-1=4
8
F7=-1<0
+△Y
F8=-1+2*4+1=8
X8=3,Y8=5
∑8=∑7-1=3
9
F8=8>0
-△X
F9=8-2*3+1=3
X9=2,Y9=5
∑9=∑8-1=2
10
F9=3>0
-△X
F10=3-2*2+1=0
X10=1,Y10=5
∑10=∑9-1=1
11
F10=0
-△X
F11=0-2*1+1=-1
X11=0,Y11=5
∑11=∑10-1=0
根据上述基本原理以及对预VB软件编程的掌握,查阅参考相关文献资料,编制了本课程设计的程序。
程序充分采用了循环结构以及选择结构的基本编程方法,对于四个象限分别进行了编程,并应对各种可能出现的错误做了相应的处理,其中包括:
1、输入错误导致象限选择与实际输入不一致;
2、输入错误导致输入两点及角度为元素构成的圆弧不以原点为圆心;
3、其他微小错误;
程序编制思路基本参考文献资料《基于VisualBasic编程软件的数控插补计算与设计方法》一书,具体采用专攻一个象限以通晓其原理,从而推及其他象限的做法,剩下了大量的时间。
在编制程序的过程中,不断进行调试。
并不断纠正错误,其中主要的两种错误如下附两幅图片所示。
输入错误导致象限选择与实际输入不一致;
输入错误导致输入两点及角度为元素构成的圆弧不以原点为圆心;
这些恰恰都是不符合要求的输入,必须通过提示来提醒用户,以正确地输入,达到正确使用本软件的目的。
六、各象限选例展示
第一象限
第二象限
第三象限
第四象限
九.心得体会
十.参考文献
【1】汪木兰主编.数控原理与系统.机械工业出版社,2004
【2】李金泽主编.基于VisualBasic编程软件的数控插补计算与设计方法.机械工业出版社,2007年