收藏 分享(赏)

数字积分圆弧第一二三四象限顺逆插补计算.doc

上传人:精品资料 文档编号:7665756 上传时间:2019-05-23 格式:DOC 页数:25 大小:982.04KB
下载 相关 举报
数字积分圆弧第一二三四象限顺逆插补计算.doc_第1页
第1页 / 共25页
数字积分圆弧第一二三四象限顺逆插补计算.doc_第2页
第2页 / 共25页
数字积分圆弧第一二三四象限顺逆插补计算.doc_第3页
第3页 / 共25页
数字积分圆弧第一二三四象限顺逆插补计算.doc_第4页
第4页 / 共25页
数字积分圆弧第一二三四象限顺逆插补计算.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

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 Analyzer

3、)。数字积分法具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点,应用比较广泛。其缺点是速度调节不便,插补精度需要采取一定措施才能满足要求。由于计算机有较强的计算功能和灵活性,采用软件插补时,上述缺点易于克服。本次课程设计具体要求如下:(1)掌握数字积分插补法基本原理(2)设计出数字积分(DDA)插补法插补软件流程图(3)编写出算法程序清单算法描述(数字积分法算法在VB中的具体实现)(4)要求软件能够实现第一、二、三、四象限顺、逆圆插补计算(5)软件运行仿真效果 插补结果要求能够以图形模式进行输出五、数字积分法插补原理数字积分法又称数字积分分析法 DDA(Digita

4、l differential Analyzer),简称积分器,是在数字积分器的基础上建立起来的一种插补算法。具有逻辑能力强的特点,可实现一次、两次甚至高次曲线插补,易于实现多坐标联动。只需输入不多的几个数据,就能加工圆弧等形状较为复杂的轮廓曲线。直线插补时脉冲较均匀。并具有运算速度快,应用广泛等特点。 5.1 从几何角度来看积分运算如下图所示,从时刻到 t 求函数曲线所包围的面积时,可用积分公式表示,如果将 0 t 的时间划分成时间间隔为的有限区间,当足够小时,可得近似公式 :若 t 取“1” ,上式简化为: 这种累加求和运算,即积分运算可用数字积分器来实现,nitt tydfS100)()(

5、niS1 ninitt yydS110)(若求曲线与坐标轴所包围的面积,求解过程如下:被积函数寄存器用以存放 Y 值,每当 t 出现一次,被积函数寄存器中的Y 值就与累加器中的数值相加一次,并将累加结果存于累加器中,如果累加器的容量为一个单位面积,则在累加过程中,每超过一个单位面积,累加器就有溢出。当累加次数达到累加器的容量时,所产生的溢出总数就是要求的总面积,即积分值。被积函数寄存器与累加器相加的计算方法:例:被积函数寄存器与累加器均为 3 位寄存器,被积函数为 5,求累加过程。101 101 101 101+)000 +)101 +)010 +)111101 010 111 100101

6、101 101 101+) 100 +)001 +)110 +) 011001 110 011 000经过 2 = 8 次累加完成积分运算,因为有 5 次溢出,所以积分值等于 5。5.2 数字积分圆弧插补圆心为坐标原点的圆弧方程式为: 可得圆的参数方程为: 对 t 微分得、方向上的速度分量为: 用累加器来近似积分为:22xyrtrcosinyydcosvrtxtxintyti1nixi1niyt如图所示,设加工半径为 R 的第一象限逆时针圆弧 AB,坐标原点定在圆心上,A(Xo,Yo)为圆弧起点,B(Xe,Ye)为圆弧终点,Pi(Xi,Yi)为加工动点。如下图所示,可以得到:VR = VxYi

7、 = VyXi = K 即 Vx=K Yi,Vy=K Xi 因而可以得到坐标微小位移增量为:X=Vxt = KYit Y=Vyt = KXit设 t=1,K=1/2 则有:可看出,用 DDA 法进行圆弧插补时,是对加工 动点的坐标 Xi 和 Yi 的值分别进行累加,若积分累加器有溢出,则相应坐标轴进给一步,则圆弧积分插补器如图所示:5.3 数字积分法圆弧插补程序流程图DDA 法插补不同象限圆弧时,算法也有所不同。当采用软件插补时,如果参与积分运算的寄存器均采用绝对值数据,则 DDA 法插补的积分累加过程完全相同,即 JRJVJR ,只是进给脉冲分配方向和圆弧插补动点坐标的修正有所不同。5.5

