当前位置: 代码网 > 服务器>网络>网络协议 > 【程序】【必须】编码器电机测速,原理+代码+滤波

【程序】【必须】编码器电机测速,原理+代码+滤波

2024年08月02日 网络协议 我要评论
​为了改善这一现象,我们可以对速度采样值使用平均滤波,即将最近几次的速度采样值存放到数组中,每测得一个新的速度,就将新速度存入数组,将最早测得的速度值从数组中删除,我们使用的速度值是数组中所有速度的平均值。​编码器模式下的定时器其实是个计数器,在编码器的脉冲到来时,Counter会相应地加和减,正转时加,反转时减,溢出后到达另一个极端值,比如说向上计数到达20001时会变成0。​我们假设现在测速频率是50Hz,减速比为30,编码器线数为500,那么脉冲数每变化1,速度的变化为。

参考资料:

  1. https://blog.csdn.net/lzzzzzzm/article/details/119416134
  2. 野火stm32电机开发教程

1. 编码器种类及原理

常见的编码器有两种,分别为霍尔编码器和gmr编码器。

1.1 霍尔编码器

​ 霍尔编码器圆盘上分布有磁极,当圆盘随电机主轴转动时,会输出两路相位差90°的方波,用这两路方波可测出电机的转速和转向。霍尔编码器一般是13线的,就是转一圈每项会输出13个脉冲,这个精度基本能够满足大部分使用场景的要求。

1.2 光电编码器

​ 如图,打孔码盘随电机进行旋转。每当光线穿过圆孔,输出电平就会改变,如此产生方波,测量方波的频率即可测出电机转速。

1.3 gmr编码器

​ gmr编码器利用巨磁阻效应进行测速,gmr编码器一般是500线的,转一圈每项会输出500个脉冲,精度比霍尔编码器高得多,适合对精度要求高的环境或者最求完美的人。

​ 下图来自淘宝店铺轮趣科技

image-20230120202230595

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=

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com