逐点比较法插补实验报告
直线插补实验报告(3篇)

第1篇一、实验目的1. 理解直线插补的概念和原理。
2. 掌握直线插补算法的基本方法。
3. 通过实验验证直线插补算法的正确性和实用性。
二、实验原理直线插补是一种将曲线或曲面拟合为一系列直线段的方法,它通过计算两个已知点之间的直线段坐标来实现。
在数控加工、机器人运动控制等领域中,直线插补技术具有重要意义。
直线插补的基本原理如下:1. 确定起点和终点坐标:根据实际需求,确定直线段的起点和终点坐标。
2. 计算直线段斜率:根据起点和终点坐标,计算直线段的斜率。
3. 确定步长:根据直线段长度和步长精度要求,确定步长。
4. 循环计算:从起点开始,按照步长逐点计算直线段上的坐标,直至到达终点。
三、实验设备1. PC机:用于编写和运行直线插补程序。
2. MATLAB:用于图形化展示直线插补结果。
四、实验步骤1. 编写直线插补程序:根据实验原理,使用MATLAB编写直线插补程序。
2. 输入起点和终点坐标:根据实验要求,输入直线段的起点和终点坐标。
3. 设置步长:根据实验要求,设置直线插补的步长。
4. 运行程序:运行直线插补程序,计算直线段上的坐标。
5. 图形化展示:使用MATLAB绘制直线段和插补结果,验证直线插补算法的正确性。
五、实验结果与分析1. 实验结果:通过实验,成功实现了直线插补,并绘制了直线段和插补结果。
2. 分析:(1)直线插补算法的正确性:实验结果表明,直线插补算法能够准确计算出直线段上的坐标,满足实验要求。
(2)直线插补算法的实用性:直线插补技术在数控加工、机器人运动控制等领域具有广泛的应用前景,通过实验验证了直线插补算法的实用性。
(3)步长对插补结果的影响:在实验过程中,我们发现步长对插补结果有一定影响。
当步长较小时,插补结果更精确;当步长较大时,插补结果误差较大。
因此,在实际应用中,应根据精度要求选择合适的步长。
六、实验结论1. 直线插补实验成功实现了直线段的插补,验证了直线插补算法的正确性和实用性。
实验一 逐点比较法圆弧和直线插补实验

Y B(xe,ye)
M(xm,ym)
Rm R
A(x0,y0)
O 图3 圆弧插补原理图 X
圆弧插补原理参见上图,对于第一象限逆圆,设圆弧的起点为 A(x0,y0),终点为 B(xe,ye), 圆弧半径为 R。加工点为 M(xm,ym),它与圆心的距离为 Rm,则
(1)偏差计算
Fm
=
Rm2
− R2
=
xm2
p102=p102-p104 p101=p101+1 x-0.1 else p102=p102+p103 p101=p101+1 y0.1
;计算新的偏差值(Fi+1=Fi-ya) ;步数计数器加一 ;X方向进分别是(-0.1 -0.5 -1.0) ;偏差判别(若P102小于0表示刀具在直线下方) ;计算新的偏差值(Fi+1=Fi+xa) ;步数计数器加一 ;Y方向进给分别是(0.1 0.5 1.0)
endif
endwhile
close
(3)根据直线插补编成格式,编写所给圆弧插补程序。 各组的圆弧的插补任务是: u 第一组:圆弧半径 50,第二象限顺圆;
第二组:圆弧半径 50,第二象限逆圆; 第三组:圆弧半径 60,第三象限顺圆; 第四组:圆弧半径 60,第三象限逆圆; 第五组:圆弧半径 70,第四象限顺圆; 第六组:圆弧半径 70,第四象限逆圆; open prog7 clear linear inc p101=0 p102=0 p103=0 p104=50 while(p101!>100) if(p102!<0) y0.5 p101=p101+1 p102=p102-2*p104+1 p104=p104-1 else -x0.5 p101=p101+1 p102=p102-2*p103+1 p103=103-1 endif endwhile close
基于符号判别法的逐点比较法圆弧插补算法的研究

