当前位置:文档之家› 逐点比较法插补原理实验报告

逐点比较法插补原理实验报告

南昌航空大学实验报告年月日课程名称:数控技术实验名称:逐点比较法插补原理班级:姓名:同组人:指导老师评定:签名:一、实验的目的与要求1.目的①掌握逐点比较法插补的原理及过程;②掌握利用计算机高级语言,设计及调试“插补运算轨迹”模拟画图的程序设计方法;③进一步加深对插补运算过程的理解;二、实验仪器计算机一台三、实验原理①逐点比较法插补运算的原理首先粗略的简单介绍一下机床是如何按照规定的图形加工出所需的工件的。

例如,现在要加工一段圆弧(图2-1),起点为A,终点为B,坐标原点就是圆心,Y轴、X轴代表纵、横拖板的方向,圆弧半径为R。

如从A点出发进行加工,设某一时刻加工点在M1,一般来说M1和圆弧有所偏离。

因此,可根据偏离的情况确定下一步加工进给的方向,使下一个加工点尽可能向规定图形(即圆弧)靠拢。

若用R M1表示加工点M1到圆心O的距离,显然,当R M1<R时,表示加工点M1在圆内,这时应控制纵拖板(Y拖板)向圆外进给一步到新加工点M2,由于拖板被步进电机带动,进给一步的长度是固定的(1微米),故新的加工点也不一定正好在圆弧上。

同样,当M2≥R时,表示加工点M2在圆外或圆上,这时应控制横拖板(X拖板)向圆内进给一步。

如此不断重复上述过程,就能加工出所需的圆弧。

图2-1 插补原理可以看出,加工的结果是用折线来代替圆弧,为了清楚起见,在图2-1中,每步的步长画的很大,因此加工出来的折线与所需圆弧的误差较大。

若步长缩小,则误差也跟着缩小,实际加工时,进给步长一般为1微米,故实际误差时很小的。

②计算步骤由上述可以看出,拖板每进给一步都要完成四个工作节拍。

偏差判别:判别偏差符号,确定加工点是在要求图形外还是在图形内。

工作台进给:根据偏差情况,确定控制X坐标(或Y坐标)进给一步,使加工点向规定的图形靠拢,以缩小偏差。

偏差计算:计算进给一步后加工点与要求图形的新偏差,作为下一步偏差判别的依据。

终点判断:判定是否到达终点,如果未达到终点,继续插补,如果以到达终点,停止插补。

计算步骤的框图如下所示:图2-2 逐点比较法插补计算步骤③插补运算公式插补运算公式表四、实验内容及步骤应用VB设计逐点比较法的插补运算程序,在计算机屏幕上画出轨迹图。

1 程序界面采用图形显示方式,动态的显示出直线和圆弧的插补过程。

