Measure-rotational-speed

使用STM32F1定时器与霍尔传感器对无人机/无人车的主轴转速进行测量

CSDN链接:https://blog.csdn.net/Sky777wdnmd/article/details/123552067

国际标准中,国际标准单位为RPM(Revolutions Per Minute,转/分)。

测量算法

作者先后采用了两种方法对主轴转速进行了测量,第一种在规定时间(1秒)内对上升沿或下降沿的次数进行统计,在安装了三个霍尔传感器的基础上,每当发生第四次上升沿/下降沿的时候就代表完成了一圈的转动,此时圈数加一(或者用总的上升沿次数除以三得出转动圈数)。用一秒内的转动圈数乘以60即为标准转速RPM,简称为“计数法”;

第二种方法不是对跳变沿的个数进行采集,而是对两次跳变沿间的保持时间进行记录,每当判定完成一圈转动时,对时间进行记录,用60除以一圈的时间(换算为秒)即为实时的RPM,如果转速过快,可以对圈数和RPM进行累加,在main函数的循环进行显示时可以取平均值,然后清零,简称为“计时法”。下图为霍尔测量法示意图。

image

两种方法相比,前者:

当转速较慢时,例如RPM低于60,即1秒时间内转动时间小于1圈。此时计算出的转速一直为0;

该方法计时时间是一秒钟转的圈数,国际标准是以分钟为单位,在转换时需要进行乘60的操作,因此最终结果一定是60的倍数。可以通过拉长统计时间来提高精度,然而由于STM32内部定时器的上限以及实时显示频率的要求,注定表达不够精确; 结合实际实验数据表明,该方法存在较大的误差。

后者:

通过统计旋转一圈的时间,或对多圈时间进行记录和累加,不需受到固定时间的拘泥。

原理图: image