基于符号判别法的逐点比较法圆弧插补算法的研究随着数控技术的飞速发展,圆弧插补算法成为数控系统中的重要组成部分。
圆弧插补算法一直是数控技术研究的热点之一。
目前,国内外研究者对圆弧插补算法进行了大量的研究和探索。
本文基于符号判别法的逐点比较法,对圆弧插补算法进行了深入研究并提出了一些新的改进方法。
一、圆弧插补算法的基本原理圆弧插补算法是数控加工中常用的一种插补算法。
其基本原理是根据圆弧的参数方程,将圆弧离散成多个插补点,通过控制机床加工动作,沿着这些插补点逐步插补完成圆弧加工。
其具体步骤如下:(1)确定圆弧的参数方程:圆弧的参数方程可以用x=f(t)和y=g(t)表示。
其中,t表示圆弧的参数(通常取值范围为0~1),x和y分别表示圆弧上各点的坐标。
(2)确定圆弧上所需插补点的个数:根据加工要求和机床精度,确定圆弧上所需插补点的个数。
一般情况下,插补点的个数越多,圆弧加工的精度越高,但是加工时间也越长。
(3)计算圆弧上各点的坐标:通过圆弧的参数方程,计算出圆弧上各点的坐标。
(4)控制机床加工动作:根据圆弧上各点的坐标,依次控制机床在各个点之间插补出圆弧。
符号判别法的逐点比较法是一种常用的圆弧插补算法。
它的主要原理是将圆弧平均分成若干段,然后逐段进行插补。
具体步骤如下:(1)将圆弧平均分成n段:根据圆弧弧长和所需插补点的个数,计算出n值,将圆弧平均分成n段。
(3)逐点进行插补:从第一个插补点开始,逐一进行插补操作,直到插补完所有的插补点。
(4)控制加工精度:根据机床精度和加工要求,确定插补点的个数和分段数量,以控制圆弧加工的精度。
三、改进方法基于符号判别法的逐点比较法在圆弧插补算法中具有重要的地位,但是在实际应用中存在着一些问题。
为了提高圆弧加工的精度和效率,我们提出以下两种改进方法:(1)自适应分段:传统的逐点比较法是将圆弧分成固定的小段,每一段都进行插补。
但是在实际应用中,圆弧的曲率并不是在整个圆弧上都保持一致的,因此对于一些曲率较低的圆弧,将其分得更多一些可以提高加工精度。
逐点比较插补原理的实现最新版

逐点比较插补原理的实现最新版《微型计算机控制技术》课程设计报告课题名称:逐点比较插补原理的实现姓名:章洪高班级:自动化2班学号: 2指导老师:徐猛华东华理工大学机械与电子工程学院2016年6月目录1设计任务及要求 (4)2方案设计及认证 (4)3硬件设计原理 (5)3.1硬件结构 (5)3.2硬件电路图 (7)3.3硬件原理 (8)4软件系统 (11)4.1软件思想 (11)4.2流程图 (11)4.3源程序 (14)5调试记录及结果分析 (14)5.1仿真界面设置 (14)5.2调试记录 (15)5.3结果分析 (17)6心得体会 (18)7参考资料 (19)附录: (19)1设计任务及要求设计一个计算机控制步进电机系统,该系统利用单片机的I/O口输出控制信号,其信号驱动控制X、Y两个方向的三相步进电机转动,利用逐点比较法插补绘制出如下曲线。
图1-1 第一象限逆圆弧课程设计的主要任务:1)在显示器上显示任意四位十进制数;a、定义键盘按键:10个为数字键0~9;6个功能键:设置SET、清零CLR、确认、开始START、暂停、停止;b、显示器上第一位显示次数,后三位显示每次行走的角度;c、通过键盘的按键,设置X、Y轴插补的起始值;按START键启动步进电机开始转动,按SET键进行数据设置、按CLR键清零。
2)设计硬件系统,画出电路原理框图(要求规范);3)定义步进电机转动的控制字;(不设计步进电机驱动电路与驱动程序)。
4)推导出用逐点比较法插补绘制出下面曲线的算法;5)编写算法控制程序线;6)撰写设计说明书。
2方案设计及认证本次课程设计内容为设计一个单片机控制步进电机系统,该系统利用单片机的I/O口输出控制信号,其信号驱动后控制X、Y两个方向的三相步进电机转动,利用逐点比较法插补绘制出第一象限逆圆弧。
第一象限逆弧如图2-1所示。
图2-1 第一象限逆圆弧针对以上设计要求,采用单片机控制步进电机进行逐步逼近插补。
基于逐点比较法的渐开线插补方法

