电机噪声之谐波分析(内附simulink中FFT分析的相关参数配置与解析)

写在前面

宿舍持续隔离中,快递停运,没法搞实践,那就搞点仿真(我才不会说是导师让我干的呢[手动doge])

正文

电机噪声

一开始我觉得,电机噪声不就是因为电机运转起来之后,转子不停的旋转引起的震动,因而产生的噪声。

后来证明我还是太嫩了,这只是从结果的角度去分析,而且只分析了人们肉眼可以看到的东西。

而且现在针对电机噪声的研究,大致可以分类两类:

  • 针对电机自身的结构改来改去,比如极对数,沟槽数等
  • 针对电机的控制策略角度去分析

电机的控制策略,无外乎是控制算法和驱动硬件支持两个。这里只从控制算法角度去说,硬件角度留到以后有机会再说。

谐波的产生

下面是PMSM电机FOC控制的框图:

而我们谐波就是在:PWM变频器中功率器件的开关动作所产生的高频谐波电压会在电机绕组中产生高频谐波电流高频谐波电流会影响电机的谐波磁场,从而导致电机产生高频振动噪声

也就是图片中,PMSM与三相逆变桥之间那块。

这下就好说了,我们想办法抑制谐波电压的产生不就行了,可以减少谐波电压的幅值,或者让谐波不集中出现。

什么是谐波?

对了,好像还没说,什么是谐波?

百度百科上说:频率等于基本频率的整倍数的正弦波分量称为谐波

还有人说:谐波是指对周期性非正弦交流量进行傅里叶级数分解所得到的大于基波频率整数倍的各次分量,通常称为高次谐波。

用人话就是说,按咱们以前的理解正弦波形是这样子的:

但实际的我们产生用于驱动电机的电压正弦波是这样子的:

虽然从整体看仍然是正弦波的样子,但实际上它是由很多正弦波合成的一个不那么规则的正弦波。

而我们搞控制的当然想要理想的波形啊,可不能要这种东西,所以第一步我们就要先把这些谐波给找出来。

这就是这篇博文的首要目的。

傅里叶分析

提到傅里叶,大家都不陌生。

维基百科里定义:傅里叶变换是一种线性积分变换,用于信号在时域(或空域)和频域之间的变换

在时域上看不清楚的信号,可以在频域上看的清清楚楚。

傅里叶变换本质其实就是谐波分析,这说明谐波也是正弦波,只是每个谐波都具有不同的频率,幅度与相角。

谐波可以区分为偶次谐波与奇次谐波,如第3、5、7次编号的为奇次谐波,而2、4、6、8等为偶次谐波。

所以说,傅里叶变化就是为谐波分析而生的。

既然目标明确,现在就是选择使用何种工具对咱们产生的波形进行谐波分析了。

matlab中的FFT分析工具

simulink中FFT的实现方式主要有两种:

  • 1.将仿真数据保存至workspace后,自行编写程序进行FFT分析。此类方法适合有客制化需求的FFT分析,需要较好的编程功底。
  • 2.采用simulink中内置的仿真分析工具FFT Analysis,此类方法简单快捷,且内置工具功能全面,较一般自行编写的FFT程序而言具有更好的操作性,故更推荐大部分人使用此种方法进行FFT分析。

第一步:打开你要进行分析的模型

打开你的模型之后,拖入一个powergui模块,该模块所在地址直接搜索这个名字就行。

这里使用的是我正在做的一个有源滤波器的仿真模型,在这里充当一个例子,powergui模块就是画线那个。

第二步:打开这个模块,设置相关参数

首先设置Simulation type为Discrete,也就是分析的对象是离散的数据。

下面是采样的时间,可以理解成采样频率,这里无特殊要求不用管它,默认就行。

第三步:进入FFT分析工具

这就是FFT快速傅里叶分析的工具界面

我们把其分为四个部分分别进行讲解。

第1、2部分

第1部分,就是你要分析的波形名字Name(改名字与你模型中使用的示波器保存的名字一致)。

第2部分,number就是你要分析的波形输入是几个

对了,在分析之前别忘了把示波器采集到的数据保存在工作区,步骤如下:

打开示波器,按这个步骤进行设置,把采样到的数据,保存在工作区。这里的变量名称可以自己随便设置,和上面保持一致就行。

第3、4部分

参数设置:

  • Start time就是分析的开始时间

  • Number of cycles指的是采集的波形中,你要进行FFT分析的波形是几个,这里设置的是1个,也就是红色的那段波形。

  • Fundamental frequency (Hz)基础频率,就是你想要的用来充当基准的频率,也就是理想波形的频率

  • Max frequency (Hz)最大频率,就是左边图中横坐标最大值,也是你要分析的谐波包括多少频率在内

  • Max frequency for THD computation这里有两个选项

    用来计算THD时,要算多少频宽内的谐波,什么是THD后面再说,这里设置成Same as Max frequency就行,而另一个选项是指采样频率的一半(奈奎斯特频率),也就是一开始进入powergui的设置的那个参数

  • Display style指的是左边显示的是什么类型的

    有柱形图,还有列表。

  • Frequency axis指的是横坐标是直接显示频率,还是基础频率的倍数

设置完这些参数,点击Display就可以了。

THD

百度百科定义:总谐波失真(THD)指音频信号源通过功率放大器时,由于非线性元件所引起的输出信号比输入信号多出的额外谐波成分。谐波失真是由于系统不是完全线性造成的,我们用新增加总谐波成份的均方根与原来信号有效值的百分比来表示。

在我看来:THD参数代表意义,THD越低越接近正弦波,就说明谐波含量越少,输出的波形质量就越高

