直线插补数字积分法第三、第四象限_第1页
直线插补数字积分法第三、第四象限_第2页
直线插补数字积分法第三、第四象限_第3页
直线插补数字积分法第三、第四象限_第4页
直线插补数字积分法第三、第四象限_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 目录一、课程设计目的3二、课程设计使用的主要仪器及软件设备.3三、课程设计题目描述和要求3四、课程设计报告内容34.1数字积分法直线插补的基本原理44.1.1从几何角度来看积分运算44.1.2数字积分法在轮廓插补中的具体应用(数字积分法直线插补)54.2插补终点判别的具体实现74.3插补器的组成74.4提高插补精度的措施74.5减少误差的方法74.6数字积分法直线插补框图74.7 数字积分法直线(第三四象限)插补程序9五 结论13六 实验总结13七 程序运行图15一、课程设计目的1)了解连续轨迹控制数控系统的组成原理。2) 掌握数字积分法(DDA)插补的基本原理。3)掌握数字积分法(DDA)

2、插补的软件实现方法。二、课程设计使用的主要仪器及软件设备Pc计算机一台Vb三、课程设计的任务题目描述和要求数字积分法又称数字微分分析法DDA(Digital Differential Analyzer)。数字积分法具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点,应用比较广泛。其缺点是速度调节不便,插补精度需要采取一定措施才能满足要求。由于计算机有较强的计算功能和灵活性,采用软件插补时,上述缺点易于克服。本次课程设计具体要求如下:(1)掌握数字积分插补法基本原理(2)设计出数字积分(DDA)插补法插补软件流程图(3)编写出算法程序清单算法描述(数字积分法算法在VB中

3、的具体实现) (4)要求软件能够实现第一第二象限直线插补计算(5)软件运行仿真效果 插补结果要求能够以图形模式进行输出四、课程设计报告内容插补运算就是运用特定的算法对工件加工轨迹进行运算并根据运算结果向相应的坐标发出运动指令的过程。插补运算可以采用数控系统硬件或数控系统软件来完成。硬件插补器:速度快,但缺乏柔性,调整和修改都困难。软件插补器:速度慢,但柔性高,调整和修改都很方便。早期硬件数控系统:采用由数字逻辑电路组成的硬件插补器;CNC系统:采用软件插补器,或软件、硬件相结合的插补方式。 4.1数字积分法直线插补的基本原理数字积分法是利用数字积分的方法,计算刀具沿各坐标轴的位移,使得刀具沿着

4、所加工的轮廓曲线运动利用数字积分原理构成的插补装置称为数字积分器,又称数字微分分析器(Digital Differential Analyzer),简称DDA。数字积分器插补的最大优点在于容易实现多坐标轴的联动插补、能够描述空间直线及平面各种函数曲线等。因此,数字积分法插补在轮廓数控系统中得到广泛的应用。 4.1.1从几何角度来看积分运算积分运算就是求出函数Y = f(t)曲线与横轴所围成的面积,从tt0到tn时刻,函数Y= f(t)的积分值可表述为 如果进一步将tt0,tn的时间区划分为若干个等间隔 t的小区间,当t足够小时,函数Y的积分可用下式近似表示 在几何上就是用一系列的小矩形面积之和

5、来近似表示函数f(t)以下的积分面积。进一步如果在式中,取t为基本单位“1”,则上式可演化成数字积分器算式: 由此可见,通过假设t“1”,就可将积分运算转化为式所示的求纵坐标值的累加运算。若再假设累加器容量为一个单位面积值,则在累加过程中超过一个单位面积时立即产生一个溢出脉冲。这样,累加过程所产生的溢出脉冲总数就等于所求的总面积,即所求的积分值。下面就以直线和圆弧轨迹为例详细介绍4.1.2数字积分法在轮廓插补中的具体应用(数字积分法直线插补) 设将要加工的直线XOY平面内第一象限直线OE,如图.一所示,直线起点在坐标原点,终点为E(Xe,Ye)。同样,假设坐标值均为以脉冲当量为单位的整数。OY

