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

下载本文档

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

文档简介

1、XX 学 院课 程 设 计 说 明 书 设计题目:数字积分法三、四象限顺圆插补计算 系 (部): xxx 专 业: xxx 班 级: xxx 姓 名: xxx 学 号: xxx 指导老师(签名): xxx 起止时间:2012年12月 24 日至2012年12月 29 日共 1 周20 12 年 12 月 26 日目录一、课程设计题目1二、课程设计的目的1三、课程设计使用的主要仪器设备1四、课程设计的任务题目描述和要求1五、数字积分法插补原理25.1从几何角度来看积分运算25.2数字积分圆弧插补35.3数字积分法圆弧插补程序流程图55.4插补实例6六、程序清单8七、软件运行效果仿真14八、课程小

2、节20九、参考文献20一、课程设计题目 数字积分法第三四象限顺圆插补计算二、课程设计的目的数控原理与系统是自动化(数控)专业的一门主要专业课程,安排课程设计的目的是通过课程设计方式使学生进一步掌握和消化数控原理基本内容,了解数控系统的组成,掌握系统控制原理和方法,通过设计与调试,掌握各种功能实的现方法,为今后从事数控领域的工作打下扎实的基础。1) 了解连续轨迹控制数控系统的组成原理。2) 掌握数字积分法(DDA)插补的基本原理。3)掌握数字积分法(DDA)插补的软件实现方法。三、课程设计使用的主要仪器设备1、PC计算机一台 2、数控机床实验装置一台3、支持软件若干(选用VB环境)四、课程设计的

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

4、结果要求能够以图形模式进行输出五、数字积分法插补原理 数字积分法又称数字积分分析法DDA(Digital differential 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

6、 101 101 101+) 100 +)001 +)110 +) 011 001 110 011 000经过23 = 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=

7、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法对该圆弧进行插补,并

8、画出插补轨迹。解:插补开始时,被积函数寄存器初值分别为JVXYS0,JVYXS4,终点判别寄存器JSX|XeXS|4,JSY|YeYS|4。该圆弧插补运算过程见下表,插补轨迹如下图所示的折线。六、程序清单Private Sub 建立坐标系_Click()Picture1.ForeColor = vbBlackPicture1.DrawWidth = 2Picture1.Line (500, 1000)-(8500, 1000) '画直线坐标轴Picture1.Line (4500, 1000)-(4500, 5000)Picture1.CurrentX = 230 '当前位置P

9、icture1.CurrentY = 900Picture1.Print "-X" '坐标轴标注Picture1.CurrentX = 4300Picture1.CurrentY = 800Picture1.Print "(0,0)"Picture1.CurrentX = 8650Picture1.CurrentY = 900Picture1.Print "X"Picture1.CurrentX = 4400Picture1.CurrentY = 5100Picture1.Print "-Y"Picture

10、1.Line (500, 1000)-(600, 950) '箭头Picture1.Line (500, 1000)-(600, 1050)Picture1.Line (8500, 1000)-(8400, 950)Picture1.Line (8500, 1000)-(8400, 1050)Picture1.Line (4500, 5000)-(4450, 4900)Picture1.Line (4500, 5000)-(4550, 4900)End SubPrivate Sub 画圆弧_Click()Dim a, b, c, d, n, m As IntegerDim r As S

11、inglea = 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)Picture1.ForeColor = vbRedPicture1.DrawWidth = 4If Option1.Value = True ThenConst PI = 3.1415926535Picture1.Circle (4500, 1000), 300 * r, , PI, -3 * -PI / 2End IfIf Option2.Va

12、lue = True ThenPicture1.Circle (4500, 1000), 300 * r, , -3 * -PI / 2, 0 * PIEnd IfEnd SubPrivate Sub 清除_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Option1.Value = False Option2.Value = False Picture1.Cls F

13、orm1.ClsEnd SubPrivate Sub 插补计算_Click()If Not (Option1.Value = True Or Option2.Value = True) Then ans = MsgBox("出错了,请选择象限", 48, "提示信息")End IfDim 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 = V

14、al(Text2.Text)c = Val(Text3.Text)d = Val(Text4.Text)ni = a * a + b * bmi = c * c + d * dr = Sqr(ni)Form1.Clsci = 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 = A

