步进电机调速,S曲线调速算法你会吗?

【STM32篇】步进电机之S型曲线 基于STM32 HR4988驱动控制。实现S曲线控制步进电机完成指定频率和范围的运行,实现”电机振动“。 阅读详情

[导读] 大家好,我是逸珺。

今天想分享一种超级实用的步进电机调速算法,这种算法在步进电机调速方案中可以说是一种非常优异的方案。

梯形调速算法

为啥需要设计一个调速算法呢?步进电机不是给多少脉冲就动多少步吗?但是带上负载了就可能失步,所谓失步,简单理解就是实际电机轴转过的度数,没有输入脉冲对应度数多。为什么会这样呢?电机的扭矩有可能无法驱动负载。一般会做一个启动加速控制过程,停止的时候做一个减速控制,中间做一个匀速控制。这就是比较常见的梯形调速控制算法。

这样一个梯形调速算法,相当于步进电机的运动过程包含三个阶段:

  • ①加速过程

  • ②匀速过程

  • ③减速过程

①加速过程所用到的加速度为:

一般加速过程与减速过程所用的加速度绝对值是相同的,减速过程相当于加速度为-a.

所以总的行程图中速度曲线下阴影部分三个过程的面积:

由于加速过程与减速过程所用到的加速度绝对值相等,所以 ,所以

梯形速度调速算法很简单,比较容易实现,但是这个算法却有缺陷。

图中红色圆圈的位置,加速度从a突变为0,或从0突变为-a,这些突变点会带来什么后果呢?来看看其加速度曲线:

电机带着负载运动,比如常见的丝杆将电机的旋转运动,转化直线运动,又或者齿轮或滚珠结构,带动负载进行旋转运动。具有一定的质量的负载,在加速度突变情况下,很有可能会造成机械振动。

比较专业一点的术语称为急动(Jerk),其实就是考察加速度的变化率的,也可以称为加加速度,我们知道速度的变化率就是加速度,而加速度的变化率就是加加速度。

如果用数学语言来装下逼,就是速度函数对时间的一阶导数就是加速度,而对加速度曲线的一阶导数就是加加速度。因此上图中加速度在 时刻突变,意味着加加速度为无穷大。

对于给定的负载,加加速度越大,产生的不需要的振动能量就越大,振动能量的频谱也就越宽。这意味着加速度变化越快,振动就越强大,激发的振动模式数量也就越多。由于振动能量被系统机械吸收,如果振动频率与机械和控制系统中的共振相匹配,则可能会导致稳定时间增加或精度降低。

这样一说,好像就有思路了,我们如果能做到加速度的变化率是连续的,是否这种变化就会变得平滑呢?运动是不是就更柔性?所谓变化率连续,是不是就是相对于加速度函数的导数曲线是连续的就可以了?

S-曲线调速算法

假定来归一化速度曲线为从0加速到1,假设能做出如下调速曲线:

这样来看看这些拐点:

看速度曲线先是比较缓慢的增加,然后再比较快速的增加,然后在慢慢第逼近到期望的设定速度,因此这是一个变加速过程。再来做一个进一步的假设,把加速度过程的时间也做一个归一化:

对于 函数,可以看出:

前面说 ,那么 ,意味着在0、1时刻,加速度为0。

假设速度曲线函数为:

则其一阶导数为:

这样就可以得出下面的方程组了:

解出a和b:

因此,调速曲线就得到了:

其加速度曲线为:

整个过程的加速度曲线长这样:

这样一来,加速度就是连续变化的,没有突变点。解决了之前提到的急动的问题。由于加速、减速过程完全对称,因此我们关心的运动距离控制,则很容易用下图中绿色区域的面积计算得到:

有了这样的数学模型,编码实现就是水到渠成的事情了。

总结一下

电机速度控制,一般尽量做到柔性调速,本文分享的步进电机的S-曲线调速数学算法模型,是一个非常棒的算法模型。速度一开始缓慢增加到快速增加,再回到缓慢增加直到速度达到设定期望速度。从设计上,兼顾了快速启停,又能尽最大程度降低加速度突变这一对矛盾。希望对有兴趣的朋友有所帮助。

