当前位置:文档之家› 逐点比较法顺圆弧插补

逐点比较法顺圆弧插补

数控原理与系统课程设计课题名称:逐点比较法顺圆弧插补专业:班级:姓名:指导老师:数控原理与系统课程设计说明书班级姓名学号一、课程设计的目的1)了解连续轨迹控制数控系统的组成原理。

2) 掌握逐点比较法插补的基本原理。

3)掌握逐点比较法插补的软件实现方法。

二、课程设计的任务逐点比较法插补是最简单的脉冲增量式插补算法之一,其过程清晰,速度平稳,但一般只用于一个平面内两个坐标轴的插补运算。

其基本原理是在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给,且只有一个方向的进给。

也就是说,逐点比较法每一步均要比较加工点瞬时坐标与规定零件轮廓之间的距离,依此决定下一步的走向。

如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部,则下一步要向轮廓外面走,以缩小偏差,这样周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的轨迹。

逐点比较法插补过程中的每进给一步都要经过偏差判别、坐标进给、偏差计算和终点判别四个节拍的处理,其工作流程图如图所示。

本次课程设计具体要求如下:1)逐点比较法基本原理2)逐点比较法插补软件流程图3)算法描述(逐点比较法算法在VB中的具体实现)4)编写算法程序清单5)软件运行仿真效果三、课程设计报告要求1.按课程设计任务5点要求为标题,编写课程设计报告,最后加一点:此次课程设计小结(包括设计过程中所碰到的问题、解决办法以及有关设计体会等)2.字数在3000字左右3.仿真软件一份四、学生分组数控原理与系统课程设计一、逐点比较法基本原理逐点比较法I象限逆圆插补基本原理在加工圆弧过程中,人们很容易联想到使用动点到圆心的距离与该圆弧的名义半径进行比较来反映加工偏差。

假设被加工零件的轮廓为第Ⅰ象限逆走向圆弧SE,,圆心在O(0,0),半径为R,起点为S(XS ,YS),终点为E(Xe,Ye),圆弧上任意加工动点为N(Xi,Yi)。

当比较该加工动点到圆心的距离ON与圆弧半径R的大小时,可获得刀具与圆弧轮廓之间的相对位置关系。

当动点N(Xi ,Yi)正好落在圆弧上时,则有下式成立22222RYXYXeeii=+=+当动点N(Xi ,Yi)落在圆弧外侧时,则有下式成立22222RYXYXeeii=+>+当动点N(Xi ,Yi)落在圆弧内侧时,则有下式成立22222RYXYXeeii=+<+由此可见,取逐点比较法圆弧插补的偏差函数表达式为222R Y X F i i -+=当动点落在圆外时,为了减小加工误差,应向圆内进给,即向(-X)轴方向走一步;当动点落在圆内时,应向圆外进给,即向(+Y)轴方向走一步。

当动点正好落在圆弧上且尚未到达终点时,为了使加工继续下去,理论上向(+Y)轴或(-X)轴方向进给均可以,但一般情况下约定向(-X)轴方向进给。

综上所述,现将逐点比较法第Ⅰ象限逆圆插补规则概括如下:当F >0时,即222R Y X F i i -+=>0,动点落在圆外,则向(-X)轴方向进给一步;当F =0时,即222R Y X F i i -+==0,动点正好落在圆上,约定向(-X)轴方向进给一步;当F <0时,即222R Y X F i i -+=<0,动点落在圆内,则向(+Y)轴方向进给一步。

由偏差函数表达式可知,计算偏差F 值,就必须进行动点坐标、圆弧半径的平方运算。

显然,在用硬件或汇编语言实现时不太方便。

为了简化这些计算,按逐点比较法直线插补的思路,也可以推导出逐点比较法圆弧插补过程中偏差函数计算的递推公式。

假设第i 次插补后,动点坐标为N (X i ,Y i ),其对应偏差函数为222R Y X F i i i -+=当F i ≥0,向(-X)轴方向进给一步,则新的动点坐标值为X i +1=X i -1, Y i +1=Y i因此,新的偏差函数为()2222212111R Y X R Y X F i i i i i -+-=-+=+++∴ F i +1=F i -2X i +1同理,当F i <0,则向(+Y)轴方向进给一步,则新的动点坐标值为X i +1=X i , Y i +1=Y i +1因此,可求得新的偏差函数为()2222212111R Y X R Y X F i i i i i -++=-+=+++∴F i +1=F i +2Y i +1将上式进行比较,可以看出两点不同:第一,递推形式的偏差计算公式中仅有加/减法以及乘2运算,而乘2可等效成该二进制数左移一位,这显然比平方运算来得简单。