计算公式如下:


以上便是针对谐波,使用matlab的FFT工具进行分析的大致步骤。

谐波分析之后

分析完谐波之后,就可以有针对的对相关谐波进行抑制,具体抑制方法也有很多,现在我在尝试的有:

  • 无源滤波器
  • 有源滤波器
  • 谐波提取与抑制
  • 载波调制

以后有机会再接着聊。

最后祝大家早安,午安和晚安!希望疫情早点过去,希望世界和平!

电机噪声之谐波分析(内附simulink中FFT分析的相关参数配置与解析)的更多相关文章

  1. MyEclipse中Tomcat对应JVM的参数配置

    MyEclipse中Tomcat对应JVM的参数配置: -Xmx512M -Xms256M -XX:MaxPermSize=256m

  2. 查看linux中swap内存的相关参数

    内容主要来源于:linux的内存回收和交换 各项命令查看的linux环境是:Linux SUSE-33 2.6.32.12-0.7-defaul zone? 内存管理的相关逻辑都是以zone为单位的, ...

  3. 转:浅谈UNIX下Apache的MPM及httpd.conf配置文件中相关参数配置

    为什么要并发处理 以Apache为代表的web服务器中,如果不支持并发,则在一个客户端连接的时候,如果该客户端的任务没有处理完,其他连接的客户端将会一直处于等待状态,这事不可想象的,好像没有为什么要不 ...

  4. PMP测试实践- 内附PMBOK中字与备考资料

    最近笔者考了PMP(Project Management Professional )项目管理专业人士认证考试,主要为了系统学习下项目管理的整个过程与方法,结合PMP的理论与工作实践去更好的完成项目工 ...

  5. centos 中设置网卡等相关参数

    转:Centos启动和禁用网卡命令 ifup.ifdown:linux命令 实时地手动修改一些网络接口参数,可以利用ifconfig来实现,如果是要直接以配置文件,在  /etc/sysconfig/ ...

  6. Nginx的配置中与流量分发相关的配置规范:

    1.除首页外,其他页面都在某个目录中首页可以直接在根目录下,其他页面都要在根目录下的目录中.不同的location尽量使用第一个dir的模式进行区分,便于区分该流量是落在nginx本地,还是转发到后端 ...

  7. eclipse中使用debug,显示参数配置

    打开Window---->Preferences------>java------>Editor-------->Hovers 效果:

  8. Zend_Frameowrk中进行多语言国际化的相关的配置和使用

    在使用Zend_Framework建立网站,若网站在以后的使用中面向国际,这时就需要实现网站的多语言国际化问题.使用Zend_Framework开发的网站需要进行多语言的开发时,就需要用到了Zend_ ...

  9. DirectShow中写push模式的source filter流程 + 源代码(内附详细注释)

    虽然网上已有很多关于DirectShow写source filter的资料,不过很多刚开始学的朋友总说讲的不是很清楚(可能其中作者省略了许多他认为简 单的过程),读者总希望看到象第一步怎么做,第二步怎 ...

随机推荐

  1. java支持多继承吗

    java不支持多继承,只支持单继承(即一个类只能有一个父类).但是java接口支持多继承,即一个子接口可以有多个父接口.(接口的作用是用来扩展对象的功能,一个子接口继承多个父接口,说明子接口扩展了多个 ...

  2. Citus 分布式 PostgreSQL 集群 - SQL Reference(手动查询传播)

    手动查询传播 当用户发出查询时,Citus coordinator 将其划分为更小的查询片段,其中每个查询片段可以在工作分片上独立运行.这允许 Citus 将每个查询分布在集群中. 但是,将查询划分为 ...

  3. AGENS算法

    3.2 层次方法 下图,上面是从左到右由5个簇逐渐合并成1个簇的过程,下面是从右到左由一个簇逐渐分裂成5个簇的过程 AGENS算法 最后面一句话是重点,假设有<A,B>,<C,D&g ...

  4. 【前端Talkking】CSS系列——CSS深入理解之line-height

    1.写在前面 两个多周的时间没有写文章了,手好痒好痒,趁着公司在装修,从上周末到本周都在家办公,同时公司的项目并不紧急,于是抽着时间梳理了一下CSS中关于行高line-height的理解,今天发布出来 ...

  5. 设计模式之简单工厂SimpleFactory的实现

    internal interface Chart { void Display(); } internal class LineChart : Chart { public LineChart() { ...

  6. python-统计字符个数

    输入一个字符串,统计其中数字字符及小写字符的个数 输入格式: 输入一行字符串 输出格式: 共有?个数字,?个小写字符 输入样例: helo134ss12 输出样例: 共有5个数字,6个小写字符 代码: ...

  7. linux安装sbt

    1.官网下载tgz sbt - Download (scala-sbt.org) 2.解压 tar zxvf sbt-0.13.5.tgz -C /opt/scala/ 3.建立启动sbt脚本 /*选 ...

  8. SSM实现个人博客-day04

    项目源码免费下载:SSM实现个人博客 有问题询问vx:kht808 3.项目搭建(SSM整合) (1)创建maven工程,导入相应的依赖 <properties> <project. ...

  9. 小程序容器技术,App热更新与敏捷开发新方案

    作为追求代码洁癖的软件工程师,我们对"紧耦合"的技术实现可以说是深恶痛绝.要解决当前企业移动端App日益沉重.难以真正迭代.投入产出比低的问题,首先在技术架构上要实现真正的&quo ...

  10. Quartz 使用记录

    Quartz 使用记录 官网 https://www.quartz-scheduler.org/ 参考文档 Quartz 2.3.0 什么是 Quartz? 官方描述: Quartz is a ric ...