—— The End ——

推荐阅读  点击蓝色字体即可跳转

☞ 使用FreeRTOS要好好理解任务状态机?

☞ 手把手教你在STM32F4上跑freeRTOS

☞ 图解FreeRTOS原理系列之任务管理器基本框架

☞ 傅里叶变换、拉普拉斯变换、Z 变换的联系是什么?为什么要变换?

欢迎转发、留言、点赞、分享给您的朋友,感谢您的支持!

步进电机算法s曲线的原理与实现 s曲线图形如下 上图的曲线图在步进电机中可看为是步进电机的速度变化图,步进电机速度是和频率成正比,即也可看为是频率递增的曲线图。加速在加速的过程中一共可以分为两个阶段,分别为前半部分和后半部分,前半部分是加速度匀速递增的曲线,称为:加加速阶段曲线,后半部分是加速度匀速递减的曲线超,所以称为:减加速度阶段曲线。 s曲线图对应的加速度变化,即曲线斜率图如下: 前半段斜率大于0,加速度从0变为最大值,后半段斜率小于0,加速度从最大值变为最小值。 一... 阅读详情

相关推荐

步进电机驱动算法——S形加减速算法原理

目录步进电机S形加减速简介七段S形加减速算法原理分析五段S形加减速算法实现算法分析查表法编程实现思路及方法S曲线加减速流程图 步进电机S形加减速简介 一个物体从起点运动到终点要经历加速、匀速、减速的过程,把整个过程中速度随时间变化关系画出来,就是速度曲线。 “S”形加减速就是指速度曲线中加减速阶段的曲线呈现一个英文字母“S”型。 “S”形加减速的曲线并没有限定是什么曲线,所以可以是指数曲线,可以是正弦曲线,这里分析的“S”形加减速是基于加速度匀速变化的曲线。 基于加速度匀速变化的S形加减速可分为: 7段:加

aaa376070331的博客 4万+

前凸后翘的步进电机调速算法~

[导读] 大家好,我是逸珺。今天想分享一种超级实用的步进电机调速算法,这种算法在步进电机调速方案中可以说是一种非常优异的方案。梯形调速算法 为啥需要设计一个调速算法呢?步进电机不是给多少脉...

嵌入式Linux 1660

基于STM32F103的步进电机S型曲线加减速算法与实现

步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;...

weixin_42399752的博客 2万+

步进电机S型曲线加速的实现

之前做电机相关的项目比较少,最近有个项目涉及到步进电机的精确控制,参考了一些资料研究了一下S型曲线加减速,这里总结一下分享给大家。硬件是:STM32+驱动器+步进电机。STM32定时器输...

zhang062061的专栏 6870

STM32F103C8T6驱动安川步进电机实战:从CubeMX配置到多段S曲线调速代码详解

本文详细介绍了如何使用STM32F103C8T6驱动安川步进电机,从CubeMX配置到多段S曲线调速代码实现。通过主从定时器协同工作和PWM波形优化,实现平滑的速度控制,适用于工业自动化场景。重点讲解了硬件连接、定时器配置、S曲线算法及脉冲精确控制,帮助工程师解决步进电机精准控制难题。

weixin_30872337的博客 670

STM32控制步进电机的多步进加减速算法及调速实战

STM32是STMicroelectronics(意法半导体)推出的高性能ARM Cortex-M系列微控制器。它凭借高性能、低功耗和丰富的内置外设,广泛应用于工业控制、医疗设备、汽车电子和消费类电子产品中。STM32系列微控制器具有包括内核版本、性能等级、内存大小和封装类型在内的多个系列,确保了能够满足不同应用场合的需求。PID控制算法(比例-积分-微分控制)是工业控制领域最常用的反馈控制算法之一。它通过对系统当前状态的连续监测和计算,动态调整控制输出,以达到期望的控制目标。

weixin_32047493的博客 947

