搜索
bottom↓
回复: 9

步进电机加减速算法,运行中,怎么样直接改变当前速度

[复制链接]

出0入90汤圆

发表于 2015-8-30 18:52:39 | 显示全部楼层 |阅读模式
最近做步进电机,然后从论坛里面找到了一些相关代码。主要就是学习AVR446这个文档里面提到的步进电机加减速算法。
我大概看懂了一些后,稍作修改,就用在了STM32F051上。然后使用了一个函数AxisMoveRel(80000, 1600, 1600, 4800);来进行移动测试。
确实可以看到很明显的加速,稳定速度,减速的过程,很不错。
不过,新的问题出现了,这个函数是设置好了参数后,步进电机就会自动运行到结束。
但是,如果运行的距离很长,好比要运行几分钟。那么,大部分时间都是在恒速运行,此时,如果我想加快速度的话,应该怎么做呢?我看过上面的函数,没有办法做到临时修改的。
不知道,有没有人也是按照这个AVR446的文档做的,然后能够在运行过程中,进行速度的变更的。

我知道这个帖子回答的人一定很少,知道的人更少,所以稍微弄10个莫元,意思一下。希望有人能说说。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2015-8-30 18:56:00 | 显示全部楼层
用的时候同样都是定步数的

出0入0汤圆

发表于 2015-8-30 19:20:32 | 显示全部楼层
把速度参数做成全局访问的变量,电机脉冲生成间隔计算的函数每次读取g_hw_SpeedMax,并和当前脉冲速度作比较,做出加速 或 减速的分支跳转,模块化充分,随意改速度

AVR446的程序非常原始,就是定时器中断,然后ISR计算下一次中断对应的定时器重装数值n,唯一亮点就是一个MIT的家伙发明一个快速计算下次中断时间的数学公式

出0入0汤圆

发表于 2015-8-30 19:22:52 | 显示全部楼层
启动时的加速度和算法已知,那么启动到匀速时的步数s1就可计算出来;制动时的加速度和算法已知,那么从制动开始到完全停机时的步数s3可以计算出来;匀速时的步数s2可以将设定的总步数s0-s1-s2;总而言之,启动时的加速度、制动时的加速度、匀速期间的速度、总步数s0(s0对应负载的长度位移或者角位移)这4个参数通常是用户预先设定的,一旦设定好,内部程序会自动计算是s1、s2、s3,MCU在启动、匀速、制动期间执行相应的步数和频率控制即可。所以,楼主一定要搞清楚“AxisMoveRel()”这个函数每个形参的含义。如果该函数不支持匀速期间的速度变更,那只能歇菜了。。。做过步进电机控制器的路过。。。

出0入0汤圆

发表于 2015-8-30 18:52:40 来自手机 | 显示全部楼层
那个算法研究过,但是很久以前了,忘了,刚才从新看了一下,在每次计算中断周期的时候,将开始计算出的最大速度(中断最小周期)更新为你设定的速度就可以了,因为程序中每次计算中断周期时都会去判断是否到达最大速度,或者判断当前电机位置是否到了减速的位置了,然后再设定电机工作状态,电机工作状态要切换好,但是要注意,更改最大速度后,你需要再次计算合理的减速点才行!要不然提高速度后你还是用之前计算出来的减速点减速,很有可能导致电机过冲!!在固定行程的情况下,而且当前电机处于加速或者匀速状态,因为在减速阶段,电机位置与目标位置已经很接近了,如果再加速很可能就没有足够的距离给电机进行减速,所以在行程固定,并且电机在加速或者匀速状态下更改电机的速度这种情况下比较好讨论,手机码字好累,明天我给你改改看……

出0入0汤圆

发表于 2015-8-30 21:25:09 来自手机 | 显示全部楼层
有一种更加复杂的情况是行程不固定的,也就是电机运动过程中,位置发生了变化,而且变化是在任意位置点,这种情况下问题就复杂很多,你这种行程固定的,改变速度很好解决,只是注意重新计算减速点,要不然会有两种情况出现:第一,电机已经降到最低速度了,行程还没走完,那么电机肯定会以最低速慢慢的接近目标,这是不对的,第二,电机还没有降到最低速度就减速完了,这种情况会导致电机过冲,特别是带负载的情况下是不允许的。

出0入90汤圆

 楼主| 发表于 2015-8-31 13:30:15 | 显示全部楼层
myqiang1990 发表于 2015-8-30 21:25
有一种更加复杂的情况是行程不固定的,也就是电机运动过程中,位置发生了变化,而且变化是在任意位置点,这 ...

多谢你的回复,主要是第一次做步进电机,而且要求还有些,所以一下子搞得有点无所适从。
看了楼上诸位的回复,尤其是兄弟你的回复,我觉得我大概知道了怎么样去做。准备今天就试试看。这个地方就先谢谢你了

出0入0汤圆

发表于 2015-8-31 14:13:03 | 显示全部楼层
honami520 发表于 2015-8-31 13:30
多谢你的回复,主要是第一次做步进电机,而且要求还有些,所以一下子搞得有点无所适从。
看了楼上诸位的 ...

http://www.amobbs.com/forum.php? ... E%E5%B7%A5%E7%A8%8B
我之前发的~比原版的会更加清晰~因为有中文注释~

出0入90汤圆

 楼主| 发表于 2015-8-31 14:53:48 | 显示全部楼层
myqiang1990 发表于 2015-8-31 14:13
http://www.amobbs.com/forum.php?mod=viewthread&tid=5546501&highlight=%E7%83%82%E5%B0%BE%E5%B7%A5%E ...

谢谢哥们了。我仔细看看!

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-23 08:24

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

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