0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

步进电机三轴联动的动态查表法算法描述及优点

电子设计 作者:电子设计 2018-10-02 06:27 次阅读

1 引言

步进电机具有快速启停能力强、精度高、转速容易控制的特点。但是,步进电动机应避免转动速率的突变,而且从停止到开始转动有一个较低的起动频率,随后才可以平缓地过渡到较高的转速。相应地在步进电机制动时,也应该平缓过渡。如果由于启动和停止控制不当,步进电机会出现启动时抖动和停止时过冲的现象,从面影响系统的控制精度]。为避免这种情况的发生,要对步进电机进行加减速控制。加减速控制是数控系统的关键技术,对提高数控系统的精度及速度有重要的意义。加减速控制也得到了广泛的研究与应用。

目前国内外步进电机加减速控制曲线主要包括三种:直线型加减速速度曲线(也称为梯形曲线)、指数型加减速曲线、S 型加减速曲线。控制算法主要有查表法和插补迭代法。查表法的原理是设置一张时间间隔表,表中的每一项都对应一个转速,时间间隔按一定的规律变化。插补迭代法的原理是根据前一步的基准点速度和加、减、匀速状态来确定当前步的基准点速度。

这两种控制算法都有各自的适用范围,查表法适用于单轴的加减速控制,具有算法简单、快速的特点,但不能适用于多轴联动。插补迭代算法适用于高精度的控制,算法复杂,对处理器的要求较高,一般需要用到DSP 等高档处理器。本文结合两种算法的优点,设计了一种“动态查表法”来实现三轴联动的快速加减速算法。动态查表法即有查表法简单、快速的特点,又能够用一般的单片机来实现高精度的多轴联动加减速控制。

2 动态查表法

根据线性插补原理,各插补轴的位移与速度比相等。在加减速过程中,各插补轴的速度、加速度分别与合成的速度、加速度对应成比例。当对合成速度按某种加减速方法进行加减速时,各插补轴在保证空间轨迹的同时,也应按相同的加减速方法进行加减速。查表法具有简单、快速的特点,但查表法必须事先确定一张加减速的速度表格,不能按比例应用到多轴联动的场合。本文的思路是结合数字积分法,在加工某条线段前先按比例快速计算好相应的速度表格,再用查表法来完成加减速控制,即“动态查表法”。

数字积分法,也称 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 芯片完全满足了实时性和高精度的要求。动态查表法同样可以应用到其他多轴联动运动控制场合。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18219

    浏览量

    221935
  • 电机
    +关注

    关注

    139

    文章

    8296

    浏览量

    141998
  • 步进电机
    +关注

    关注

    149

    文章

    2926

    浏览量

    146007
收藏 人收藏

    评论

    相关推荐

    基于查表的快速CRC算法设计

    基于查表的快速CRC算法设计
    发表于 08-20 20:01

    步进电机的设计

    基于51步进电机的设计用矩阵键盘控制步进电机
    发表于 10-16 14:35

    哪位大神知道,步进电机软件细分查表电机方向改变时怎么查表

    软件以查表实现两相混合步进电机的细分控制,电机运行时改变转向后查表顺序变吗?
    发表于 01-25 15:12

    步进电机是如何增加动态转矩的?有什么方法吗

    步进电机基础(8.1)-步进电机的问题解决方案-增加动态转矩的解决方法前言基本信息前言说明8.1 增加
    发表于 07-07 07:29

    步进电机联动动态查表算法描述 精选资料下载

    1 引言步进电机具有快速启停能力强、精度高、转速容易控制的特点。但是,步进电动机应避免转动速率的突变,而且从停止到开始转动有一个较低的起动频率,随后才可以平缓地过渡到较高的转速。相应地在步进
    发表于 07-08 08:17

    步进电机驱动算法——S形加减速算法原理 精选资料下载

    目录步进电机S形加减速简介七段S形加减速算法原理分析五段S形加减速算法实现算法分析查表
    发表于 07-08 09:18

    分享一份步进电机加减速查表

    步进电机加减速查表1.流程图2,代码段1.码盘const UNBIT16 CarAccelerationList[CAR_ACCELERATION_STEP_MAX + 1] ={
    发表于 07-08 09:14

    步进电机的特性测量方法有哪些

    步进电机基础(6.2)-步进电机的特性测量方法-动态特性的测量前言基本信息前言说明6.1 静态
    发表于 07-08 07:46

    步进电机S加减速算法查表方式哪个更好?

    步进电机S加减速算法查表方式哪个更好,有谁用过,能否提供实例?
    发表于 11-08 08:10

    基于PC的步进电机三轴联动控制系统研究

             详细介绍Windows 环境下面用PC 的并口直接控制三轴联动步进电机运动控制系统。分析了包括G 代码编译、数字积分插补
    发表于 09-15 08:03 53次下载

    基于PC的步进电机三轴联动控制系统研究

    详细介绍Windows 环境下面用PC 的并口直接控制三轴联动步进电机运动控制系统。分析了包括G 代码编译、数字积分插补算法实现三轴联动
    发表于 12-26 13:38 25次下载

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

    加减速控制是数控系统的关键技术,对提高数控系统的精度及速度有重要的意义。提出了一种步进电机三轴联动的快速加减速算法--动态
    发表于 01-18 15:33 106次下载

    基于ES系列步进伺服电机描述及应用

    。 为了全面提高控制性能,调整了伺服系统的增益是最关键的一步。根据负载变化进行调整参数,这是一项长期,繁琐,麻烦,耗时一个应用工程师很多的工作精力。智创ES步进伺服电机系统完全采用独特的闭环步进
    发表于 10-17 15:37 7次下载

    步进电机转动原理

    大,动态性能好; 3、 混合式步进电机(HB):结合VR、PM电机优点,输出力矩大、步距角小、动态
    发表于 03-22 11:16 0次下载
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>转动原理

    舵机对比伺服电机步进电机有哪些优点

    介绍了舵机的优点、舵机的类型与结构,与伺服电机步进电机做一个对比
    的头像 发表于 09-19 16:21 1367次阅读
    舵机对比伺服<b class='flag-5'>电机</b>,<b class='flag-5'>步进</b><b class='flag-5'>电机</b>有哪些<b class='flag-5'>优点</b>?