步进电机调速,S曲线调速算法很香

[导读] 大家好,我是逸珺。 今天想分享一种超级实用的步进电机调速算法,这种算法在步进电机调速方案中可以说是一种非常优异的方案。 梯形调速算法 为啥需要设计一个调速算法呢?步进电机不是给多少脉冲就动多少步吗?但是带上负载了就可能失步,所谓失步,简单理解就是实际电机轴转过的度数,没有输入脉冲对应度数多。为什么会这样呢?电机的扭矩有可能无法驱动负载。一般会做一个启动加速控制过程,停止的时候做一个减速控制,中间做一个匀速控制。这就是比较常见的梯形调速控制算法。 这样一个梯形调速算法,相当于步进电机的运动过程包含

嵌入式客栈 3375

C#编写的步进电机S曲线调速工具:带实时绘图和查表数据导出

这个工具用C#实现步进电机的S型加减速控制,核心是平滑的速度过渡算法,避免传统梯形加减速带来的冲击。运行后能实时绘制速度-时间曲线,直观看到加加速(jerk)调节效果;提供图形化界面,可直接修改起始速度、目标速度、加速度、加加速度等参数,调整后立即刷新曲线。支持将生成的S型速度序列一键导出为C数组格式,方便复制到STM32、Arduino或PLC等嵌入式平台做查表法运动控制。附带完整Windows安装包(setup.exe和MSI),双击即可安装使用,无需安装Visual Studio或.NET开发环境。源

ee345的博客 234

自制工具合集之《在线步进电机调速》

无需下载,根据输入的起始频率、结束频率及采样点,输出横坐标为时间,纵坐标为频率的曲线。

嵌入式分享 1951

S型加减速曲线算法----matlab

S型加减速算法,可实现由脉冲数反算速度曲线、由加减速率计算速度曲线和加减速时间计算速度曲线。

NURBS曲线实时插补中S型加减速算法的研究 (2010年)

针对在高速高精度加工过程中非均匀B样条曲线(non-uniform rational B-spfine,NURBS)的实时插补时,机床加减速容易出现冲击或者振荡现象,提出了S型加减速(S-shape ADC/DEC)前瞻方法。建立了曲线的S型加减速离散采样模型,提出了S型曲线加减速前瞻算法,通过此算法可以根据实际插补轨迹的几何特性,能够自适应地确定加减速点。仿真结果表明该算法可以在保证加工精度的同时有效消除加减速过程中对机床的冲击,提高加工精度。

步进电机加减速——梯形算法

1.声明 1、这是我第一篇博客文章,如有错误请各位大佬指点,谢谢。 2、该篇文章是适合了解了步进电机基础原理的学习者阅读。 2.目的 使用要求与场合: 1、步进电机 2、速度变化较大 3、启动停止频繁 步进电机加减速算法目的:对于上述2、3的场合,步进电机容易出现丢步和过冲甚至无法启动的现象,所以加入该算法来解决这一问题。 3. 算法实现 3.1加减速期望曲线...

hyh80227的博客 3万+

全程S曲线加减速控制的自适应分段NURBS曲线插补算法 (2010年)

为满足现代数控加工的高速度、高精度要求,提出基于7段式S曲线加减速全程规划的NURBS曲线自适应分段插补算法。该算法根据NURBS曲线几何形状将其自适应分段,并计算曲线段各项参数值、对应S曲线加减速规划(速度规划为17种类型)中加减速类型和自适应调整速度曲线加减速时间。在固定插补周期下,与单独自适应算法、5段式S曲线加减速控制方法的仿真结果相比,在满足加速度与加加速度限制条件,且最大弦高误差不超过0.5μm时,该算法插补精度高于单独自适应算法,与5段式S曲线加减速控制方法近似,且其全程平均进给速度比5段式

步进电机的加速曲线

