欢迎来到天天文库
浏览记录
ID:15541118
大小:164.50 KB
页数:4页
时间:2018-08-03
《步进电机三轴联动的快速加减速算法研究》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、步进电机三轴联动的快速加减速算法研究 摘要:加减速控制是数控系统的关键技术,对提高数控系统的精度及速度有重要的意义。提出了一种步进电机三轴联动的快速加减速算法--动态查表法,该算法结合DDA插补算法,可以用普通的单片机实现多种加减速曲线的运动控制,具有运算速度快、精度高等优点。 1引言 步进电机具有快速启停能力强、精度高、转速容易控制的特点。但是,步进电动机应避免转动速率的突变,而且从停止到开始转动有一个较低的起动频率,随后才可以平缓地过渡到较高的转速。相应地在步进电机制动时,也应该平缓过渡。如果由于启动和停止控制不当,步进电机
2、会出现启动时抖动和停止时过冲的现象,从面影响系统的控制精度[1][2][3]。为避免这种情况的发生,要对步进电机进行加减速控制。加减速控制是数控系统的关键技术,对提高数控系统的精度及速度有重要的意义。加减速控制也得到了广泛的研究与应用。 目前国内外步进电机加减速控制曲线主要包括三种[4]:直线型加减速速度曲线(也称为梯形曲线)、指数型加减速曲线、S型加减速曲线。控制算法主要有查表法和插补迭代法。查表法的原理是设置一张时间间隔表,表中的每一项都对应一个转速,时间间隔按一定的规律变化[1]。插补迭代法的原理是根据前一步的基准点速度和加、
3、减、匀速状态来确定当前步的基准点速度[4][5]。 这两种控制算法都有各自的适用范围,查表法适用于单轴的加减速控制,具有算法简单、快速的特点,但不能适用于多轴联动。插补迭代算法适用于高精度的控制,算法复杂,对处理器的要求较高,一般需要用到DSP等高档处理器[4]。本文结合两种算法的优点,设计了一种“动态查表法”来实现三轴联动的快速加减速算法。动态查表法即有查表法简单、快速的特点,又能够用一般的单片机来实现高精度的多轴联动加减速控制。 2动态查表法 根据线性插补原理,各插补轴的位移与速度比相等。在加减速过程中,各插补轴的速度、加速
4、度分别与合成的速度、加速度对应成比例[5]。当对合成速度按某种加减速方法进行加减速时,各插补轴在保证空间轨迹的同时,也应按相同的加减速方法进行加减速。查表法具有简单、快速的特点,但查表法必须事先确定一张加减速的速度表格,不能按比例应用到多轴联动的场合。本文的思路是结合数字积分法,在加工某条线段前先按比例快速计算好相应的速度表格,再用查表法来完成加减速控制,即“动态查表法”。 数字积分法,也称DDA(DigitalDifferentialAnalyzer),它是建立在数字积分器基础上的一种插补算法,其最大特点是易于实现多坐标插补联动[
5、6]。每一轴设置一个累加器,三轴联动需要设置三个累加器,每进行一次插补,对三个累加器分别累加。哪一轴的累加器有溢出则该轴延迟一个定时周期进给一步(注:本文中的“进给一步”代表发一次脉冲的高电平或低电平,两次“进给一步”代表一个完整的脉冲)。在实际应用中,会设定一个较大的整数N,一般是2m,本文设置的是0x8000,即215。当累加超过该数时,视为溢出。相应的,根据单片机的定时周期,加工速度将折算成两个整数用于实际的插补运算,一个整数是n,代表过n个定时周期进给一步,另一个是dn,代表累加数,当dn累加到达N时,延迟一个定时周期进给一步
6、。则: V代表的是指定的加工速度,做加减速控制的加速过程需要将速度从起跳速度按照一定的曲线加速到V,减速过程需要将速度从V再减到起跳速度。 本文设计了一系列速度档位,最低档位就是起跳速度,然后逐步增加到V,每档速度同时对应一个脉冲数组,及走过多少脉冲后切换到另外一个速度档位。脉冲与速度构成的曲线可以是梯形曲线、指数型加减速曲线或S型加减速曲线。每个速度档位都按照相同的比例缩小速度V,三轴都按照相同的比例,就满足了线性插补原理,可以在保证空间轨迹的同时,各轴按照相同的加减速方法进行加减速。但计算速度档位必须在加工线段前进行,而且不能
7、有除法运算,否则一般的单片机难以达到实时性的要求。按一定的比例缩小V必须用到除法,要避免除法运算就只能采用移位运算来代替。由式(1)~(3)可知,k与V成反比,而n和dn分别对应k的整数和小数部分。假设要得到Vp/q对应的n和dn,其中p、q都是自然数且p8、算Vp/q对应的n和dn,以4/5为例:计算步骤如下: n=ctrlDatas[i].n5;/ctrlDatas[i].n是给定速度对应的n,5也可以用左移位+加法代替 ns[j]=n>>2;//ns[j]是每个速度
8、算Vp/q对应的n和dn,以4/5为例:计算步骤如下: n=ctrlDatas[i].n5;/ctrlDatas[i].n是给定速度对应的n,5也可以用左移位+加法代替 ns[j]=n>>2;//ns[j]是每个速度
此文档下载收益归作者所有