15、bs(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积分器 " & "

16、; Y 积分器 "Form1.CurrentX = 100Form1.CurrentY = 400Print "累加次数 n" & " jvx " & "Jrx=Jrx+Jvx" & " X " & "Jx" & " Jvy" & " Jry=Jry+Jvy" & " Y " & " Jy "Form1.CurrentX = 100Form1.

17、CurrentY = 600Print " 开始 " & " " & jvx & " " & jrx & " " & k & " " & xi & " " & jvy & " " & jry & " " & m & " " & yiwz: k = 0 'X方向进给标志 1 X正向进给

18、 -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 k = -1 '负X方向进给 xi = xi - 1 'X方向总步长减1 End IfEnd IfIf yi > 0 Then 'Y方向判断 jry = jry + jvy If j

19、ry >= l Then '判断寄存器是否溢出 jry = jry - l '溢出修正 If jry >= l Then '寄存器位数判断 GoTo ww5 End If If Option1.Value = True Then '第三象限 m = 1 '正Y方向进给 ElseIf Option2.Value = True Then '第四象限 m = -1 '负Y方向进给 End If yi = yi - 1 'Y方向总步长减1 End IfEnd Ifn = n + 1 '累加次数加1Form1.Curre

20、ntX = 100Form1.CurrentY = 600 + n * 200If xi = 0 Or yi = 0 Then If xi = 0 And yi <> 0 And f = 0 Then Print " " & n & " " & jvx & " " & "停止" & " " & "" & " " & "" & " &qu

21、ot; & jvy & " " & jry & " " & m & " " & yi GoTo wz2 End If If xi = 0 And yi <> 0 And f < 0 Then Print " " & n & " " & jvx & " " & " " & " " & ""

22、& " " & "" & " " & jvy & " " & jry & " " & m & " " & yi GoTo wz2 End If If xi <> 0 And yi = 0 And g = 0 Then Print " " & n & " " & jvx & " " & j

23、rx & " " & k & " " & xi & " " & jvy & " " & "停止" GoTo wz2 End If If xi <> 0 And yi = 0 And g < 0 Then Print " " & n & " " & jvx & " " & jrx & " "

24、 & 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 & " " &a

25、mp; jvy GoTo wz2 End If If xi = 0 And yi = 0 And f < 0 And g = 1 Then Print " " & n & " " & jvx & " " & " " & " " & "" & " " & "" & " " & jvy & " " &

26、amp; jry & " " & m & " " & yi GoTo wz2 End If If xi = 0 And yi = 0 And f = 0 And g = 0 Then Print " " & n & " " & jvx & " " & "停止" & " " & "" & " " & "&q

27、uot; & " " & jvy & " " & "停止" GoTo wz2 End If If xi = 0 And yi = 0 And f = 0 And g < 0 Then Print " " & n & " " & jvx & " " & "停止" & " " & k & " " & xi &am

28、p; " " & jvy & " "GoTo wz2 End If If xi = 0 And yi = 0 And f < 0 And g = 0 Then Print " " & n & " " & jvx & " " & " " & " " & "" & " " & "" & "

29、" & jvy & " " & "停止"GoTo wz2 End IfEnd IfPrint " " & n & " " & jvx & " " & jrx & " " & k & " " & xi & " " & jvy & " " & jry & " &quo

30、t; & m & " " & yiwz2: If xi = 0 Then f = f - 1End IfIf yi = 0 Then g = g - 1End IfIf xi = 0 And yi = 0 Then ci = ci - 1 If ci = 0 Then GoTo wz3 End IfEnd IfIf Option1.Value = True Then If k = -1 Then '负X方向进给 jvy = jvy + 1 End If If m = 1 Then '正Y方向进给 jvx = jvx - 1 End IfEnd IfIf Option2.Value = True Then If k = -1 Then '负X方向进给 jvy = jvy - 1 End If If m = -1 Then '负Y方向进给 jvx = jvx + 1 End IfEnd IfPicture1.Line (4500 + 300 * ai, 1000 - bi * 300)-(4500 + 300 * (ai + k), 1000 - (bi + m) * 300)ai = ai + kbi = bi + mGoTo wzww3: Text1.Text = "" Text2.

温馨提示

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

评论

0/150

提交评论