kegaank 发表于 2007-12-28 23:40:38

步进电机细分算法

这几天研究步进电机的细分算法,获得比较大的突破.实际测试效果不错.现传上来与大家分享.
本程序针对的硬件为M16,两相四拍混合式电机.其它步进电机也可以用这种相关的方法来写,通用性很好.
低速启动感觉不到振动.
点击此处下载ourdev_194932.rar(文件大小:1K)

avruser 发表于 2007-12-28 23:54:01

顶一个,学习学习

lanyuye 发表于 2007-12-29 00:54:17

楼主讲讲课啊!

kegaank 发表于 2007-12-29 08:01:47

步进电机的齿距角是一个定值.它通过每相线圈各通电一次来完成步进电机旋转一个齿距角的过程.
相线圈通电一次称为一拍,走过一个步距角.N相线圈循环通电一次,步进电机旋转N步,这N步就等于齿距角.齿距角=N*步距角;
以上是步进电机基本的使用方法.
这样就出现一个问题,由于步距角也是一个定值,这样就会出现这样的情况,当电机旋转速度很高时,
转过一个步距角的时间很短,而电机低速运行时,转过一个步距角的时间就会变得很长.而且,最让电机受不了的是,电机转子在很快的
时间转到对齿位置后,转子基本上是在等待下一拍的到来.就让人感到电机在旋转时,震动很历害.如果电机本身精度不高,机械误过大
话,转子在等待下一拍的时候,在对齿状态晃个不停,这就是所谓的低频震荡.
如何解决呢?
这就出现了所谓的细分.但细分是什么,如何细分呢?
想知详情,请听下文分解.
(呵呵,要上班了)

Feeling_MCU 发表于 2007-12-29 09:07:50

顶下楼主,给你动力

525133174 发表于 2007-12-29 10:28:11

有用,顶一下

PaulDE 发表于 2007-12-29 12:15:33

再顶

ilan2003 发表于 2007-12-29 15:16:44

细分就是每相的电流大小可以控制。这样电流就没有一个突变的过程,都是连续的

kegaank 发表于 2007-12-30 00:13:06

楼上说是不错,细分的过程,就是控制每相电流大小的过程.
承接早上的内容,我现在继续.
什么叫细分呢?
假设步进电机在某一转速下,转子走一步需要时间为N*T,在这N*T的时间里,相线圈要通N*T的时间的电流.而转子从错齿转到对齿状态,根据电机电压的不同,只需要很短的时间就可以到达对齿的状态.我暂把这个时间设为T,(使它与步距时成整数倍以利说明).这样,在(N-1)*T的时间里,转子便在(某相)对齿状态左右忽悠.它在这个位置忽悠对整个系统的危害有多严重,我想大家肯定比我知道得更清楚,我就不再说明.
既然这(N-1)T的时间危害这么大,我就必须想法在这段时间里把电机控制利用起来.这样,步进电机就会乖乖听你的了.
呵呵,是不是很简单啊?

kegaank 发表于 2007-12-30 00:21:44

知道什么是细分了吧?
就是把N*T段时间细分成N等份,把原来在N*T时间里只通电一次的控制方法,分成N次通电,这样,就使得步进电机的转子就会从以前在N*T段时间里只转一次,变成现在的在N*T段时间里转N次了.

lzf713 发表于 2007-12-30 13:41:33

楼主讲解令我受益了。

lzf713 发表于 2007-12-30 15:34:52

楼主呀,
#define AQ PB0
#define BQ PB1
#define CQ PB2
#define DQ PB3
中的AQ,BQ,CQ,DQ是怎样与步进电动机连接的?

kegaank 发表于 2008-1-1 08:07:51

AQ-->A+
BQ-->B+
CQ-->A-
DQ-->B-
记得后面接几个MOS管.

eagle_avr 发表于 2008-5-9 11:46:59

学习

Tomcat 发表于 2008-5-9 11:52:22

mark

sciencehero 发表于 2008-5-9 12:52:32

收藏

star 发表于 2008-5-9 12:59:21

最近要用到步进电机,谢谢楼主啦

amingriyue 发表于 2008-6-1 12:36:02

可惜没有电路图哦

zlei 发表于 2008-6-1 18:39:14

谢谢了

love12345 发表于 2008-6-1 20:43:04

看了楼主的讲解, 觉得楼主搞错了细分的意义. 绝对是误导别人. 不说其它细节错误. 就拿最重要的一点来说吧. 真正细分里, 可以把转子锁定在转角的n分之x,感问你的所谓"细分"可以吗? 答案是不行.细分除了是减少振动外, 其中两个最重要的是提高精度(细化行程角)和可控细化行进速度. 以8细分为例,1.8度的步进电机.可以使得每步1.8/8 = 0.225度.并且可以锁定其位置.这样就可以提高加工精度. 如果你要加工硬物(特别是石材,铁和铜等),如果一步行进,估计刀具和主轴会很易坏,甚至加工不了. 但以64细分,这样行进度就小得多,而运动卡可以让它均速进行运动(速度可调),这样刀具和主轴就耐用得多. 这些全因电流的精细可控而得到的结果, 而非楼主哪样的理解.

