资源描述
莱芜职业技术学院课程设计(论文)
1插补算法
1.1 插补方法
脉冲增量插补算法
脉冲增量查补(又称行程标量插补)算法是通过向各个运动轴分配脉冲,控制机床坐标轴相互协调运动,从而加工出一定轮廓形状的算法。这类插补算法的特点是每次插补的结果仅产生一个单位的行程增量,以单位脉冲的形式输出给步进电机。因此,这类插补被称为脉冲增量插补。
该插补运算比较简单,仅仅通过几次的加法和移位操作就可以完成插补运算。处理速度比较快。该插补一般常见的具体算法有:数字脉冲乘法器法、逐点比较法、最小偏差法、数字积分法、比较积分法、目标点比较法、但不追踪法等。
本次的课程设计我主要分析这其中的一种算法——逐点比较法,用以概括和了解算法的基本运算和对其的了解。而在进一步的重点分析中,本次的算法分析我则是分析其第一象限的直线插补运算。
数据采样插补算法
数据采样插补(又称时间标量插补)算法是根据数控加工程序编写的进给速度,先将零件轮廓曲线按插补周期分割为一系列首尾相连的微小直线段,然后输入这些微小直线段对应的位置增量数据,用以控制伺服系统实现坐标轴进给。与上一插补算法相比,其结果不再是单个脉冲,而是位置增量的数字量。这类插补算法适用于以直流或交流伺服电动机作为执行软件的闭环或半闭环数控系统。
1.2 插补算法——逐点比较法
1.2.1 原理
逐点比较法的基本原理是,在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件之间的相对位置,并根据比较结果决定下一步的进给方向,是刀具沿着坐标轴向减小偏差的方向进给,且仅有一个方向的进给。
逐点比较法既可实现直线插补,也可实现圆弧插补。逐点比较法插补过程中每进给一步都要经过以下四个节拍:
偏差判别;坐标进给;偏差计算;终点判别。其过程如图1所示。
(1) 偏差判别 根据偏差值确定刀具位置是在直线的上方
(或线上),还是在直线的下方。
(2) 坐标进给 根据判别的结果,决定控制哪个坐标(X或Y) 图1
移动一步。
(3) 偏差运算 计算出刀具移动后的新偏差,提供给下一步作判别依据。根据上二式来计算新加工点的偏差,使运算大大简化。但是每一新加工点的偏差是由前一点偏差Fi推算出来的,并且一直递推下去,这样就要知道开始加工时那一点的偏差是多少。当开始加工时,我们是以人工方式将刀具移到加工起点,即所谓“对刀”,这一点当然没有偏差,所以开始加工点的 F0=0。
(4) 终点判别 在计算偏差的同时,还要进行一次终点比较,以确定是否到达了终点。若已经到达,就不再进行运算,并发出停机或转换新程序段的信号。
1.2.2 第一象限逐点比较法直线插补
图 2
设在第一象限上有一直线,起
点在原点O( 0, 0 )上,终点为E(Xe,
Ye),另有一动点N( Xi ,Yi ),如图2
所示,且各个的坐标点都是整数单位。
当动点N刚好在直线上时,则:
即 XeYi-XiYe=0
当动点Nˊ在直线下方ON时,则:
直线的大于直线的斜率,从而有:
即 XeYi-XiYe0
当动点N在直线的上方N"处时,直线的大于直线的斜率,从而有:
即 XeYi-XiYe0
由上述关系可以看出,表达式(XeYi-XiYe)的符号就能反映出动点N相对直线的偏离情况。为此,取偏差函数F为: F=XeYi-XiYe
根据上述过程,可以概括出如下关系:
当F=0时,动点N(Xi,Yi)正好处在直线上;
当F0时,动点N(Xi,Yi)落在直线上方区域;
当F0时,动点N(Xi,Yi)落在直线下方区域。
\
2 程序
开始
2.1 程序流程
初始化Xe,Ye,F0=0,∑=|Xe|+|Ye|
F≥0?
Y N
+X轴进给
+Y轴进给
·
F=F+XeX
F=F—Ye
∑-1=0?
N
Y
结束
图 4
2.2 程序代码(基于c语言的编程)
#include "conio.h"
#include "graphics.h"
#include "process.h"
#define Ni_circle 0
#define Shun_circle 1
void init_graph();
void draw_Base_circle();
void draw_cabu_circle();
void close_graph();
void acrroods();
static float x0,y0;
void line_cabu(), draw_line(),draw_line_cabu();
void line_cabu()
{
int i;
init_graph();
sleep(1);
for(i=0;i<2;i++)
{
line(0,120,300,120); outtextxy(310,120,"Z");
line(100,10,100,300); outtextxy(110,300,"X");
lineto(Xm,Ym);
gotoxy(55,8); printf("X%3.0f Y0 Z%3.0f",Xm-100,Ym-120);
delay(1100);
}
3 分析总结
通过此次课程设计,使我更加扎实的掌握了有关数控插补和c语言编程方面的知识,在c语言编程过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,从中学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
参考文献
[1]汪木兰 数控原理与系统 机械工业出版社 2010.1
[2]伍胡平 周亚军 《组合机床与自动化加工技术》 2008 第9期
[3]周虹 《组合机床与自动化加工技术》 2004 第3期
[4]谭浩强 C语言程序设计 第三版 清华大学出版社 2005.7
6
展开阅读全文