插补算法及步进电机
基于单片机的步进电机控制系统,实现DDA插补算法的程序!

基于单片机的步进电机控制系统,实现DDA插补算法的程序!本程序只是一个最简单的开始,希望和大家一起学习进步!同时祝大家中秋节快乐!今天9.9日,我刚调试出来的程序,第一时间按和大家分享!硬件:AT89C51 ,35BY48S053步进电机,keilC下编译//-------------------------//实现插补算法//作者:jc//----------------------------#include <reg51.h>#include "math.h"#define uchar unsigned char#define uint unsigned intuchar code tab[]={0x03,0x09,0x0c,0x06};//定义延时函数,延时t msvoid delay(uint t){uchar i;for(;t>0;t--)for(i=115;i>0;i--);}//定义X方向,步进电机运动void Xstep(void){uchar i;for(i=0;i<4;i++){P0=tab[i];delay(100);// P1=0x01;}}void Ystep(void){uchar j;for(j=4;j>0;j--){P1=tab[j];// P0=0xff;delay(100);}}//定时计数器T0初始化void T0_init(){TMOD=0x01; //定时器0,工作已方式0TH0=(65536-10000)/256; //重装初值TL0= (65536-10000)%256; //重装初值TR0=1; //启动T1ET0=1; //打开T1中断EA=1; //开总中断}//中断服务函数void ser()interrupt 1{ //uchar i;TH0=(65536-10000)/256; //装初值TL0= (65536-10000)%256; //装初值}void main(){ uchar j,a;uchar Fx=0;uchar X=4; //定义X,y的坐标char k;uchar N;T0_init();N = 12; //N由寄存器位数决定,由于步进电机输出四个脉冲转动1/12圈,因此次数设定N=12,//j每循环一次,步进电机输转动while(N--){for(j=0;j<8;j++){k = Fx + X -8; //判断步进电机是否需要前进if(k<0){Fx = abs(k);a = a;Ystep(); //小于0的时候向Y向前进一步delay(100);}else{Fx = k;a = a+1;Xstep();delay(100);}}}while(1);}//---------------------//实验结果:步进电机转动4周,(和N的数值有关)//深入研究插补算法的话,可以进行更仔细的设置,//程序仅仅是一个开始,在以后的一个月中,我会更深一步的研究!!//-------------------------。
步进电机-插补算法

