三次函数S曲线运动控制效果(步进电机)

2020-01-12 17:13发布

本帖最后由 colinzhao 于 2018-6-26 19:58 编辑

本想增加个视频,可能是之前的帖子有点久了,编辑不了,只能再开个帖子了,之前的帖子:
https://www.amobbs.com/forum.php ... S%E6%9B%B2%E7%BA%BF
视频:
https://v.youku.com/v_show/id_XM ... j.8428770.3416059.1
几年前也做了一个算法,但之前的算法参数普适性不足,无法直接通过传递函数推导,当时的视频:
https://v.youku.com/v_show/id_XN ... 42.soresults.dtitle

目前可实现以下的算法:
1、给定时间、最高速度、最小速度、位移量。S曲线运行,时间精度可以做到10uS的精度。所有的参数均为双精度浮点数。此方式可用于多轴的同步运行,比如三轴坐标系下,合成运行轨迹是直线。
2、给定最高速度、变加加速度、位移量。S曲线运行。
3、给定加速段时间、减速段时间、位移量、最高速度、最小速度。S曲线运行。
4、给定最高速度、位移量。S曲线运行,最小速度为最高速度的1/10000,匀速段为0。此方式是最平稳的运行方式。
5、最高输出频率时5MHz,256细分的步进电机可驱动到1万转,视频里面的最大速度3500转左右。
6、若有需要可精确控制S曲线任何段位的参数。
7、所有运行参数严格遵循控制函数,直接用三次函数计算运行参数,比如可以根据运动部件的重量,由公式计算出最合适的运行参数。
8、准备把这个做成带CAN总线的单卡,方便多轴运行。

发出来大家拍拍砖!!!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
gzhuli
1楼-- · 2020-01-15 18:54
kinsno 发表于 2018-6-26 21:31
中途变化的有什么好的想法吗?其实中途变化的才是更贴近实际应用中的需求。。

...

S曲线一般用于开环控制,这种应用场景除了触发限位和急停外基本上没有中途变化目的坐标的需求。
而闭环控制场合用电流和位置双环PID调好参的运动曲线其实跟S曲线很相似,这个是可以实时变化的,只是电流环满足不了加速度要求时位置环可能有过冲,但最终都能纠正过来不会有累积误差,开环过冲就没办法自己纠正了。
kinsno
2楼-- · 2020-01-15 19:09
gzhuli 发表于 2018-6-26 22:48
S曲线一般用于开环控制,这种应用场景除了触发限位和急停外基本上没有中途变化目的坐标的需求。
而闭环控 ...


是的,实际上我试过这种S形曲线,在这种动态里用起来相当繁锁,并且效果并不在好。。还是双PID的效果比较好,流畅 。。
毕竟是大师,各方向都有涉猎啊。。


colinzhao
3楼-- · 2020-01-15 23:15
icherry 发表于 2018-6-26 21:45
不知楼主是否带载试过,效果咋样?

带载测试过的,特别是在重载下效果极其明显,当运动部件重量很重时,没有S曲线几乎是不可想象的。
colinzhao
4楼-- · 2020-01-16 02:25
活到老学到老 发表于 2018-6-26 22:08
什么时候卡做出来,价格大概多少,想试试看

打算做成两个U盘那么大的小卡,价格应该在一百来块吧,希望能广泛应用的。
colinzhao
5楼-- · 2020-01-16 06:09
 精彩回答 2  元偷偷看……
colinzhao
6楼-- · 2020-01-16 08:21
gzhuli 发表于 2018-6-26 22:48
S曲线一般用于开环控制,这种应用场景除了触发限位和急停外基本上没有中途变化目的坐标的需求。
而闭环控 ...

嗯,有些领域用伺服不用步进也是因为加减速算法做不好,间接使用了伺服驱动器的“滤波器”,以达到平稳运行的效果。不过这种情况就像您说的,会有过冲,需要根据负载调试。那么当有高精度的S曲线控制的话,伺服驱动器只需要调整在最大的“刚性(松下伺服是这么设置的)”即可,并不需要考虑负载的问题了。还有就是S曲线运控实际上是不存在过冲的,因为是开环实时运算,也可以理解为百分之百的前馈。

一周热门 更多>