找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2092|回复: 11
打印 上一主题 下一主题
收起左侧

展示两个较完美S曲线的速度曲线图

[复制链接]
跳转到指定楼层
楼主
  附图展示了两个较完美S曲线的速度曲线图:控制步进电机加减速时,要在一定时间内运动到指定的位置,此时速度为0无振荡,有一定的难度,此前已经实现,这次在此基础上,进一步实现了较完美的速度曲线,对于运动控制而言,已经是不错了!

PID_SCurve.png (68.1 KB, 下载次数: 24)

PID_SCurve.png

PID_SCurveA.png (69.42 KB, 下载次数: 18)

PID_SCurveA.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:764101 发表于 2024-7-24 21:43 | 只看该作者
   1) 在从位置A移动到位置B的过程中,一般同时会给出允许的最大速度,通常用转每分钟表示,一般步进电机从30-1000转每分钟都有;
   2)位移的最初阶段是速度上升的过程,这个过程一般加速度可以是三角形梯形或正弦波形,生成的速度是S型,也可以使用PID控制过程模拟生成速度S曲线,PID控制实际上是个负反馈控制,因此具有允许最大速度范围广,控制周期可以略长,通常在10mS量级,不必每个步进电机脉冲都必须计算;
  3)前半程使用PID控制进行加速的情况下,后半程需要进行减速,但前半程加速到半程或者达到最大速度就停止加速了,时间节点比较好掌握,后半程减速需要在移动到位置B时,速度也刚好降为0,同时有两个条件,因此直接用PID会有振荡现象;
  4)考虑仿生学,大多数人在红绿灯前面(骑车或开车)停车的情况,其实和步进电机走到指定位移并同时减速为0是相同的,但大多数人都能在停止线附近挺得很好,这里面有一个最重要的策略:离停止线越远,允许的速度越大,离停止线越近,允许的速度越小;
  5)参考4)以后,步进电机可以在后半程选一个以当前位置到目标位置距离为X,速度为Y的函数,满足X越小,Y也越小,X趋近于0时,Y也趋近于0即可,可以是函数Y=kX,Y=KX*X,Y=sqrt(X)等,从这些函数中选一个使得步进电机能正常运行且减速时的加速度较小的曲线就可以了;
  6)如5)中后半程使用特定函数将速度衰减为0的做法,用是能用,但其速度曲线和加速度曲线前后不对称,缺乏美感,要想前后两个半程速度和加速度曲线对称,有两个办法:一是前半程记录加速数据,后半程采用镜像的方式复现,缺点是要的数据比较多,记录要详细,另外一个方法是前半程根据需要记录几个特殊位移时的速度(Sn,Vn),后半程在达到与前半程特殊位移对应的位置时,将速度置为记录数组中的数值,比如加速时(0,0),(1/8S,V1),(2/8S,V2),(3/8S,V3),(4/8S,V4),那么减速时依次为(4/8S,V4),(5/8S,V3),  (6/8S,V2), (7/8S,V1),  (8/8S,0),采用这种方法可以根据自己需要设置记录数组的数量,可以是8组,64组,256组,数组越大,曲线越平滑,但有些短位移需要做特殊处理;
  6)中的方法即为实现上面较完美曲线的对应策略,供参考,以上!

步进电机PID加减速波形仿真.png (53.76 KB, 下载次数: 18)

步进电机PID加减速波形仿真.png

步进电机PID加减速波形仿真_A.png (54.44 KB, 下载次数: 20)

步进电机PID加减速波形仿真_A.png

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:301191 发表于 2024-8-7 20:45 | 只看该作者
顶一下
回复

使用道具 举报

地板
ID:420836 发表于 2024-8-9 07:08 | 只看该作者
非常好。谢谢分享。对理解这个概念非常有帮助。
回复

使用道具 举报

5#
ID:764101 发表于 2025-7-22 16:25 | 只看该作者
ColeYao 发表于 2024-7-24 21:43
1) 在从位置A移动到位置B的过程中,一般同时会给出允许的最大速度,通常用转每分钟表示,一般步进电机从 ...

虚拟示波器抓取的目标位移、实际位移、四路速度(1路定时器控制)、加速度波形图!

PID加减速_20250722_位移加速度和_四路速度波形A.png (93.33 KB, 下载次数: 0)

PID加减速_20250722_位移加速度和_四路速度波形A.png
回复

使用道具 举报

6#
ID:879809 发表于 2025-7-23 09:54 | 只看该作者
步进电机是低成本方案,用开环控制,PID是闭环控制,你是怎么做到把驴唇安装到马嘴上面的?
回复

使用道具 举报

7#
ID:764101 发表于 2025-7-23 12:14 | 只看该作者
rundstedt 发表于 2025-7-23 09:54
步进电机是低成本方案,用开环控制,PID是闭环控制,你是怎么做到把驴唇安装到马嘴上面的?

是,您说的对,步进电机和PID控制就是馿唇和马嘴,不过我就不明白了,我都没放源码,您就能判断出来,真是高人啊!
回复

使用道具 举报

8#
ID:940483 发表于 2025-7-23 13:11 | 只看该作者
受教了,谢谢老师父
回复

使用道具 举报

9#
ID:108361 发表于 2025-7-23 16:42 | 只看该作者
ColeYao 发表于 2025-7-23 12:14
是,您说的对,步进电机和PID控制就是馿唇和马嘴,不过我就不明白了,我都没放源码,您就能判断出来,真 ...

你给步进电机加了传感器?那为啥不直接用BLDC了
回复

使用道具 举报

10#
ID:764101 发表于 2025-7-24 08:27 | 只看该作者
powerdruy 发表于 2025-7-23 16:42
你给步进电机加了传感器?那为啥不直接用BLDC了

步进电机目标位置自己知道,实际位置是给脉冲一步一步走出来的,到哪里了自己也很清楚,当前位置偏差、速度和加速度都能计算出来,还要啥传感器,嫌钱多吗!
回复

使用道具 举报

11#
ID:764101 发表于 2025-7-24 08:47 | 只看该作者
发表于 2025-7-23 16:42
你给步进电机加了传感器?那为啥不直接用BLDC了

步进电机用法:1)按指定的频率给脉冲,按脉冲数和方向计算当前位置,速度恒定,没有加减速;
                      2)在1)的基础上,将发脉冲的频率分成几档,算简易的加减速,有明显顿挫感;
                      3)在1)的基础上,脉冲加减速改成渐变平滑调速,常用的是建立一个加减速数组;
                      4)在3)的基础上,加减速数组准实时生成,由当前位置和目标位置通过算法得到一定形状的速度曲线(理想形状为S型);
                      5)在4)的基础上,附加审查加速度曲线,做到加速度也是平滑曲线,没有跳变。
回复

使用道具 举报

12#
ID:764101 发表于 2025-7-24 09:23 | 只看该作者
发表于 2025-7-24 08:47
步进电机用法:1)按指定的频率给脉冲,按脉冲数和方向计算当前位置,速度恒定,没有加减速;
          ...

  6)在5)的基础上,使用单个定时器同时控制1-4步进电机(stm32看定时器的CCR数量,有的定时器是4路,有的定时器是2路,有的没有)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表