* @retval : None
*/
void SVC_Handler(void)
{
}
/**
* @brief This function handles Debug Monitor exception.
* @param None
* @retval : None
*/
void DebugMon_Handler(void)
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
//TIM_Cmd(TIM6, DISABLE);
//time=a*65536/+counter/;
//printf("%d \n",a);
//printf("%d \n",counter);
//printf("%f us\n",time);
TIM_ClearITPendingBit(TIM6 , TIM_FLAG_Update);
}
}
//numy++;//走的步数
ty=0;
TIM_ClearITPendingBit(TIM2,TIM_IT_CC4);
}
}
void TIM6_IRQHandler(void)
{
if(TIM_GetITStatus(TIM6, TIM_IT_Update)== SET)
插补原理

插补原理:在实际加工中,被加工工件轮廓形状千差万别,严格说来,为了满足几何尺寸精度要求,刀具中心轨迹应该准确地依照工件轮廓形状来生成,对于简单曲线数控系统可以比较容易实现,但对于较复杂形状,若直接生成会使算法变得很复杂,计算机工作量也相应地大大增加,因此,实际应用中,常采用一小段直线或圆弧去进行拟合就可满足精度要求(也有需要抛物线和高次曲线拟合情况),这种拟合方法就是“插补”,实质上插补就是数据密化过程。
插补任务是根据进给速度要求,在轮廓起点和终点之间计算出若干个中间点坐标值,每个中间点计算所需时间直接影响系统控制速度,而插补中间点坐标值计算精度又影响到数控系统控制精度,因此,插补算法是整个数控系统控制核心。
插补算法经过几十年发展,不断成熟,种类很多。
一般说来,从产生数学模型来分,主要有直线插补、二次曲线插补等;从插补计算输出数值形式来分,主要有脉冲增量插补(也称为基准脉冲插补)和数据采样插补[26]。
脉冲增量插补和数据采样插补都有个自特点,本文根据应用场合不同分别开发出了脉冲增量插补和数据采样插补。
1数字积分插补是脉冲增量插补一种。
下面将首先阐述一下脉冲增量插补工作原理。
2.脉冲增量插补是行程标量插补,每次插补结束产生一个行程增量,以脉冲方式输出。
这种插补算法主要应用在开环数控系统中,在插补计算过程中不断向各坐标轴发出互相协调进给脉冲,驱动电机运动。
一个脉冲所产生坐标轴移动量叫做脉冲当量。
脉冲当量是脉冲分配基本单位,按机床设计加工精度选定,普通精度机床一般取脉冲当量为:0.01mm,较精密机床取1或0.5 。
采用脉冲增量插补算法数控系统,其坐标轴进给速度主要受插补程序运行时间限制,一般为1~3m/min。
脉冲增量插补主要有逐点比较法、数据积分插补法等。
逐点比较法最初称为区域判别法,或代数运算法,或醉步式近似法。
这种方法原理是:计算机在控制加工过程中,能逐点地计算和判别加工偏差,以控制坐标进给,按规定图形加工出所需要工件,用步进电机或电液脉冲马达拖动机床,其进给方式是步进式,插补器控制机床。
步进电机如何走圆(俗称插补)

根据X,Y距离给定脉冲频率,争取相邻的点X,Y同时到达
步进电机如何走圆也就是俗称插补功能利用脉冲0脉冲1驱动xy电机首先用cad软件画圆根据精度要求等分这里暂时分为36等分计算每一等分坐标把相邻坐标值标出距离换算成单位脉冲数编写plc程序根据xy距离给定脉冲频率争取相邻的点xy同时到达
步进电机如脉冲1,驱动X,Y电机
6单元其它插补法插补原理

34
56
Q
78 x
如图所示
6单元 其它插补法
一 最小偏差法插补
4 圆弧插补:
(2)偏差判别公式:NR1
若设加工点M(xM,yM)的坐标xM>yM,此时进给方向为△y和对角
线方向(即-△x,+△y同时进给方向)
若向正y方向进给一步, FM (y) FM 2yM 1
若向对角方向进给一步,FM (x, y) FM 2xM 2yM 2
y
P 8
7
x=y
对于圆弧而言,与逐点比较法一样,仍 6
把圆弧中心作为坐标原点。设若加工第Ⅰ象限 5
QP圆弧,半径为R,方向由Q~P。
4
3
进给方式为:当x>y时,进给方向为y方 2
向和对角线方向(即x和y同时进给的方向); 1
当x<y时,进给方向为时x方向和对角线方向 O
(即x和y同时进给的方向)。
12
F(x) F ye F(x, y) F xe ye f F(x) F(x, y) 2F xe 2ye
Fm ym xe ye xm f m 2Fm xe 2ye
fn 0, x 进给 f m1 f m 2ye
fn 0 对角进给 f m1 f m 2xe 2ye
本单元学习目标
理解最小偏差法插补原理 了解目标点跟踪法插补原理 了解高次曲线插补原理 了解螺纹加工算法原理
6单元 其它插补法
一 最小偏差法插补(P56)
1. 原理: 最小偏差法是在逐点比较法基础上发展的新的插补方法,是在进
给之前,先判定一下向x 坐标方向或y坐标方向进给一步的偏差和向对 角线(x 和y同时进给一步的方向)进给一步的偏差,选择偏差小的那 个方向进给。
2. 特点: (1)插补精度高:插补误差小于或等于1/2个脉冲。 (2)对多坐标也选用。 (3)在加工过程中,总有一个方向的步进电机速度是恒定的。移动
步进驱动系统与数控直线插补程序的设计说明书

步进驱动系统与数控直线插补程序设计说明书第一章进给运动驱动系统设计1步进电机的选择和齿轮传动比的计算系统总体设计非常重要,是对一部机器的总体布局和全局的安排。
总体设计是否合理将对后面几步的设计产生重大影响,也将影响机器的尺寸大小、性能、功能和设计质量。
所以,在总体设计时应多花时间、考虑清楚,以减少返工现象。
当伺服系统的负载不大、精度要求不高时,可采用开环控制。
一般来讲,开环伺服系统的稳定性不成问题,设计时主要考虑精度方面的要求,通过合理的结构参数设计,使系统具有良好的动态响应性能。
1.1系统方案设计在机电一体化产品中,典型的开环控制位置伺服系统是简易数控机床(本实验室自制数控平台)及X-Y 数控工作台等,其结构原理如图1-1 所示。
各种开环伺服系统在结构原理上大同小异,其方案设计实质上就是在图1-1 的基础上选择和确定各构成环节的具体实现方案。
计算接口功放执行机械机械机或传动执行电路电路元件PLC 机构机构图 1-1开环伺服系统结构原理框图1、执行元件的选择选择执行元件时应综合考虑负载能力、调速范围、运行精度、可控性、可靠性及体积、成本等多方面要求。
开环系统中可采用步进电机、电液脉冲马达等作为执行元件,其中步进电机应用最为广泛,一般情况下优先选用步进电机,当其负载能力不够时,再考虑选用电液脉冲马达等。
2、传动机构方案的选择传动机构实质上是执行元件与执行机构以输出旋转运动和转矩为主,而执行机构则多为直线运动。
用于将旋转运动转换为直线运动的传动机构主要有齿轮齿条和丝杠螺母等。
前者可获得较大的传动比和较高的传动效率,所能传递的力也较大,但高精度的齿轮齿条制造困难,且为消除传动间隙而结构复杂,后者因结构简单、制造容易而广泛使用。
在步进电机与丝杠之间运动的传递有多种方式,可将步进电机与丝杠通过联轴器直接连接,其优点是结构简单,可获得较高的速度,但对步进电机的负载能力要求较高;还可以通过减速器连接丝杠,通过减速比的选择配凑脉冲当量、扭矩和惯量;当电动机与丝杠中心距较大时,可采用同步齿形带传动。
步进模式数控系统插补算法的研究及实现

2 0 1 3年 8月
机 械 设 计 与 制 造
Ma c h i n e r y De s i g n & Ma n u f a c t u r e 1 9 3
步进模 式数控 系统插补算法的研 究及 实现
马西沛 , 一 , 曹胜彬 . 一 , 贾会欣 , 王士涛
( 1 . S c h o o l o f Me c h a n i c a l E n g i n e e i r n g ,S h a n g h a i D i a n j i U n i v e r s i t y ,S h a n g h a i 2 0 0 2 4 0 ,C h i n a ; 2 . S c h o o l o f Me c h a n i c a l
S h a n g h a i 2 0 0 2 3 3,C h i n a; 4 . S h a n g h a i S u n t r i x C o mp a n y L t d,S h a n g h a i 2 0 43 0 6 ,C h i n a )
Ab s t r a c t : A c c o r d i n g t o t h e p r o b l e m s o ft r a d i t i o n a l N C s y s t e m b a s e d o n s i n g l e c h i p m i c r o c o m p u t e r c o n t r o l , i t p u t s f o r w a r d a n e w i n t e r p o l a t on i a l g o r i t h mf o r t h e s t e p p e r mo d e l NC s y s t e m . I n t e r p o l t a on i l a g o r i t h m i s d i v i d e d i n t o d t a a p r e - p r o c e s s i n g , i n t e r p o l ti a o n o p e r ti a o n o n D S P ,d t a a d o w n l o d ,r a e a l i z ti a o n fm o o v e m e n t o n S C M, e t c .T h e n e w i n t e po r l a t o i n a l or g i t h m s i a n a l y z e d nd a v a l i d te a d b y m u l t i - C P U m o t on i c o n t r o l c r a d a n d c o m p u t e r¥ o j  ̄ w r a e .T he n e w s y s t e m e f f e c t i v e l y s o l v e s t h e
插补算法及步进电机

计算机
步进电机 驱动电路
步进电机
工作台
图5-4 开环数字控制
开环数字控制结构简单,并且可靠性高、成本低、易于调 整和维护等,应用最为广泛。由于采用了步进电机作为驱 动元件,使得系统的可控性变得更加灵活,更易于实现各 种插补运算和运动轨迹控制。
5.2 逐点比较法插补原理
所谓逐点比较法插补,就是刀具或绘图笔每走一步都要和 给定轨迹上的坐标值进行比较,看这点在给定轨迹的上方 或下方,或是给定轨迹的里面或外面,从而决定下一步的 进给方向。 逐点比较法是以阶梯折线来逼近直线或圆弧等曲线的,它 与规定的加工直线或圆弧之间的最大误差为一个脉冲当量, 因此只要把脉冲当量(每走一步的距离即步长)取得足够 小,就可达到加工精度的要求。
5.1.2 数字控制方式
数控系统按控制方式来分类,可以分为点位控制、直线切 削控制和轮廓切削控制,以上三种控制方式均是运动的轨 迹控制。 1.点位控制 在一个点位控制系统中,只要求控制刀具行程终点的坐标 值,即工件加工点准确定位,至于刀具从一个加工点移到 下一个加工点走什么路径、移动的速度、沿哪个方向都无 需规定,并在移动过程中不做任何加工,只是在准确到达 指定位置后才开始加工。在机床加工行业,钻床、冲床、 镗床采用这类控制。 2.直线切削控制 这种控制也主要是控制行程的终点坐标值,不过还要求刀 具相对于工件平行某一直角坐标轴作直线运动,且在运动 过程中进行切削加工。 需要这类控制的有铣床、车床、磨床、加工中心等。
在图5-6中,当F≥0时,沿+x方向走一步,到达点 ( x 1, y) , 令新的加工偏差为 F ' ,则由式(5-4)可得
F ' yxe ye ( x 1) yxe ye x ye F ye
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.轮廓的切削控制 这类控制的特点是能够控制刀具沿工件轮廓曲线不断地运 动,并在运动过程中将工件加工成某一形状。这种方式是 借助于插补器进行的,插补器根据加工的工件轮廓向每一 坐标轴分配速度指令,以获得图纸坐标点之间的中间点。 这类控制用于铣床、车床、磨床、齿轮加工机床等。
计算机数控系统主要分为开环数字控制和闭环数字控制两 大类,由于它们的控制原理不同,因此其系统结构差异很 大。 1.闭环数字控制 闭环数字控制的结构图如图5-3所示。这种结构的执行机 构多采用直流电压(小惯量伺服电机和宽调速力矩电机) 作为驱动元件,反馈测量元件采用光电编码器(码盘)、 光栅、感应同步器等,该控制方式主要用于大型精密加工 机床,但其结构复杂,难于调整和维护,一些常规的数控 系统很少采用。
第一象限逐点比较法直线插补流程图,如图5-8所示。初 始化主要包括读入终点坐标值 xe , ye ,求出计数长 度 l xe ye ,设置初始偏差值 F0 0 等。
开始
初始化 xe、ye、F0=0 n = ye+ xe F≥0 ?
N
Y +x走一步 F←F-ye
λ ←λ -1 N
+y走一步
F8 F7 xe 4 F9 F8 ye 0
F 1 4 0 F2 1 0 F3 3 0 F4 2 0 F5 2 0 F6 3 0 F7 1 0 F8 4 0
* +Δx表示向+x方向进给一步;+Δy表示向+y方向进给一步。
第5章 数字控制技术
5.1 数字控制基础
数字控制主要用于数控机床、线切割机、焊接机、气割机 以及低速小型数字绘图仪等。数控机床可以加工形状复杂 的零件,具有加工精度高、生产效率高、便于改变加工零 件品种等众多优点,是机床实现自动化的发展方向。对于 不同的设备,其控制系统有所不同,但基本的数字控制原 理是相同的。
式(5-5)、式(5-6)是简化后的偏差计算公式。走完+x后, 用式(5-5);走完+y后,用式(5-6)。即在原偏差值上减 ye xe 一个 或加一个 ,用以求得新的偏差值,作为下一步进给 方向的判别依据。这种利用前一加工点的偏差,递推出新的 加工点的偏差的方法,称为递推法。 刀具到达终点时自动停止进给。最常用的终点判别方法是设 置一个长度计数器,其计数长度为两个方向进给步数之和。 无论x轴还是y轴,每发一个进给脉冲,计数长度减1,当计 数长度减到零时,表示到达终点,插补结束。
y / x ye / xe
可改写为:
yxe ye x
得
yxe ye x 0
(5-1)
② P点在直线OA上方,OP的斜率大于OA,有
y / x ye / xe
即
yxe ye x
可改写为:
yxe ye x 0
(5-2)
③ P点在直线OA下方,则有
y / x ye / xe
l=9
l=8 l=7 l=6 l=5 l=4 l=3 l=2 l=1 l=0
F 1 F 0 ye 4 F2 F 1 xe 1 F3 F2 ye 3 F4 F3 xe 2 F5 F4 ye 2 F6 F5 xe 3 F7 F6 ye 1
xe x0 Nx x
ye y0 Ny y
y (xe, ye)
(x0, y0) O 图5-2 用折线逼近直线段 x
如果把 x和 y 约定为坐标增量值,即 X 0 , Y0 , X e , Ye 均是以 脉冲当量定义的坐标值,则
Nx X e X 0 N y Ye Y0
在图5-6中,当F≥0时,沿+x方向走一步,到达点 ( x 1, y) , 令新的加工偏差为 F ' ,则由式(5-4)可得
F ' yxe ye ( x 1) yxe ye x ye F ye
(5-5)
当F<0时,刀具向+y方向进给一步,到达点 ( x, y 1) ,令新 的加工偏差为 F ' ,同样可得 F ' ( y 1) xe ye x yxe xe ye x F xe (5-6)
F<0
+Δy +Δy -Δy -Δy
F F xe
四象限直线插补流程图如图5-10所示。
Ai插补开始 F0= 0, v=| ye|+| xe|
F≥0 ? Y
N
xe向走一步,F←F-| ye|
l←l-1 N l=0 ? Y 结束
ye向走一步,F←F-| xe|
图5-10 四象限直线插补流程图
5.1.3 数字控制系统
计算机
D/A
伺服电机 驱动电路
伺服 电机
工作台
测量元件
图5-3 闭环数字控制
2.开环数字控制 开环数字控制的结构如图5-4所示,这种控制结构没有反 馈检测元件,工作台由步进电机驱动。步进电机接收步进 电机驱动电路发来的指令脉冲作相应的旋转,把刀具移动 到与指令脉冲相当的位置,至于刀具是否到达了指令脉冲 规定的位置,那是不受任何检查的,因此这种控制的可靠 性和精度基本上由步进电机和传动装置来决定。
5.1.2 数字控制方式
数控系统按控制方式来分类,可以分为点位控制、直线切 削控制和轮廓切削控制,以上三种控制方式均是运动的轨 迹控制。 1.点位控制 在一个点位控制系统中,只要求控制刀具行程终点的坐标 值,即工件加工点准确定位,至于刀具从一个加工点移到 下一个加工点走什么路径、移动的速度、沿哪个方向都无 需规定,并在移动过程中不做任何加工,只是在准确到达 指定位置后才开始加工。在机床加工行业,钻床、冲床、 镗床采用这类控制。 2.直线切削控制 这种控制也主要是控制行程的终点坐标值,不过还要求刀 具相对于工件平行某一直角坐标轴作直线运动,且在运动 过程中进行切削加工。 需要这类控制的有铣床、车床、磨床、加工中心等。
四种线型的偏差计算公式是相同的,差别在于进给方向不 同。流程图中的“沿xe方向走一步”或“沿ye方向走一 步”,因不同线型的xe 、 ye位于不同象限,因而实际的进 给方向是不相同的。因此,对任一直线在插补前,应根据 xe 、 ye的符号判断该线型属于哪一象限。象限判断程序的 流程图如图5-11所示。
5.1.1 数字控制的基本原理
平面曲线图形如图5-1所示,下面分析如何利用计算机在 绘图仪或加工装置上重现,下面分四步。
y
c
d a
b
x 图5-1 曲线分段
O
1)将此曲线分割成若干线段,可以是直线段,也可是曲线 bc 和弧线 cd ,然后把a,b,c,d 段,把该图分割成3段,即 ab, 四点坐标记下来并送给计算机。 2)当给定a,b,c,d各点坐标和x,y值之后,如何确定各坐标值 之间的中间值?求得这些中间值的数值计算方法称为插值 或插补。插补计算的宗旨是通过给定的基点,以一定的速 度连续定出一系列中间点,而这些中间点的坐标值是以一 定的精度逼近给定的线段的。
y A2
F >0
F >0
A1
F<0
O A
F<0 x
F<0
F<0
B
A3 F >0 F >0 A4
图5-9 四象限进给方向
四象限的进给脉冲和偏差计算如表5-2所示。
表5-2 四象限的进给脉冲和偏差计算 偏差判别
A1 进给 A2 A3 A4 偏差计算
F≥0
+Δx -Δx -Δx +Δx
F ' F ye
即 可改写为
yxe ye x yxe ye x 0
(5-3) (5-4)
现用F来表示P点的偏差量,定义 F yxe ye x
则当 F=0时 P点位于直线OA上; F>0时 P点位于直线OA的上方; F<0时 P点位于直线OA的下方。 这样,根据F值的大小,就可以控制刀具的进给方向,如 图5-6所示。
y
F >0
A
F=0
F<0
O 图5-6 进给方向的规定
x
当F=0时,可以向 x 方向走一步,也可向 y方向走一步, 通常规定为向 x 方向走一步。 当F>0时,控制刀具向方向 x走一步。 当F<0时,控制刀具向方向 y走一步。 刀具每进给一步后,将刀具新的坐标值代入式(5-4),求 出新的F值,以确定下一步进给方向。如此反复下去,即可 完成直线插补。但是在完成上述计算中,需要进行两次乘 法运算和一次减法运算,这种计算方法将直接影响插补速 度,为了简化运算对式(5-4)作一些变换。
综上所述,逐点比较法直线插补工作过程可归纳为以下四 步: 1)偏差判别,即判断上一步进给后的偏差值是F≥0还是F <0。 2)进给,即根据偏差判别的结果和插补所在象限决定在 什么方向上进给一步。 3)偏差运算,即计算出进给一步后的新偏差值,作为下 一步进给的判别依据。 4)终点判别,看是否已到终点,若已到达终点,就停止 插补,若未到达终点,则重复一至四步工作。 (2)直线插补计算举例 假设对第一象限直线OA进行插补,OA的起点坐标为(0,0), 终点坐标为(5,4)。 直线插补的起点与OA的起点重合,此时的偏差值F=0。计 数长度 l xe ye 5 4 9 ,即x方向走5步,y方向走4步, 共9步。插补过程如图5-7和表5-1所示。
1.第一象限内的直线插补 (1)直线插补计算原理 假设加工的轨迹为第一象限中的一条直线OA,如图5-5所 示。