关闭

关闭

关闭

封号提示

内容

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

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

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

Sabina晓丽
2019-01-11 0人阅读 0 0 0 暂无简介 举报

简介:本文档为《数字积分圆弧第一二三四象限顺逆插补计算doc》,可适用于工程科技领域

数控技术课程 设 计 说 明 书设计题目:数字积分法圆弧插补计软件设计指导老师:专业:机械设计制造及其自动化班级:机姓名:学号:目录一、课程设计题目  二、课程设计的目的  三、课程设计使用的主要仪器设备  四、课程设计的任务题目描述和要求  五、数字积分法插补原理  从几何角度来看积分运算  数字积分圆弧插补  数字积分法圆弧插补程序流程图  插补实例  六、程序清单  七、软件运行效果仿真  八、课程小节  九、参考文献  一、课程设计题目数字积分法第一、二、三、四象限顺、逆圆插补计算二、课程设计的目的《数控原理与系统》是自动化(数控)专业的一门主要专业课程安排课程设计的目的是通过课程设计方式使学生进一步掌握和消化数控原理基本内容了解数控系统的组成掌握系统控制原理和方法通过设计与调试掌握各种功能实的现方法为今后从事数控领域的工作打下扎实的基础。)了解连续轨迹控制数控系统的组成原理。)掌握数字积分法(DDA)插补的基本原理。)掌握数字积分法(DDA)插补的软件实现方法。三、课程设计使用的主要仪器设备、PC计算机一台、数控机床实验装置一台、支持软件若干(选用VB环境)四、课程设计的任务题目描述和要求数字积分法又称数字微分分析法DDA(DigitalDifferentialAnalyzer)。数字积分法具有运算速度快、脉冲分配均匀、易于实现多坐标联动及描绘平面各种函数曲线的特点应用比较广泛。其缺点是速度调节不便插补精度需要采取一定措施才能满足要求。由于计算机有较强的计算功能和灵活性采用软件插补时上述缺点易于克服。本次课程设计具体要求如下:()掌握数字积分插补法基本原理()设计出数字积分(DDA)插补法插补软件流程图()编写出算法程序清单算法描述(数字积分法算法在VB中的具体实现)()要求软件能够实现第一、二、三、四象限顺、逆圆插补计算()软件运行仿真效果插补结果要求能够以图形模式进行输出五、数字积分法插补原理数字积分法又称数字积分分析法DDA(DigitaldifferentialAnalyzer)简称积分器是在数字积分器的基础上建立起来的一种插补算法。具有逻辑能力强的特点可实现一次、两次甚至高次曲线插补易于实现多坐标联动。只需输入不多的几个数据就能加工圆弧等形状较为复杂的轮廓曲线。直线插补时脉冲较均匀。并具有运算速度快应用广泛等特点。从几何角度来看积分运算如下图所示从时刻到t求函数曲线所包围的面积时可用积分公式表示如果将~t的时间划分成时间间隔为的有限区间当足够小时可得近似公式:若△t取“”上式简化为:这种累加求和运算即积分运算可用数字积分器来实现若求曲线与坐标轴所包围的面积求解过程如下:被积函数寄存器用以存放Y值每当Δt出现一次被积函数寄存器中的Y值就与累加器中的数值相加一次并将累加结果存于累加器中如果累加器的容量为一个单位面积则在累加过程中每超过一个单位面积累加器就有溢出。当累加次数达到累加器的容量时所产生的溢出总数就是要求的总面积即积分值。被积函数寄存器与累加器相加的计算方法:例:被积函数寄存器与累加器均为位寄存器被积函数为求累加过程。                 )    )    )     )                                  )     )    )    )                经过 = 次累加完成积分运算因为有次溢出所以积分值等于。数字积分圆弧插补圆心为坐标原点的圆弧方程式为: 可得圆的参数方程为:     对t微分得、方向上的速度分量为: 用累加器来近似积分为:如图所示设加工半径为R的第一象限逆时针圆弧AB坐标原点定在圆心上A(Xo,Yo)为圆弧起点B(Xe,Ye)为圆弧终点Pi(Xi,Yi)为加工动点。如下图所示可以得到:V/R=Vx/Yi=Vy/Xi=K即Vx=KYiVy=KXi 因而可以得到坐标微小位移增量为:ΔX=VxΔt=KYiΔt  ΔY=VyΔt=KXiΔt设Δt=K=  则有:可看出用DDA法进行圆弧插补时是对加工动点的坐标Xi和Yi的值分别进行累加若积分累加器有溢出则相应坐标轴进给一步则圆弧积分插补器如图所示:数字积分法圆弧插补程序流程图DDA法插补不同象限圆弧时算法也有所不同。当采用软件插补时如果参与积分运算的寄存器均采用绝对值数据则DDA法插补的积分累加过程完全相同即JR+JV→JR只是进给脉冲分配方向和圆弧插补动点坐标的修正有所不同。插补实例设有第Ⅰ象限逆圆弧SE起点为S()终点为E()且寄存器位数N=。试用DDA法对该圆弧进行插补并画出插补轨迹。解:插补开始时被积函数寄存器初值分别为 JVX=YS=JVY=XS=终点判别寄存器JSX=|Xe-XS|=JSY=|Ye-YS|=。该圆弧插补运算过程见下表插补轨迹如下图所示的折线。六、程序清单PrivateSub建立坐标系Click()PictureForeColor=vbBlackPictureDrawWidth=PictureLine(,)(,)              '画直线坐标轴PictureLine(,)(,)PictureCurrentX=                    '当前位置PictureCurrentY=PicturePrint"X"                       '坐标轴标注PictureCurrentX=PictureCurrentY=PicturePrint"(,)"PictureCurrentX=PictureCurrentY=PicturePrint"X"PictureCurrentX=PictureCurrentY=PicturePrint"Y"PictureCurrentX=PictureCurrentY=PicturePrint"Y"EndSubPrivateSub画圆弧Click()Dima,b,c,d,n,mAsIntegerDimrAsSinglea=Val(TextText)b=Val(TextText)c=Val(TextText)d=Val(TextText)n=a*ab*bm=c*cd*dr=Sqr(n)IfOptionValue=TrueThenIfa<Orb<Orc<Ord<Thenans=MsgBox("出错了起点、终点坐标不在同一象限内请重新输入",,"提示信息")EndIfEndIfIfOptionValue=TrueThenIfa>Orb<Orc>Ord<Thenans=MsgBox("出错了起点、终点坐标不在同一象限内请重新输入",,"提示信息")EndIfEndIfIfOptionValue=TrueThenIfa>Orb>Orc>Ord>Thenans=MsgBox("出错了起点、终点坐标不在同一象限内请重新输入",,"提示信息")EndIfEndIfIfOptionValue=TrueThenIfa<Orb>Orc<Ord>Thenans=MsgBox("出错了起点、终点坐标不在同一象限内请重新输入",,"提示信息")EndIfEndIfPictureForeColor=vbRedPictureDrawWidth=ConstPI=IfOptionValue=TrueThenIfa>cAndb<dThenIfOptionValue=TrueThenIfb=ThenIfc=ThenPictureCircle(,),r*,,*,ElsePictureCircle(,),r*,,*,Atn(dc)EndIfElseIfc=ThenPictureCircle(,),r*,,Atn(ba),ElsePictureCircle(,),r*,,Atn(ba),Atn(dc)EndIfEndIfElseIfa<cAndb>dThenIfOptionValue=TrueThenIfa=ThenIfd=ThenPictureCircle(,),r*,,*,ElsePictureCircle(,),r*,,Atn(dc),EndIfElseIfd=ThenPictureCircle(,),r*,,*,Atn(ba)ElsePictureCircle(,),r*,,Atn(dc),Atn(ba)EndIfEndIfElseans=MsgBox("出错了起点或终点坐标位置错误请重新输入",,"提示信息")EndIfEndIfIfOptionValue=TrueThenIfa>cAndb>dThenIfOptionValue=TrueThenIfa=ThenIfd=ThenPictureCircle(,),r*,,,ElsePictureCircle(,),r*,,,Atn(dc)EndIfElseIfd=ThenPictureCircle(,),r*,,Atn(ab),ElsePictureCircle(,),r*,,Atn(ab),Atn(dc)EndIfEndIfElseIfa<cAndb<dThenIfOptionValue=TrueThenIfb=ThenIfc=ThenPictureCircle(,),r*,,,ElsePictureCircle(,),r*,,Atn(cd),EndIfElseIfc=ThenPictureCircle(,),r*,,,Atn(ba)ElsePictureCircle(,),r*,,Atn(cd),Atn(ba)EndIfEndIfElseans=MsgBox("出错了起点或终点坐标位置错误请重新输入",,"提示信息")EndIfEndIfIfOptionValue=TrueThenIfa<cAndb>dThenIfOptionValue=TrueThenIfb=ThenIfc=ThenPictureCircle(,),r*,,,*ElsePictureCircle(,),r*,,,Atn(dc)EndIfElseIfc=ThenPictureCircle(,),r*,,Atn(ba),*ElsePictureCircle(,),r*,,Atn(ba),Atn(dc)EndIfEndIfElseIfa>cAndb<dThenIfOptionValue=TrueThenIfa=ThenIfd=ThenPictureCircle(,),r*,,,*ElsePictureCircle(,),r*,,Atn(dc),*EndIfElseIfd=ThenPictureCircle(,),r*,,,*Atn(ab)ElsePictureCircle(,),r*,,Atn(dc),*Atn(ab)EndIfEndIfElseans=MsgBox("出错了起点或终点坐标位置错误请重新输入",,"提示信息")EndIfEndIfIfOptionValue=TrueThenIfa<cAndb<dThenIfOptionValue=TrueThenIfa=ThenIfd=ThenPictureCircle(,),r*,,*,*ElsePictureCircle(,),r*,,*,Atn(dc)*EndIfElseIfd=ThenPictureCircle(,),r*,,Atn(ba)*,*ElsePictureCircle(,),r*,,Atn(ba)*,Atn(dc)*EndIfEndIfElseIfa>cAndb>dThenIfOptionValue=TrueThenIfb=ThenIfc=ThenPictureCircle(,),r*,,*,*ElsePictureCircle(,),r*,,*Atn(cd),*EndIfElseIfc=ThenPictureCircle(,),r*,,*,Atn(ba)ElsePictureCircle(,),r*,,*Atn(cd),Atn(ba)EndIfEndIfElseans=MsgBox("出错了起点或终点坐标位置错误请重新输入",,"提示信息")EndIfEndIfEndSubPrivateSub插补计算Click()Dima,b,c,d,ni,mi,ai,bi,ci,k,f,g,m,n,l,i,xs,yx,xe,ye,jvx,jvy,xi,yiAsIntegerDimrAsSinglea=Val(TextText)b=Val(TextText)c=Val(TextText)d=Val(TextText)ni=a*ab*bmi=c*cd*dr=Sqr(ni)formClsIfOptionValue=TrueThenIfa<Orb<Orc<Ord<Thenans=MsgBox("出错了起点、终点坐标不在同一象限内请重新输入",,"提示信息")EndIfEndIfIfOptionValue=TrueThenIfa>Orb<Orc>Ord<Thenans=MsgBox("出错了起点、终点坐标不在同一象限内请重新输入",,"提示信息")EndIfEndIfIfOptionValue=TrueThenIfa>Orb>Orc>Ord>Thenans=MsgBox("出错了起点、终点坐标不在同一象限内请重新输入",,"提示信息")EndIfEndIfIfOptionValue=TrueThenIfa<Orb>Orc<Ord>Thenans=MsgBox("出错了起点、终点坐标不在同一象限内请重新输入",,"提示信息")EndIfEndIfci=f=g=k=         '正X进给标志正向 负向m=         '负Y进给标志正向 负向n=         '累加次数i=CInt(Text)    '寄存器位数赋给il=^ixs=CInt(Text)ys=CInt(Text)xe=CInt(Text)ye=CInt(Text)jvx=Abs(CInt(Text))jvy=Abs(CInt(Text))jrx=jry=xi=Abs(CInt(Text)CInt(Text))  'X方向总步yi=Abs(CInt(Text)CInt(Text))  'Y方向总步长ai=xsbi=ysPictureForeColor=vbGreenPictureDrawWidth=formCurrentX=formCurrentY=Print"      ""    X积分器  ""          Y积分器 "formCurrentX=formCurrentY=Print"累加次数n"" jvx ""Jrx=JrxJvx"" △X ""J∑x"" Jvy"" Jry=JryJvy"" △Y""J∑y"formCurrentX=formCurrentY=Print" 开始 ""  "jvx"    "jrx"    "k"  "xi"   "jvy"    "jry"    "m"  "yiwz:k=           'X方向进给标志X正向进给 负向进给m=           'Y方向进给标志Y正向进给 负向进给Ifxi>Then      'X方向判断jrx=jrxjvxIfjrx>=lThen    '判断寄存器是否溢出jrx=jrxl    '溢出修正Ifjrx>=lThen   '寄存器位数判断GoTowwEndIfIfOptionValue=TrueThenIfa>cAndb<dThenk=Elsek=EndIfEndIfIfOptionValue=TrueThenIfa>cAndb>dThenk=Elsek=EndIfEndIfIfOptionValue=TrueThenIfa>cAndb<dThenk=Elsek=EndIfEndIfIfOptionValue=TrueThenIfa>cAndb>dThenk=Elsek=EndIfEndIfxi=xiEndIfEndIfIfyi>Then      'Y方向判断jry=jryjvyIfjry>=lThen    '判断寄存器是否溢出jry=jryl    '溢出修正Ifjry>=lThen  '寄存器位数判断GoTowwEndIfIfOptionValue=TrueThenIfa>cAndb<dThenm=Elsem=EndIfEndIfIfOptionValue=TrueThenIfa<cAndb<dThenm=Elsem=EndIfEndIfIfOptionValue=TrueThenIfa>cAndb<dThenm=Elsem=EndIfEndIfIfOptionValue=TrueThenIfa<cAndb<dThenm=Elsem=EndIfEndIfyi=yi    'Y方向总步长减EndIfEndIfn=n          '累加次数加formCurrentX=formCurrentY=n*Ifxi=Oryi=ThenIfxi=Andyi<>Andf=ThenPrint" "n"    "jvx"    ""停止""   """"  """"   "jvy"    "jry"    "m"  "yiGoTowzEndIfIfxi=Andyi<>Andf<ThenPrint" "n"    "jvx"    "" ""    """"  """"   "jvy"    "jry"    "m"  "yiGoTowzEndIfIfxi<>Andyi=Andg=ThenPrint" "n"    "jvx"    "jrx"    "k"  "xi"   "jvy"    ""停止"GoTowzEndIfIfxi<>Andyi=Andg<ThenPrint" "n"    "jvx"    "jrx"    "k"  "xi"   "jvyGoTowzEndIfIfxi=Andyi=Andf=Andg<ThenPrint" "n"    "jvx"    "jry"    "k"  "xi"   "jvyGoTowzEndIfIfxi=Andyi=Andf<Andg=ThenPrint" "n"    "jvx"    "" ""    """"  """"   "jvy"    "jry"    "m"  "yiGoTowzEndIfIfxi=Andyi=Andf=Andg=ThenPrint" "n"    "jvx"    ""停止""   """"  """"   "jvy"    ""停止"GoTowzEndIfIfxi=Andyi=Andf=Andg<ThenPrint" "n"    "jvx"    ""停止""  "k"  "xi"   "jvy"    "GoTowzEndIfIfxi=Andyi=Andf<Andg=ThenPrint" "n"    "jvx"    "" ""    """"  """"   "jvy"    ""停止"GoTowzEndIfEndIfPrint" "n"    "jvx"    "jrx"    "k"  "xi"   "jvy"    "jry"    "m"  "yiwz:Ifxi=Thenf=fEndIfIfyi=Theng=gEndIfIfxi=Andyi=Thenci=ciIfci=ThenGoTowzEndIfEndIfIfOptionValue=TrueThenIfa>cAndb<dAndk=Thenjvy=jvyElseIfa>cAndb<dAndm=Thenjvx=jvxElseIfa<cAndb>dAndk=Thenjvy=jvyElseIfa<cAndb>dAndm=Thenjvx=jvxEndIfEndIfIfOptionValue=TrueThenIfa>cAndb>dAndk=Thenjvy=jvyElseIfa>cAndb>dAndm=Thenjvx=jvxElseIfa<cAndb<dAndk=Thenjvy=jvyElseIfa<cAndb<dAndm=Thenjvx=jvxEndIfEndIfIfOptionValue=TrueThenIfa>cAndb<dAndk=Thenjvy=jvyElseIfa>cAndb<dAndm=Thenjvx=jvxElseIfa<cAndb>dAndk=Thenjvy=jvyElseIfa<cAndb>dAndm=Thenjvx=jvxEndIfEndIfIfOptionValue=TrueThenIfa>cAndb>dAndk=Thenjvy=jvyElseIfa>cAndb>dAndm=Thenjvx=jvxElseIfa<cAndb<dAndk=Thenjvy=jvyElseIfa<cAndb<dAndm=Thenjvx=jvxEndIfEndIfPictureLine(*ai,bi*)(*(aik),(bim)*)ai=aikbi=bimGoTowzww: TextText=""TextText=""TextText=""TextText=""TextText=""TextSetFocusww:formClsans=MsgBox("出错了寄存器位数偏小请输入",,"提示信息")TextText=""TextSetFocusww:wz:EndSubPrivateSub清除Click()TextText=""TextText=""TextText=""TextText=""TextText=""OptionValue=FalseOptionValue=FalseOptionValue=FalseOptionValue=FalsePictureClsformClsEndSubPrivateSub退出Click()EndEndSub七、软件运行效果仿真进入第三象限第二象限第四象限第一象限及错误提示八、课程小节通过此次课程设计使我更好的掌握了有关数字积分法一二三四象限顺、逆圆插补计算方面的知识在设计过程中虽然遇到了一些问题但经过一次又一次的思考和询问终于找出了原因所在也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知通过亲自动手制作使我们掌握的知识不再是纸上谈兵。过而能改善莫大焉。在课程设计过程中我们不断发现错误不断改正不断领悟不断获取。最终的检测调试环节本身就是在践行“过而能改善莫大焉”的知行观。这次课程设计终于顺利完成了在设计中遇到了很多问题最后在同组的伙伴们的指导下终于游逆而解。在今后社会的发展和学习实践过程中一定要不懈努力不能遇到问题就想到要退缩一定要不厌其烦的发现问题所在然后一一进行解决只有这样才能成功的做成想做的事才能在今后的道路上劈荆斩棘而不是知难而退那样永远不可能收获成功收获喜悦也永远不可能得到社会及他人对你的认可!课程设计诚然是一门专业课给我很多专业知识以及专业技能上的提升同时又是一门讲道课一门辩思课给了我许多道给了我很多思给了我莫大的空间。同时设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计我掌握了数字积分法插补的基本原理运算过程特点及其应用并了解改进数字积分插补质量的措施。九、参考文献《数控技术》赵玉刚宋现春主编北京机械工业出版社《机床数控技术》杜国臣王士军主编北京北京大学出版社《VisualBasic软件设计教程》江志文主编广州中山大学出版社《深入浅出VisualBasic软件设计》松桥工作室北京中国铁道工业出版社《算法分析与设计技术》马绍汉主编北京科学出版社《数字控制机床》廖效果朱启逑主编湖北华中理工大学出版社

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/44

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部

举报
资料