当前位置: 首页 > news >正文

电机控制杂谈(26)——电机驱动系统的编码器的测速噪声

1.引言

之前想过在仿真里模拟编码器,但是一直没有去做,最近刚好有任务需求,前来学习一下。编码器的分辨率较低的话,容易产生较大的测速噪声,本篇内容就来看看如何确定编码器产生的噪声频率是多少,并且使用简单的方法抑制噪声的不良影响。

2.编码器噪声分析

参考文献:[1]陈扬洋.永磁交流伺服系统参数免调试策略研究[D].哈尔滨工业大学,2021.DOI:10.27061/d.cnki.ghgdu.2021.005397.

编码器会产生特定频率的噪声,这个噪声与控制频率、电机转速、编码器线数相关。

以编码器线数为2500的编码器为例子(暂且不考虑四倍频细化。反正分析方法是完全同理的,知道原理即可。),电机转一圈会产生2500个脉冲,假如我的转速环控制频率是1kHz(转速环控制周期0.001s),电机速度是2000r/min=33.333r/s。那么一个控制器周期内,我电机转的圈数就是33.333r/s*0.001s=0.033333r。

这样一来:

控制器在相邻控制周期内测量到的脉冲数(理论值)就是0.033333r*2500=83.3325

但是!控制器只能获取到整数个脉冲,不会得到小数,所以控制器在相邻控制周期内测量到的脉冲数(实际值)就是83。

好的,现在发现每个控制周期会少测量到0.3325个脉冲,这部分损失的小脉冲数会不断叠加,直到溢出1。例如第一个周期测到的脉冲数为83,丢掉的脉冲为0.3325个脉冲;第二个周期测到的脉冲数仍为83,但丢掉的脉冲数累计叠加到0.6650个脉冲;第三个周期测到的脉冲数仍为83,丢掉的脉冲数累计叠加到0.9975个脉冲;再到第四个周期的时候,小脉冲数要破1了,所以这时候测到的脉冲数为84(=83+1),丢掉的脉冲数累计叠加到0.3300(=0.9975+0.3325-1)个脉冲。

这样一来,这个电机在第四个周期测量得到的速度就会不同与前三个周期,进而造成速度波动。

关于上文所述的小脉冲积累现象,在参考文献中已有详细表述,我这里粘贴以下论文的内容。

同时论文中还推导了测速噪声的表达式:

有兴趣的可以自行搜论文,我下面就直接仿真验证。

3. 仿真验证测速噪声频率

为了模拟测速噪声,首先要搭建能够模拟编码器输出的位置信号。

我这里设置编码器位数为2500,即转子转一周,转子位置从0到2pi,编码器位数输出0到2500。当然了,实际的电机中,转子位置为0度,对的可不是编码器输出为0的地方。我这里只是简单模拟,对于验证效果而言,足够了。下面是编码器输出信号的放大图,编码器输出的信号只能是整数,不能有小数。

接着进行仿真验证。

3.1 2000r/min条件下的验证

先进行速度2000r/min(=33.333r/s),2.5kHz转速环控制频率(转速环控制周期0.0004s),编码器线数2500情况下的验证。

控制器在相邻控制周期内测量到的脉冲数(理论值)就是33.333r/s*0.0004s*2500=333.33。

那么每个控制周期内丢失的小脉冲数就是0.33333333(3无线循环)。

根据文章中的测速噪声频率表达式,可得到噪声频率=0.3333333333*2.5kHz转速环控制频率=833.33333Hz。仿真中的电机波形如下(由于速度噪声比较大,所以电流/转矩脉动也很大):

速度的FFT分析结果如下,转速噪声幅值最大的频率为833.3Hz,与计算结果一致。

我仿真的测速部分是会加低通滤波器(LPF)进行滤波的,我现在把LPF去掉看看不滤波的效果。从下图可以看到,转速不加LPF的话,电机转矩脉动更大,且速度波动更大。

从下图的速度FFT分析来看,不加LPF后,控制器得到的速度数值中会存在更为明显的833.3Hz噪声,这与理论计算结果一致。

3.2 1000r/min条件下的验证

先进行速度1000r/min(=16.666667r/s),2.5kHz转速环控制频率(转速环控制周期0.0004s),编码器线数2500情况下的验证。

控制器在相邻控制周期内测量到的脉冲数(理论值)就是33.333r/s*0.0004s*2500=166.66666667。

那么每个控制周期内丢失的小脉冲数就是0. 66666666(6无限循环)。