8、插补实例设有第象限逆圆弧 SE,起点为 S(4,0) ,终点为 E(0,4) ,且寄存器位数 N=3。试用 DDA 法对该圆弧进行插补,并画出插补轨迹。解:插补开始时,被积函数寄存器初值分别为 JVXYS0,JVYXS4,终点判别寄存器 JSX|XeXS|4,JSY|YeYS|4。该圆弧插补运算过程见下表,插补轨迹如下图所示的折线。六、程序清单Private Sub 建立坐标系_Click()Picture1.ForeColor = vbBlackPicture1.DrawWidth = 2Picture1.Line (500, 4500)-(8500, 4500) 画直线坐标轴Picture

9、1.Line (4500, 500)-(4500, 8500)Picture1.CurrentX = 230 当前位置Picture1.CurrentY = 4400Picture1.Print “-X“ 坐标轴标注Picture1.CurrentX = 4300Picture1.CurrentY = 4300Picture1.Print “(0,0)“Picture1.CurrentX = 8650Picture1.CurrentY = 4400Picture1.Print “X“Picture1.CurrentX = 4400Picture1.CurrentY = 8600Picture1

10、.Print “-Y“Picture1.CurrentX = 4500Picture1.CurrentY = 400Picture1.Print “Y“End SubPrivate Sub 画圆弧_Click()Dim a, b, c, d, n, m As IntegerDim r As Singlea = 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

11、If a 0 Or b 0 Or d 0 Or b 0 Or c 0 Or d 0 Thenans = MsgBox(“出错了,起点、终点坐标不在同一象限内,请重新输入“, 48, “提示信息“)End IfEnd IfIf Option4.Value = True ThenIf a 0 Or c 0 Thenans = MsgBox(“出错了,起点、终点坐标不在同一象限内,请重新输入“, 48, “提示信息“)End IfEnd IfPicture1.ForeColor = vbRedPicture1.DrawWidth = 4Const PI = 3.1415926535If Option

12、1.Value = True ThenIf a c And b d ThenIf Option1.Value = True ThenIf a = 0 ThenIf d = 0 ThenPicture1.Circle (4500, 4500), r * 300, , 0 * 3.14159, 3.14159 / 2ElsePicture1.Circle (4500, 4500), r * 300, , Atn(d / c), 3.14159 / 2End IfElseIf d = 0 ThenPicture1.Circle (4500, 4500), r * 300, , 0 * 3.14159

13、, Atn(b / a)ElsePicture1.Circle (4500, 4500), r * 300, , Atn(d / c), Atn(b / a)End IfEnd IfElseans = MsgBox(“出错了,起点或终点坐标位置错误,请重新输入“, 48, “提示信息“)End IfEnd IfIf Option2.Value = True ThenIf a c And b d ThenIf Option2.Value = True ThenIf a = 0 ThenIf d = 0 ThenPicture1.Circle (4500, 4500), r * 300, , 3.

14、14159 / 2, 3.14159ElsePicture1.Circle (4500, 4500), r * 300, , 3.14159 / 2, 3.14159 - Atn(-d / c)End IfElseIf d = 0 ThenPicture1.Circle (4500, 4500), r * 300, , 3.14159 / 2 + Atn(-a / b), 3.14159ElsePicture1.Circle (4500, 4500), r * 300, , 3.14159 / 2 + Atn(-a / b), -Atn(-d / c) + 3.14159End IfEnd I

15、fElseIf a d ThenIf Option3.Value = True ThenIf b = 0 ThenIf c = 0 ThenPicture1.Circle (4500, 4500), r * 300, , 3.14159, 3 * 3.14159 / 2ElsePicture1.Circle (4500, 4500), r * 300, , 3.14159, Atn(d / c) + 3.14159End IfElseIf c = 0 ThenPicture1.Circle (4500, 4500), r * 300, , Atn(b / a) + 3.14159, 3 * 3

16、.14159 / 2ElsePicture1.Circle (4500, 4500), r * 300, , Atn(b / a) + 3.14159, Atn(d / c) + 3.14159End IfEnd IfElseIf a c And b c And b d ThenIf Option4.Value = True ThenIf b = 0 ThenIf c = 0 ThenPicture1.Circle (4500, 4500), r * 300, , 3 * 3.14159 / 2, 2 * 3.14159ElsePicture1.Circle (4500, 4500), r *

17、 300, , 3 * 3.14159 / 2 + Atn(-c / d), 2 * 3.14159End IfElseIf c = 0 ThenPicture1.Circle (4500, 4500), r * 300, , 3 * 3.14159 / 2, -Atn(-b / a)ElsePicture1.Circle (4500, 4500), r * 300, , 3 * 3.14159 / 2 + Atn(-c / d), -Atn(-b / a)End IfEnd IfElseans = MsgBox(“出错了,起点或终点坐标位置错误,请重新输入“, 48, “提示信息“)End

18、IfEnd 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(Text4.Text)ni = a * a + b * bmi = c * c + d * dr = Sqr(ni)form2.ClsIf Option1.Val