第二,进给后新的偏差函数值与前一点的偏差值以及动点坐标N(Xi ,Yi)均有关系。

由于动点坐标值随着插补过程的进行而不断变化,因此,每插补一次,动点坐标就必须修正一次,以便为下一步的偏差计算作好准备。

至此,将第Ⅰ象限逆圆弧插补的规则和计算公式汇总,见表(表2-1)第Ⅰ象限逆圆弧插补计算公式表2-1和直线插补一样,圆弧插补过程也有终点判别问题。

当圆弧轮廓仅在一个象限区域内,其终点判别仍可借用直线终点判别的三种方法进行,只是计算公式略不同。

Σ=|Xe -Xs|+|Ye-Ys|Σ=max{|Xe -Xs|,|Ye-Ys|}Σ1=|Xe-Xs| ,Σ2=|Ye-Ys|式中 XS 、Ys——被插补圆弧轮廓的起点坐标;X e 、Ye——被插补圆弧轮廓的终点坐标。

b、插补象限和圆弧走向前面所讨论的逐点比较法直线和圆弧插补,均是针对第一象限直线和逆圆插补这种特定情况进行的。

然而,任何数控机床都应具备处理不同象限、不同走向曲线的能力。

四个象限中圆弧插补圆弧插补情况比直线插补复杂,不仅有象限问题,而且还有圆弧走向问题。

现以第Ⅰ象限顺圆SR1插补为例,介绍圆弧插补的特性。

假设圆弧SE起点为S(XS ,YS),终点为E(Xe,Ye),圆心在坐标原点上。

与逆圆插补相似,当某一时刻动点N (X i ,Y i )在圆弧的外侧时,有F ≥0成立,应向-Y)轴方向进给一步,以减小误差;若动点N (X i ,Y i )在圆弧内侧,则应向+X)轴方向进给一步。

由此可推导出第Ⅰ象限顺圆插补偏差函数的递推公式如下:当F i ≥0时,向-Y)轴方向进给一步,则新的动点坐标为X i +1=X i , Y i +1=Y i -1新动点的偏差函数为()2222212111R Y X R Y X F i i i i i --+=-+=+++∴ F i +1=F i -2Y i +1当F i <0时,向+X)轴方向进给一步,则新的动点坐标为X i +1=X i +1, Y i +1=Y i新动点的偏差函数为()2222212111R Y X R Y X F i i i i i -++=-+=+++∴ F i +1=F i +2X i +1现将上式比较,可以看出它们有两点不同: 1)当F i ≥0或F i <0时,对应的进给方向不同;2)插补计算公式中动点坐标的修正也不同,以至于偏差计算公式也不相同。

进一步还可根据上述方法推导出其他象限不同走向圆弧的插补公式。

现将各种相应偏差计算见表(表2-2)四个象限圆弧插补偏差计算与进给方向线型F ≥0F <0偏差计算坐标进给 偏差计算坐标进给 SR 1 NR 2 SR 3 NR 4F -2|Y|+1→F |Y|-1→|Y|-ΔY -ΔY +ΔY +ΔYF +2|X|+1→F |X|+1→|X| +ΔX -ΔX -ΔX +ΔX表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 =|X e– X s|和J∑Y=|Y e - Y s|,分别对X轴和Y轴进行终点监控。

每当X轴或Y轴产生一个溢出脉冲,相应的终点计数器就作减1修正,直到为零,表明该坐标已到终点,并停止其坐标的累加运算。

只有当两个坐标轴均到达终点时,圆弧插补才结束。

如下图所示,圆弧起点S(4,-1),终点(-1,4),且寄存器位数N=3,当插补开始时,被积函数寄存器初值分别为J VX=Y s=-1和J VY=X s=4,终点判别寄存器J∑X=|X e– X s|=-1和J∑Y=|Y e - Y s|=5.该圆弧插补运算过程如下表所示,插补轨迹如下图折线所示。

