插补算法及步进电机
- 格式:pdf
- 大小:888.40 KB
- 文档页数:60
基于单片机的步进电机控制系统,实现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的数值有关)//深入研究插补算法的话,可以进行更仔细的设置,//程序仅仅是一个开始,在以后的一个月中,我会更深一步的研究!!//-------------------------。
插补原理:在实际加工中,被加工工件轮廓形状千差万别,严格说来,为了满足几何尺寸精度要求,刀具中心轨迹应该准确地依照工件轮廓形状来生成,对于简单曲线数控系统可以比较容易实现,但对于较复杂形状,若直接生成会使算法变得很复杂,计算机工作量也相应地大大增加,因此,实际应用中,常采用一小段直线或圆弧去进行拟合就可满足精度要求(也有需要抛物线和高次曲线拟合情况),这种拟合方法就是“插补”,实质上插补就是数据密化过程。
插补任务是根据进给速度要求,在轮廓起点和终点之间计算出若干个中间点坐标值,每个中间点计算所需时间直接影响系统控制速度,而插补中间点坐标值计算精度又影响到数控系统控制精度,因此,插补算法是整个数控系统控制核心。
插补算法经过几十年发展,不断成熟,种类很多。
一般说来,从产生数学模型来分,主要有直线插补、二次曲线插补等;从插补计算输出数值形式来分,主要有脉冲增量插补(也称为基准脉冲插补)和数据采样插补[26]。
脉冲增量插补和数据采样插补都有个自特点,本文根据应用场合不同分别开发出了脉冲增量插补和数据采样插补。
1数字积分插补是脉冲增量插补一种。
下面将首先阐述一下脉冲增量插补工作原理。
2.脉冲增量插补是行程标量插补,每次插补结束产生一个行程增量,以脉冲方式输出。
这种插补算法主要应用在开环数控系统中,在插补计算过程中不断向各坐标轴发出互相协调进给脉冲,驱动电机运动。
一个脉冲所产生坐标轴移动量叫做脉冲当量。
脉冲当量是脉冲分配基本单位,按机床设计加工精度选定,普通精度机床一般取脉冲当量为:0.01mm,较精密机床取1或0.5 。
采用脉冲增量插补算法数控系统,其坐标轴进给速度主要受插补程序运行时间限制,一般为1~3m/min。
脉冲增量插补主要有逐点比较法、数据积分插补法等。
逐点比较法最初称为区域判别法,或代数运算法,或醉步式近似法。
这种方法原理是:计算机在控制加工过程中,能逐点地计算和判别加工偏差,以控制坐标进给,按规定图形加工出所需要工件,用步进电机或电液脉冲马达拖动机床,其进给方式是步进式,插补器控制机床。
步进驱动系统与数控直线插补程序设计说明书第一章进给运动驱动系统设计1步进电机的选择和齿轮传动比的计算系统总体设计非常重要,是对一部机器的总体布局和全局的安排。
总体设计是否合理将对后面几步的设计产生重大影响,也将影响机器的尺寸大小、性能、功能和设计质量。
所以,在总体设计时应多花时间、考虑清楚,以减少返工现象。
当伺服系统的负载不大、精度要求不高时,可采用开环控制。
一般来讲,开环伺服系统的稳定性不成问题,设计时主要考虑精度方面的要求,通过合理的结构参数设计,使系统具有良好的动态响应性能。
1.1系统方案设计在机电一体化产品中,典型的开环控制位置伺服系统是简易数控机床(本实验室自制数控平台)及X-Y 数控工作台等,其结构原理如图1-1 所示。
各种开环伺服系统在结构原理上大同小异,其方案设计实质上就是在图1-1 的基础上选择和确定各构成环节的具体实现方案。
计算接口功放执行机械机械机或传动执行电路电路元件PLC 机构机构图 1-1开环伺服系统结构原理框图1、执行元件的选择选择执行元件时应综合考虑负载能力、调速范围、运行精度、可控性、可靠性及体积、成本等多方面要求。
开环系统中可采用步进电机、电液脉冲马达等作为执行元件,其中步进电机应用最为广泛,一般情况下优先选用步进电机,当其负载能力不够时,再考虑选用电液脉冲马达等。
2、传动机构方案的选择传动机构实质上是执行元件与执行机构以输出旋转运动和转矩为主,而执行机构则多为直线运动。
用于将旋转运动转换为直线运动的传动机构主要有齿轮齿条和丝杠螺母等。
前者可获得较大的传动比和较高的传动效率,所能传递的力也较大,但高精度的齿轮齿条制造困难,且为消除传动间隙而结构复杂,后者因结构简单、制造容易而广泛使用。
在步进电机与丝杠之间运动的传递有多种方式,可将步进电机与丝杠通过联轴器直接连接,其优点是结构简单,可获得较高的速度,但对步进电机的负载能力要求较高;还可以通过减速器连接丝杠,通过减速比的选择配凑脉冲当量、扭矩和惯量;当电动机与丝杠中心距较大时,可采用同步齿形带传动。
数控系统插补的方法和原理数控机床上进行加工的各种工件,大部分由直线和圆弧构成。
因此,大多数数控装置都具有直线和圆弧的插补功能。
对于非圆弧曲线轮廓轨迹,可以用微小的直线段或圆弧段来拟合。
插补的任务就是要根据进给速度的要求,在轮廓起点和终点之间计算出若干中间掌握点的坐标值。
由于每个中间点计算的时间直接影响数控装置的掌握速度,而插补中间点的计算精度又影响整个数控系统的精度,所以插补算法对整个数控系统的性能至关重要,也就是说数控装置掌握软件的核心是插补。
插补的方法和原理许多,依据数控系统输出到伺服驱动装置的信号的不同,插补方法可归纳为脉冲增量插补和数据采样插补两种类型。
一、脉冲增量插补这类插补算法是以脉冲形式输出,每次插补运算一次,最多给每一轴一个进给脉冲。
把每次插补运算产生的指令脉冲输出到伺服系统,以驱动工作台运动。
一个脉冲产生的进给轴移动量叫脉冲当量,用δ表示。
脉冲当量是脉冲安排计算的基本单位,依据加工的精度选择,一般机床取δ=0.01mm,较为精密的机床取δ=1μm或0.1μm 。
插补误差不得大于一个脉冲当量。
这种方法掌握精度和进给速度低,主要运用于以步进电动机为驱动装置的开环掌握系统中。
二、数据采样插补数据采样插补又称时间标量插补或数字增量插补。
这类插补算法的特点是数控装置产生的不是单个脉冲,而是数字量。
插补运算分两步完成。
第一步为粗插补,它是在给定起点和终点的曲线之间插入若干个点,即用若干条微小直线段来拟合给定曲线,每一微小直线段的长度△L 都相等,且与给定进给速度有关。
粗插补时每一微小直线段的长度△L 与进给速度F和插补T周期有关,即△L=FT。
图1 数据采样插补其次步为精插补,它是在粗插补算出的每一微小直线上再作“数据点的密化”工作。
这一步相当于对直线的脉冲增量插补。
数据采样插补方法适用于闭环、半闭环的直流或沟通伺服电动机为驱动装置的位置采样掌握系统中。
插补方法的分类
1)基准脉冲插补(脉冲增量插补)
每次插补结束时向各运动坐标轴输出一个基准脉冲序列,驱动各坐标轴进给电机的运动。
每个脉冲使坐标轴产生1个脉冲当量的增量,代表刀具或工件的最小位移;脉冲数量代表刀具或工件移动的位移量;脉冲序列频率代表刀具或工件运动的速度。
基准脉冲插补特点:运算简洁,用硬件电路实现,运算速度快。
适用步进电机驱动的、中等精度或中等速度要求的开环数控系统。
有的数控系统将其用于数据采样插补中的精插补。
基准脉冲插补方法:逐点比较法、数字积分法、比较积分法、数字脉冲乘法器法、最小偏差法、矢量判别法、单步追踪法、直接函数法等。
应用较多的是逐点比较法和数字积分法。
2)数据采样插补(数据增量插补、时间分割法)
采纳时间分割思想,依据编程的进给速度将轮廓曲线分割为每个插补周期的进给直线段(又称轮廓步长)进行数据密化,以此来靠近轮廓曲线。
着重解决两个问题——
(1)如何选择插补周期T;
(2)如何计算在一个插补周期内各坐标轴的增量值△x或△y。
闭环、半闭环系统采纳数据采样插补方法。
数据采样插补方法:直线函数法、扩展数字积分法、二阶递归扩展数字积分法、双数字积分插补法等。