n c u a y i i e u c o di o e r ra ayss a o n e po ai n. n t e e d w em ia c r c spontd o ta c r ng t ro n l i b uti tr lto I h n eus  ̄ lb pr rm a oga t e l e ivout t r a in ag rt o r ai z n l e i epolto lo i n hm n ro ac lto Th e ulss o t a h t r lto i e a d er rc lu a in. er s t h w h tt e i epo ai n l n n i r l s o ivou e h c u a y i a y t o to n h s ag rt s ve co e t n lt ,t e a c r c s e s o c n r la d t i lo i y hm s d pe d b e a d pe  ̄c . i e n a l n r t K e o ds:i v l e i t r lto i tb po tc m pa io eh yw r n out n epo a in po n - y- i o n s n m t od r
开线 , 以便 通 过数 控 的 方法 完 成 齿廓 的加 工 与 测 量 。
本 文 即 是 在 万 能 式 齿 轮 测 量 机 的 改 造 过 程 中 , 据 根
齿轮 测量 时 测 头 控 制 系统 形 成 渐 开 线 的需 要 , 提 而 出 的一种 渐 开线 的插补 方法 。 目前 , 用 的数控 插 补方 法 有 逐 点 比较 法 、 字 常 数
t i pe s p t d f r a d. h s pa r i ute o w r Thei v l t n epoa in f r o u e it r lto o mul s d d e nd t eho o t o r l n a i e uc d a hem t d h w o c nto
逐点比较法圆弧插补

逐点比较法圆弧插补逐点比较法圆弧插补过程与直线插补过程类似,每进给一步也都要完成四个工作节拍:偏差判别、坐标进给、偏差计算、终点判别。
但是,逐点比较法圆弧插补以加工点距圆心的距离大于还是小于圆弧半径来作为偏差判别的依据。
如图5-7所示的圆弧AB,其圆心位于原点O(0,0),半径为R,令加工点的坐标为P(xi,yj),则逐点比较法圆弧插补的偏差判别函数为当F=0时,加工点在圆弧上;当F>0时,加工点在圆弧外;当F<0时,加工点在圆弧内。
同插补直线时一样,将Fi,j=0同Fi,j>0归于一类。
下面以第一象限圆弧为例,分别介绍顺时针圆弧和逆时针圆弧插补时的偏差计算和坐标进给情况。
1.插补第一象限逆圆弧1)当Fi,j≥0时,加工点P(xi,yj)在圆弧上或圆弧外,-X方向进给一个脉冲当量,即向趋近圆弧的圆内方向进给,到达新的加工点Pi-1,j,此时xi -1=xi-1,则新加工点Pi-1,j的偏差判别函数Fi-1,j为(2)当Fi,j<0时,加工点P(xi,yj)在圆弧内,+Y方向进给一个脉冲当量,即向趋近圆弧的圆外方向进给,到达新的加工点Pi,j+1,此时yj+1=yj+1,则新加工点Pi,j+1的偏差判别函数Fi,j+12.插补第一象限顺圆弧1)当Fi,j≥0时,加工点P(xi,yj)在圆弧上或圆弧外,-Y方向进给一个脉冲当量,即向趋近圆弧的圆内方向进给,到达新的加工点Pi,,j-1,此时yj-1=yj-1,则新加工点Pi,j-1的偏差判别函数Fi,j-1为2)当Fi,j<0时,加工点P(xi,yj)在圆弧内,+X方向进给一个脉冲当量,即向趋近圆弧的圆外方向进给,到达新的加工点Pi+1,j,此时xi+1=xi +1,则新加工点Pi+1,j的偏差判别函数为Fi+1,j由以上分析可知,新加工点的偏差是由前一个加工点的偏差Fi,j及前一点的坐标值xi、yj递推出来的,如果按式(5-6)、(5-7)、(5-8)、(5-9)计算偏差,则计算大为简化。
逐点比较法插补原理实验报告

