maxwell波形fft分析与matlab后处理生成反电势频谱分布图与空载气隙磁密谐波分布图

本文主要是介绍maxwell波形fft分析与matlab后处理生成反电势频谱分布图与空载气隙磁密谐波分布图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

查阅论文的时候经常可以看到以下两种傅里叶分解频谱分布图,一个横坐标是谐波次数,例如基波的次数为1,还有奇次谐波,偶次次谐波等等;另外一种则是以谐波极对数为横坐标,例如6对极,10对极等等。现针对以上两种频谱图从Maxwell获取fft分析数据到matlab后处理生成频谱分布条状图给出详细的步骤。

 图1 以谐波次数为横坐标的频谱分布

 图2 以谐波极对数为横坐标的频谱分布

这里以某电机反电势频谱分布和空载气隙磁密谐波分布为例,首先在Maxwell仿真得到电机空载反电势图如图3所示,注意这里仿真时间需要设置成整数周期,因为傅里叶分解用于分析周期函数。这里取一个周期时间1.5ms,关于电机运行一个周期的时间可以利用以下公式自行计算:

60f=np,T=1/f

这里转速设置为n=4000rpm,电机极对数为10,代入计算得到周期T为1.5ms。

 图3 相绕组反电势波形

图4 仿真时间设置为一个周期

然后右击results选择Perform FFT on Report…,点击所需要fft分析的波形,FFT Window Type选择Rectangular,Apply Function To Complex Data选择mag如图5所示,然后就会在results得到图6所示的频谱分布图,这里横坐标为各个谐波频率值,纵坐标为电压幅值大小。在results选中该波形可以在其特性栏改变显示类型,这里我们将Display类型由Rectangular plot改为Data Table即可得到图8所示的表格。

 图5 选择波形进行FFT分析

 图6 反电势频谱分布图

 图7 改变fft显示类型

 图8 反电势频谱分布表

现将该数据导出用于绘制第一种频谱分布图以及计算其THD,选中该表格,右击选择Export得到.csv数据,命名保存一下,如图9所示。

 图9 Maxwell数据导出

打开Matlab,点击主页选择导入数据,找到刚刚保存的.csv数据打开

 图10 导入数据

然后按下图操作将频率结果全部导入到Matlab的Workspace中,幅值结果也按此操作,接着即可在工作空间看到已经导入的数据(注意维度一致)。

 图11 将.csv数据导入到workspace

 图12 工作空间看到已导入的数据

双击导入的数据名,可将其重命名回车确认。

 图13 更改数据名

新建脚本,输入以下代码用于绘制条状频谱分布图。

%作反电势频谱图%a是基波频率a=F(1,1);%根据极对数与频次成正比得到谐波阶次polar=F./a;%绘制条状频谱图bar(polar,U,0.4);xlabel('谐波阶次');ylabel('电压幅值(V)');title('反电势频谱分布图')grid;%计算THDb=U(1,1);i=2;s=0;while i<=length(U)x=U(i,1)*U(i,1);s=s+x;i=i+1;endTHD=sqrt(s)/b;sprintf('THD=%2.2f%%',THD*100)

这里根据谐波次数与频率成正比关系,用其他频率值除以基频即可得到谐波次数,然后用bar(x,y)绘制条状图,此时横坐标即可转化为谐波阶次,1表示基波,3表示3次谐波…,bar(polar,U,0.4)中的0.4表示条形图绘制所占区间的含量为40%,这里的F是已经改过名的频率数据,U是改过名的电压幅值数据。THD计算是根据以下公式编写代码实现。

 在输出THD大小的时候这一句‘THD=%2.2f%%’前面%2.2f表示输出至少两位数据位宽并保留两位小数浮点数据,后面%%用于显示百分号。最后得到反电势频谱分布图如图14所示

 图14 反电势频谱分布图

接下来讲讲如何绘制空载气隙磁密谐波极对数分布图,首先在电机模型气隙间绘制一个圆面,这里绘制的时候注意确定圆面半径,可在绘制时在Maxwell软件右下角输入半径,记录半径用于后续fft分析坐标转换。这里输入半径为67.1mm,也即dx=67.1

 然后在model栏生成一个圆面,但我们需要一个圆弧而不是圆面,因此删掉该圆面的coverlines,随后得到一个圆弧显示在lines中,将其命名为air_gap

 图15 删掉圆面的coverlines

 图16 给圆弧命名为air_gap

为得到气隙径向磁密波形,需要利用场计算器生成径向磁密Br,其利用x轴和y轴两个方向的磁密合成所得,如下图所示:

 不难得知,合成径向磁密表达式为:

Br=B_x*cos\varphi +B_y*sin \varphi

右击Field overlays选择Calculator按照下面步骤得到径向磁密,然后点击Add后将其命名为Br。

 图17 径向磁密Br设置步骤

 图18 添加径向磁密Br

仿真完毕随后在results中右击选择Create Fields Report→Rectangular plot,然后按下图生成气隙磁密波形图。

 图19 生成径向气隙磁密波形步骤

从图20气隙磁密波形可以看到其横坐标为距离单位(mm),其实是所选圆弧的弧长。参照前面所述步骤对该磁密波形进行FFT分析得到图21频谱分布。

 图20 空载气隙磁密波形

 图21 气隙磁密FFT分析

现在最关键的一步来了,可以看到,气隙磁密FFT结果横坐标表示Distance,这个与我们想要得到的横坐标是极对数是不一致的,这里存在一个关系:

Distance=\frac{polar}{2\pi R}

其中polar表示实际谐波极对数,R为前面绘制的air_gap半径(R的单位:m),因此要想得到实际的谐波极对数分布,可以将该数据导出(步骤跟前面一样生成.csv文件)利用Matlab绘制。绘制代码很简单,如下所示。

P=FFTD.*0.1342*pi;%转换坐标系,将Maxwell原横坐标转换为极对数
bar(P,FFTB);%绘制条状图
axis([0,50,0,0.28]);%限定坐标轴区间
xlabel('谐波极对数');
ylabel('磁通密度幅值/T');
title('空载气隙磁通密度谐波分布');
grid;

将导入的distance数据重命名为FFTD,导入的磁密幅值数据重命名为FFTB,0.1342*pi这个数据就是2*pi*R(前面设置的半径R=67.1mm=0.0671m),最后得到的空载气隙谐波分布图如图22所示。

图22 空载气隙磁通密度谐波分布图

整理写作不易,觉得不错的给个赞啊,谢谢~

 

这篇关于maxwell波形fft分析与matlab后处理生成反电势频谱分布图与空载气隙磁密谐波分布图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/525972

相关文章

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、