问题的提出 如何让步进电机平滑地加减速运动一段固定的行程 硬件平台 86步进电机 STM32F103ZET6微控制器 步进电机的转速由由输出给驱动器的PWM频率而定,使用MCU的一个定时器(TIM2_CH1)输出占空比 D=50% 的脉冲。 定时器的时钟频率为72MHz,分频后8Mhz,于是输出PWM的最低频率大约为120Hz。 假定需要在时间 t 内运行 θ角度,根据驱动器的细分数...

chens08的博客 5124

告别音质玄学:实测ACM8625S搭配杰理AC695x,如何通过寄存器精准调出好声音

第一次听到ACM8625S驱动音箱发出的声音时,我有些失望——这个被厂商宣传为"高保真数字功放"的芯片,默认配置下的表现甚至不如一些廉价模拟功放。经过两周的反复调试,最终配置使这款售价不到200元的音箱达到了接近专业监听设备的音质水平。特别是在鼓点和电吉他表现上,既保持了足够的冲击力,又不会掩盖人声细节。例如,当频率响应曲线在10kHz有+2dB提升时,多数评测者认为听感最佳,尽管这会使THD略微增加0.05%。虽然厂商提供的配置工具能快速生成基础代码,但想要获得最佳音效还需要手动优化。

weixin_29655587的博客 354

惊呆了!Oracle 11g从入门到放弃的保姆级指南(新手必看)

本文为Oracle 11g数据库新手提供了一份详尽的入门指南。内容涵盖从安装配置、SQL*Plus工具使用、核心的SQL增删改查操作,到事务、索引等进阶概念的解析。文章旨在帮助初学者避开常见陷阱,快速掌握这一经典关系型数据库管理系统的基本操作与核心技能,实现从入门到上手。

ooo22的博客 265

步进电机s形调速控制

本文针对嵌入式平台资源受限问题,提出一种精简的五段式S形步进电机调速算法。通过严谨的数学建模,推导出速度、加速度与加加速度的关系,并引入匀速段占比参数k,使算法能自适应不同行程。为解决离散系统脉冲控制问题,采用1:1路程分配法替代理论值,显著提升运行平滑性。文章提供了实时计算与DMA预计算两种实现方案,为单片机实现平稳、高效的电机控制提供了实用解决方案。

weixin_71547062的博客 1331

演化计算(蚁群算法、粒子群算法、遗传算法、演化规则......)

演化算法1.概念2.解决的问题 1.概念 传统算法(如梯度下降法、爬山法)根据导数的性质决定迭代的方向;而演化计算是一组解在一起协同作用产生一个最优解。 2.解决的问题 预测优化:演化计算(蚁群算法、粒子群算法、遗传算法等) 解的聚散、多样性:通过多次聚散,尽快得出最优解(某个解不合要求,要能够发散出去) ...

dear_jing的博客 4162

两相步进电机的控制及其实现

1.步进电机如何控制 不同于传统的电机,步进电机是一种脉冲电机,即在不超载的情况下,电机不发生失步,此时电机转速只与驱动电机的脉冲相关。但电机的驱动转矩是有限的,负载又具有惯性,即转速是不能突变的,因而步进电机在加减速的过程需要控制驱动脉冲的频率。 对于两相四线混合型步进电机,内部电路可以简化为: 即电机内部具有两组线圈,AC与BD两相。每一个脉冲来临,转子经过短暂的转动后总会停在两相线圈合成磁场的方向。磁场大小与电流成正比,因而可以通过控制电流方向控制磁场方向。 传统的控制方法只对线圈电流方.

qq_31742117的博客 1万+

Logisim 原码一位乘法器设计 图解及代码(计算机组成原理)

Logisim 原码一位乘法器设计 图解及代码(计算机组成原理) 包对

醉蕤的博客 4375

【STABLE_BASELINE3】强化学习算法实战:模型的保存,读取,再训练

STABLE-BASELINE3,模型读取,再训练:有时候需要在已经训练好的模型基础上进行再次训练。

Kiek17的博客 4867
上一篇: 来了,我写的手把手教数字滤波器实战pdf
下一篇: 步进电机调速,S曲线调速算法很香
嵌入式客栈
博客等级 码龄14年 1万+粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值