spy2008 发表于 2008-6-2 16:26:39

mark

eagle_avr 发表于 2008-6-17 17:58:31

细分到底是怎么回事?

bjj9217 发表于 2008-6-18 17:28:04

学习了!

95279527 发表于 2008-7-19 19:22:28

高人。。。

thomasdu 发表于 2008-7-19 20:28:27

记号个,慢慢学习中

wsl16805 发表于 2008-7-21 21:09:46

记号.好东西

mkpoon 发表于 2008-7-21 22:29:30

http://www.cs.uiowa.edu/~jones/step/micro.html
這裡也提到細分.

Rocker 发表于 2008-7-22 14:24:22

(敏感词0386)123 齐来俯卧撑这样的理解和我一样,做过一段时间的步进电机的驱动。

avr_appli 发表于 2008-8-23 08:27:08

mark

jinbu 发表于 2008-8-23 09:13:59

顶.......

jclhp 发表于 2008-8-23 09:38:38

步进电机还真没搞过

wqhe 发表于 2008-8-23 11:59:12

我只能做到32细分,再提高细分数效果不明显。

linhxscut 发表于 2008-8-23 17:32:45

学习

zsyf0918 发表于 2008-8-24 22:44:14

谢谢分享

liyangbbs 发表于 2008-8-25 00:29:50

我们曾经做过128细分,感觉如果步进电机不怎么行的话做个32,64细分就够用了。有专用的步进电机细分芯片。

arkuo 发表于 2008-10-10 16:25:15

楼主的程序,我试了,但还有会抖啊,我有电路吗?

huangtaiyuan 发表于 2008-10-11 12:15:04

由于步进电机误差不累积,可以采用起步细分(或者确保起步为整步)——-(在整步位置)整步----尾步细分,这样可以保证高速度和高精度,但是不知道是否存在电机转动的惯性影响!

ztmailbox 发表于 2008-10-12 10:36:03

楼主描述细分的确有误,细分应如 7 楼 19 楼所言,不过 19 楼所说能提高精度好像有点不妥,在非对齿状态是不能保证定位的。

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

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



请大家指教,谢谢!

kegaank 发表于 2008-11-8 17:55:15

这么久了,没想到大家这么关心细分的问题。

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

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

19楼((敏感词0386)123 齐来俯卧撑)所说,这跟你的理解有点关系,

ilan2003 发表于 2008-11-8 18:56:39

还可以提高电机的最高转速



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

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





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

 

hzpyj 发表于 2008-11-8 19:49:26

mark

kegaank 发表于 2008-11-9 16:59:08

细分,是没法提高转速的。细分的目的,是为了减少低频噪声与提高精度。但高速旋转时,细分就显得没有必要了。

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

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

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

我们一般采用单片机驱动电机一般采用PWM细分方式驱动步进电机,但在高速时,就不能采用PWM细分方式了。直接采用一拍一个脉冲的方式,将提高转速,并可提高转矩。一般在程序设计时,做一个Switch语句,用于选择有不同的速度采用不同的细分,这样,就可以大幅提高步进电的转速。

indi 发表于 2008-11-9 17:32:54

mark

pcs3 发表于 2008-11-9 22:29:22

如果驱动电压不变,步进电机转得越快力矩越小,相比之下有细分的和没有细分的电机以较高速度运行前者力矩会更大一下,所以有细分的电机能够达到的最高转速大于没有细分的电机。我猜应该与电机线圈的自感有关

oopuo 发表于 2009-1-1 15:40:44

对细分有了很大的了解

yinhe 发表于 2009-1-11 16:39:31

dovebird 发表于 2009-1-11 19:33:04

了解了,真是太及时了

yangxingbo0311 发表于 2009-4-5 21:10:00

额 学习了

seawind319 发表于 2009-4-5 22:57:59

mark

trueboy 发表于 2009-4-6 08:20:41

我试过几种专用的细分IC(TA8435,A3986),细分效果很不好,步进角不均匀。
比方说8细分,转的时候1步大,3步小。
不知道别人怎么调整的,反正我是放弃了。
感觉细分技术作用十分有限,基本上是心理作用。

czhaii 发表于 2009-4-6 08:28:58

MARK

xujian 发表于 2009-4-19 17:51:11

学习了!

0620221 发表于 2009-6-5 10:12:12

mark

kongzizhishi 发表于 2009-7-24 15:07:45

MARK!