根据文章中的测速噪声频率表达式,可得到噪声频率=(1-0.66666666)*2.5kHz转速环控制频率=833.33333Hz。这里一定要注意哈,当小脉冲数大于0.5时,需要拿1减去小脉冲再乘以速度环控制频率

仿真中的电机波形如下:

可以看到,1000r/min条件下的最大测速噪声对应的频率仍为833.33Hz,符合理论计算。

3.3 1210r/min条件下的验证

先进行速度1210r/min(=20.166666667r/s),2.5kHz转速环控制频率(转速环控制周期0.0004s),编码器线数2500情况下的验证。

控制器在相邻控制周期内测量到的脉冲数(理论值)就是20.166666667r/s*0.0004s*2500=20.166666667。

那么每个控制周期内丢失的小脉冲数就是0. 166666666(6无限循环)。

根据文章中的测速噪声频率表达式,可得到噪声频率=0. 166666667*2.5kHz转速环控制频率=416.67Hz。

仿真中的电机波形如下:

可以看到,1210r/min条件下的最大测速噪声对应的频率为416.7Hz,符合理论计算。

4.测速噪声抑制方法

4.1高分辨率的编码器

编码器分辨率提高,有助于降低测速噪声。下面展示了不同编码器线数的仿真波形。

三相电流、转矩、转速波形(编码器位数2500)

三相电流、转矩、转速波形(编码器位数5000)

三相电流、转矩、转速波形(编码器位数10000)

4.2采用速度观测器

不再使用原有的速度计算方法(即给计算的速度加上LPF进行滤波),而是采用速度观测器,例如基于扩张状态观测器的速度观测器等等。

仿真对比如下。

从下图可以发现,采用基于扩张状态观测器的速度观测器后,电机的三相电流、转矩脉动得到大幅抑制。基于扩张状态观测器的速度观测器对应的电流THD为2.86%,速度无滤波对应的电流THD为16.97%,速度采用LPF(LPF截止频率为500Hz)对应的电流THD为9.36%。

三相电流、转矩、转速波形(速度无滤波)

三相电流、转矩、转速波形(速度采用LPF)

三相电流、转矩、转速波形(基于扩张状态观测器的速度观测器)

相电流FFT分析(速度无滤波)

相电流FFT分析(速度采用LPF)

相电流FFT分析(基于扩张状态观测器的速度观测器)

4.3采用先进的测速方法

这里可搜一下相关参考文献内容。

5.总结

本文对编码器产生的测速噪声进行了分析,并通过仿真验证不同转速条件下对应的测速噪声频率。其次简单阐述了如何抑制测速噪声。


考虑编码器测速噪声的Simulink仿真模型已经上传X鱼,有需要可X鱼联系。

相关文章:

  • 迪米特法则 (Law of Demeter, LoD)
  • ISP图像处理算法之Demosaic
  • 第1章 计算机系统知识
  • Spring Boot 深度集成 Ollama 指南:从聊天模型配置到生产级应用开发
  • 计算机网络实验课(二)——抓取网络数据包,并实现根据条件过滤抓取的以太网帧,分析帧结构
  • 5.27打卡
  • 3D Web轻量化引擎HOOPS Communicator实时协作功能深度解析
  • 4.GIS迁移步骤+注意事项+部署常见问题
  • 欧拉定理:若 gcd(a,n)=1,则 a^φ(n)≡1(mod n)。
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月27日第90弹
  • 算力革命:RoCE实测推理时延比InfiniBand低30%的底层逻辑
  • [BUG记录]0X10 会话切换服务响应NRC 0x10
  • 2025年5月6日 飞猪Java一面
  • LittleFS 小型文件系统(一)
  • 实验四 ——序列检测器和序列发生器
  • CSS 中的transform详解
  • 树莓派超全系列教程文档--(50)如何查找树莓派的IP地址
  • 创建型模式之Abstract Factory(抽象工厂)
  • 基于AI的智能农业病虫害识别系统实战指南
  • 【笔记】解决ImportError: cannot import name ‘interp‘ from ‘scipy‘报错
  • 个人网站简单/夫唯seo视频教程
  • 国际营销网站建设/百度广告关键词价格表
  • 在服务器网站上做跳转/水果网络营销策划书
  • 上传网站安装教程视频/网络运营好学吗
  • 公司微网站怎么建设/网站制作的基本流程
  • 网站建设的方案计划/seo营销技巧