打印

步进电机梯形加速,求大神。

[复制链接]
12003|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DownCloud|  楼主 | 2012-7-30 14:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
硬件:有步进电机驱动芯片。给脉冲就会走,另有方向控制端口。高到低或者低到高电平走一步。
脉冲频率可以达到好高,但我还不知道多高。。。没有流笔的梯形算法软件,所以达不到最高点。但别人做的和资料表明,可达到20Khz。也就是说,走一步完、中断、下一步,中断只有50us。

问题:给定一变量 步数s 。 知道常量加速度A,最高速度V,初速度V0(第一步速度)。
1.求临界点(加速到哪一步,匀速,哪一步开始减速)。加速段每步加了多少速度?
注:速度还要换成频率,我怎么不大会算。
2.求算法。(AVR,8Mhz)

求步进大神。谢谢。

相关帖子

沙发
DownCloud|  楼主 | 2012-7-30 15:04 | 只看该作者
有些人不知道梯形加速,可以大概理解为: 加速启动,到最大速度了匀速运行,减速停止。

使用特权

评论回复
板凳
受不了了| | 2012-7-30 15:05 | 只看该作者
查表,我觉得实时计算不大现实

使用特权

评论回复
地板
受不了了| | 2012-7-30 15:25 | 只看该作者
不过现在的PLC里都有梯形加减速自动计算,用示波器看过,发到100KHZ时高低电平也很均匀,顺畅,能每一步都均匀变化频率,不知道其实现方法,PLC应该是无法实现那么长的查表,哪怕是PWM也很难在那么短时间内计算完初始值,更何况还要计数

使用特权

评论回复
5
dlyt_test001| | 2012-7-31 08:33 | 只看该作者
当然查表,最快,最方便,最安全!

使用特权

评论回复
6
DownCloud|  楼主 | 2012-7-31 08:45 | 只看该作者
谢谢以上两位大神。
查表我做过了,只能达到10K。中断中要做的事挺多的,计算步数减一也有可能加一(正负坐标),多个电机,还要判断谁先走,然后判断总的是否走完。还有很多发现bug添加进去的。(其实程序做的超级不好,挺不负责的)
我查表的数据有错,之前每一步加的速度是一样的,这是不对的,但是不负责的将错就错。高中物理,匀加速直线运动等位移时间比:T1:T2:T3...Tn=1:(根号2-1):(根号3-根号2):...[根号n-根号(n-1)]。现在把公式都重推了一遍。

使用特权

评论回复
7
dlyt_test001| | 2012-7-31 10:46 | 只看该作者
你那个10K神马意思啊?
用IO口控制啊!
你难道没有PWM输出吗?
建议换主单片机!

使用特权

评论回复
8
lwq030736| | 2012-7-31 14:27 | 只看该作者
换FPGA吧

使用特权

评论回复
9
cjseng| | 2012-8-1 00:19 | 只看该作者
什么驱动芯片啊?298?
我用51做过,不过不是标准的梯形,但绝对有个上升、匀速、下降的过程,电机在运转的时候,声调会发生变化,倒是蛮好听的。
我的做法就是:在上升与下降阶段,不用中断,完全就是靠指令执行的时间来定时,不断调整NOP的个数,实现速度上升与下降,到了匀速期,就交给中断来做了。
其实不要纠结于是否是梯形加减速,只要保证在速度上升与下降时不失步就行了,当然匀速时也不能失步。

使用特权

评论回复
10
受不了了| | 2012-8-1 09:51 | 只看该作者
多个电机,就用翻转,别发完完整脉冲再退出中断,否则多路脉冲在高速时会冲突,使频率不均匀。用查表,没几句话的

使用特权

评论回复
11
fly1974| | 2012-8-1 12:11 | 只看该作者
照10楼的用法,似乎mega128(8M)可以达到20~50K的脉冲速率,当然是查表法,没试过计算法,单片机应该没这么牛。

使用特权

评论回复
12
fly1974| | 2012-8-1 12:13 | 只看该作者
给个帖子参考一下,里面讨论的够多了,自己琢磨。。。
http://www.amobbs.com/thread-5489204-1-1.html

使用特权

评论回复
13
wangkangming| | 2012-8-1 12:42 | 只看该作者
做个记号!mark

使用特权

评论回复
14
受不了了| | 2012-8-1 13:06 | 只看该作者
给个帖子参考一下,里面讨论的够多了,自己琢磨。。。
http://www.amobbs.com/thread-5489204-1-1.html
fly1974 发表于 2012-8-1 12:13

去看了下,好像S形加速没那个帖子里说的那么简单,需要反余弦啥的,我脑袋迷糊了,清醒的时候细究一下

使用特权

评论回复
15
DownCloud|  楼主 | 2012-8-1 17:25 | 只看该作者
给个帖子参考一下,里面讨论的够多了,自己琢磨。。。
http://www.amobbs.com/thread-5489204-1-1.html
fly1974 发表于 2012-8-1 12:13


不错,其实我的电机走了21360步才达到最高速,查表数据也蛮多的。

使用特权

评论回复
16
DownCloud|  楼主 | 2012-8-1 17:30 | 只看该作者
多个电机,就用翻转,别发完完整脉冲再退出中断,否则多路脉冲在高速时会冲突,使频率不均匀。用查表,没几句话的
受不了了 发表于 2012-8-1 09:51


是用的翻转。高速时确实会冲突,不过我已经很巧妙的解决了,动的电机用同一个速度,所以任何时候都近似只有一个中断。

我之前写的程序数据结构不好,算法比较乱,没好好规划造成的后果。所以用查表虽然快还是被其它程序拖累了。o(╯□╰)o

huang

使用特权

评论回复
17
菜鸟同学| | 2014-7-15 10:22 | 只看该作者
受不了了 发表于 2012-8-1 09:51
多个电机,就用翻转,别发完完整脉冲再退出中断,否则多路脉冲在高速时会冲突,使频率不均匀。用查表,没几 ...

我不是很懂,PWM 是调整占空比来调整电流的,如果是反转模式那么不是每次都是50%的占空比,只是每次都可以改变频率。可以改变速度而已,但是电流不足啊!求解!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

341

帖子

1

粉丝