FLYTC 发表于 2009-7-24 21:41:55

同意19楼,细分即为同电机相位电流分成N次跃进,并保持各相电流相位角,与交流电机非步进运行原理一致。

liujunjie 发表于 2009-7-24 21:46:53

还需要了解一下步进电机!~

cutter 发表于 2009-7-26 12:16:55

学习

chenyuqiu 发表于 2009-7-27 23:44:53

学习

rambler 发表于 2009-7-31 16:35:19

mark

ecat 发表于 2009-7-31 17:04:02

留个猫脚印

lxg104 发表于 2009-7-31 17:20:12

mark

visonlee 发表于 2009-7-31 18:31:15

暂时用不上 看看

cgbabc 发表于 2009-7-31 18:58:47

学习中

yangxingbo0311 发表于 2009-8-3 19:52:39

顶呀

qq404577485 发表于 2009-8-9 10:00:53

顶一个

czhaii 发表于 2009-8-9 16:01:10

hao

bbi3014 发表于 2009-8-9 22:10:16

mengyubianyuan 发表于 2009-8-12 22:14:05

19楼我有一问题 不解   你细分的时候跟相电流大小有关系没相电流大小如何控制啊

ldk880628 发表于 2009-8-13 10:22:48

今天才知道细分的概念呵呵谢谢大家乐

Akendy 发表于 2009-8-13 15:22:43

路过.学习一下...

hermes 发表于 2009-8-13 17:15:10

看看再说,关键得试试

jc5471 发表于 2009-8-16 15:03:13

顶!!!!

TRINAMIC 发表于 2009-9-17 13:36:18

如今细分完全不需要自己算了
专用集成芯片市场上太多了完全不需要自己再去算了,本身已经集成了该功能只需要调用就可以了.
技术的发展减轻了我们许多负担啊.
看看这个芯片集成了控制+驱动+MOSFET,细分,相序分配,失速检测都集成在一起了.
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_481859.gif
(原文件名:3.gif)

http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_481860.gif
(原文件名:6.gif)

step 发表于 2009-9-18 18:31:50

TMC223?好极了,在欧美市场很流行

miminzhang 发表于 2009-12-27 14:43:21

标记

zpwang 发表于 2009-12-27 17:57:38

来学习,谢谢了!

yanrz 发表于 2010-1-24 22:13:20

很好,我只是简单的驱动了,根本没有继续深入!

zsfang0104 发表于 2010-1-25 13:00:44

mark

ringan865 发表于 2010-1-25 20:46:52

关注一下,一直在研究步进电机

sem521562 发表于 2010-1-26 16:37:36

mark

gxy508 发表于 2010-1-26 16:42:05

mark

dahai168 发表于 2010-3-25 11:41:37

mark

wjy6264 发表于 2010-4-19 13:37:33

mark

8s209 发表于 2010-7-9 13:13:57

mark

bzktust 发表于 2010-7-9 13:37:53

mark

real_sugar 发表于 2010-7-9 17:10:52

步进细分要出效果,电机的性能很关键。
如果本身电流矢量和磁路矢量不是线性对应的话细分自然效果不理想~

xjmlfm1 发表于 2010-7-9 19:38:37

mark

feeus 发表于 2010-7-9 22:14:40

记下看看

mavericklx 发表于 2010-7-10 00:09:48

学一下···

allen310500 发表于 2010-7-10 09:08:16

步进电机细分!

TRINAMIC 发表于 2010-7-10 20:57:24

我见过有个细分数可以达到2048的驱动器

hui3700 发表于 2010-7-10 21:07:14

mark

aspenlin 发表于 2010-7-14 11:07:34

mark

szlinzhi 发表于 2010-11-21 22:11:20

这段时间在研究步进马达驱动.我用的是39610+3771来做驱动.在周期频率200hz-600hz的时候有高频噪音.
10pps.请高手指点指点....

pwfeng520 发表于 2011-5-26 11:58:17

MARK

yansuoqinlou 发表于 2011-5-31 17:18:33

mark

czg_82 发表于 2011-6-1 10:39:12

了解以下

chenxingye 发表于 2011-6-1 16:09:04

毕业设计弄过一段时间不过还是不太懂,学习下

lvjun0728 发表于 2011-6-19 01:49:45

mark

fame2 发表于 2011-8-25 11:09:28

回复【9楼】kegaank
知道什么是细分了吧?
就是把n*t段时间细分成n等份,把原来在n*t时间里只通电一次的控制方法,分成n次通电,这样,就使得步进电机的转子就会从以前在n*t段时间里只转一次,变成现在的在n*t段时间里转n次了.
-----------------------------------------------------------------------

这不是细分吧!在n*t时间里只通电一次的控制方法,分成n次通电,电流大小怎么控制。
页: [1] 2
查看完整版本: 步进电机细分算法