6、XVyVxE(Xe,Ye)V 图4.1若此时刀具在两坐标轴上的进给速度分量分别是Vx,Vy,则刀具在X轴,Y轴方向上位移增量分别是X = Vxt 式1-1 Y = Vyt 式1-2由图4.1 所示的几何关系可得V/OE=Vx/Xe=Vy/Ye=K(常数) 式2将式2中的Vx,Vy分别代入式一 可得:X = KXet 式3-1 Y = KYet 式3-2可见刀具由原点O走向E的过程,可以看作式每经过一个单位时间间隔t,就分别以增量KXe, KYe同时在两个坐标轴累加的结果。也可以这样认为,数字积分法插补实际上就是利用速度分量,进行数字积分来确定刀具在各坐标轴上位置的过程,即ni=1X=Xi =n

7、i=1Yi =Y=nni=1i=1KXeti 式4-1KYeti 式4-2当取ti=“1”(一个单位时间间隔)则 X = nKXe 式5-1 Y = nKYe 式5-2设经过n次累加后,刀具正好到达终点E(Xe,Ye),则要求式五中常量满足下式nK=1 式6n是累加次数必须取整数,所有K取小数。为了保证每次分配给坐标轴的进给脉冲不超过一个单位,则 X=KXe<1 式7-1 Y=KYe<1 式7-2上式中Xe,Ye的最大允许值受系统中相应寄存器容量的限制。现假设寄存器 为N位则容量为2N ,对应存储的最大允许数字量为(2N - 1)将其带入式七得 K<=1/(2N - 1) 式

8、8现不妨取 K =1/2N 式9显然它满足式七,式八的约束条件,再将K 值代入式六可得累加次数为 n =2N 式10如果将n,K,值代入式五则动点坐标为X = nKXe =Xe 式11-1Y = nKYe =Ye 式11-2根据以上分析,在进行直线插补时,先开辟两个被积函数寄存器Jvx,Jvy分别存放终点坐标值Xe,Ye,还有两个余数寄存器Jrx,Jry。然后,当脉冲源每发送一个控制脉冲信号t,X轴积分器和Y轴积分器各累加一次。当累加结果超过余数寄存器容量(2N - 1)时,就产生一个溢出脉冲x(或y)。这样,经过2N 次累加后,每个坐标轴溢出脉冲总数就等于该轴被积函数值(Xe和Ye),从而控

9、制刀具到达终点E。4.2插补终点判别的具体实现直线插补时不论被积函数有多大,对于N位寄存器。必须累加2N次才能到达终点。因此可以用一容量为2N的寄存器当计数器,来统计累加的次数。可以用加1计数器,也可以用减1计数器。 采用加1计数器时,首先将计数器清零,运算过程中每来一个累加脉冲t就加1。当计数器满2N时表明运算完成。 采用减1计数器时,运算前把总运算次数2N送入计数器,每运算一次,就减去1。当计数器减为0时,表明运算完成。4.3插补器的组成 二坐标DDA直线插补器包括X积分器和Y积分器,每个积分器都由被积函数寄存器Jvx(速度存寄器)和累加器Jrx(余数寄存器)组成。初始时,X被积函数寄存器

10、存Xe(或Xe/2N ),Y被积函数寄存器存Ye(或Ye/2N)。4.4提高插补精度的措施 对于DDA圆弧插补,径向误差可能大于一个脉冲当量,因数字积分器溢出脉冲的频率与被积函数寄存器中的数值成正比,在坐标轴附近进行累加时,一个积分器的被积函数值接近零,而另一个积分器的被积函数接近于最大值,累加时后者连续溢出,前者几乎没有,两个积分器的溢出脉冲频率相差很大,致使插补轨迹偏离给定圆弧距离较大,使圆弧误差增大。4.5减少误差的方法1、减小脉冲当量,误差减少,但寄存器容量增大,累加次数增加。而且要获得同样的进给速度,需要提高插补速度。2、累加器预置数 累加器中预置0.5,即被积函数寄存器中的初值增大

