OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 14174|回复: 15

步进电机加编码器配合使用,怎么配合最合适?

[复制链接]

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
发表于 2018-3-9 16:11:58 | 显示全部楼层 |阅读模式
1金钱
因为步进电机的使用环境面临着失步的问题,也就是说当步进电机以某个频率转动时可能会因为负载变化而失步,要检测出失步,并让其尽可能快的从一个低的频率切入进来重新加速到之前的频率,而不是停止了重新开始,用的是1.8度步进电机加1024线的编码器,小伙伴来说说看法啊

最佳答案

查看完整内容[请看2#楼]

1、步进电机加编码有点鸡肋,就是浪费资源;因为步进电机没法实时响应,必须有一个加速减速过程; 2、如果你负载经常变动导致经常失步,那么建议更换大功率的步进电机;如果产品非常严格,则抛弃步进电机,用直流伺服(直流电机+编码器),或者交流伺服电机; 3、非严格场合,无需用这么高线数的编码器,否则资源浪费,还要好的cpu,编码器比电机贵多了;比如102线编码器,正交后就是4*1024=4096,如果用stm32鸡肋的16bit正交编 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2018-3-9 16:11:59 | 显示全部楼层
1、步进电机加编码有点鸡肋,就是浪费资源;因为步进电机没法实时响应,必须有一个加速减速过程;
2、如果你负载经常变动导致经常失步,那么建议更换大功率的步进电机;如果产品非常严格,则抛弃步进电机,用直流伺服(直流电机+编码器),或者交流伺服电机;
3、非严格场合,无需用这么高线数的编码器,否则资源浪费,还要好的cpu,编码器比电机贵多了;比如102线编码器,正交后就是4*1024=4096,如果用stm32鸡肋的16bit正交编码定时器转动(65536/4096=16圈)就溢出,了,这还怎么玩?针对你的1.8°步进电机,360°/4096=0.087°的编码器分辨率,用在1.8°的步进电机简直就是暴殄天物(步进电机细分的另外说);用直流电机就不一样了,电机的角度分辨率就是由编码器决定的。
4、综上,步进电机只适合低速、要求宽松的场合。
回复

使用道具 举报

41

主题

113

帖子

0

精华

高级会员

Rank: 4

积分
626
金钱
626
注册时间
2016-12-16
在线时间
222 小时
发表于 2018-3-9 17:11:39 | 显示全部楼层
在有负载的情况下反复测试得到一个合适的启动速度,然后加速到正常速度。中间的加速度也要反复测试得到,除此之外别无他法。
https://shop298719590.taobao.com/
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2018-3-10 00:47:01 | 显示全部楼层
这个三言两语真说不清楚,
回复

使用道具 举报

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
 楼主| 发表于 2018-3-10 09:25:26 | 显示全部楼层
Acuity 发表于 2018-3-9 17:08
1、步进电机加编码有点鸡肋,就是浪费资源;因为步进电机没法实时响应,必须有一个加速减速过程;
2、如果 ...

目前要做到多台通过CAN通信的设备的电机同步,都是从速度另开始加速到目标速度,然后使用过程中每个电机的负载是不断变化的,即每台设备的负载不一样,你有没有好的策略?
回复

使用道具 举报

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
 楼主| 发表于 2018-3-10 09:26:48 | 显示全部楼层
五花肉老乌龟 发表于 2018-3-9 17:11
在有负载的情况下反复测试得到一个合适的启动速度,然后加速到正常速度。中间的加速度也要反复测试得到,除 ...

目前要做到多台通过CAN通信的设备的电机同步,都是从速度另开始加速到目标速度,然后使用过程中每个电机的负载是不断变化的,即每台设备的负载不一样,要做到一台设备因为负载变化速度降低了则其他设备速度也要和降速的设备速度一致,你有没有好的策略?
回复

使用道具 举报

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
 楼主| 发表于 2018-3-10 09:27:05 | 显示全部楼层
likunxue 发表于 2018-3-10 00:47
这个三言两语真说不清楚,

目前要做到多台通过CAN通信的设备的电机同步,都是从速度另开始加速到目标速度,然后使用过程中每个电机的负载是不断变化的,即每台设备的负载不一样,要做到一台设备因为负载变化速度降低了则其他设备速度也要和降速的设备速度一致,你有没有好的策略?
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2018-3-10 14:34:38 | 显示全部楼层
哆啦A萌 发表于 2018-3-10 09:26
目前要做到多台通过CAN通信的设备的电机同步,都是从速度另开始加速到目标速度,然后使用过程中每个电机 ...

以前大设备,几十个步进电机,大型的上百个都有,也是用CAN连接起来。用步进电机,最可靠的是,确报最大负载不会超过步进电机上限而导致失步;即选择功率比负载要打的电机。
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2018-2-13
在线时间
8 小时
发表于 2018-3-10 18:32:43 | 显示全部楼层
Acuity 发表于 2018-3-9 17:08
1、步进电机加编码有点鸡肋,就是浪费资源;因为步进电机没法实时响应,必须有一个加速减速过程;
2、如果 ...

多圈绝对值呢?4096后自动清零,io口累加
回复

使用道具 举报

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2016-2-11
在线时间
68 小时
发表于 2018-3-15 15:27:18 来自手机 | 显示全部楼层
感觉2楼的大侠真知灼见。建议采用。帮顶。
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2018-3-15 15:50:21 | 显示全部楼层
风来吴山 发表于 2018-3-10 18:32
多圈绝对值呢?4096后自动清零,io口累加

加上Z相(正交编码器一般是A、B、Z),也就是你说的IO口,精确计时,Z相必须用中断方式,你可以想象,电机高速转动的时候,你的MCU中断能否响应过来?估计这个MCU就一直处于中断状态了,没法干别的活了。另外一个问题:用到闭环算法,编码器线数越高,计算越耗时,浮点运算跟不上,电机速度也就提不上来。所以你会发现很多伺服电机都是上DSP的,当然现在MCU发展这么快,像M4、M7的性能都不差。
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2018-2-13
在线时间
8 小时
发表于 2018-3-15 21:29:37 | 显示全部楼层
Acuity 发表于 2018-3-15 15:50
加上Z相(正交编码器一般是A、B、Z),也就是你说的IO口,精确计时,Z相必须用中断方式,你可以想象,电 ...

之前做过很多plc+伺服的项目,plc算起来都没压力啊,不太了解plc和mcu的具体区别
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2018-2-13
在线时间
8 小时
发表于 2018-3-15 21:35:31 | 显示全部楼层
Acuity 发表于 2018-3-15 15:50
加上Z相(正交编码器一般是A、B、Z),也就是你说的IO口,精确计时,Z相必须用中断方式,你可以想象,电 ...

如果由mcu去运算编码器并驱动伺服的话,做起来可能很吃力,伺服驱动的事是由dsp干了,感觉mcu大部分时候还在在做控制器用啊
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2018-3-15 22:28:55 | 显示全部楼层
风来吴山 发表于 2018-3-15 21:29
之前做过很多plc+伺服的项目,plc算起来都没压力啊,不太了解plc和mcu的具体区别

此时你的伺服是应该带驱动器了吧?只需发脉冲即可,核心全在驱动器那里,而上面我说的是用mcu控制实现一个“驱动器”,只是直流伺服控制;交流伺服太难了,如果用交流伺服直接买配套驱动器吧。
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2018-2-13
在线时间
8 小时
发表于 2018-3-17 20:02:18 | 显示全部楼层
Acuity 发表于 2018-3-15 22:28
此时你的伺服是应该带驱动器了吧?只需发脉冲即可,核心全在驱动器那里,而上面我说的是用mcu控制实现一 ...

嗯,确实。核心在伺服驱动里面。
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2013-10-28
在线时间
2 小时
发表于 2019-11-29 22:21:39 | 显示全部楼层
学习了,留个记号。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 18:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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