南昌航空大学实验报告年月日课程名称:数控技术实验名称:逐点比较法插补原理班级:姓名:同组人:指导老师评定:签名:一、实验的目的与要求1.目的①掌握逐点比较法插补的原理及过程;②掌握利用计算机高级语言,设计及调试“插补运算轨迹”模拟画图的程序设计方法;③进一步加深对插补运算过程的理解;二、实验仪器计算机一台三、实验原理①逐点比较法插补运算的原理首先粗略的简单介绍一下机床是如何按照规定的图形加工出所需的工件的。
例如,现在要加工一段圆弧(图2-1),起点为A,终点为B,坐标原点就是圆心,Y轴、X轴代表纵、横拖板的方向,圆弧半径为R。
如从A点出发进行加工,设某一时刻加工点在M1,一般来说M1和圆弧有所偏离。
因此,可根据偏离的情况确定下一步加工进给的方向,使下一个加工点尽可能向规定图形(即圆弧)靠拢。
若用R M1表示加工点M1到圆心O的距离,显然,当R M1<R时,表示加工点M1在圆内,这时应控制纵拖板(Y拖板)向圆外进给一步到新加工点M2,由于拖板被步进电机带动,进给一步的长度是固定的(1微米),故新的加工点也不一定正好在圆弧上。
同样,当M2≥R时,表示加工点M2在圆外或圆上,这时应控制横拖板(X拖板)向圆内进给一步。
如此不断重复上述过程,就能加工出所需的圆弧。
图2-1 插补原理可以看出,加工的结果是用折线来代替圆弧,为了清楚起见,在图2-1中,每步的步长画的很大,因此加工出来的折线与所需圆弧的误差较大。
若步长缩小,则误差也跟着缩小,实际加工时,进给步长一般为1微米,故实际误差时很小的。
②计算步骤由上述可以看出,拖板每进给一步都要完成四个工作节拍。
偏差判别:判别偏差符号,确定加工点是在要求图形外还是在图形内。
工作台进给:根据偏差情况,确定控制X坐标(或Y坐标)进给一步,使加工点向规定的图形靠拢,以缩小偏差。
偏差计算:计算进给一步后加工点与要求图形的新偏差,作为下一步偏差判别的依据。
终点判断:判定是否到达终点,如果未达到终点,继续插补,如果以到达终点,停止插补。
逐点比较法第一象限直线插补

