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中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Spring、Spring Boot、Spring Cloud 的区别与联系分析

《Spring、SpringBoot、SpringCloud的区别与联系分析》Spring、SpringBoot和SpringCloud是Java开发中常用的框架,分别针对企业级应用开发、快速开... 目录1. Spring 框架2. Spring Boot3. Spring Cloud总结1. Sprin

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码