19、ue = True ThenIf a 0 Or b 0 Or d 0 Or b 0 Or c 0 Or d 0 Thenans = MsgBox(“出错了,起点、终点坐标不在同一象限内,请重新输入“, 48, “提示信息“)End IfEnd IfIf Option4.Value = True ThenIf a 0 Or c 0 Thenans = MsgBox(“出错了,起点、终点坐标不在同一象限内,请重新输入“, 48, “提示信息“)End IfEnd Ifci = 2f = 1g = 1k = 0 正 X 进给标志 1 正向 -1 负向m = 0 负 Y 进给标志 1 正向 -1 负向

20、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(Text4) - CInt(Text2) Y 方向总步长ai = xsbi = ysPicture1.ForeColor = vbGreenPicture1.Draw

21、Width = 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 = 600Print “ 开始 “ & “ “ & jvx & “ “ & jrx & “

22、 “ & 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 + jvxIf jrx = l Then 判断寄存器是否溢出jrx = jrx - l 溢出修正If jrx = l Then 寄存器位数判断GoTo ww5End IfIf Option1.Value = True ThenIf a c And b c And b d Thenk =

23、 -1Elsek = 1End IfEnd IfIf Option3.Value = True ThenIf a c And b c And b d Thenk = -1Elsek = 1End IfEnd Ifxi = xi - 1End IfEnd IfIf yi 0 Then Y 方向判断jry = jry + jvyIf jry = l Then 判断寄存器是否溢出jry = jry - l 溢出修正If jry = l Then 寄存器位数判断GoTo ww5End IfIf Option1.Value = True ThenIf a c And b c And b 0 And f

24、= 0 ThenPrint “ “ & n & “ “ & jvx & “ “ & “停止“ & “ “ & “ & “ “ & “ & “ “ & jvy & “ “ & jry & “ “ & m & “ “ & yiGoTo wz2End IfIf xi = 0 And yi 0 And yi = 0 And g c And b c And b d And k = 1 Thenjvy = jvy + 1ElseIf a d And m = -1 Thenjvx = jvx - 1End IfEnd IfIf Option2.Value = True ThenIf a c And b d

25、And k = -1 Thenjvy = jvy + 1ElseIf a c And b d And m = -1 Thenjvx = jvx - 1ElseIf a c And b c And b d And k = 1 Thenjvy = jvy - 1ElseIf a d And m = -1 Thenjvx = jvx + 1End IfEnd IfIf Option4.Value = True ThenIf a c And b d And k = -1 Thenjvy = jvy - 1ElseIf a c And b d And m = -1 Thenjvx = jvx + 1El

26、seIf a c And b d And k = 1 Thenjvy = jvy + 1ElseIf a c And b d And m = 1 Thenjvx = jvx - 1End IfEnd IfPicture1.Line (4500 + 300 * ai, 4500 - bi * 300)-(4500 + 300 * (ai + k), 4500 - (bi + m) * 300)ai = ai + kbi = bi + mGoTo wzww3: Text1.Text = “Text2.Text = “Text3.Text = “Text4.Text = “Text5.Text =

27、“Text1.SetFocusww5: form1.Clsans = MsgBox(“出错了,寄存器位数偏小,请输入“, 48, “提示信息“)Text5.Text = “Text5.SetFocusww4:wz3:End SubPrivate Sub 清除_Click()Text1.Text = “Text2.Text = “Text3.Text = “Text4.Text = “Text5.Text = “Option1.Value = FalseOption2.Value = FalseOption3.Value = FalseOption4.Value = FalsePicture1.

28、Clsform2.ClsEnd SubPrivate Sub 退出_Click()EndEnd Sub七、软件运行效果仿真1 进入2 第三象限3 第 二象限4 第四象限5 第一象限及错误提示八、课程小节通过此次课程设计,使我更好的掌握了有关数字积分法一二三四象限顺、逆圆插补计算方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考和询问,终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行

29、“过而能改,善莫大焉” 的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在同组的伙伴们的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了数字积分法插补的基本原理,运算过程,特点及其应用,并了解改进数字积分插补质量的措施。九、参考文献1 数控技术 赵玉刚,宋现春 主编,北京,机械工业出版社,20102 机床数控技术 杜国臣,王士军 主编,北京,北京大学出版社,20103 Visual Basic 软件设计教程 江志文 主编,广州,中山大学出版社,20034 深入浅出 Visual Basic 6 软件设计 松桥工作室,北京,中国铁道工业出版社,20045 算法分析与设计技术 马绍汉 主编,北京,科学出版社,20016 数字控制机床 廖效果,朱启逑 主编,湖北,华中理工大学出版社,2003

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报