maxwell_电机气隙磁密与用matlab进行fft谐波分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

maxwell 电机气隙磁密与用matlab进行fft谐波分析1.对电机进行静态场分析,分析完后,进入后处理
2.需要在气隙中间画一条圆弧线。

点开deometry菜单,点creat再选Arc 如下图所示。

然后输入圆弧的中心(0,0)回车。

在下一个界面输入起始点坐标。

最后一个界面输入这条弧线上的采样点数(250),圆弧角90度,圆弧的分段数目(250),名字以及线的颜色,最后回车,就会得到下图的圆弧了。

3. 需要得到气隙磁密。

打开后处理计算器,依次选择qty—B,即选择磁密矢量。

选择geom—line—airgap_line, 即选中刚才画的那条弧线。

选择unit
vect—2d normal,求取圆弧线的径向分量。

选择dot(点乘),求取圆弧线上的B 的径向分量。

再选一遍那个圆弧线,然后点 2d plot,就会出现那个磁密分布图了。

4. 虽然maxwell本身也可以做fft分析,但小弟还是喜欢把数据导出来在matlab 中进行分析,这样更灵活一些。

导出数据。

点击plot菜单—save as—2d plot。

在弹出的对话框中输入数据文件的名字。

(小弟实在找不到更好的办法导出数据了,如有哪位达人有更好的方法,请赐教。

小弟在此谢谢了。


5. 对气隙磁密进行谐波分析。

将第四步中生成的.dat文件拷出来放到一个文件夹中(保证matlab和数据文件的路径相同)。

然后将matlab文件也拷贝到这个文件夹中。

打开这个m文件,输入Ns=500(需要进行分析的采样点个数,由于我们在maxwell中只分析了一个磁极下的磁密,所以只有半个周期,我们需要通过镜像生成后半个周期,这样总采样点个数为250*2=500)。

Order是需要分析的谐波次数,输入11就是分析到11次谐波。

运行,就得到下面的两个图了,第一个是原始波形,基波分量以及各高次谐波;第二个是个谐波分量的幅值大小柱状图。

这样一个电机气隙磁密谐波分析就完成了。

clc
clear all;
format long;
Ns=500;
order=11;
%**********************read the position and flux density************************
fid=fopen('','r'); %open the original file
fidnew = fopen('','w'); %write the new file
while feof(fid)==0
tline = fgetl(fid); %tline
if ~ischar(tline), break, end
temp=abs(tline);
Nlength=length(tline);
isemptyline=0; %
if Nlength==0
isemptyline=1;
end
allspace=0; %
isspace=0;
for i=1:Nlength
T=temp(i);
if T==32
isspace=isspace+1;
end
if isspace==Nlength
allspace=1;
break
end
end
findalpha=0; %
for j=1:Nlength
T=temp(j);
if ((T>=65)&(T>=90))|((T>=97)&(T>=122)) findalpha=1;
break;
end
end
if (~findalpha)&(~allspace)&(isemptyline==0) % fprintf(fidnew,tline);
fprintf(fidnew,'\n');
end
end
fclose(fid);
fclose(fidnew);
fid1=fopen('','r');
flux_position =fscanf(fid1,'%f',[2,Ns]);
fclose(fid1);
%********************************read file finish***************************************** flux_position=flux_position';
pos=flux_position(:,1);
flux=flux_position(:,2);
figure;
plot(pos,flux,'r');%plot origional waveform hold on;
grid on;
fft1=fft(flux,Ns);
j=0;
amp_har=zeros(1,(order+1)/2);
for m=1:2:order
j=j+1;
fft1=fft(flux,Ns);
fund_ele_front=fft1(m+1);
fund_ele_back=fft1(Ns+1-m);
amp_har(j)=(abs(fund_ele_front))/Ns*2; fft1=0*fft1;
fft1(m+1)=fund_ele_front;
fft1(Ns+1-m)=fund_ele_back;
fft1=ifft(fft1,Ns);
fft1=real(fft1);
plot(pos,fft1);
hold on;
end
k=(1:2:order);
figure;
bar(k,amp_har);
grid on;
%peak_b=max(fft1)
%rms_b=*peak_b。

相关文档
最新文档