第一象限直线插补2
沈阳航空航天大学北方科技学院
课程设计说明书
课设题目 第一象限直线插补2
专 业 自动化 班 级 学 号
学生姓名 指导教师 日 期 2014年7月11日
沈阳航空航天大学北方科技学院
课 程 设 计 任 务 书
教 研 室 自控教研室 专业 自动化 班级 学号 姓名课程设计时间: 2014 年 6 月 23 日 至 2014 年 7 月 11日 课程设计的内容及要求:
根据逐点比较法插补原理,按照图1中直线的方向完成从第一象限内任意起点A(x,y)到坐标原点O(0,0)直线插补的matlab仿真。
程序的具体编写要求包括: 1. 要求用input()函数读取起点
A(x,y);
课程设计题目: 第一象限直线插补2
Y
O(0,图1 第一象限待加工直线的示意图
2. 要求用input()函数读取脉冲当量(步长)。坐标当量可设为1,则步长取坐标当
量的0.01-1倍;
3. 用print()函数画出具体走步轨迹图。
4. 推导出用逐点比较法插补绘制出下面曲线的算法
5. 利用matlab语言编写.m文件,实现第一象限直线插补的仿真; 6. 课程设计报告中要给出算法的程序流程图;
7. 课程设计报告中要比较分析不同步长时直线插补的精度; 8. 按照课程设计要求撰写课程设计报告。
指导教师 年 月 日
沈阳航空航天大学北方科技学院
课 程 设 计 成 绩 评 定 单
课 程 名 称 计算机控制技术课程设计 课程设计题目 第一象限直线插补2 专业 自动化 班级 学号 姓名 答辩日期 2014年 7月 11日 指导教师(答辩组)评语:
课程设计成绩
指导教师(答辩组)签字 月
目 录
0.前言 ............................................................................................................................................. 1 1. 第一象限直线插补基本理论 ................................................................................................... 1 2. 方案设计 ................................................................................................................................... 2 3. 工作原理 ................................................................................................................................... 2
3.1 逐点比较法直线插补流程图 .......................................................................................... 2 3.2推导出用逐点比较法插补绘制出下面曲线的算法 ....................................................... 3 3.3算法的程序流程图 ........................................................................................................... 5 4. 软件编程 ................................................................................................................................... 6
4.1基于MATLAB的插补程序 ............................................................................................ 6 4.2 MATLAB程序运行得到的插补图形及其轨迹图 ......................................................... 7 5. 结果分析 ................................................................................................................................... 9 参考文献 ........................................................................................................................................ 9 课设体会 ...................................................................................................................................... 10
第一象限直线插补2
摘要:根据逐点比较法插补原理,按方向完成从第一象限内任意起点A(x,y)到坐标原点
O(0,0)直线插补的matlab仿真。程序的具体编写要求包括:要求用input()函数读取起点A(x,y),脉冲当量(步长)。坐标当量可设为1,则步长取坐标当量的0.01-1倍;并用print()
函数画出具体走步轨迹图。然后推导出用逐点比较法插补绘制出下面曲线的算法,利用
matlab语言编写.m文件,实现第一象限直线插补的仿真。 关键词:逐点比较法插补原理 第一象限 matlab仿真 直线插补
0.前言
在数控技术的插补原理中, 逐点比较法是数控机床插补器最常用的一种插补算法。该插补算法比较成熟, 在我国的数控机床尤其是早期的线切割数控机床等方面获得了成功应用, 并取得了很大的经济和社会效益。逐点比较法插补既可作直线插补, 又可作圆弧插补。其主要特点是: 控制算法简单、直观, 插补误差小于一个脉冲当量, 输出脉冲均匀, 且输出脉冲的速度变化小, 调节方便, 但不易实现两坐标以上的插补。因此, 在两坐标联动的数控机床中应用较普遍。用逐点比较法插补原理控制刀具相对于工件的运动轨迹, 在刀具加工工件的过程中, 刀具每走一步, 都要将加工点的位置与所要求的加工轨迹的位置相比较, 以确定刀具下一步进给的方向。具体说来,即刀具每走一步, 都要完成位置判别、坐标进给、偏差计算、终点判别等四个步骤。
1. 第一象限直线插补基本理论
第一象限直线插补主要原理是逐点比较法。逐点比较法是以折线来逼近给定的轨迹,就是每走一步控制系统都要将加工点与给定的图形轨迹相比较,以决定下一步进给的方向,使之逼近加工轨迹。逐点比较法以折线来逼近直线或圆弧,其最大的偏差不超过一个最小设定单位。只要将脉冲当量取得足够小,就可以达到精度要求。逐点比较插补法在脉冲当量为0.01mm,系统进给速度小于3000mm/min时,能很好的满足要求。下面的设计将围绕此部分内容展开,是此部分内容的实现。
2. 方案设计
根据逐点比较法插补原理,按照图1中直线的方向完成从第一象限内任意起点A(x,y)到坐标原点O(0,0)直线插补的matlab仿真。
程序的具体编写要求包括: 1. 要求用input()函数读取起点
A(x,y);
Y
O(0,2. 要求用input()函数读取脉冲当量(步长)。坐标当量可设为1,则步长取坐标当量的0.01-1倍;
3. 用print()函数画出具体走步轨迹图。
图1 第一象限待加工直线的示意图
4. 推导出用逐点比较法插补绘制出下面曲线的算法
5. 利用matlab语言编写.m文件,实现第一象限直线插补的仿真。 3. 工作原理
逐点比较法的基本原理是,在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给(始终只有一个方向)。 3.1 逐点比较法直线插补流程图
一般地,逐点比较法插补过程有四个处理节拍,如图2; (1)偏差判别。判别刀具当前位置相对于给定轮廓的偏差状况;
(2)坐标进给。根据偏差状况,控制相应坐标轴进给一步,使加工点向被加工轮廓靠拢; (3)重新计算偏差。刀具进给一步后,坐标点位置发生了变化,应按偏差计算公式计算新位置的偏差值;
(4)终点判别。若已经插补到终点,则返回监控,否则重复以上过程。
图2 逐点比较法插补直线流程图
3.2推导出用逐点比较法插补绘制出下面曲线的算法
如下图3所示设直线AO为第一象限的直线,终点为坐标原点O(0,0) ,始点坐标为, A( xe,ye) , P(xi,yi) 为加工点。
若 P 点正好处在直线 AO 上,由相似三角形关系则有 即:
xiye-xeyi=0 (3.2.2)
yiye
= (3.2.1) xixe
图3 第一象限的加工的示意图
点在直线 AO 上方 ( 严格为直线 AO 与 y 轴正向所包围的区域 ) ,则有
yiye
> xixe
即:
xiye-xeyi>0
若 P 点在直线 AO 下方 ( 严格为直线 AO 与 x 轴正向所包围的区域 ) ,则有逐点比较法第一象限直线插补 .
yiye
> xixe
即:
xiye-xeyi>0
令 Fe,i=xiye-xeyi则有:
①如 Fe,i=0,则点P在直线 AO 上,既可向 +x 方向进给一步,也可向 +y 方向进给一步;
②如 Fe,i>0,则点P在直线 AO 上方,应向 +x 方向进给一步,以逼近OA直线; ③如 Fe,i0及 Fe,i=0视为一类情况,即 Fe,i≥0时,都向+x方向进给一步。 当两方向所走的步数与终点坐标相等时,停止插补。这即逐点比较法直线插补的原理。
对第一象限直线AO从起点出发,当 F≥0时, +x 向走一步;当 F
特点:每一步都需计算偏差,这样的计算比较麻烦。
表1 四个象限直线偏差计算公式和进给方向
3.3算法的程序流程图
图4 算法的程序流程图
4. 软件编程
利用matlab语言编写.m文件,实现第一象限直线插补的仿真。
4.1基于MATLAB的插补程序
X0 = input('请输入起点横坐标 X\n X0 = '); Y0 = input('请输入起点纵坐标 Y\n Y0 = '); Xe = input('请输入终点横坐标 X\n Xe = '); Ye = input('请输入终点纵坐标 Y\n Ye = '); h = input('输入步长\n h = '); x=[X0,Xe]; y=[Y0,Ye]; plot(x,y); hold on;
Xe=Xe-X0; %x轴 起点到终点长度 Ye=Ye-Y0; %y轴起点到终点长度 NXY= (abs(Xe)+abs(Ye))/h; %进给总步数 step=0; Fm=0; Xm=X0; Ym=Y0;
if(Xe>0&Ye>=0) XOY=1; end
while (step=0)
x1=[Xm,Xm-h]; %变化后x坐标 y1=[Ym,Ym]; %变化后y坐标 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;
4.2 MATLAB程序运行得到的插补图形及其轨迹图
1.始点为(5,6),终点为(0,0),步长为1的轨迹图,如图5所示;
一象限直线插补
Y
X
图5 轨迹图1
2.始点为(5,6),终点为(0,0),步长为0.5的轨迹图,如图6所示;
一象限直线插补
6
5
4
Y
3
2
1
00
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
X
图6 轨迹图2
3.始点为(5,6),终点为(0,0),步长为0.8的轨迹图,如图7所示。
一象限直线插补
Y
X
图7 轨迹图3
5. 结果分析
根据方案设计结果,比较分析不同步长时直线插补的精度结果为进给步长小,插补精度高。
参考文献
[1] 张德丰 杨文茵 《MATLAB仿真技术与应用》 清华大学出版社 2012 年
[2] 于海生 丁军航 潘松峰 吴贺荣 《微型计算机控制技术》 第二版 清华大学出版社 1999年
课设体会
通过本次做《第一象限直线插补》课程设计,让我更深一步了解了逐点比较法插补原理,也让我了解了关于matlab仿真软件的使用技巧。要完成《第一象限直线插补》课程设计,不但要有一定的知识基础,也要有合作精神,从中不断的向同学那吸取经验。实验初期,由于对整个课程设计还不能从整体把握,只能从课本上的零碎知识点出发,结合查阅到的资料提出解决方案。在对程序编程上存在很多疑难问题,通过各种尝试之后方才将问题很好的解决。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
[2014年7月 11日完成]