amobbs.com 阿莫电子技术论坛

标题: 步进电机细分算法 [打印本页]

作者: kegaank    时间: 2007-12-28 23:40
标题: 步进电机细分算法
这几天研究步进电机的细分算法,获得比较大的突破.实际测试效果不错.现传上来与大家分享.
本程序针对的硬件为M16,两相四拍混合式电机.其它步进电机也可以用这种相关的方法来写,通用性很好.
低速启动感觉不到振动.
点击此处下载ourdev_194932.rar(文件大小:1K)
作者: avruser    时间: 2007-12-28 23:54
顶一个,学习学习
作者: lanyuye    时间: 2007-12-29 00:54
楼主讲讲课啊!
作者: kegaank    时间: 2007-12-29 08:01
步进电机的齿距角是一个定值.它通过每相线圈各通电一次来完成步进电机旋转一个齿距角的过程.
相线圈通电一次称为一拍,走过一个步距角.N相线圈循环通电一次,步进电机旋转N步,这N步就等于齿距角.齿距角=N*步距角;
以上是步进电机基本的使用方法.
这样就出现一个问题,由于步距角也是一个定值,这样就会出现这样的情况,当电机旋转速度很高时,
转过一个步距角的时间很短,而电机低速运行时,转过一个步距角的时间就会变得很长.而且,最让电机受不了的是,电机转子在很快的
时间转到对齿位置后,转子基本上是在等待下一拍的到来.就让人感到电机在旋转时,震动很历害.如果电机本身精度不高,机械误过大
话,转子在等待下一拍的时候,在对齿状态晃个不停,这就是所谓的低频震荡.
如何解决呢?
这就出现了所谓的细分.但细分是什么,如何细分呢?
想知详情,请听下文分解.
(呵呵,要上班了)
作者: Feeling_MCU    时间: 2007-12-29 09:07
顶下楼主,给你动力
作者: 525133174    时间: 2007-12-29 10:28
有用,顶一下
作者: PaulDE    时间: 2007-12-29 12:15
再顶
作者: ilan2003    时间: 2007-12-29 15:16
细分就是每相的电流大小可以控制。这样电流就没有一个突变的过程,都是连续的
作者: kegaank    时间: 2007-12-30 00:13
楼上说是不错,细分的过程,就是控制每相电流大小的过程.
承接早上的内容,我现在继续.
什么叫细分呢?
假设步进电机在某一转速下,转子走一步需要时间为N*T,在这N*T的时间里,相线圈要通N*T的时间的电流.而转子从错齿转到对齿状态,根据电机电压的不同,只需要很短的时间就可以到达对齿的状态.我暂把这个时间设为T,(使它与步距时成整数倍以利说明).这样,在(N-1)*T的时间里,转子便在(某相)对齿状态左右忽悠.它在这个位置忽悠对整个系统的危害有多严重,我想大家肯定比我知道得更清楚,我就不再说明.
既然这(N-1)T的时间危害这么大,我就必须想法在这段时间里把电机控制利用起来.这样,步进电机就会乖乖听你的了.
呵呵,是不是很简单啊?
作者: kegaank    时间: 2007-12-30 00:21
知道什么是细分了吧?
就是把N*T段时间细分成N等份,把原来在N*T时间里只通电一次的控制方法,分成N次通电,这样,就使得步进电机的转子就会从以前在N*T段时间里只转一次,变成现在的在N*T段时间里转N次了.
作者: lzf713    时间: 2007-12-30 13:41
楼主讲解令我受益了。
作者: lzf713    时间: 2007-12-30 15:34
楼主呀,
#define AQ PB0
#define BQ PB1
#define CQ PB2
#define DQ PB3
中的AQ,BQ,CQ,DQ是怎样与步进电动机连接的?
作者: kegaank    时间: 2008-1-1 08:07
AQ-->A+
BQ-->B+
CQ-->A-
DQ-->B-
记得后面接几个MOS管.
作者: eagle_avr    时间: 2008-5-9 11:46
学习
作者: Tomcat    时间: 2008-5-9 11:52
mark
作者: sciencehero    时间: 2008-5-9 12:52
收藏
作者: star    时间: 2008-5-9 12:59
最近要用到步进电机,谢谢楼主啦
作者: amingriyue    时间: 2008-6-1 12:36
可惜没有电路图哦
作者: zlei    时间: 2008-6-1 18:39
谢谢了
作者: love12345    时间: 2008-6-1 20:43
看了楼主的讲解, 觉得楼主搞错了细分的意义. 绝对是误导别人. 不说其它细节错误. 就拿最重要的一点来说吧. 真正细分里, 可以把转子锁定在转角的n分之x,感问你的所谓"细分"可以吗? 答案是不行.细分除了是减少振动外, 其中两个最重要的是提高精度(细化行程角)和可控细化行进速度. 以8细分为例,1.8度的步进电机.可以使得每步1.8/8 = 0.225度.并且可以锁定其位置.这样就可以提高加工精度. 如果你要加工硬物(特别是石材,铁和铜等),如果一步行进,估计刀具和主轴会很易坏,甚至加工不了. 但以64细分,这样行进度就小得多,而运动卡可以让它均速进行运动(速度可调),这样刀具和主轴就耐用得多. 这些全因电流的精细可控而得到的结果, 而非楼主哪样的理解.
作者: spy2008    时间: 2008-6-2 16:26
mark
作者: eagle_avr    时间: 2008-6-17 17:58
细分到底是怎么回事?
作者: bjj9217    时间: 2008-6-18 17:28
学习了!
作者: 95279527    时间: 2008-7-19 19:22
高人。。。
作者: thomasdu    时间: 2008-7-19 20:28
记号个,慢慢学习中
作者: wsl16805    时间: 2008-7-21 21:09
记号.好东西
作者: mkpoon    时间: 2008-7-21 22:29
http://www.cs.uiowa.edu/~jones/step/micro.html
這裡也提到細分.
作者: Rocker    时间: 2008-7-22 14:24
(敏感词0386)123 齐来俯卧撑  这样的理解和我一样,做过一段时间的步进电机的驱动。
作者: avr_appli    时间: 2008-8-23 08:27
mark
作者: jinbu    时间: 2008-8-23 09:13
顶.......
作者: jclhp    时间: 2008-8-23 09:38
步进电机还真没搞过
作者: wqhe    时间: 2008-8-23 11:59
我只能做到32细分,再提高细分数效果不明显。
作者: linhxscut    时间: 2008-8-23 17:32
学习
作者: zsyf0918    时间: 2008-8-24 22:44
谢谢分享
作者: liyangbbs    时间: 2008-8-25 00:29
我们曾经做过128细分,感觉如果步进电机不怎么行的话做个32,64细分就够用了。有专用的步进电机细分芯片。
作者: arkuo    时间: 2008-10-10 16:25
楼主的程序,我试了,但还有会抖啊,我有电路吗?
作者: huangtaiyuan    时间: 2008-10-11 12:15
由于步进电机误差不累积,可以采用起步细分(或者确保起步为整步)——-(在整步位置)整步----尾步细分,这样可以保证高速度和高精度,但是不知道是否存在电机转动的惯性影响!
作者: ztmailbox    时间: 2008-10-12 10:36
楼主描述细分的确有误,细分应如 7 楼 19 楼所言,不过 19 楼所说能提高精度好像有点不妥,在非对齿状态是不能保证定位的。

