搜索
bottom↓
12
返回列表 发新帖
楼主: shawn_bu

C#重写了“步进电机S曲线加速数据计算小软件”

  [复制链接]

出0入0汤圆

发表于 2017-9-20 03:59:07 | 显示全部楼层
wind2100 发表于 2017-9-19 22:54
这个S曲线公式下去 很难去做运动控制,  你做到后面就懂了
PID  就不管那些复杂的运算    输入你的位置差 ...

怎么会呢

我就是用这样的S曲线做的步进驱动

任意时刻给任意目标位置或速度,马上跟随

比如当前在0位置,停止状态。给一个1000步的目标位置,电机开始跑

当电机跑到300的位置时,更新命令,给一个20的位置

这个时候要继续向前走,减速为0,然后重新反向加速再减速,跑到20的位置

出0入0汤圆

发表于 2017-9-20 21:58:06 | 显示全部楼层
FireHe 发表于 2017-9-20 03:59
怎么会呢

我就是用这样的S曲线做的步进驱动

理想的情况 当然是这样,
但是如果 给 目标位置  20  40   60 80 100 这样+  然后每次电机的速度刚好在加速中,
每次都要用位置去计算 加速时间  减速时间  , 什么时候该减速了.

出0入0汤圆

发表于 2017-9-20 22:06:10 | 显示全部楼层
shawn_bu 发表于 2017-9-19 23:25
我只是做做简单的控制,让步进电机按照固定的间隔运动。这个实际产品发了很多套用了一年多貌似没出啥问题 ...

恩 这样行  这样一点问题都没有

出0入0汤圆

发表于 2017-9-21 09:44:40 | 显示全部楼层
wind2100 发表于 2017-9-20 21:58
理想的情况 当然是这样,
但是如果 给 目标位置  20  40   60 80 100 这样+  然后每次电机的速度刚好在加 ...

当然是这样呀

我已经实现并应用了好多年了

任意状态给任意目标位置

还可以限制速度

出0入0汤圆

发表于 2017-9-21 09:56:26 | 显示全部楼层
FireHe 发表于 2017-9-21 09:44
当然是这样呀

我已经实现并应用了好多年了

你控制的对像 惯量大吗?    关键就是要快速 而不抖动.

出0入0汤圆

发表于 2017-9-21 10:01:48 | 显示全部楼层
wind2100 发表于 2017-9-21 09:56
你控制的对像 惯量大吗?    关键就是要快速 而不抖动.

并不是急刹车啊

跟控制的对象一点关系都没有,再大的惯量,再小的负载都一样。只要本身步进和驱动器能否胜任,加减速曲线合理。那我这代码就能良好工作

快速和不抖动是肯定的,因为一直都是在控制中的



出0入0汤圆

发表于 2017-9-21 10:08:20 | 显示全部楼层
说一个具体的应用场景吧

用一个400线的编码器,手动拧这个编码器,编码器的输出作为目标位置,输入给控制器,控制器根据这个输入计算后输出给驱动器,驱动步进电机

实现的效果,任意拧编码器,快速慢速突发持续正反转都可以,反正就是任意拧。然后步进电机跟随着动,实现一样的角度变化。看起来就是一个随动的系统。

出0入0汤圆

发表于 2017-9-21 10:11:13 | 显示全部楼层
当然,用手拧的比较慢,也可以用上位机产生随机数的方式来生成运动目标,这个变化速度就够快了。

然后通过编码器装在步进输出轴上,反馈位置到上位机

在上位机上绘制图形对比,可以看到目标位置和实际位置的曲线。

出0入0汤圆

发表于 2017-9-21 10:16:55 | 显示全部楼层
FireHe 发表于 2017-9-21 10:11
当然,用手拧的比较慢,也可以用上位机产生随机数的方式来生成运动目标,这个变化速度就够快了。

然后通过 ...

你的加速度度 曲线 是怎么样的 三角形和梯形方式?

我现在 就是碰到一个问题,   电机本身正在加速的时候 如果再加速,效果不是很理想   ,  

我尝试过三角形加速度  可是效果并不好  不能快速反应.

我有分享一个 人家写的 加速度曲线 类拟于梯形  开始很快 后面慢.

出0入0汤圆

发表于 2017-9-21 10:20:14 | 显示全部楼层
wind2100 发表于 2017-9-21 10:16
你的加速度度 曲线 是怎么样的 三角形和梯形方式?

我现在 就是碰到一个问题,   电机本身正在加速的时候  ...

加速曲线任意啊,只要本身这个曲线合理(合理就是说拿来做加减速反复驱动没有问题)

我实际用的是S曲线

关键你要判断当前位置

出0入0汤圆

发表于 2017-9-21 10:21:16 | 显示全部楼层
另外一个问题 就是 :  如果再加速度  这个加速度时间  很难确定才能达到最好的效果, 加速时间少了 不能快速到达目标位置, 加速时间多了 又超过了目标位置.

出0入0汤圆

发表于 2017-9-21 10:24:58 | 显示全部楼层
wind2100 发表于 2017-9-21 10:21
另外一个问题 就是 :  如果再加速度  这个加速度时间  很难确定才能达到最好的效果, 加速时间少了 不能快速 ...

不明白你的意思

