1.声明

1、这是我第一篇博客文章,如有错误请各位大佬指点,谢谢。
2、该篇文章是适合了解了步进电机基础原理的学习者阅读。

2.目的

使用要求与场合: 1、步进电机
2、速度变化较大
3、启动停止频繁
步进电机加减速算法目的:对于上述2、3的场合,步进电机容易出现丢步和过冲甚至无法启动的现象,所以加入该算法来解决这一问题。

3. 算法实现

3.1加减速期望曲线

如图1所示,该曲线是期望的加减速曲线。横坐标t为时间,纵坐标ω为速度。以下三个参数有开发者设定。
accel:加速度
decel:减速度
step:总行程

图1

3.2速度与脉冲周期有何关系

电机的调速与脉冲周期是有关系的,并且是正比例关系,脉冲周期越长,步进电机转速越慢。
在梯形加速过程,速度变化是直线的,将该曲线截取加速过程放大并加入脉冲,如图2所示。

图2
图中t0到t1这段时间为第一个脉冲的时间,t1到t2为第二个脉冲的时间
C0为第一个脉冲的定时器计数值
tt为定时器的计数周期,也就是频率的倒数
距离=速度*时间
每给一个脉冲,步进电机行走一步,这时候步进电机旋转的角度称为步距角,用α表示,单位为弧度。
所以图2中每个长方形的面积就是一个步距角,所以每个长方形面积相等。

3.3位置与加速度的关系

根据牛顿定律位移S=V0t+1/2at²,由于步进电机启动初始速度为0,所以公式变成S=1/2at²。在这里用ω’表示加速度。所以公式变成S=1/2ω’t²。由于已知步距角和脉冲数(n),所以S=αn。
从而得到1/2ω’t²=α
n

3.4脉冲周期与脉冲数和加速度的关系

由于t表示从t0到tn的时间,由于t0为0,所以tn=t,通过转换,tn与加速度的关系如下:
tn=√(2*n *α/ω’)­­­
所以Cntt=t(n+1)-tn=(√(n+1)-√n)*√(2α/ω’)
得到Cn=1/tt *(√(n+1)-√n)*√(2α/ω’)
由上述的推导得到Cn与加速度和脉冲数和加速度的关系,因此可以求得在加速过程或者减速过程脉冲的周期。

3.5何时减速

得到了加减速度和脉冲周期的关系后还需要考虑电机什么时候开始减速。

3.5.1斜率与脉冲数的关系

如图3所示

图3
n1:加速需要的脉冲数
n2:减速需要的脉冲数
ω’1:加速度
ω’2:减速度
斜率(K)=y/x,所以y=K*x,在图3中,由于该三角形高相等,所以n1 * ω’1=n2 * ω’2
为了方便后面计算,等式左右两边加上n1 * ω’2,得到n1 * ω’1+n1 * ω’2=n2 * ω’2+n1 * ω’2
最终得到n1=(n1+n2)*ω’2/(ω’1+ω’2)

3.5.2实际曲线另外一种情况

在实际的运动中,梯形曲线并不一定是图1那样,还有另外一种情况,如图4所示。

图4
该图显示实际最大速度未达到设定最大速度。
accle_lim:实际加速运动的脉冲数
max_s_lim:达到设定最大速度需要的脉冲数
根据公式n1=(n1+n2)*ω’2/(ω’1+ω’2)可以得到accle_lim=(step *decle)/(accel+decel)
根据公式n *ω’=ω’n/2 *α可以得到max_s_lim=n=speed *speed/(2 *α *accel)
从数学角度将模型的两种情况分为了accle_lim>max_s_lim的和accle_lim<max_s_lim这两种情况,而开始减速时间decel_val也会变得不同
1.accle_lim>max_s_lim
decel_val=(max_s_lim *accel)/decel
2.accle_lim<max_s_lim
decel_val=step-accle_lim

4.结论

通过上面的分析与计算得出了两个关系
1、加减速度和脉冲周期的关系
2、减速开始时刻