我的理解细分最主要的目的有2个,1个降低对步进电机的冲击(减少震动),2个能控制给进速度。

在细分状态下,电流是逐步变化的,注意不是连续变化,而是像阶梯波(在每一步中电流是保持不变的),这个阶梯波的包络遵循正弦波。



请大家指教,谢谢!
作者: kegaank    时间: 2008-11-8 17:55
这么久了,没想到大家这么关心细分的问题。

的确,细分的作用除了降低噪声,减轻震动之外,别一个目的,就是提高精度。

让步进电机一拍分N步走,就是相当于将每拍转动的角度细分为N分之一。当然是既提高了精度,又降低了噪声。

19楼((敏感词0386)123 齐来俯卧撑)所说,这跟你的理解有点关系,
作者: ilan2003    时间: 2008-11-8 18:56
还可以提高电机的最高转速



今天我拿我刚做的4A AC50V的驱动器是试了一下  1细分的情况下速度上不去,原装的驱动器速度最高可以到达1000RPM(估计)

我的只能到400RPM,不知道那里的原因





但是我做的2A的驱动器 却要比原装的最高转速快5%左右  我用的M8单片机 8MHZ  原装用的是PIC单片机

 
作者: hzpyj    时间: 2008-11-8 19:49
mark
作者: kegaank    时间: 2008-11-9 16:59
细分,是没法提高转速的。细分的目的,是为了减少低频噪声与提高精度。但高速旋转时,细分就显得没有必要了。