界面如下所示:图2-3 程序参考界面2 程序流程图图2-4 逐点比较法第一象限直线插补流程图3 程序源代码Dim ER, LSx, LSy, LEx, LEy, CSx, CSy, CEx, CEy, RPrivate Sub Command1_Click()Picture1.ClsER = 0LSx = IsNum(Text1.Text)LSy = IsNum(Text2.Text)LEx = IsNum(Text3.Text)LEy = IsNum(Text4.Text)If Abs(LSx) > Abs(LSy) Then Max1 = Abs(LSx) Else Max1 = Abs(LSy)If Abs(LEx) > Abs(LEy) Then max2 = Abs(LEx) Else max2 = Abs(LEy)If Max1 > max2 Then Max = Max1 Else Max = max2Max = Max + 3If ER = 1 Or ER = 2 Then MsgBox ("坐标值中含有非法字符!")If ER = 3 Then MsgBox ("所给坐标值不是整数!请输入整数")If Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> "" And Text4.Text <> "" ThenPicture1.Scale (-Max, Max)-(Max, -Max)Picture1.Line (-Max, 0)-(Max, 0), RGB(0, 0, 0)Picture1.Line (0, Max)-(0, -Max), RGB(0, 0, 0)For i = -Max To MaxPicture1.Line (i, 0.2)-(i, 0), RGB(0, 0, 0)Picture1.Line (0, i)-(0.3, i), RGB(0, 0, 0)Next iPicture1.Line (LSx, LSy)-(LEx, LEy), RGB(0, 0, 0)ElseMsgBox ("请输入坐标值!")End IfEnd SubPrivate Sub Command2_Click()x0 = 0: y0 = 0X1 = LEx - LSx: Y1 = LEy - LSyIf X1 > 0 And Y1 > 0 Then quadrant = 1If X1 > 0 And Y1 < 0 Then quadrant = 4If X1 < 0 And Y1 > 0 Then quadrant = 2If X1 < 0 And Y1 < 0 Then quadrant = 3If quadrant = 1 ThenFor i = 0 To Abs(X1) + Abs(Y1) - 1F = X1 * y0 - x0 * Y1x00 = x0 + LSx: y00 = y0 + LSyIf F >= 0 Then x0 = x0 + 1 Else y0 = y0 + 1x11 = x0 + LSx: y11 = y0 + LSyPicture1.Line (x00, y00)-(x11, y11), RGB(255, 0, 0)delayNext iEnd IfIf quadrant = 3 ThenFor i = 0 To Abs(X1) + Abs(Y1) - 1F = X1 * y0 - x0 * Y1x00 = x0 + LSx: y00 = y0 + LSyIf F >= 0 Then x0 = x0 - 1 Else y0 = y0 - 1x11 = x0 + LSx: y11 = y0 + LSyPicture1.Line (x00, y00)-(x11, y11), RGB(255, 0, 0)delayNext iEnd IfIf quadrant = 2 ThenFor i = 0 To Abs(X1) + Abs(Y1) - 1F = X1 * y0 - x0 * Y1x00 = x0 + LSx: y00 = y0 + LSyIf F <= 0 Then x0 = x0 - 1 Else y0 = y0 + 1x11 = x0 + LSx: y11 = y0 + LSyPicture1.Line (x00, y00)-(x11, y11), RGB(255, 0, 0)delayNext iEnd IfIf quadrant = 4 ThenFor i = 0 To Abs(X1) + Abs(Y1) - 1F = X1 * y0 - x0 * Y1x00 = x0 + LSx: y00 = y0 + LSyIf F <= 0 Then x0 = x0 + 1 Else y0 = y0 - 1x11 = x0 + LSx: y11 = y0 + LSyPicture1.Line (x00, y00)-(x11, y11), RGB(255, 0, 0)delayNext iEnd IfEnd SubPrivate Function IsNum(Str)NS = "1234567890.+-"S = 0: T = 1: ST = 1If Left$(Str, 1) = "+" Then ST = ST + 1If Left$(Str, 1) = "-" Then ST = ST + 1: T = -1For i = ST To Len(Str)For j = 1 To 11If Mid$(Str, i, 1) = Mid$(NS, j, 1) ThenIf j = 11 Then S = S + 1Exit ForEnd IfNext jIf j > 11 Then ER = 1Next iIf S > 1 Then ER = 2If S = 1 Then ER = 3IsNum = Val(Str)End FunctionPrivate Sub delay()For i = 1 To 20 Step 0.00001Next iEnd Sub五、思考题逐点比较法和数字积分法有何区别?答:逐点比较法和数字积分法都属于基本脉冲插补法。

逐点比较法的原理是单片机或计算机在控制加工过程中逐点的计算和判别加工偏差,不断的向各个坐标轴发出相互协调的进给脉冲,驱动坐标轴步进电机旋转,以控制机床坐标轴的进给,按规定的图形加工出所需要的工件。

逐点比较法插补计算每走一步需要完成四个工作节拍,即偏差判别、工作台进给、偏差计算、终点判断。

数字积分法插补主要是利用数字积分的思想,采用积分器对被积函数进行累加,每来一个脉冲累加一次。

由于不断累加导致积分器产生溢出,每溢出一次则驱动相应坐标轴移动一步,从而实现插补功能。

相关主题