步进电机三轴联动的快速加减速算法研究

步进电机三轴联动的快速加减速算法研究
摘要: 加减速控制是数控系统的关键技术, 对提高数控系统的精度及速度有重要的意义。 提出了一种步进电机三轴联动的快速加减速算法--动态查表法, 该算法结合 DDA 插补算法, 可以用普通的单片机实现多种加减速曲线的运动控制,具有运算速度快、精度高等优点。 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) ~ 可知, 与 V 成 k 反比,而 n 和 dn 分别对应 k 的整数和小数部分。假设要得到 Vp/q 对应的 n 和 dn,其中 p、q 都是自然数且 p<q。则 k’=kq/p,要用移位来代替除法必须 p=2m,而且要争取各速度 档位相对均匀。 本文设计的速度档位因子分别是:1/16, 1/8, 1/4, 2/5,1/2, 2/3, 4/5, 8/9, 共八个档位。 对精度要求高的还可以设置更多的档位。 确定速度档位因子后, 就可以通过一系列的移位指 令来计算 Vp/q 对应的 n 和 dn,以 4/5 为例:计算步骤如下: n=ctrlDatas[i].n5;/?ctrlDatas[i].n 是给定速度对应的 n,5 也可以用左移位+加法代替 ns[j]=n>>2;//ns[j]是每个速度档位对应的 n,>>2 代表除以 4 dns[j]=(ctrlDatas[i].dn5)>>2;/?dns[j]是每个速度档位对应的 dn 0x3)<<13);//将 n 的余数补充到 dn dns[j]=dns[j] & 0x7FFF;//取余数 3 动态查表算法描述 下面分别描述。 3.1 算法 vc,用于加工线段前的预处理,计算各轴各档位速度对应的 n 和 dn: (1)求最长轴所在的索引 longestIndex。本文将三轴分别编号成 0,1,2,分别代表 XYZ 三轴,最长加工轴代表该轴加工速度最快,以该轴为基准进行加减速,其他轴同步按比例进 行加减速 (2)如果最长加工轴的加工脉冲小于系统指定脉冲,以系统指定的低速进行 (3)如果 加工,清除加减速标志,不进行加减速控制。算法结束,否则转第(3)步 否则转第(4)步 dns[j]=dns[j]+((n & ns[j]+=dns[j]>>15;//将 dn 对应的整数部分补充到 n 可见通过一系列的位运算和加法运算实现了各速度档 动态查表算法有两部分,一是加工前计算各档位速度

位的计算,而且精度非常高。实验证明,常规的单片机完全可以达到实时性的要求。

vc,另一个是实时的加减速控制 rtvc。

某轴的速度低于指定速度, 该轴不进行加减速控制, 全部按照指定速度进行加工。 算法结束, (4)按照第 2 节的速度档位划分及移位算法计算各轴各档位速度对

应的 n 和 dn。算法结束 3.2 算法 rtvc,用于实时加减速控制,根据发出脉冲计数进行相应 的加减速控制: 则转第(5)步 步,否则转第(5)步 步 (1)如果有加速标志,代表还需要进行加速控制,转第(2)步,否 (2)如果最长加工轴的加工脉冲超过某档位对应的脉冲数,转第(3) (3)如果达到最大档位,代表已经完成加速,设置各轴实时 n 和 (5)如果有

dn 为指定正常加工速度 V 对应的 n 和 dn,清除加速标志,转第(5)步。否则转第(4) (4)设置各轴实时 n 和 dn 为对应加速档位速度对应的 n 和 dn 减速标志,代表需要进行减速控制,转第(6)步,否则算法结束 轴距离加工终点还有多少脉冲 pulse (8)步,否则算法结束 算法结束,否则转第(9)步 n 和 dn。 算法结束算法 rtvc 的流程图如图 1 所示,算法 vc 的流程图省略。 (6)计算最长加工

(7)如果 pulse 小于某档位对应的脉冲数,转第

(8)如果达到最大档位,代表已经完成减速,清除减速标志, (9)设置各轴实时 n 和 dn 为对应减速档位速度对应的

算法 vc 只需要在加工某线段前执行一次,而算法 rtvc 用于实时加减速控制,需 要在单片机的主循环里面反复调用,但由于调用 rtvc 前速度表格已经计算好,只需查表即 可,因此算法的实时性非常好。 在实际的加工程序中,除了增加以上两个算法之外,还是按照常规的 DDA 算法 进行积分插补,按照常规判断加工终点到达等等,不再赘述。 4 总结 动态查表法用到的表格有两个, 一个是切换各档位速度需要走过的脉 冲,另一个的各轴各档位速度对应的 n 和 dn。后一个表格是动态计算生成的。调整前一个 表格可以实现不同的加减速曲线, 因此动态查表法可以实现各种加减速曲线, 根据实际加工 情况自由选择,而不需要增加算法复杂度。同时,计算各档位速度对应的 n 和 dn 只需要进 行一系列的位运算和加法运算,一般的单片机即可达到良好的实时性。 动态查表法已经在数控点胶机上得到了很好的应用, 实践表明, 用一般的 ARM 芯 片完全满足了实时性和高精度的要求。 动态查表法同样可以应用到其他多轴联动运动控制场 合。 本项目目前出于市场推广阶段,已经创造经济效益 100 多万元。 作者创新点:本文设计的步进电机三轴联动快速加减速算法-动态查表法还没有文 献记载,属作者原创。该算法可以实现不同的加减速曲线,具有简单高效的特点,用普通的 单片机即可达到良好的实时性。


相关文档

基于STM32的步进电机S曲线加减速算法的优化
基于PC的步进电机三轴联动控制系统研究
基于PC 的步进电机三轴联动控制系统研究
三轴联动电机加减速控制
基于SPMC75F2413A单片机控制步进电机实现三轴联动
步进电机加减速控制方法
三轴联动数控机床控制系统与插补法的研究
步进电机加减速控制技术研究
基于Proteus的步进电机加减速控制辅助设计方法
基于单片机的步进电机加减速的控制方法
电脑版