逐点比较法第一象限直线插补编程逐点比较法是以折线来逼近给定的轨迹,就是每走一步控制系统都要将加工点与给定的图形轨迹相比较,以决定下一步进给的方向,使之逼近加工轨迹。
逐点比较法以折线来逼近直线或圆弧,其最大的偏差不超过一个最小设定单位。
只要将脉冲当量取得足够小,就可以达到精度要求。
逐点比较插补法在脉冲当量为0.01mm,系统进给速度小于3000mm/min时,能很好的满足要求。
一、逐点比较法直线插补如下图所示设直线 oA 为第一象限的直线,起点为坐标原点o (0 , 0) ,终点坐标为, A( ) , P() 为加工点。
若 P 点正好处在直线 oA 上,由相似三角形关系则有即点在直线 oA 上方 ( 严格为直线 oA 与 y 轴正向所包围的区域 ) ,则有即若 P 点在直线 oA 下方 ( 严格为直线 oA 与 x 轴正向所包围的区域 ) ,则有图 3 — 1 逐点比较法第一象限直线插补即令则有:①如,则点 P 在直线 oA 上,既可向 +x 方向进给一步,也可向 +y 方向进给一步;②如,则点 P 在直线 oA 上方,应向 +x 方向进给一步,以逼近oA直线;③如,则点 P 在直线 oA 下方,应向 +y 方向进给一步,以逼近 oA直线一般将及视为一类情况,即时,都向 +x 方向进给一步。
当两方向所走的步数与终点坐标相等时,停止插补。
这即逐点比较法直线插补的原理。
对第一象限直线 oA 从起点 ( 即坐标原点 ) 出发,当 F时, +x 向走一步;当 F<0 时,y 向走一步。
特点:每一步都需计算偏差,这样的计算比较麻烦。
递推的方法计算偏差:每走一步后新的加工点的偏差用前一点的加工偏差递推出来。
采用递推方法,必须知道开始加工点的偏差,而开始加工点正是直线的起点,故。
下面推导其递推公式。
设在加工点 P( ) 处,,则应沿 +x 方向进给一步,此时新加工点的坐标值为新加工点的偏差为即若在加工点 P( ) 处,,则应沿 +y 方向进给一步,此时新加工点的坐标值为,新加工点的偏差为即综上所述,逐点比较法直线插补每走一步都要完成四个步骤 ( 节拍 ) ,即:(1) 位置判别根据偏差值大于零、等于零、小于零确定当前加工点的位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验内容:逐点比较法直线和圆弧插补2011年9月25日
院系:物科院班级:085 学号:07080518 姓名:陈实
实验目的:
利用逐点比较法的插补原理,编写直角坐标系下的直线、圆弧插补程序,观察屏幕上仿真的运动轨迹,掌握逐点比较法的插补原理。
实验原理:
逐点比较发是基于动点与理想曲线院函数的比较来实现插补的。
逐点比较法的插补过程,每走一步要进行一下四个步骤:
偏差判别:根据偏差值确定刀具相对加工曲线的位置
坐标进给:根据偏差判别的结果,决定控制线沿哪个坐标进给一步以接近曲线
偏差计算:计算新加工店相对曲线的偏差,作为下一步偏差判别的依据
终点判别:判别是否到达终点,未到达终点则返回第一步继续插补,到终点则停止
1、逐点比较法直线插补原理:
逐点比较法在第一象限的直线插补原理如下图所示,其他象限情况可依次类推。
现加工OE直线,如果刀具动点在OE直线上方或在线上,则令刀具沿X正方向进给一步;若刀具动点在OE直线下方,则令刀具沿Y轴正方向进给一步,如此循环直到加工到E点。
判别刀具动点的位置根据偏差函数判别公式:
根据这个公式可以推到出两种不同情况下的地推公式:
对于插补终点的判别,可以采用单向的计数长度法,即:取计数长度M等于Xe、Ye中的大者,并设该坐标方向为计数方向。
插补时,仅在该方向上产生进给时,计数长度减一。
图1的逐点比较法中,工作循环的结束条件就是M减为0.
2、逐点比较法圆弧插补原理:
逐点比较法在第一象限的圆弧插补原理如图所示,其他象限可一次类推:
对于第一象限的逆圆弧,如果动点在圆弧的外侧则令刀具动点沿X轴负方向进给一步。
如果动点在圆弧的内侧则令刀具沿Y轴正方向进给一步。
圆弧的偏差计算公式为:
根据这个公式同样可推导出圆弧插补的两种不同情况下的递推公式:
对于插补终点的判别,同样可以采用单向的计数长度法,不过对于圆弧,计数的方向并不取决于终点坐标中的大者,而是取决于圆弧终点处。
逐点比较法插补中需要编写插入部分流程图:
插入程序:
int
M,Fi=0,Fi0,Fi1,xi,yi,i=0 ,num=-1;
bool Gx; M=Xe+Ye;
moveto(x0,y0);
setcolor(10);
line(x0,y0,x0+Xe*delta,y
0-Ye*delta);xi=x0;yi=y0;
setcolor(12);
while(M>0)
{
getch();
if(Fi>=0)
{
linerel(delta,0); xi=xi+delta;
Fi0=Fi-Ye;
Fi=Fi0; num++;
dis_msg(num,Fi,1,0,Fi0,M
);
}
else
{
linerel(0,-delta);
Fi1=Fi+Xe;
yi=yi-delta;
Fi=Fi1;
num++;
dis_msg(num,Fi,0,1,Fi1,M
);
}
M--;
}
圆弧插补实验程序:
int M,Fi=0,Fi0,Fi1,xi=R,yi=0,i=0,num=0; M=R;
setcolor(10);
moveto(x0,y0);
arc(x0,y0,0,90,R*delta);
setcolor(12);
moveto(x0+xi*delta,y0);
while(M>0)
{
getch();
if(Fi>=0)
{
linerel(-delta,0);
Fi0=Fi-2*xi+1;
Fi=Fi0;
xi=xi--;
M--;
dis_msg(num,Fi,1,0,Fi0,M);
}
else
{
linerel(0,-delta);
Fi1=Fi+2*yi+1;
Fi=Fi1;
yi=yi++;
dis_msg(num,Fi,0,1,Fi1,M);
}
num=num++;
}
实验中所遇问题分析:
1、圆弧插补:Fi0与Fi1的计算,xi,yi计算先写入为:
Fi0=Fi-2*xi*delta+1;Fi1=Fi+2*yi*delta+1;
xi=xi-delta;yi=yi+delta;
但是,实行以后出现的结果不正确,如图,分析:
2、关于计数长度M:
在直线插补中使用的是双向计数长度 M=xe+ye,插补路线会比较准确。
在圆弧插补中使用的是单向计数长度 M=R,在x方向计算,则出现如实验结果所示路径,但在y方向计算步骤,发现结果离终点在x方向有1个单位长度的距离。
3、显示步骤num:
在显示步骤的函数dis_msg中,num,因为dis_msg函数定义中,显示num+1,所以,num的改变应放在程序最后(如圆弧插补中),或者从-1开始,才能放在
dis_msg函数之前(如直线插补中)。
否则会出现从第二行开始显示步骤的现象。