11、后,可以提前溢出脉冲。4.6数字积分法直线插补框图 DDA直线插补软件的实现思路也是硬件逻辑关系来完成的。DDA直线插补软件流程图如图4-2 所示DDA直线插补过程中使用的累加表达式为 累加值 = 被积函数寄存器 + 余数寄存器一旦累加结果超过了寄存器的容量时,就会产生溢出,发出一个脉冲信号,并控制相应的坐标轴进给一步。在软件实现过程中,也可以直观的认为余数寄存器为小数部分寄存器,与进位位Cy之间存在一个小数点。具体表示为进位位Cy位(1位)余数寄存器(N位).小数点图4-24.7数字积分法直线(第三四象限)插补程序Private Sub Command1_Click()xe = CInt(T

12、ext1)ye = CInt(Text2)Picture1.ForeColor = vbBlackPicture1.DrawWidth = 2 If Option1.Value = True And Option2 = False Then If xe <= 0 And ye <= 0 ThenPicture1.Line (5500, 50)-(5500, 5500)Picture1.Line (5500, 5500)-(5530, 5400)Picture1.Line (5500, 5500)-(5470, 5400)Picture1.Line (5500, 50)-(50, 5

13、0)Picture1.Line (50, 50)-(150, 20)Picture1.Line (50, 50)-(150, 80)Picture1.CurrentX = 5600Picture1.CurrentY = 40Picture1.Print "(0,0)"Picture1.CurrentX = 100Picture1.CurrentY = 100Picture1.Print "-x"Picture1.CurrentX = 5600Picture1.CurrentY = 5400Picture1.Print "-Y"For

