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

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条回答
无休
2019-07-21 22:19
无休 发表于 2016-8-24 11:21
脉冲怎么会是由电机提供的,电机可以给自身提供脉冲?你用了编码器的吧?

我觉得你方向走错了!不应该去考虑速度上的一致,首先是这种方式受电机单个特性影响,而电机随着工作时间的不同,也会表现出不同的性能,也会受电源的影响,其次你得到的速度也不一定是准确的,这要考虑到时间的问题,比较复杂。建议不采用这种方式,如果两个电机速度不一样可以考虑PID调节,这样两个电机才有可能实现一种速度同步

一周热门 更多>