这跟步进电机的本身的频率特性有关。

对一般两相步进电机来说,每拍旋转1.8度.那么电机旋转一转的脉冲数为360/1.8=200。如果步进电机转速为1200转/分,刚每秒速度为

20转/秒。为样的话,电机旋转一转所需的脉冲频率为:20*200=2000HZ。如果此时再细分的话,则频率就会变为N*2000HZ,显然,电机的高频损耗将增大,电机的转速也就上不去了。

我们一般采用单片机驱动电机一般采用PWM细分方式驱动步进电机,但在高速时,就不能采用PWM细分方式了。直接采用一拍一个脉冲的方式,将提高转速,并可提高转矩。一般在程序设计时,做一个Switch语句,用于选择有不同的速度采用不同的细分,这样,就可以大幅提高步进电的转速。
作者: indi    时间: 2008-11-9 17:32
mark
作者: pcs3    时间: 2008-11-9 22:29
如果驱动电压不变,步进电机转得越快力矩越小,相比之下有细分的和没有细分的电机以较高速度运行前者力矩会更大一下,所以有细分的电机能够达到的最高转速大于没有细分的电机。我猜应该与电机线圈的自感有关
作者: oopuo    时间: 2009-1-1 15:40
对细分有了很大的了解
作者: yinhe    时间: 2009-1-11 16:39

作者: dovebird    时间: 2009-1-11 19:33
了解了,真是太及时了
作者: yangxingbo0311    时间: 2009-4-5 21:10
额 学习了
作者: seawind319    时间: 2009-4-5 22:57
mark
作者: trueboy    时间: 2009-4-6 08:20
我试过几种专用的细分IC(TA8435,A3986),细分效果很不好,步进角不均匀。
比方说8细分,转的时候1步大,3步小。
不知道别人怎么调整的,反正我是放弃了。
感觉细分技术作用十分有限,基本上是心理作用。
作者: czhaii    时间: 2009-4-6 08:28
MARK
作者: xujian    时间: 2009-4-19 17:51
学习了!
作者: 0620221    时间: 2009-6-5 10:12
mark
作者: kongzizhishi    时间: 2009-7-24 15:07
MARK!
作者: FLYTC    时间: 2009-7-24 21:41
同意19楼,细分即为同电机相位电流分成N次跃进,并保持各相电流相位角,与交流电机非步进运行原理一致。
作者: liujunjie    时间: 2009-7-24 21:46
还需要了解一下步进电机!~
作者: cutter    时间: 2009-7-26 12:16
学习
作者: chenyuqiu    时间: 2009-7-27 23:44
学习
作者: rambler    时间: 2009-7-31 16:35
mark
作者: ecat    时间: 2009-7-31 17:04
留个猫脚印
作者: lxg104    时间: 2009-7-31 17:20
mark
作者: visonlee    时间: 2009-7-31 18:31
暂时用不上 看看
作者: cgbabc    时间: 2009-7-31 18:58
学习中
作者: yangxingbo0311    时间: 2009-8-3 19:52
顶呀
作者: qq404577485    时间: 2009-8-9 10:00
顶一个
作者: czhaii    时间: 2009-8-9 16:01
hao
作者: bbi3014    时间: 2009-8-9 22:10

