1、数字积分圆弧第一二三四象限顺逆插补计算数 控 技 术 课 程 设 计 说 明 书 设计题目:数字积分法圆弧插补计软件设计指导老师: 专 业: 机械设计制造及其自动化 班 级: 机 姓 名: 学 号: 一、课程设计题目 1二、课程设计的目的 1三、课程设计使用的主要仪器设备 1四、课程设计的任务题目描述和要求 1五、数字积分法插补原理 25.1从几何角度来看积分运算 25.2数字积分圆弧插补 35.3数字积分法圆弧插补程序流程图 55.4插补实例 6六、程序清单 7七、软件运行效果仿真 18八、课程小节 21九、参考文献 22一、课程设计题目 数字积分法第一、二、三、四象限顺、逆圆插补计算二、课
2、程设计的目的数控原理与系统是自动化数控专业的一门主要专业课程,安排课程设计的目的是通过课程设计方式使学生进一步掌握和消化数控原理基本内容,了解数控系统的组成,掌握系统控制原理和方法,通过设计与调试,掌握各种功能实的现方法,为今后从事数控领域的工作打下扎实的基础。1)了解连续轨迹控制数控系统的组成原理。2) 掌握数字积分法DDA插补的基本原理。3掌握数字积分法DDA插补的软件实现方法。三、课程设计使用的主要仪器设备1、PC电脑一台 2、数控机床实验装置一台3、支持软件假设干选用VB环境四、课程设计的任务题目描述和要求数字积分法又称数字微分分析法DDA(Digital Differential A
3、nalyzer)。数字积分法具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点,应用比较广泛。其缺点是速度调节不便,插补精度需要采取一定措施才能满足要求。由于电脑有较强的计算功能和灵活性,采用软件插补时,上述缺点易于克服。本次课程设计具体要求如下:1掌握数字积分插补法基本原理2设计出数字积分DDA插补法插补软件流程图3编写出算法程序清单算法描述数字积分法算法在VB中的具体实现 4要求软件能够实现第一、二、三、四象限顺、逆圆插补计算5软件运行仿真效果 插补结果要求能够以图形模式进行输出五、数字积分法插补原理 数字积分法又称数字积分分析法DDA(Digital diffe
4、rential Analyzer),简称积分器,是在数字积分器的基础上建立起来的一种插补算法。具有逻辑能力强的特点,可实现一次、两次甚至高次曲线插补,易于实现多坐标联动。只需输入不多的几个数据,就能加工圆弧等形状较为复杂的轮廓曲线。直线插补时脉冲较均匀。并具有运算速度快,应用广泛等特点。 5.1从几何角度来看积分运算如下列图所示,从时刻到t求函数曲线所包围的面积时,可用积分公式表示,如果将0t的时间划分成时间间隔为的有限区间,当足够小时,可得近似公式 :假设t 取“1”,上式简化为: 这种累加求和运算,即积分运算可用数字积分器来实现,假设求曲线与坐标轴所包围的面积,求解过程如下:被积函数寄存器
5、用以存放Y值,每当t 出现一次,被积函数寄存器中的Y值就与累加器中的数值相加一次,并将累加结果存于累加器中,如果累加器的容量为一个单位面积,则在累加过程中,每超过一个单位面积,累加器就有溢出。当累加次数到达累加器的容量时,所产生的溢出总数就是要求的总面积,即积分值。被积函数寄存器与累加器相加的计算方法:例:被积函数寄存器与累加器均为3位寄存器,被积函数为5,求累加过程。 101 101 101 101+000 +101 +010 +111 101 010 111 100 101 101 101 101+ 100 +001 +110 + 011 001 110 011 000经过2 = 8次累加
6、完成积分运算,因为有5次溢出,所以积分值等于5。5.2数字积分圆弧插补圆心为坐标原点的圆弧方程式为: 可得圆的参数方程为: 对t 微分得、方向上的速度分量为: 用累加器来近似积分为:如下图,设加工半径为R的第一象限逆时针圆弧AB,坐标原点定在圆心上,A(Xo,Yo)为圆弧起点,B(Xe,Ye)为圆弧终点,Pi(Xi,Yi)为加工动点。如下列图所示,可以得到:VR = VxYi = VyXi = K即Vx=K Yi,Vy=K Xi 因而可以得到坐标微小位移增量为: X=Vxt = KYit Y=Vyt = KXit 设t=1,K=1/2 则有:可看出,用DDA法进行圆弧插补时,是对加工 动点的坐
7、标Xi和Yi的值分别进行累加,假设积分累加器有溢出,则相应坐标轴进给一步,则圆弧积分插补器如下图:5.3数字积分法圆弧插补程序流程图DDA法插补不同象限圆弧时,算法也有所不同。当采用软件插补时,如果参与积分运算的寄存器均采用绝对值数据,则DDA法插补的积分累加过程完全相同,即JRJVJR,只是进给脉冲分配方向和圆弧插补动点坐标的修正有所不同。设有第象限逆圆弧SE,起点为S4,0,终点为E0,4,且寄存器位数N=3。试用DDA法对该圆弧进行插补,并画出插补轨迹。解:插补开始时,被积函数寄存器初值分别为JVXYS0,JVYXS4,终点判别寄存器JSX|XeXS|4,JSY|YeYS|4。该圆弧插补
8、运算过程见下表,插补轨迹如下列图所示的折线。六、程序清单Private Sub 建立坐标系_Click()Picture1.ForeColor = vbBlackPicture1.DrawWidth = 2Picture1.Line (500, 4500)-(8500, 4500) 画直线坐标轴Picture1.Line (4500, 500)-(4500, 8500)Picture1.CurrentX = 230 当前位置Picture1.CurrentY = 4400Picture1.Print -X 坐标轴标注Picture1.CurrentX = 4300Picture1.Curren
9、tY = 4300Picture1.Print (0,0)Picture1.CurrentX = 8650Picture1.CurrentY = 4400Picture1.Print XPicture1.CurrentX = 4400Picture1.CurrentY = 8600Picture1.Print -YPicture1.CurrentX = 4500Picture1.CurrentY = 400Picture1.Print YEnd SubPrivate Sub 画圆弧_Click()Dim a, b, c, d, n, m As IntegerDim r As Singlea =
10、 Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)d = Val(Text4.Text)n = a * a + b * bm = c * c + d * dr = Sqr(n)If Option1.Value = True Then If a 0 Or b 0 Or c 0 Or d 0 Or b 0 Or d 0 Or b 0 Or c 0 Or d 0 Then ans = MsgBox(出错了,起点、终点坐标不在同一象限内,请重新输入, 48, 提示信息) End IfEnd IfIf Option4.Value = True T
11、hen If a 0 Or c 0 Then ans = MsgBox(出错了,起点、终点坐标不在同一象限内,请重新输入, 48, 提示信息) End IfEnd IfPicture1.ForeColor = vbRedPicture1.DrawWidth = 4If Option1.Value = True Then If a c And b d Then If Option1.Value = True Then If b = 0 Then If c = 0 Then Picture1.Circle (4500, 4500), r * 300, , 0 * 3.14159, 3.14159
12、/ 2 Else Picture1.Circle (4500, 4500), r * 300, , 0 * 3.14159, 3.14159 / 2 - Atn(d / c) End If ElseIf c = 0 Then Picture1.Circle (4500, 4500), r * 300, , Atn(b / a), 3.14159 / 2 Else Picture1.Circle (4500, 4500), r * 300, , Atn(b / a), 3.14159 / 2 - Atn(d / c) End If End If ElseIf a d Then If Option
13、1.Value = True Then If a = 0 Then If d = 0 Then Picture1.Circle (4500, 4500), r * 300, , 0 * 3.14159, 3.14159 / 2 Else Picture1.Circle (4500, 4500), r * 300, , Atn(d / c), 3.14159 / 2 End If ElseIf d = 0 Then Picture1.Circle (4500, 4500), r * 300, , 0 * 3.14159, Atn(b / a) Else Picture1.Circle (4500
14、, 4500), r * 300, , Atn(d / c), Atn(b / a) End If End If Else ans = MsgBox(出错了,起点或终点坐标位置错误,请重新输入, 48, 提示信息) End If End If If Option2.Value = True Then If a c And b d Then If Option2.Value = True Then If a = 0 Then If d = 0 Then Else Picture1.Circle (4500, 4500), r * 300, , 3.14159 / 2, 3.14159 - Atn
15、(-d / c) End If ElseIf d = 0 Then Else End If End If ElseIf a c And b d Then If Option2.Value = True Then If b = 0 Then If c = 0 Then Else End If ElseIf c = 0 Then Picture1.Circle (4500, 4500), r * 300, , 3.14159 / 2, 3.14159 - Atn(-b / a) Else Picture1.Circle (4500, 4500), r * 300, , Atn(-c / d), 3
16、.14159 - Atn(-b / a) End If End If Else ans = MsgBox(出错了,起点或终点坐标位置错误,请重新输入, 48, 提示信息) End If End If If Option3.Value = True Then If a d Then If Option3.Value = True Then If b = 0 Then If c = 0 Then Picture1.Circle (4500, 4500), r * 300, , 3.14159, 3 * 3.14159 / 2 Else End If ElseIf c = 0 Then Pictur
17、e1.Circle (4500, 4500), r * 300, , Atn(b / a) + 3.14159, 3 * 3.14159 / 2 Else End If End If ElseIf a c And b d Then If Option3.Value = True Then If a = 0 Then If d = 0 Then Picture1.Circle (4500, 4500), r * 300, , 3.14159, 3 * 3.14159 / 2 Else Picture1.Circle (4500, 4500), r * 300, , 3.14159 + Atn(d
18、 / c), 2 * 3.14159 / 2 End If ElseIf d = 0 Then Picture1.Circle (4500, 4500), r * 300, , 3.14159, 3 * 3.14159 / 2 - Atn(a / b) Else Picture1.Circle (4500, 4500), r * 300, , Atn(d / c) + 3.14159, 3 * 3.14159 / 2 - Atn(a / b) End If End If Else ans = MsgBox(出错了,起点或终点坐标位置错误,请重新输入, 48, 提示信息) End If End
19、If If Option4.Value = True Then If a c And b c And b d Then If Option4.Value = True Then If b = 0 Then If c = 0 Then Else End If ElseIf c = 0 Then Picture1.Circle (4500, 4500), r * 300, , 3 * 3.14159 / 2, -Atn(-b / a) Else Picture1.Circle (4500, 4500), r * 300, , 3 * 3.14159 / 2 + Atn(-c / d), -Atn(
20、-b / a) End If End If Else ans = MsgBox(出错了,起点或终点坐标位置错误,请重新输入, 48, 提示信息) End If End IfEnd SubPrivate Sub 插补计算_Click()Dim a, b, c, d, ni, mi, ai, bi, ci, k, f, g, m, n, l, i, xs, yx, xe, ye, jvx, jvy, xi, yi As IntegerDim r As Singlea = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)d = Val(Tex
21、t4.Text)ni = a * a + b * bmi = c * c + d * dr = Sqr(ni)If Option1.Value = True Then If a 0 Or b 0 Or c 0 Or d 0 Or b 0 Or d 0 Or b 0 Or c 0 Or d 0 Then ans = MsgBox(出错了,起点、终点坐标不在同一象限内,请重新输入, 48, 提示信息) End IfEnd IfIf Option4.Value = True Then If a 0 Or c 0 Then ans = MsgBox(出错了,起点、终点坐标不在同一象限内,请重新输入,
22、48, 提示信息) End IfEnd Ifci = 2f = 1g = 1k = 0 正X进给标志 1 正向 -1负向m = 0 负Y进给标志 1 正向 -1负向n = 0 累加次数i = CInt(Text5) 寄存器位数赋给il = 2 ixs = CInt(Text1)ys = CInt(Text2)xe = CInt(Text3)ye = CInt(Text4)jvx = Abs(CInt(Text2)jvy = Abs(CInt(Text1)jrx = 0jry = 0xi = Abs(CInt(Text3) - CInt(Text1) X方向总步yi = Abs(CInt(Tex
23、t4) - CInt(Text2) Y方向总步长ai = xsbi = ysPicture1.ForeColor = vbGreenPicture1.DrawWidth = 3form1.CurrentX = 200form1.CurrentY = 200Print & X积分器 & Y 积分器 form1.CurrentX = 100form1.CurrentY = 400Print 累加次数 n & jvx & Jrx=Jrx+Jvx & X & Jx & Jvy & Jry=Jry+Jvy & Y & Jy form1.CurrentX = 100form1.CurrentY = 600
24、Print 开始 & & jvx & & jrx & & k & & xi & & jvy & & jry & & m & & yiwz: k = 0 X方向进给标志 1 X正向进给 -1负向进给 m = 0 Y方向进给标志 1 Y正向进给 -1负向进给If xi 0 Then X方向判断 jrx = jrx + jvx If jrx = l Then 判断寄存器是否溢出 jrx = jrx - l 溢出修正 If jrx = l Then 寄存器位数判断 GoTo ww5 End If If Option1.Value = True Then If a c And b c And b d T
25、hen k = -1 Else k = 1 End If End If If Option3.Value = True Then If a c And b c And b d Then k = -1 Else k = 1 End If End If xi = xi - 1 End IfEnd IfIf yi 0 Then Y方向判断 jry = jry + jvy If jry = l Then 判断寄存器是否溢出 jry = jry - l 溢出修正 If jry = l Then 寄存器位数判断 GoTo ww5 End If If Option1.Value = True Then If a c And b d Then m = 1 Else m = -1 End If End If If Option2.Value = True Then If a c And b c And b d Then m = 1 Else m = -1 End If End If If Option4.Value = True Then If a c And b d Then m = 1 Else m = -1 End If End If yi = yi - 1 Y方向总步长减1 End IfEnd Ifn = n + 1 累加次数加1form1.CurrentX = 10
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1