1 导言
步进电机具有快速启停能力强、精度高、转速简略操控的特色。可是,步进电机应防止滚动速率的骤变,并且从中止到开端滚动有一个较低的起动频率,随后才能够陡峭地过渡到较高的转速。相应地在步进电机制动时,也应该陡峭过渡。假如因为发动和中止操控不妥,步进电机会呈现发动时颤动和中止时过冲的现象,从面影响操控体系的操控精度[1][2][3]。为防止这种状况的产生,要对步进电机进行加减速操控。步进电机加减速操控是数控体系的关键技术,对进步数控体系的精度及速度有重要的含义。加减速操控也得到了广泛的研讨与使用。
现在国内外步进电机加减速操控曲线首要包含三种[4]:直线型加减速速度曲线(也称为梯形曲线)、指数型加减速曲线、S 型加减速曲线。操控算法首要有查表法和插补迭代法。查表法的原理是设置一张时刻间隔表,表中的每一项都对应一个转速,时刻间隔按必定的规则改变 [1]。插补迭代法的原理是依据前一步的基准点速度和加、减、匀速状况来确认当前步的基准点速度[4][5]。
这两种操控算法都有各自的适用范围,查表法适用于单轴的加减速操控,具有算法简略、快速的特色,但不能适用于多轴联动。插补迭代算法适用于高精度的操控,算法杂乱,对处理器的要求较高,一般需求用到DSP 等高级处理器[4]。本文结合两种算法的长处,规划了一种“动态查表法”来完结三轴联动的快速加减速算法。动态查表法即有查表法简略、快速的特色,又能够用一般的单片机来完结高精度的多轴联动加减速操控。
2 动态查表法
依据线性插补原理,各插补轴的位移与速度比持平。在加减速进程中,各插补轴的速度、加快度别离与组成的速度、加快度对应成份额[5]。当对组成速度按某种加减速办法进行加减速时,各插补轴在确保空间轨道的一起,也应按相同的加减速办法进行加减速。查表法具有简略、快速的特色,但查表法有必要事前确认一张加减速的速度表格,不能按份额使用到多轴联动的场合。本文的思路是结合数字积分法,在加工某条线段前先按份额快速核算好相应的速度表格,再用查表法来完结加减速操控,即“动态查表法”。
数字积分法,也称 DDA(Digital Differential Analyzer) ,它是建立在数字积分器基础上的一种插补算法,其最大特色是易于完结多坐标插补联动[6]。每一轴设置一个累加器,三轴联动需求设置三个累加器,每进行一次插补,对三个累加器别离累加。哪一轴的累加器有溢出则该轴推迟一个守时周期进给一步(注:本文中的“进给一步”代表发一次脉冲的高电平或低电平,两次“进给一步”代表一个完好的脉冲)。在实践使用中,会设定一个较大的整数N,一般是2m,本文设置的是0x8000,即215。当累加超越该数时,视为溢出。相应的,依据单片机的守时周期,加工速度将折算成两个整数用于实践的插补运算,一个整数是n,代表过n 个守时周期进给一步,另一个是dn,代表累加数,当dn 累加抵达N 时,推迟一个守时周期进给一步。则:
V 代表的是指定的加工速度,做加减速操控的加快进程需求将速度从起跳速度依照必定的曲线加快到V,减速进程需求将速度从V 再减到起跳速度。
本文规划了一系列速度档位,最低档位便是起跳速度,然后逐渐添加到V,每档速度一起对应一个脉冲数组,及走过多少脉冲后切换到别的一个速度档位。脉冲与速度构成的曲线能够是梯形曲线、指数型加减速曲线或S 型加减速曲线。每个速度档位都依照相同的份额缩小速度V,三轴都依照相同的份额,就满意了线性插补原理,能够在确保空间轨道的一起,各轴依照相同的加减速办法进行加减速。但核算速度档位有必要在加工线段前进行,并且不能有除法运算,不然一般的单片机难以抵达实时性的要求。按必定的份额缩小V 有必要用到除法,要防止除法运算就只能选用移位运算来替代。由式(1)~(3)可知,k 与V 成反比,而n 和dn 别离对应k 的整数和小数部分。假定要得到V*p/q 对应的n 和dn,其间p、q 都是自然数且p
本文规划的速度档位因子别离是:1/16, 1/8, 1/4, 2/5,1/2, 2/3, 4/5, 8/9, 共八个档位。对精度要求高的还能够设置更多的档位。确认速度档位因子后,就能够经过一系列的移位指令来核算V*p/q 对应的n 和dn,以4/5 为例:核算过程如下:
n=ctrlDatas[i].n*5;// ctrlDatas[i].n 是给定速度对应的n,*5 也能够用左移位+加法替代
ns[j]=n>>2;//ns[j]是每个速度档位对应的n,>>2 代表除以4
dns[j]=(ctrlDatas[i].dn*5)>>2;// dns[j]是每个速度档位对应的dn
dns[j]=dns[j]+((n & 0x3)<<13);//将n 的余数补充到dn
ns[j]+=dns[j]>>15;//将dn 对应的整数部分补充到n
dns[j]=dns[j] & 0x7FFF;//取余数
可见经过一系列的位运算和加法运算完结了各速度档位的核算,并且精度十分高。试验证明,惯例的单片机彻底能够抵达实时性的要求。
3 动态查表算法描绘
动态查表算法有两部分,一是加工前核算各档位速度vc,另一个是实时的加减速操控rtvc。
下面别离描绘。
3.1 算法vc,用于加工线段前的预处理,核算各轴各档位速度对应的n 和dn:
(1)求最长轴地点的索引longestIndex。本文将三轴别离编号成0,1,2,别离代表XYZ三轴,最长加工轴代表该轴加工速度最快,以该轴为基准进行加减速,其他轴同步按份额进行加减速
(2)假如最长加工轴的加工脉冲小于体系指定脉冲,以体系指定的低速进行加工,铲除加减速标志,不进行加减速操控。算法完毕,不然转第(3)步
(3)假如某轴的速度低于指定速度,该轴不进行加减速操控,悉数依照指定速度进行加工。算法完毕,不然转第(4)步
(4)依照第2 节的速度档位区分及移位算法核算各轴各档位速度对应的n 和dn。算法完毕3.2 算法rtvc,用于实时加减速操控,依据宣布脉冲计数进行相应的加减速操控:
(1)假如有加快标志,代表还需求进行加快操控,转第(2)步,不然转第(5)步
(2)假如最长加工轴的加工脉冲超越某档位对应的脉冲数,转第(3)步,不然转第(5)步
(3)假如抵达最大档位,代表现已完结加快,设置各轴实时n 和dn 为指定正常加工速度V 对应的n 和dn,铲除加快标志,转第(5)步。不然转第(4)步
(4)设置各轴实时n 和dn 为对应加快档位速度对应的n 和dn
(5)假如有减速标志,代表需求进行减速操控,转第(6)步,不然算法完毕
(6)核算最长加工轴间隔加工结尾还有多少脉冲pulse
(7)假如pulse 小于某档位对应的脉冲数,转第(8)步,不然算法完毕
(8)假如抵达最大档位,代表现已完结减速,铲除减速标志,算法完毕,不然转第(9)步
(9)设置各轴实时n 和dn 为对应减速档位速度对应的n 和dn。
算法完毕算法 rtvc 的流程图如图1 所示,算法vc 的流程图省掉。
算法 vc 只需求在加工某线段前履行一次,而算法rtvc 用于实时加减速操控,需求在单片机的主循环里边重复调用,但因为调用rtvc 前速度表格现已核算好,只需查表即可,因而算法的实时性十分好。
在实践的加工程序中,除了添加以上两个算法之外,仍是依照惯例的DDA 算法进行积分插补,依照惯例判别加工结尾抵达等等,不再赘述。
4 总结
动态查表法用到的表格有两个,一个是切换各档位速度需求走过的脉冲,另一个的各轴各档位速度对应的n 和dn。后一个表格是动态核算生成的。调整前一个表格能够完结不同的加减速曲线,因而动态查表法能够完结各种加减速曲线,依据实践加工状况自由选择,而不需求添加算法杂乱度。一起,核算各档位速度对应的n 和dn 只需求进行一系列的位运算和加法运算,一般的单片机即可抵达杰出的实时性。
动态查表法现已在数控点胶机上得到了很好的使用,实践标明,用一般的ARM 芯片彻底满意了实时性和高精度的要求。动态查表法相同能够使用到其他多轴联动运动操控场合。