序号工作节拍第一拍偏差判别第二拍坐标进给第三拍第四拍终点判别偏差计算坐标修改起点F0=0 X0=5,Y0=-1 ∑0=111 F0=0 -△X F1=0-2*5+1=-9 X1=4,Y1=-1 ∑1=∑0-1=102 F1=-9<0 +△Y F2=-9+2*(-1)+1=-10 X2=4,Y2=0 ∑2=∑1-1=93 F2=-10<0 +△Y F3=-10+2*0+1=-9 X3=4,Y3=1 ∑3=∑2-1=84 F3=-9<0 +△Y F4=-9+2*1+1=-6 X4=4,Y4=2 ∑4=∑3-1=75 F4=-6<0 +△Y F5=-6+2*2+1=-1 X5=4,Y5=3 ∑5=∑4-1=66 F5=-1<0 +△Y F6=-1+2*3+1=6 X6=4,Y6=4 ∑6=∑5-1=57 F6=6>0 -△X F7=6-2*4+1=-1 X7=3,Y7=4 ∑7=∑6-1=48 F7=-1<0 +△Y F8=-1+2*4+1=8 X8=3,Y8=5 ∑8=∑7-1=39 F8=8>0 -△X F9=8-2*3+1=3 X9=2,Y9=5 ∑9=∑8-1=210 F9=3>0 -△X F10=3-2*2+1=0 X10=1,Y10=5 ∑10=∑9-1=111 F10=0 -△X F11=0-2*1+1=-1 X11=0,Y11=5 ∑11=∑10-1=0四、编写算法程序清单数字积分法逆圆弧插补算法程序清单如下:Option ExplicitPublic q As DoublePublic n, flag As IntegerPublic xa As IntegerPublic ya As IntegerPublic xb As IntegerPublic yb As IntegerPublic x As DoublePublic y As DoublePublic sx As DoublePublic sy As DoubleDim c As IntegerPublic Function max(a, b)If a > b Thenmax = aElsemax = bEnd IfEnd FunctionPrivate Sub Command1_Click()caidan.ShowUnload MeEnd SubPrivate Sub Command5_Click()Picture1.Refreshxa = Val(Text1.Text)ya = Val(Text2.Text)xb = Val(Text3.Text)yb = Val(Text4.Text)q = Val(Text6.Text)c = max(Abs(yb), max(Abs(xb), max(Abs(xa), Abs(ya))))Picture1.Scale (-2 * c, 2 * c)-(2 * c, -2 * c)Picture1.Line (-2 * c, 0)-(2 * c, 0)Picture1.Line (0, 2 * c)-(0, -2 * c)If xa = 0 ThenPicture1.Circle (0, 0), Sqr(xa * xa + ya * ya), , 3.14159 / 2, Atn(yb / xb) ElseIf xb = 0 ThenPicture1.Circle (0, 0), Sqr(xa * xa + ya * ya), , Atn(ya / xa), 3.14159 / 2 ElsePicture1.Circle (0, 0), Sqr(xa * xa + ya * ya), , Atn(ya / xa), Atn(yb / xb) End IfTimer1.Enabled = TrueTimer1.Interval = Val(Text5.Text)'Timer1.Enabled = True'Timer1.Interval = Val(Text5.Text) Picture1.Line -(xa, ya)n = 0x = xay = yasx = 0sy = 0End SubPrivate Sub Timer1_Timer()Dim flagx, flagy As BooleanIf n < Abs(xb - xa) + Abs(yb - ya) Then sx = sx + yIf sx >= q Thenflagx = Truesx = sx - qn = n + 1Elseflagx = FalseEnd Ifsy = sy + xIf sy >= q Thenflagy = Truesy = sy - qn = n + 1Elseflagy = FalseEnd IfIf flagx And flagy Then 'sx>=q sy>=q x = x - 1y = y + 1Picture1.Line -Step(-1, 1), vbRedEnd IfIf Not flagy And flagx Thenx = x - 1Picture1.Line -Step(-1, 0), vbRedEnd IfIf flagy And Not flagx Theny = y + 1Picture1.Line -Step(0, 1), vbRedEnd IfEnd IfEnd Sub五、软件运行仿真效果1.顺圆弧插补界面如图2所示图2 顺圆弧插补界面2.点击插补演示按钮,运行效果如图2所示图2 顺圆弧插补六、设计小结在本次设计中,我们重点分析了逐点比较法的基本原理,这是实现软件插补的基础,有了这个基础,我们可以画出逐点比较法插补软件的流程图,然后根据流程图再对逐点比较法在软件中的插补算法进行描述,由此找出其中的规律,最后在VB软件中设计出一个小巧的软件,并在其中添加插补算法程序,最后导出软件。

相关主题