当前位置: 首页 > 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鱼联系。

http://www.xdnf.cn/news/683713.html

相关文章:

  • RK3568DAYU开发板-驱动平台驱动案例--PWM
  • 【Linux】(1)—进程概念-①冯诺依曼体系结构
  • 想查看或修改 MinIO 桶的匿名访问权限(public/private/custom)
  • java基础学习(十八)
  • 大模型微调(面经总结)
  • 代码风格指南
  • 聚焦北京央美备考画室:探寻实力之巅
  • 码蹄集——圆周率II、三个非负整数
  • PCB设计自检表
  • 基于心理健康与数字行为数据的多维度分析
  • JAVA运算符详解
  • Oracle向PG转移建议以及注意点
  • 57页 @《人工智能生命体 新启点》中國龍 原创连载
  • IvorySQL 核心技术解读:双 Parser 架构如何定义数据库兼容性?
  • python训练营打卡第36天
  • 竞赛小算法总结(二):gcdlcm,拓展欧几里得线性同余,逆元(含代码详解)
  • AE的ai图层导到Ai
  • spring4第2课-ioc控制反转-依赖注入,是为了解决耦合问题
  • WIN10 安装dify ollama搭建工作流agent
  • 两种主流检索技术:BM25(基于关键词匹配)和向量相似度检索
  • LVGL(Flex布局)
  • Docker修改镜像存放位置
  • qiankun 子应用怎样通过 props拿到子应用【注册之后挂载之前】主应用中发生变更的数据
  • vue2轮播图组件
  • 计算机网络实验课(二)——抓取网络数据包,并实现根据条件过滤抓取的以太网帧,分析帧结构
  • 如何检查液质联用仪LCMS的真空度
  • 提升前端性能:减少DOM操作
  • 在线项目管理工具对比:Trello、Worktile等20款软件测评
  • Java的Spring Cloud生态中实现SSE(Server-Sent Events)服务端实践
  • YoloV11改进策略:卷积篇-风车卷积-即插即用