14、i = 1 To -xePicture1.Line (5500 - i * 500, 50)-(5500 - i * 500, 100)Next iFor J = 1 To -yePicture1.Line (5500, 50 + J * 500)-(5400, 50 + J * 500)Next JPicture1.Line (5500, 50)-(5500 + 500 * Int(Text1), 50 - 500 * Int(Text2)Elseans = MsgBox("出现出错!请检查!", 48, "提示信息")Picture1.ClsText

15、1.Text = ""Text2.Text = ""Text3.Text = ""End IfElseIf Option2.Value = True And Option1 = False ThenIf xe >= 0 And ye <= 0 ThenPicture1.ForeColor = vbBlackPicture1.DrawWidth = 2Picture1.Line (50, 50)-(5500, 50)Picture1.Line (5500, 50)-(5400, 80)Picture1.Line (5500,

16、 50)-(5400, 20)Picture1.Line (50, 50)-(50, 5500)Picture1.Line (50, 5500)-(20, 5400)Picture1.Line (50, 5500)-(80, 5400)Picture1.CurrentX = 60Picture1.CurrentY = 40Picture1.Print "(0,0)"Picture1.CurrentX = 5700Picture1.CurrentY = 100Picture1.Print "x"Picture1.CurrentX = 80Picture1.

17、CurrentY = 5400Picture1.Print "-Y"For i = 1 To xePicture1.Line (50 + i * 500, 50)-(50 + i * 500, 100)Next iPicture1.PrintFor J = 1 To -yePicture1.Line (50, 50 + J * 500)-(100, 50 + J * 500)Next JPicture1.ForeColor = vbBlackPicture1.DrawWidth = 2Picture1.Line (50, 50)-(50 + 500 * Int(Text1)

18、, 50 - 500 * Int(Text2)Elseans = MsgBox("出现出错!请检查", 48, "提示信息")End IfEnd IfEnd SubPrivate Sub Command2_Click()n = Int(Text3)k = 0m = 0xi = 0yi = 0xe = CInt(Text1)ye = CInt(Text2)Jvx = xeJvy = yeJrx = 0Jry = 0H = 2 n - 1Picture1.ForeColor = vbRedPicture1.DrawWidth = 2If xe <= 0

19、 And ye <= 0 ThenIf Option1 = True ThenPrint "累加次数 " & " X 积分器 " & " Y 积分器 " & " 终点判别 "Print " n " & " Jvx " & " Jrx " & "- X " & " Jvy " & " Jry " & "- Y &

20、quot; & " J"For i = 1 To 2 nJrx = Jrx + Abs(Jvx)If Abs(Jrx) >= 2 n ThenJrx = Abs(Jrx) - 2 nk = 1xi = xi + 1End IfJry = Jry + Abs(Jvy)If Abs(Jry) >= 2 n ThenJry = Abs(Jry) - 2 nm = 1yi = yi + 1End IfIf k = 1 And m = 1 ThenPicture1.Line (5500 - 500 * (xi - 1), 50 + (yi - 1) * 500)-

21、(5500 - 500 * (xi), 50 + (yi) * 500)ElseIf k = 1 And m = 0 ThenPicture1.Line (5500 - 500 * (xi - 1), 50 + (yi) * 500)-(5500 - 500 * (xi), 50 + (yi) * 500)ElseIf k = 0 And m = 1 ThenPicture1.Line (5500 - 500 * xi, 50 + (yi - 1) * 500)-(5500 - 500 * xi, 50 + (yi) * 500)End IfForm1.FontSize = 12Print &

22、quot; " & Left(CStr(i) & " ", 3) & " " & Left(CStr(Jvx) & " ", 3) & " " & Left(CStr(Jrx) & " ", 3) & " " & k & " " & Left(CStr(Jvy) & " ", 3) & " " &

23、amp; Left(CStr(Jry) & " ", 3) & " " & m; " " & Left(CStr(H) & " ", 3)k = 0m = 0H = H - 1Next iElse: ans = MsgBox("出现出错!请检查", 48, "提示信息")End IfElseIf xe >= 0 And ye <= 0 ThenIf Option2 = True ThenPrint "累加次数 &q

24、uot; & " X 积分器 " & " Y 积分器 " & " 终点判别 "Print " n " & " Jvx " & " Jrx " & "+ X " & " Jvy " & " Jry " & "- Y " & " J"For i = 1 To 2 nJrx = Jrx + JvxIf J

25、rx >= 2 n ThenJrx = Jrx - 2 nk = 1xi = xi + 1End IfJry = Jry + Abs(Jvy)If Abs(Jry) >= 2 n ThenJry = Abs(Jry) - 2 nm = 1yi = yi + 1End IfIf k = 1 And m = 1 ThenPicture1.Line (50 + 500 * (xi - 1), 50 + (yi - 1) * 500)-(50 + 500 * (xi), 50 + (yi) * 500)ElseIf k = 1 And m = 0 ThenPicture1.Line (50

26、 + 500 * (xi - 1), 50 + (yi) * 500)-(50 + 500 * (xi), 50 + (yi) * 500)ElseIf k = 0 And m = 1 ThenPicture1.Line (50 + 500 * xi, 50 + (yi - 1) * 500)-(50 + 500 * xi, 50 + (yi) * 500)End IfPrint " " & Left(CStr(i) & " ", 3) & " " & Left(CStr(Jvx) & &quo

27、t; ", 3) & " " & Left(CStr(Jrx) & " ", 3) & " " & k & " " & Left(CStr(Jvy) & " ", 3) & " " & Left(CStr(Jry) & " ", 3) & " " & m; " " & Left(CStr(H) &

28、amp; " ", 3)k = 0m = 0H = H - 1Next iElse: ans = MsgBox("出现出错!请检查", 48, "提示信息")End IfEnd IfIf Text3.Text = "" Thenans = MsgBox("出现出错!请检查", 48, "提示信息")ElseIf xe = "" Thenans = MsgBox("出现出错!请检查", 48, "提示信息")ElseI

29、f ye = "" Thenans = MsgBox("出现出错!请检查", 48, "提示信息")End IfEnd SubPrivate Sub Command3_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Picture1.ClsOption1 = FalseOption2 = FalseForm1.ClsEnd SubPrivate Sub Command4_Click()EndEnd Sub五 结论本次设计运用软件插补程序进行插补控制,调整和修改都很方便,而且数字积分法插补运算速度快,脉冲分配均匀,易于实现多坐标联动及描绘平面各种函数曲线的特点。只是软件开发复杂,需对编程具有熟练的运用。总之,通过课程设计,进一步学习了各方面的知识及其运用,最终完成要求,实现软件的运行,运行程序后按提示输入直线的起点、终点坐标后即可自动进行插补计算并输出各个插补点的坐标值。六 实验总结一周的课程设计就要结束了,虽然这并不是我第一次做课程设计,但我从中依然学到了很多东西,同时也发现了自己在各个方面的不足之处,获益匪浅。在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论