步进电机加减速——梯形算法相关推荐

  1. 比较几种步进电机加减速控制方案

    加减速算法是运动控制中的关键技术之一,也是实现高速.高效率的关键因素之一.在工业控制中,一方面要求加工的过程平滑.稳定,柔性冲击小:另一方面需要响应时间快,反应迅速.在保证控制精度的前提下来提高加工效 ...

  2. 单片机步进电机加减速表生成软件

    单片机步进电机加减速表生成软件 介绍 功能细节 使用步骤 匀加速效果 平滑效果 软件链接 介绍 使用场景: 基于中断的查表法步进控制程序: 每中断一次就更新一次比较值,并输出一个步进(若翻转电平,速度 ...

  3. 步进电机加减速算法介绍和基于AVR446_Linear speed control of stepper motor的步进电机加减速实现

    本文大部分内容来自<硬石电机控制专题指导手册> 一.引出 1.步进电机速度,是根据输入的脉冲信号的变化来改变的.理论上,给一个脉冲,步进电机就旋转一个步距角.但实际上,如果脉冲信号变化太快 ...

  4. stm32控制步进电机加减速

    实习公司项目需要控制步进电机,电机方面主要包括控制运动.加减速.限位. 下面介绍一下在电机控制方面的心得,由于对于电机的控制不需要很精确,并且自身能力有限,相比于大牛有很大的差距. 1.需要实现的功能 ...

  5. 步进电机-T型加减速

    1.声明 1.这是根据大佬的一篇文章进行修改,原末尾有一处描述有误,我在这里详细补充更正一下,很感谢大佬的分享. 步进电机加减速--梯形算法_步进电机梯形加减速算法_woniu2333的博客-CSDN ...

  6. 步进电机S(SigMoid)曲线加减速【查表法】

    首先感谢以下博客的博主提供的参考公式:https://blog.csdn.net/pengzhihui2012/article/details/52228822?locationNum=6 首先在本设 ...

  7. 步进电机的加减速控制---QYC

    文章目录 前言 一.步进电机 二.步进电机的分类与驱动 1.步进电机的相与极 2.步进电机的驱动与细分 三.步进电机的加减速控制 1.步进电机的梯形加减速控制 1.1梯形加减速的速度与脉冲周期 1.2 ...

  8. 步进电机s型加减速计算工具_步进电机噪音和振动的原因分析及应对策略

    不正确地驱动步进电机很容易导致电机发出"嗡嗡"的噪声和很大的振动. 当驱动步进电机时,如果发现步进电机处于静止状态时,其内部都发出很明显的噪音,有点类似线圈快速变化那种,一般是由于 ...

  9. 步进伺服电机加减速 及 位置速度控制关键程序

    对于经常接触单片机控制步进电机 伺服电机的工程师来说, 步进电机加减速可以有各种实现方法, 本来有可以用的驱动, 可是我总感觉有什么不完善的地方, 抽时间写了个感觉功能足够完善的, 共享一下, 也希望 ...

  10. 【电机应用控制】——步进电机控制原理(四相五线/两相四线/细分驱动)驱动器梯形/S形加减速算法直线/圆弧插补

    目录 一.步进电机简介 二.步进电机控制原理 1.四相五线 2.两相四线 3.细分驱动 三.步进电机驱动器 四.梯形加减速算法 五.S形加减速算法 六.直线插补 七.圆弧插补 八.步进电机闭环系统(位 ...

最新文章

  1. Redis:从应用到底层,一文帮你搞定
  2. c++ 初始化 代码 应放在那里_Go语言goroutine调度器初始化 (12)
  3. php 查看 实例 的方法,php – 从Laravel 5.1中的通用数据库查询中获取Eloquent模型的实例...
  4. ppython_Python pcom包_程序模块 - PyPI - Python中文网
  5. 在Mac电脑上用VMware Fusion在移动硬盘上安装Windows7虚拟机
  6. 95-150-045-源码-Sink-Streaming Parquet File
  7. sqlserver leftjoin出现重复数据_数据库存数据时,逻辑上防重了为啥还会出现重复记录?...
  8. dbcc dbreindex server sql_SQL Server数据库碎片整理
  9. vlf 用法_什么是SQL虚拟日志文件(又名SQL Server VLF)?
  10. 《Spring微服务实战》读书笔记——通过配置服务器来管理配置
  11. 抽奖滚动文字如何透明地覆盖在动态视频背景上?-活动现场双屏管理系统操作提示
  12. Zookeeper,Hbase 伪分布,集群搭建
  13. 手把手教你R语言CIBERSORT计算免疫浸润+Rproject的使用
  14. windows10系统超全面优化攻略
  15. 从0带您打造企业级 Vue 服务器渲染 Nuxt.js (一) 入门
  16. ImageTools-图片格式转换工具类
  17. ssh远程No route to host问题解决
  18. H.323 and Associated Protocols
  19. 数据结构极客视频5_DFS的题目
  20. 如何使用BeaconEye监控CobaltStrike的Beacon

热门文章

  1. C语言经典100例-9
  2. Android智慧城市代码——登录
  3. C语言-字符型数据与ASCII码表
  4. 吴恩达深度学习课程第四章第二周编程作业(pytorch实现)
  5. CAD切换工作窗口快捷键
  6. 四阶龙格库塔matlab计算例题,四阶龙格库塔法matlab实现
  7. 常见API漏洞解释以及应用层解决方案
  8. 人口增长模型 源代码
  9. 计算机多媒体技术广泛应用于各个领域,计算机多媒体技术的现状及发展前景
  10. python课程设计实验报告-Python语言课程设计报告格式.doc