直流无刷电机速度检测采用什么方式采集脉冲数更好?

2019-07-20 19:46发布

本帖最后由 特朗姆斯 于 2016-8-24 15:12 编辑

直流无刷电机控制方式比较简单,直接用PWM控制速度即可。

目前碰到的问题是在相同的PWM占空比下,两个相同的电机真实呈现的速度不一样,因此我想到了利用速度检测功能来对其进行校准。但是速度检测功能令我很头疼,目前采用的是把速度检测引脚连接到I/O引脚,用外部中断的方式采集一秒钟内的脉冲数来进行判断。按原子哥的说法是这种方式会使ARM频繁进入中断,不是理想的实现方式。

想到过用定时器捕获输入的方式,看完datasheet中关于定时器捕获输入的内容,似乎也是要通过中断来实现脉冲捕获,那和我使用的外部中断采集没有区别。

另外还有看到定时器外部时钟模式2,可以通过TIMx_CHx引脚触发开始计数,通过TIMx_ETR引脚来对脉冲进行计数。使用这种模式虽然可以不使用中断,但是要占用两个定时器,这两个定时器还必须是有TIMx_ETR引脚的高级定时器,加上额外的I/O资源开销似乎也是得不偿失。


目前研究下来差不多是上述情况,希望有大神给予指引。


ps:我用的直流无刷电机有配套的控制器,ARM采集的脉冲数由控制器发出。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
特朗姆斯
1楼-- · 2019-07-21 12:10
无休 发表于 2016-8-24 11:21
脉冲怎么会是由电机提供的,电机可以给自身提供脉冲?你用了编码器的吧?

对,用了一个控制器
特朗姆斯
2楼-- · 2019-07-21 14:58
 精彩回答 2  元偷偷看……
特朗姆斯
3楼-- · 2019-07-21 16:38
yyx112358 发表于 2016-8-24 11:26
配置两个定时器,定时器a设置为外部时钟计数器模式,定时器b设置为定时器(比如50ms溢出一次),然后定时器 ...


可能是我没讲清楚,我用了一个控制器控制直流无刷电机,这个控制器会返回脉冲数。

我想要统计1s内采集的脉冲数来获得速度值,目前困惑于如何去采集更佳
无休
4楼-- · 2019-07-21 22:19
无休 发表于 2016-8-24 11:21
脉冲怎么会是由电机提供的,电机可以给自身提供脉冲?你用了编码器的吧?

我觉得你方向走错了!不应该去考虑速度上的一致,首先是这种方式受电机单个特性影响,而电机随着工作时间的不同,也会表现出不同的性能,也会受电源的影响,其次你得到的速度也不一定是准确的,这要考虑到时间的问题,比较复杂。建议不采用这种方式,如果两个电机速度不一样可以考虑PID调节,这样两个电机才有可能实现一种速度同步
特朗姆斯
5楼-- · 2019-07-22 03:49
无休 发表于 2016-8-24 15:21
我觉得你方向走错了!不应该去考虑速度上的一致,首先是这种方式受电机单个特性影响,而电机随着工作时间 ...

我知道可以用PID调节两个电机速度,从而实现同步。

问题是最基本的检测两个电机速度的功能也没有做好,何谈PID调节?
无休
6楼-- · 2019-07-22 05:10
特朗姆斯 发表于 2016-8-24 15:36
我知道可以用PID调节两个电机速度,从而实现同步。

问题是最基本的检测两个电机速度的功能也没有做好 ...

检测脉冲数无非是使用查询和中断两种方式,这就得看你用的什么编码器了,一般确实是用的中断获取这个值,但如果你不在中断里做太多的事,肯定是可以使用的!

一周热门 更多>