作者: mengyubianyuan    时间: 2009-8-12 22:14
19楼  我有一问题 不解   你细分的时候  跟相电流大小有关系没  相电流大小如何控制啊
作者: ldk880628    时间: 2009-8-13 10:22
今天才知道细分的概念  呵呵  谢谢大家乐
作者: Akendy    时间: 2009-8-13 15:22
路过.学习一下...
作者: hermes    时间: 2009-8-13 17:15
看看再说,关键得试试
作者: jc5471    时间: 2009-8-16 15:03
顶!!!!
作者: TRINAMIC    时间: 2009-9-17 13:36
如今细分完全不需要自己算了
专用集成芯片市场上太多了完全不需要自己再去算了,本身已经集成了该功能只需要调用就可以了.
技术的发展减轻了我们许多负担啊.
看看这个芯片集成了控制+驱动+MOSFET,细分,相序分配,失速检测都集成在一起了.

(原文件名:3.gif)


(原文件名:6.gif)
作者: step    时间: 2009-9-18 18:31
TMC223?好极了,在欧美市场很流行
作者: miminzhang    时间: 2009-12-27 14:43
标记
作者: zpwang    时间: 2009-12-27 17:57
来学习,谢谢了!
作者: yanrz    时间: 2010-1-24 22:13
很好,我只是简单的驱动了,根本没有继续深入!
作者: zsfang0104    时间: 2010-1-25 13:00
mark
作者: ringan865    时间: 2010-1-25 20:46
关注一下,一直在研究步进电机
作者: sem521562    时间: 2010-1-26 16:37
mark
作者: gxy508    时间: 2010-1-26 16:42
mark
作者: dahai168    时间: 2010-3-25 11:41
mark
作者: wjy6264    时间: 2010-4-19 13:37
mark
作者: 8s209    时间: 2010-7-9 13:13
mark
作者: bzktust    时间: 2010-7-9 13:37
mark
作者: real_sugar    时间: 2010-7-9 17:10
步进细分要出效果,电机的性能很关键。
如果本身电流矢量和磁路矢量不是线性对应的话细分自然效果不理想~
作者: xjmlfm1    时间: 2010-7-9 19:38
mark
作者: feeus    时间: 2010-7-9 22:14
记下看看
作者: mavericklx    时间: 2010-7-10 00:09
学一下···
作者: allen310500    时间: 2010-7-10 09:08
步进电机细分!
作者: TRINAMIC    时间: 2010-7-10 20:57
我见过有个细分数可以达到2048的驱动器
作者: hui3700    时间: 2010-7-10 21:07
mark
作者: aspenlin    时间: 2010-7-14 11:07
mark
作者: szlinzhi    时间: 2010-11-21 22:11
这段时间在研究步进马达驱动.我用的是39610+3771来做驱动.在周期频率200hz-600hz的时候有高频噪音.
10pps.请高手指点指点....
作者: pwfeng520    时间: 2011-5-26 11:58
MARK
作者: yansuoqinlou    时间: 2011-5-31 17:18
mark
作者: czg_82    时间: 2011-6-1 10:39
了解以下
作者: chenxingye    时间: 2011-6-1 16:09
毕业设计弄过一段时间不过还是不太懂,学习下
作者: lvjun0728    时间: 2011-6-19 01:49
mark
作者: fame2    时间: 2011-8-25 11:09
回复【9楼】kegaank  
知道什么是细分了吧?
就是把n*t段时间细分成n等份,把原来在n*t时间里只通电一次的控制方法,分成n次通电,这样,就使得步进电机的转子就会从以前在n*t段时间里只转一次,变成现在的在n*t段时间里转n次了.
-----------------------------------------------------------------------

这不是细分吧!在n*t时间里只通电一次的控制方法,分成n次通电,电流大小怎么控制。




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4