三次函数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条回答
colinzhao
1楼-- · 2020-01-14 09:31
vjcmain 发表于 2018-6-26 20:29
楼主,请问使用sigmoid 函数效果如何?



这个是指数函数,之前有论文讲了这个,我有简单对比过,还没有推导过这个曲线下的加速度是什么样的,所以不好评论!
colinzhao
2楼-- · 2020-01-14 14:38
 精彩回答 2  元偷偷看……
kinsno
3楼-- · 2020-01-14 15:49
本帖最后由 kinsno 于 2018-6-26 20:58 编辑
colinzhao 发表于 2018-6-26 20:29
最简单的加减速算法是T型曲线,可此时的加速度是矩形的,也就是说作用力是阶跃的,不好,所以就弄成二次曲 ...


你说问题在哪,我晓得的。我是指你这个公式来源,你是不是这样推断的:
1  V = a*t , 在这里a叫加速度
2. 你为了速度曲线,再加一级  V = a*t*t , 在这里a叫加加速度
3. 完了,你又为了让加速度曲线化,再加1级 V= a*t * t *t ,在这里a叫加加加速度
那实际上,这个a是3个加字,即“加加加”速度,好绕口。。但实际上,这样方便应用在程序里吗?你是不是根据最高速度和时间,或者位移和时间,计算出这个“加加加”速度,完了反推回速度和位移。。
看来有空我得做一个曲线图试一下。。。
PS:但实际过程中,不晓得你考虑到另外一个平滑问题了没有,比如,我从A点到B点运动中,所有参数计算完毕,刚走到半路中时,突然B点发生变化,那么势必要重新计算,这个重新计出来的值和原来的值之间,是否会有阶跃 ,也许就不能平滑了。那位速度也是一样,从A速度向B速度迁移,突然B速度变化了。。




cs128815
4楼-- · 2020-01-14 20:50
能共享出来 就牛逼了
colinzhao
5楼-- · 2020-01-15 00:14
kinsno 发表于 2018-6-26 20:55
你说问题在哪,我晓得的。我是指你这个公式来源,你是不是这样推断的:
1  V = a*t , 在这里a叫加速度
...

嗯,是这样的,不过这个是不考虑中途变化的,这个不是插补,而是点到点的运动控制。
cs128815
6楼-- · 2020-01-15 03:10
开源吗?

一周热门 更多>