不存在这个问题啊

加速时间快慢是决定响应速度,但怎么会跟最终位置有关系呢?

出0入0汤圆

发表于 2017-9-21 10:32:35 | 显示全部楼层
FireHe 发表于 2017-9-21 10:20
加速曲线任意啊,只要本身这个曲线合理(合理就是说拿来做加减速反复驱动没有问题)

我实际用的是S曲线

这个曲线合理的条件 就是加速度 不能突变  ,只要突变 就会抖动.

出0入0汤圆

发表于 2017-9-21 10:40:13 | 显示全部楼层
FireHe 发表于 2017-9-21 10:24
不明白你的意思

不存在这个问题啊

这样,  当加速时间 过长, 快到目标位置了 仍然很高的速度, 就没办法在目标位置停下来,就会超过.

上一版本 我的加速时间,定在1/4位置 或是更少 然后用这个速度去减速 就刚好停在目标位置上, 不会超过.但是不能到最大速度.

有考虑coleyao的增量PID   在保证加速度不突变的情况下  控制速度  刚好在目标位置停下来.    我现在是用位置计算的各段加速时间.

出0入0汤圆

发表于 2017-9-21 10:41:17 | 显示全部楼层
mark 一下 楼主辛苦

出0入0汤圆

发表于 2017-9-21 10:47:44 | 显示全部楼层
我2014年 开源的项目   随动是没有问题  ,可是加速度会突变 会有丢步的情况  ,如果加速度过大,加速度合理到不会.
低速的时间位置要分得很细 才能达到一个比较好的效果,因为那种算法是位置控制时间,从而控制速度.

出0入0汤圆

发表于 2017-9-21 11:29:19 | 显示全部楼层
wind2100 发表于 2017-9-21 10:40
这样,  当加速时间 过长, 快到目标位置了 仍然很高的速度, 就没办法在目标位置停下来,就会超过.

上一版 ...

可能你的要求比我的要高很多?

你说的这个情况,肯定会超过目标位置然后再回来的呀

在我看来,任意系统都是这样的,这个跟算法没有关系的。就算是伺服系统,一样也要给一个加减速时间的。

出0入0汤圆

发表于 2017-9-21 11:32:09 | 显示全部楼层
你说的想法,我猜测应该是希望加速度可变?(以三角形来举例,就是希望中途斜率可变?)

这个在理论上是没问题的,但前提是本身驱动器、步进、负载能够承受变化后的最大加速度呀。其实你看S型曲线,不就是一个斜率变化的三角形加速吗?

出0入0汤圆

发表于 2017-9-21 13:38:27 | 显示全部楼层
FireHe 发表于 2017-9-21 11:32
你说的想法,我猜测应该是希望加速度可变?(以三角形来举例,就是希望中途斜率可变?)

这个在理论上是没 ...

加速度 肯定是可变的 但要如何变  
我看到一个论文    这样 算法就越来越复杂了  再计算位置  位置算加速时间 就更麻烦了

https://www.amobbs.com/thread-5681008-1-1.html

出0入0汤圆

发表于 2017-9-21 14:01:47 | 显示全部楼层
wind2100 发表于 2017-9-21 13:38
加速度 肯定是可变的 但要如何变  
我看到一个论文    这样 算法就越来越复杂了  再计算位置  位置算加速 ...

本质上都是一样的呀

我没看到有什么不同的地方

每次计算,肯定都是要判断位置、判断当前加速状态、判断当前方向的

出0入0汤圆

发表于 2017-9-24 15:17:58 | 显示全部楼层
楼主无私,收藏!

出0入0汤圆

发表于 2017-12-28 21:49:28 | 显示全部楼层
谢谢楼主分享!

出0入0汤圆

发表于 2018-1-11 14:14:20 | 显示全部楼层
多谢楼主分享,先研究一下你的51代码吧。

出0入0汤圆

发表于 2018-5-10 00:23:34 | 显示全部楼层
请问楼主,51代码里面的 数组数据,用这个小软件,PWM翻转周期初始值,最高速时PWM翻转周期,分别是多少,不知道咱们这个速度能达到多少

出0入4汤圆

发表于 2018-5-10 08:54:37 | 显示全部楼层
下下来学习学习

出0入0汤圆

发表于 2018-6-6 11:29:45 | 显示全部楼层
谢谢分享

出0入98汤圆

发表于 2019-2-3 19:01:05 | 显示全部楼层
写的相当好,正好用了

出0入0汤圆

发表于 2019-2-24 13:10:43 | 显示全部楼层
试了下,这个软件有问题,总阶段数 设置100,计算后没有出来100个数据

出100入101汤圆

发表于 2019-2-24 17:12:08 | 显示全部楼层
步进电机扫盲贴

出100入0汤圆

发表于 2019-2-25 20:07:22 | 显示全部楼层
谢谢楼主分享

出0入10汤圆

发表于 2019-3-6 15:17:40 | 显示全部楼层
很强大!!!!!!!!!!!!!!!!!!!!!!!!

出0入0汤圆

发表于 2019-5-20 14:38:40 | 显示全部楼层
不知道计算量大不大

出0入0汤圆

发表于 2019-8-14 11:15:14 | 显示全部楼层
多谢楼主分享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-16 20:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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