




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数 控 技 术 课 程 设 计 说 明 书 设计题目:数字积分法圆弧插补计软件设计指导老师: 专 业: 机械设计制造及其自动化 班 级: 机 姓 名: 学 号: 目录一、课程设计题目1二、课程设计的目的1三、课程设计使用的主要仪器设备1四、课程设计的任务题目描述和要求1五、数字积分法插补原理25.1从几何角度来看积分运算25.2数字积分圆弧插补35.3数字积分法圆弧插补程序流程图55.4插补实例6六、程序清单7七、软件运行效果仿真18八、课程小节21九、参考文献22一、课程设计题目 数字积分法第一、二、三、四象限顺、逆圆插补计算二、课程设计的目的数控原理与系统是自动化(数控)专业的一门主要专业课程,安排课程设计的目的是通过课程设计方式使学生进一步掌握和消化数控原理基本内容,了解数控系统的组成,掌握系统控制原理和方法,通过设计与调试,掌握各种功能实的现方法,为今后从事数控领域的工作打下扎实的基础。1)了解连续轨迹控制数控系统的组成原理。2) 掌握数字积分法(DDA)插补的基本原理。3)掌握数字积分法(DDA)插补的软件实现方法。三、课程设计使用的主要仪器设备1、PC计算机一台 2、数控机床实验装置一台3、支持软件若干(选用VB环境)四、课程设计的任务题目描述和要求数字积分法又称数字微分分析法DDA(Digital Differential Analyzer)。数字积分法具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点,应用比较广泛。其缺点是速度调节不便,插补精度需要采取一定措施才能满足要求。由于计算机有较强的计算功能和灵活性,采用软件插补时,上述缺点易于克服。本次课程设计具体要求如下:(1)掌握数字积分插补法基本原理(2)设计出数字积分(DDA)插补法插补软件流程图(3)编写出算法程序清单算法描述(数字积分法算法在VB中的具体实现) (4)要求软件能够实现第一、二、三、四象限顺、逆圆插补计算(5)软件运行仿真效果 插补结果要求能够以图形模式进行输出五、数字积分法插补原理 数字积分法又称数字积分分析法DDA(Digital differential Analyzer),简称积分器,是在数字积分器的基础上建立起来的一种插补算法。具有逻辑能力强的特点,可实现一次、两次甚至高次曲线插补,易于实现多坐标联动。只需输入不多的几个数据,就能加工圆弧等形状较为复杂的轮廓曲线。直线插补时脉冲较均匀。并具有运算速度快,应用广泛等特点。 5.1从几何角度来看积分运算如下图所示,从时刻到t求函数曲线所包围的面积时,可用积分公式表示,如果将0t的时间划分成时间间隔为的有限区间,当足够小时,可得近似公式 :若t 取“1”,上式简化为: 这种累加求和运算,即积分运算可用数字积分器来实现,若求曲线与坐标轴所包围的面积,求解过程如下:被积函数寄存器用以存放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次累加完成积分运算,因为有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法进行圆弧插补时,是对加工 动点的坐标Xi和Yi的值分别进行累加,若积分累加器有溢出,则相应坐标轴进给一步,则圆弧积分插补器如图所示:5.3数字积分法圆弧插补程序流程图DDA法插补不同象限圆弧时,算法也有所不同。当采用软件插补时,如果参与积分运算的寄存器均采用绝对值数据,则DDA法插补的积分累加过程完全相同,即JRJVJR,只是进给脉冲分配方向和圆弧插补动点坐标的修正有所不同。5.5插补实例设有第象限逆圆弧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) 画直线坐标轴Picture1.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 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 = 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 Then If a 0 Or c 0 Then ans = MsgBox(出错了,起点、终点坐标不在同一象限内,请重新输入, 48, 提示信息) End IfEnd IfPicture1.ForeColor = vbRedPicture1.DrawWidth = 4Const PI = 3.1415926535If 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 / 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 Option1.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, 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 Picture1.Circle (4500, 4500), r * 300, , 3.14159 / 2, 3.14159 Else Picture1.Circle (4500, 4500), r * 300, , 3.14159 / 2, 3.14159 - Atn(-d / c) End If ElseIf d = 0 Then Picture1.Circle (4500, 4500), r * 300, , 3.14159 / 2 + Atn(-a / b), 3.14159 Else Picture1.Circle (4500, 4500), r * 300, , 3.14159 / 2 + Atn(-a / b), -Atn(-d / c) + 3.14159 End If End If ElseIf a c And b d Then If Option2.Value = True Then If b = 0 Then If c = 0 Then Picture1.Circle (4500, 4500), r * 300, , 3.14159 / 2, 3.14159 Else Picture1.Circle (4500, 4500), r * 300, , Atn(-c / d), 3.14159 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.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 Picture1.Circle (4500, 4500), r * 300, , 3.14159, Atn(d / c) + 3.14159 End If ElseIf c = 0 Then Picture1.Circle (4500, 4500), r * 300, , Atn(b / a) + 3.14159, 3 * 3.14159 / 2 Else Picture1.Circle (4500, 4500), r * 300, , Atn(b / a) + 3.14159, Atn(d / c) + 3.14159 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 / 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 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 Picture1.Circle (4500, 4500), r * 300, , 3 * 3.14159 / 2, 2 * 3.14159 Else Picture1.Circle (4500, 4500), r * 300, , 3 * 3.14159 / 2 + Atn(-c / d), 2 * 3.14159 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(-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(Text4.Text)ni = a * a + b * bmi = c * c + d * dr = Sqr(ni)form2.ClsIf 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(出错了,起点、终点坐标不在同一象限内,请重新输入, 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(Text4) - 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 = 600Print 开始 & & 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 Then 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 = 100form1.CurrentY = 600 + n * 200If xi = 0 Or yi = 0 Then If xi = 0 And yi 0 And f = 0 Then Print & n & & jvx & & 停止 & & & & & & jvy & & jry & & m & & yi GoTo wz2 End If If xi = 0 And yi 0 And f 0 Then Print & n & & jvx & & & & & & & & jvy & & jry & & m & & yi GoTo wz2 End If If xi 0 And yi = 0 And g = 0 Then Print & n & & jvx & & jrx & & k & & xi & & jvy & & 停止 GoTo wz2 End If If xi 0 And yi = 0 And g 0 Then Print & n & & jvx & & jrx & & k & & xi & & jvy GoTo wz2 End If If xi = 0 And yi = 0 And f = 1 And g 0 Then Print & n & & jvx & & jry & & k & & xi & & jvy GoTo wz2 End If If xi = 0 And yi = 0 And f 0 And g = 1 Then Print & n & & jvx & & & & & & & & jvy & & jry & & m & & yi GoTo wz2 End If If xi = 0 And yi = 0 And f = 0 And g = 0 Then Print & n & & jvx & & 停止 & & & & & & jvy & & 停止 GoTo wz2 End If If xi = 0 And yi = 0 And f = 0 And g 0 Then Print & n & & jvx & & 停止 & & k & & xi & & jvy & GoTo wz2 End If If xi = 0 And yi = 0 And f c And b c And b d And m = 1 Then jvx = jvx + 1 ElseIf a d And k = 1 Then jvy = jvy + 1 ElseIf a d And m = -1 Then jvx = jvx - 1 End IfEnd IfIf Option2.Value = True Then If a c And b d And k = -1 Then jvy = jvy + 1 ElseIf a c And b d And m = -1 Then jvx = jvx - 1 ElseIf a c And b d And k = 1 Then jvy = jvy - 1 ElseIf a c And b c And b c And b d And m = 1 Then jvx = jvx - 1 ElseIf a d And k = 1 Then jvy = jvy - 1 ElseIf a d And m = -1 Then jvx = jvx + 1 End IfEnd IfIf Option4.Value = True Then If a c And b d And k = -1 Then jvy = jvy - 1 ElseIf a c And b d And m = -1 Then jvx = jvx + 1 ElseIf a c And b d And k = 1 Then jvy = jvy + 1 ElseIf a c And b d And m = 1 Then jvx = jvx - 1 End 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 = Text1.SetFocusww5: form1.Cls ans = M
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州普定县畜牧服务中心招聘公益性岗位人员考前自测高频考点模拟试题含答案详解
- 2025安徽合肥市长丰县下塘镇招聘村(社区)后备干部12名模拟试卷及完整答案详解一套
- SZDBZ 189-2016 大树移植技术规程
- 2025广东湛江中心人民医院第二批招聘考前自测高频考点模拟试题完整答案详解
- 2025广西河池市招聘中小学幼儿园教师565人模拟试卷及答案详解(夺冠系列)
- 滑草安全知识培训内容课件
- 2025湖南长沙市望城区卫健人才公开引进29人考前自测高频考点模拟试题及一套完整答案详解
- 2025年甘肃省平凉市第二批市直单位公益性岗位工作人员招聘37人模拟试卷及答案详解(各地真题)
- 2025贵州遵义医科大学第二附属医院第十三届贵州人才博览会引才17人考前自测高频考点模拟试题及答案详解(必刷)
- 2025年福建中医考试试题及答案
- 形体训练24课件
- INS+2024指南更新要点解读
- 输电线路水泥杆加固防腐施工方案
- 新版医疗器械管理制度零售单体药店
- 小学教师专业发展 教学大纲
- 学校装饰装修工程施工方案
- 屋面光伏工程施工组织设计
- 山体公园施工方案
- DL-T 5876-2024 水工沥青混凝土应用酸性骨料技术规范
- 胆囊癌完整版本
- 【MOOC】数据库原理及应用-电子科技大学 中国大学慕课MOOC答案
评论
0/150
提交评论