《2015年全国研究生数学建模比赛E题解答27255.pdf》由会员分享,可在线阅读,更多相关《2015年全国研究生数学建模比赛E题解答27255.pdf(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、参 赛 密 码(由组委会填写)第十二届“中关村青联杯”全国研究生 数学建模竞赛 学校 参赛队号 队员姓名 参赛密码(由组委会填写)第十二届“中关村青联杯”全国研究生 数学建模竞赛 题目数控加工刀具运动的优化控制 摘要:本文基于计算机数控系统的工作原理,建立了刀具运动的优化控制模型,目的在于寻求机床刀具在单个坐标轴方向上的运动合理控制,从而增强机床运行的平稳性。主要运用了 S 型曲线的加减速控制方法,建立了通用模型,该模型可通过已经设定的刀具加工路径,得出机床运动过程中任意一点的速度,从而验证所设定的符合加减速控制原理,得到最优的数控加工刀具的路径。在该通用模型中,机床控制的加速度和速度都是连续
2、变化的,因此通过渐变控制使机床运动按 S型曲线式平稳变化,保证了速度的光顺及加速度的连续,提高了机床运动的平稳性,运用该模型,可以帮助寻找最优刀具路径,从而实现数控刀具加工的优化。本论文的创新点在于模型适用范围广,突破了速度范围和加速度的限制不仅适用于 S 型曲线七阶段的加减速,而且适用于平稳性更强的五阶段和三阶段的 S 型曲线加减速控制路径。论文中主要采用了力学分析建模、直线插补法建模和最优化方法建模。在直线插补模型中,不论运行轨迹是直线还是曲线,刀具的运行都是按阶梯形路径行走,用步长乘以步数即可求得刀具的运行长度。并且每一步长的增量均为分辨率,xyz,并且每个增量的长度均为分辨率的整数倍。
3、根据此原理,采用直线插补法,建模可画出刀具沿轨迹的路径变化,在模型中输入刀具起点坐标和终点坐标即可求得刀具沿路径运行的长度。对于问题一:根据问题二的相关提示,我们设定加工线型分别为正方形和八边形即转角分别为90和 135,然后根据 S 型曲线的减加速控制方法,建立了力学分析模型,再运用牛顿第二定理和受力分析可得出速度变化特征。分别对刀具在拐角为 90和 135处进行受力分析得到结果:转角为 90时的合力1.414 F2 0.765F2(135转角处的合力),所以当刀具经过 90转角时,速度变化大于 135转角的速度。对于问题二:由于问题一建立的模型是根据问题二设定的,再加上附录的提示,问题一所
4、建立的通用模型可直接套用在问题二上,所以我们依据题目要求和模型特点,讨论了圆弧半径的变化对算法效率的影响,继而用该通用模型和已知路径各点间的路程(运动距离)S,计算出对应的速度 V,然后与表格中的已知速度 V进行核对,从而检验了所给的加工路径,V越接近 V,则路径越符合加减速数控机床的运动平稳。通过讨论,我们得到结论:在 1 点到 11 点的运动路径下,半径的变化范围是 r 0,L2。当半径 r 越大,则 S 越小,所运用的计算情况越简单,计算时间越短,计算效率越高;当半径 r 越小,则 S 越大,所运用的计算情况越复杂,计算时间越长,计算效率越低。对于问题三:我们在模型二的基础上考虑了瞬时启
5、动加速度及瞬时启动速度,所以在模型中加入了瞬时启动加速度运动段,丰富了模型的通用性之后,依照问题二的检验步骤,检验了加工路径示例。此情况下,节点 1 以瞬时起始速度0.13m/min 运动至 2.3192 103cm 时提高到 0.19m/min,然后保持 0.19m/min的速度匀速运行到节点 2,然后从节点 2 以速度 0.19m/min 运行到 0.27881cm处速度加至 1.26m/min,然后保持 1.26m/min 的速度一直运行到节点 5。从节点 5 至节点 11 的运动轨迹及速度与前半段路径对称。对于问题四:在问题一、问题二、问题三的基础上,我们去掉了 S 型加减速控制方法阶
6、段中的第二阶段(匀加速阶段)和第六阶段(匀减速阶段),满足精度和速度的要求,建立了模型,并大量搜取相关计算机数控加工同的文献,讨论了该模型对提高机床运行平稳性的优缺点。讨论优点结果为 S 曲线加减速可以克服直线加减速方法的缺点,保证了加速度和速度的连续,满足了系统的稳定性和加减速的要求。缺点有三,首先使用 S 型加减速方法时速度的变化相当快,但由于存在加速度突变从而产生冲击,因此不适用于高速数控系统;其次对于传统普通的 S 型曲线加减速法,其通过对加速阶段及减速阶段进行平滑处理来减少机床的冲击,然而其加减速阶段存在突变以及加加速并不连续,从而使机床柔性受到限制;最后,由于其参数比较多,计算相对
7、复杂,不能满足高性能数控实时性的要求。关键词:直线插补法 最优化模型 S 型曲线加减速 数控加工1.问题重述 1.1 问题背景 近年来,随着计算机技术的发展,数字控制技术已经广泛应用于工业控制的各个领域,尤其是机械制造业中,普通机械正逐渐被高效率、高精度、高自动化的数控机械所代替。这种高速高效高精度的技术即被称为数控加工技术,高速加工要求机床各运动轴都能够在极短的时间内达到高速运行状态并实现高速准停,研究开发数控加工刀具运动满足高速、高精度要求的、有效柔性加减速控制方法,已成为现代高性能数控系统研究的重点。在本文中,我们考虑加工刀具在数控机床所提供的精度、速度、加速度等限制条件下,对机床刀具在
8、各坐标轴方向上的运动进行建模并合理控制,进而优化其加工效率。1.1.1 计算机数控系统工作原理及难点:原理为首先通过计算机组成的数控编程系统对读入的零件信息进行存储和译码等处理后通过输入装置将它们传输给加工控制系统,然后由数控系统对输入的指令进行信息处理和轨迹插补计算出数控机床各坐标轴方向上刀具运动的控制信息,进而通过机床驱动以及机床运动将刀具在各坐标轴方向上的运动合成为刀具实际加工轨迹和速度控制,加工出所需的工件。难点之一为数控机床加工刀具在三个坐标轴方向的运动实行分别控制,导致加工刀具的运动轨迹与工件几何形状之间存在误差;第二为每一直线段对应的坐标增量长度必须为分辨率的整数倍,从而导致加工
9、刀具运动方向受限制,并影响加工刀具在三个坐标轴方向上的速度、加速度;第三机床需运动平稳、速度光滑、加速度连续。1.2 问题提出 本文需解决的问题:问题一:设加工型线为折线,建立模型分析讨论刀具通过指定折点时的速度变化。问题二:设加工型线是由直线段和圆弧段(相切或不相切)组成的连续曲线,在不考虑瞬时启动加速度及瞬时启动速度的情况下讨论圆弧半径的变化对算法效率的影响,并应用所建立的模型指定加工路径示例进行检验。问题三:在问题二的基础上,在考虑瞬时启动加速度及瞬时启动速度的情况下讨论圆弧半径的变化对算法效率的影响,并应用所建立的模型指定加工路径示例进行检验。问题四:结合前 3 问,分析 S 型曲线的
10、加减速控制方法的优缺点,在满足精度和速度要求的条件下,建立能提高机床运行平稳性的优化控制运动模型。2.模型的假设 假设 1:不考虑五轴控制,假设数控机床对加工刀具在三个坐标轴方向运动,对此三轴实行分别控制,且它们之间相互协调;假设 2:假设在 S 型曲线运动过程中,速度 V 不大于机床最大速度Vmax,加速度 a 不大于机床最大加速度amax,加加速度为常量Jconst。假设 3:假设在此 S 型速度控制曲线中加速度每次都是从 0 增加,最后又降为 0。假设 4:假设不考虑刀具尺寸大小及刀具磨损,加工刀具抽象为一点。假设 5:加工刀具行走的路线是一系列首尾相接的直线段,机床运动平稳,速度光滑、
11、加速度连续等。3.符号说明 符号 符号说明 刀具速度 机床最大速度 瞬时启动速度 刀具加速度 机床最大加速度 a0 瞬时启动加速度 加加速度 4.问题分析 数控技术作为先进制造技术(如柔性制造技术,计算机集成制造系统)的基础,国家投入了大量的人力、财力进行公关开发,其关键技术已取得了重大进展,实现了多坐标联动,攻克了交流全数字伺服和主轴驱动技术,“九五”期间实现了数控机床产业攻关目标。几何造型和道具运动轨迹是实施数控加工的两大关键技术,其中零件数控加工准确性只有在合理的刀具轨迹的前提下才能予以保证。刀具轨迹的生成是复杂零件数控加工中重要的内容之一,刀具轨迹规划是否合理不仅直接关系到切削效率、加
12、工质量及加工成本,而且还影响机床的动力性能及刀具的使用寿命。此题研究的是数控加工刀具运动的优化控制问题,数控加工对单个坐标运动的控制方法有多种,其中,从数控系统的控制角度看,要实现高速度加工,必须采用加减速控制。为了在运动的开始和结束时,系统自动进行加减速,以保证平稳启动和停止,并且在速度变化时也能自动的加减速,使进给速度平稳变化数控机床进给传统系统设计应尽量采用 S 型加减速。本题在数控系统保证加工精度的条件下,使用加减速控制技术对加工路径段间加减速过程进行控制,即选用基于S 型曲线的加减速控制方法,将加减速过程分为 7 个阶段:加加速、匀加速、减加速、匀加速、加减速、匀减速,减减速七个阶段
13、,在启动时间加速度逐渐增大,当达到最大加速度时,以匀加速运动,在到达额定速度之前,加速度逐渐减小。并且每个阶段时间的变化规律已给出,提高进给速度,减小速度跳变,提高加工效率。针对问题一:加工型线为折线,结合问题二我们首先分析刀具路线为与题二相似的正方形,在正方形直角处画出一条与正方形相邻竖边和横边内夹角为135?的斜线,刀具沿着此路径展开 S 型曲线加减速变化,在直角点和 135?点处分别经历加加速、匀加速、减加速、匀速、加减速、匀减速、减减速七个阶段,后来在分析过程中我们发现各路径的时间 T 是可以算出来的,则放弃此种方法改用数学建模。为了便于观察刀具通过相邻折线段夹角为 90?和 135?
14、的折线交点时运动速度的变化,我们将加减速七个阶段中的速度分别进行积分,得到每个阶段的位移S1、S2S7,刀具的每次位移均为机床分辨率的整数倍,即 S=n1280,n 为整数,然后相加得到总位移,即S=V1+V2+V3+V4+V5+V6+V7=S1+S2+S7,虽然题中刀具速度呈 S 型曲线走势,但实际运行的是接近直线规律的加减速控制,这样就造成机床的颤抖,严重影响加工质量,为了解决解决短代码运行造成的缺陷,实现高速度下平稳运行微小线段程序,实现高速高精加工,我们运用积分使其最小化,通过计算当刀具在加加速阶段速度已经达到最大极限值,故此后没有匀加速和减加速阶段,根据此方法进行建模,由于刀具运动轨
15、迹为对称图形,建模可算出S1、S2和S3,在本题中S2和S3为 0,如下图 1 所示,当输入拐点处位移时即可得出该点速度。图 1 针对问题二:刚着手分析此题,由于要讨论圆弧半径与算法效率的关系,我们刚开始考虑用弧度来代替半径,即弧长等于半径乘以夹角,半径长为 0 到 r,夹角为 0 到 90?,即可用不同的弧度建模计算算术时间,用时间来代表效率。后来建模时发现未知数夹角难以分析计算,则改用研究讨论路径边长与半径的关系。由于加工型线是由直线和圆弧段组成的连续曲线,我们假设直线总长为 L,两圆弧与直线切点间的距离为L1,圆弧对应的直线为L2,则 L=L1+L2,设圆弧与直线相切时半径为 r,当弧线
16、无限小时 r 为 0,当弧线与直线相切时半径为 r,并且此时L2=r,位移 S 为刀具所走路径 L 和弧度的和,S 与 r 成反比关系,建立实时加工优化控制算法,讨论圆弧半径从零变为 r 时对算法效率的影响,并应用所建立的模型对题目中给出的加工路径示例进行检验。如图 2 所示。图 2 针对问题三:考虑瞬时启动加速度及瞬时启动速度,认为加速度可以从 0瞬间提高到瞬时加速度a0,或瞬间从a0下降到 0,速度也有类似功能,这样整个加速过程及速度的变化规律有一些改变。刀具以瞬时启动加速度为初始速度加速,则相对于第二问来讲,刀具增加一段位移 2at22=at2。针对问题四:结合前三问,机床工作台的运行稳
17、定性与机床液压系统的泄漏、系统受液压油的粘度、节流阀与停留阀等的磨损或调节不当、导轨润滑不良等因素影响,导致工作台在换向时停留时间不稳定、无停留时却出现瞬时停留、周期进给时大时小等现象。因此,对机床工作台运行稳定的情况,必须对系统调整和维修,保证机床工作台的正常运行。优点为 S 曲线加减速可以克服直线加减速方法的缺点,当前应用最多的实现方法是将加减速过程分为七个阶段,保证了加速度和速度的连续,满足了系统的稳定性和加减速的要求。缺点有三,首先使用直线 S 型加减速方法时速度的变化相当快,但由于存在加速度突变从而产生冲击,因此不适用于高速数控系统;其次对于传统普通的 S 型曲线加减速法,其通过对加
18、速阶段及减速阶段进行平滑处理来减少机床的冲击,然而其加减速阶段存在突变以及加加速并不连续,从而使机床柔性受到限制;最后,由于其参数比较多,计算相对复杂,不能满足高性能数控实时性的要求。S 曲线加减速速度、加速度变化趋势如下图 3 所示。图 3 S 曲线加减速速度、加速度走势 5.问题一的解答 本文研究的是机床刀具在三轴控制下的运动轨迹和运动速度优化问题,利用实时优化控制算法,简化多目标函数,再用 MATLAB 软件编程求得最优解。5.1 模型一的建立与求解 5.1.1 问题分析 如上图所示进行分析,假设机床刀具从 1 点运动到 2 点的过程中发生了路径转变,1 点到转角点的运动速度为V1,转角
19、点到 2 点的运动速度为V2。当转角为90时,情况如图 a 所示,此时的运动分力为F1,经过转角之后,运动分力为F2,则轨迹给刀具的反力(合力)F 为2F2 1.414F2。当转角为 135时,情况如图 b 所示,由于刀具经过转角前后的运动速度是一样的,均为V1和V2,则经过转角点之前的运动分力为 F1,经过转角之后的运动分力为F2,经过受力分析后,求得轨迹给刀具的反力(合力)F 为 2sin22.5F2 0.765F2。由牛顿第二定理,定理中动量守恒得出 Ft=m?V,所以?V=Ftm,其中 m 为刀具质量,t 运动的时间,m和 t 都是定量不变,所以不难看出,当转角处的合力 F 越大时,速
20、度的变化?V,越大,又因为转角为 90时的合力 1.414F2 0.765F2(135转角处的合力),所以当刀具经过 90转角时,速度变化大于 135转角的速度,又因为该路径为对称路径,所以转角处的速度变化情况与图 4 图 5 的分析是一致的。由此还可以推断出,在刀具设定的运动速度 v 和时间 t 内,经过路径转角的角度越大,刀具的速度变化越小。?5.1.2 模型计算结果 对刀具在拐角为 90?和 135?处进行受力分析,分析结果如图 4 和图 5 所示:图 4 刀具在 90?拐角处的受力分析 图 5 刀具在 135?拐角处的受力分析 对刀具运行轨迹及运行到转角90?和 135?时进行受力分析
21、,由牛顿第二定理,定理中动量守恒得出Ft=m?V,所以?V=Ftm,其中 m 为刀具质量,t 运动的时间,m和 t 都是定量不变,所以,当转角处的合力 F 越大时,速度的变化?V,越大,又因为转角为 90时的合力 1.414F2 0.765F2(135转角处的合力),所以当刀具经过 90转角时,速度变化大于 135转角的速度。6 模型二、三的解答 6.1 模型二的建立与求解 6.1.1 路径分析 机床刀具所走的路径如图 6 所示,路径的四个角是半径为 0.5 的整圆的 1/4圆弧,矩形外围大小是:4141(单位:cm2)。如下图所示,把整个路径分为11 个点,从节点 1(-20.500,-20
22、.000,0.000)的位置顺时针走到节点 2(-20.500,-17.708,0.000)的位置,接着一直按顺时针方向走回到节点 11(-20.500,-20.000,0.000)的位置。其中,节点 1 处的瞬时速度为 0.13,从节点 1 到节点 2 的过程中要求最大速度为0.19,节点2顺时针到节点11的过程中要求最大速度为 1.26,节点 11 处的终止速度为 0.13。具体速度要求如表 1 所示,表中最大频率指的是控制脉冲的最大频率,本题不予考虑,对应的速度指刀具的运动速度,单位是m/min。图 6 圆角矩形切割路径 表 1 圆角矩形切割路径加工中速度要求 路径节点 节点坐标(X、Y
23、、Z)用户设定的最大频率 F 最大频率F转换后对应的速度 1(-20.500,-20.000,0.000)2773 0.13 2(-20.500,-17.708,0.000)4029 0.19 3(-20.500,20.000,0.000)26865 1.26 4(-20.000,20.500,0.000)26865 1.26 5(20.000,20.500,0.000)26865 1.26 6(20.500,20.000,0.000)26865 1.26 7(20.500,-20.000,0.000)26865 1.26 8(20.000,-20.500,0.000)26865 1.26 9
24、(-20.000,-20.500,0.000)26865 1.26 10(-20.500,-20.000,0.000)26865 1.26 11(-20.500,-17.708,0.000)2773 0.13 6.1.2 刀具行走轨迹 下图 7 为节点 1 到节点 2 的行走轨迹,图 8 为节点 3 到节点 4 的行走轨迹。图 7 节点 1 到节点 2 的行走轨迹 图 8 节点 3 到节点 4 的行走轨迹 6.1.3 建模背景 不论运行轨迹是直线还是曲线,刀具的运行都是按阶梯形路径行走,用步长乘以步数即可求得刀具的运行长度。并且每一步长的增量均为分辨率,xyz,并且每个增量的长度均为分辨率的整
25、数倍。根据此原理,采用直线插补法,建模可画出刀具沿轨迹的路径变化,在模型中输入刀具起点坐标和终点坐标即可求得刀具沿路径运行的长度。模型如附录所示。6.1.4 半径对计算效率的影响 半径 r 变化时,圆弧长度也随之变化,当半径 r 增大,圆弧与正方形内切范围增大;当半径 r 减小,圆弧与正方形内切范围越小。由图四所示,从 1 点到 6点划分路径区域,将对路径进行对称分析,L 外围正方形的边长,则路程S=2(L-2r)+2r?,r?0,L2,所以得出 S 的范围是4L S 2L。根据建立的模型,可分别积分计算出不同运动阶段的路程S1,S2,S3。那么,当路径的运动路程 0 S1时,模型运动形式为第
26、一阶段,即用情况一来分析问题,得出计算结果;当路径的运动路程S10%表示第一阶段没能达到最大速度,需要进入第二阶段 disp(第一阶段速度没达到最大)v2=v0+0.5*Jconst*T12+amax*(T1+T2+t0-T1);%第二阶段最大速度 if v2S0)&(sS1)&(s(S2)&(svmax%表示第二阶段完成前达到最大速度,不进入第三阶段 disp(第二阶段未完成时速度已经达到最大)t2=solve(v0+0.5*Jconst*T12+amax*(t-t0-T1)%第二阶段达到最大速度的时间 s11=subs(s2,t,t2);%第二阶段达到最大速度时的路程 s11=s0+sub
27、s(s1,t,T1+t0)+s11;%disp(输入路程范围(num2str(s0),num2str(s11),)s=input(路程:);switch s case(ss0)&(ss0+subs(s1,t,t0+T1)&(ss0)&(ss0+subs(s1,t,t0+T1)&(s(s0+subs(s1,t,t0+T1)+subs(s2,t,t2)%判断是否在第二阶段 t=solve(s0+s1+s2-s);v=v0+0.5*Jconst*T12+amax*(t-t0-T1);v=double(v)otherwise disp(超出范围)end end elseif T20%表示第一阶段没能达
28、到最大速度,需要进入第二阶段 disp(第一阶段速度没达到最大)t2=solve(v0+0.5*Jconst*T12+amax*(t-t0-T1)-0.5*Jconst*(t-t0-T1)2-vmax);s11=s0+subs(s1,t,t0+T1)+subs(s2,t,t2)%disp(输入路程范围(0,num2str(s11),)s=input(路程:);%输入路程 S0=s0 S1=S0+subs(s1,t,t0+T1)S2=S0+subs(s1,t,t0+T1)+subs(s2,t,t0+2*T1)switch s%判断路程所在的阶段 case(sS0)&(sS1)&(s=(S2)%判
29、断是否在第二阶段 t=solve(s0+s1+s2-s);v=v0+0.5*Jconst*T12+amax*(t-t0-T1)-0.5*Jconst*(t-t0-T1)2;v=double(v)otherwise disp(超出范围)end elseif T20 disp(第一阶段未完成时速度已经达到最大)t1=solve(v0+0.5*Jconst*t2-vmax);s11=s0+subs(s1,t,t1);s11=double(s11);disp(输入路程范围(,num2str(s0),num2str(s11(2),)s=input(路程:);t=solve(s0+s1-s);v=v0+0
30、.5*Jconst*t.2;v=double(v)a=amax*t;else disp(第一阶段完成速度刚好最大)t1=T1;s11=subs(s1,t,t1);%disp(输入路程范围(0,num2str(s11),)s=input(路程:);t=solve(s0+s1-s);v=v0+0.5*Jconst*t.2;v=double(v)a=amax*t;end toc 圆弧插补 matlab 计算代码:clear;clc;X0=input(请输入起点横轴坐标 Xn X0=);Y0=input(请输入起点纵轴坐标 Yn Y0=);Xe=input(请输入终点横轴坐标 Xn Xe=);Ye=i
31、nput(请输入终点纵轴坐标 Yn Ye=);R=input(请输入圆弧半径n R=);NorF=input(请选择圆心(1 代表靠近原点 2 代表远离原点):n );SorN=input(请选择补走向(1 代表顺时针/2 代表逆时针):n );h=input(请输入步长n h=);if(Xe=X0)&(Ye=Y0)x01=0;y01=0;x02=2*Xe;y02=2*Ye;R=sqrt(Xe2+Ye2);mark=0;else mark=1;k1=(Ye-Y0)/(Xe-X0);k2=-1/k1;Xz=(X0+Xe)/2;Yz=(Y0+Ye)/2;%两点中点坐标 L1=sqrt(X0-Xe)
32、2+(Y0-Ye)2)/2;%两点之间距离的一半 L2=sqrt(R2-L12);beta=atan(k2);x01=Xz-L2*cos(beta);y01=Yz-L2*sin(beta);%靠近原点的圆心 x02=Xz+L2*cos(beta);y02=Yz+L2*sin(beta);%远离原点的圆心 end if(NorF=1)%判断圆心位置 if(x012+y012-x022-y022)=0)x0=x01;y0=y01;else x0=x02;y0=y02;end else if(x012+y012-x022-y022)h*h/2|(step=0&mark=0)if(Xm-x0)0&(Y
33、m-y0)=0)XOY=1;%判断动点所在象限 end if(Xm-x0)0)XOY=2;end if(Xm-x0)0&(Ym-y0)=0&(Ym-y0)=0)x1=Xm,Xm;y1=Ym,Ym-h;else x1=Xm,Xm+h;y1=Ym,Ym;end else if(Fm=0)x1=Xm,Xm+h;y1=Ym,Ym;else x1=Xm,Xm;y1=Ym,Ym+h;end else if(Fm0)x1=Xm,Xm;y1=Ym,Ym-h;else x1=Xm,Xm-h;y1=Ym,Ym;end end case 3 if(SorN=1)if(Fm=0)x1=Xm,Xm;y1=Ym,Ym+h
34、;else x1=Xm,Xm-h;y1=Ym,Ym;end else if(Fm0)x1=Xm,Xm+h;y1=Ym,Ym;else x1=Xm,Xm;y1=Ym,Ym-h;end end case 4 if(SorN=1)if(Fm=0)x1=Xm,Xm-h;y1=Ym,Ym;else x1=Xm,Xm;y1=Ym,Ym-h;end else if(Fm0)x1=Xm,Xm;y1=Ym,Ym+h;else x1=Xm,Xm+h;y1=Ym,Ym;end end end step=step+1;plot(x1,y1,r-);%由此点和前一点坐标组成的 2个向量画直线 Xm=x1(2);%保存此
35、点坐标供下次作图和比较时使用 Ym=y1(2);Fm=(Xm-x0)2+(Ym-y0)2-R2;hold on;text(x1(1)+x1(2)/2,(y1(1)+y1(2)/2,num2str(step)pause(0.5);%延时程序形参为每走一步所用时间 end xlabel(X)ylabel(Y)title(四象限圆弧插补)hold off;直线插补 MATLAB 计算代码 clear;clc;X0=input(请输入起点横坐标 XnX0=);Y0=input(请输入起点纵坐标 YnY0=);Xe=input(请输入终点横坐标 XnXe=);Ye=input(请输入终点纵坐标 YnYe
36、=);h=input(输入步长nh=);x=X0,Xe;y=Y0,Ye;plot(x,y);hold on;Xe=Xe-X0;Ye=Ye-Y0;NXY=(abs(Xe)+abs(Ye)/h;step=0;Fm=0;Xm=X0;Ym=Y0;if(Xe0&Ye=0)XOY=1;end if(Xe0)XOY=2;end if(Xe0&Ye=0&Ye0)XOY=4;end while(step=0)x1=Xm,Xm+h;y1=Ym,Ym;else x1=Xm,Xm;y1=Ym,Ym+h;end case 2 if(Fm=0)x1=Xm,Xm-h;y1=Ym,Ym;else x1=Xm,Xm;y1=Ym
37、,Ym-h;end case 4 if(Fm0)x1=Xm,Xm+h;y1=Ym,Ym;else x1=Xm,Xm;y1=Ym,Ym-h;end end step=step+1;plot(x1,y1,r-);%由此点和前一点坐标组成的 2 个向量画直线 Xm=x1(2);%保存此点坐标供下次作图和比较时使用 Ym=y1(2);Fm=(Ym-Y0)*Xe-(Xm-X0)*Ye;hold on;text(x1(1)+x1(2)/2,(y1(1)+y1(2)/2,num2str(step)pause(0.5);%延时程序形参为每走一步所用时间 end xlabel(X)ylabel(Y)title(四象限直线插补)hold off;