参考资料:
- https://blog.csdn.net/lzzzzzzm/article/details/119416134
- 野火stm32电机开发教程
1. 编码器种类及原理
常见的编码器有两种,分别为霍尔编码器和gmr编码器。
1.1 霍尔编码器
霍尔编码器圆盘上分布有磁极,当圆盘随电机主轴转动时,会输出两路相位差90°的方波,用这两路方波可测出电机的转速和转向。霍尔编码器一般是13线的,就是转一圈每项会输出13个脉冲,这个精度基本能够满足大部分使用场景的要求。
1.2 光电编码器
如图,打孔码盘随电机进行旋转。每当光线穿过圆孔,输出电平就会改变,如此产生方波,测量方波的频率即可测出电机转速。
1.3 gmr编码器
gmr编码器利用巨磁阻效应进行测速,gmr编码器一般是500线的,转一圈每项会输出500个脉冲,精度比霍尔编码器高得多,适合对精度要求高的环境或者最求完美的人。
下图来自淘宝店铺轮趣科技
2. 常用测速方法
2.1 倍频技术
编码器会输出两路方波信号,如果只在通道a的上升沿计数,那就是1倍频;通道a的上升、下降沿计数,那就是2倍频;如果在通道a、b的上升、下降沿计数,那就是4倍频。
使用倍频可以最大程度地利用两路信号,提高测速的灵敏度。

下面说的三种测速方法只是在软件计算上的区别,硬件上是没有改变的
2.1 m法测速(周期测量法)
简单地说就是根据单位时间一共有多少个脉冲来计算转速。
设转速为n(r/s);测量时间为 t 0 t_0 t0(s); t 0 t_0 t0时间内的脉冲数为 m 0 m_0 m0;电机转一圈产生的脉冲数为c;则转速计算公式为
n = m 0 c t 0 n=\frac{m_0}{ct_0} n=ct0m0
当 m 0 m_0 m0很大,即转速快时,这个方法测得精度和平稳性都很好,但当 m 0 m_0 m0很小,速度改变带来的 m 0 m_0 m0变化很小,即转速慢时算出的误差就很大。所以m法测速适用于高转速场景
2.2 t法测速(频率测量法)
t法测速是这样操作的:是指先建立一个频率已知且固定的高频脉冲,当编码器读到一个信号,开始对高频脉冲进行计数,编码器第二个信号到来后,停止计数。根据对高频脉冲计数的次数、高频脉冲频率和电机转一圈编码器产生的脉冲数进行速度计算。
设转速为n(r/s);两个脉冲的时间间隔为 t e t_e te(s);电机转一圈产生的脉冲数为c; f 0 f_0 f0(hz)为编码器输出脉冲的频率; m 1 m_1 m1为高频脉冲的计数值,则转速计算公式为
n = 1 c t e = f 0 c m 1 n=\frac{1}{ct_e}=\frac{f_0}{cm_1} n=
发表评论