maxwell电机气隙磁密与用matlab进行fft谐波分析1.对电机进行静态场分析,分析完后,进入后处理2.需要在气隙中间画一条圆弧线。点开deometry菜单,点creat再选Arc如下图所示。然后输入圆弧的中心(0,0)回车。在下一个界面输入起始点坐标。最后一个界面输入这条弧线上的采样点数(250),圆弧角90度,圆弧的分段数目(250),名字以及线的颜色,最后回车,就会得到下图的圆弧了。3.需要得到气隙磁密。打开后处理计算器,依次选择qty—B,即选择磁密矢量。选择geom—line—airgap_line,即选中刚才画的那条弧线。选择unitvect—2dnormal,求取圆弧线的径向分量。选择dot(点乘),求取圆弧线上的B的径向分量。再选一遍那个圆弧线,然后点2dplot,就会出现那个磁密分布图了。4.虽然maxwell本身也可以做fft分析,但小弟还是喜欢把数据导出来在matlab中进行分析,这样更灵活一些。导出数据。点击plot菜单—saveas—2dplot。在弹出的对话框中输入数据文件的名字。(小弟实在找不到更好的办法导出数据了,如有哪位达人有更好的方法,请赐教。小弟在此谢谢了。)5.对气隙磁密进行谐波分析。将第四步中生成的.dat文件拷出来放到一个文件夹中(保证matlab和数据文件的路径相同)。然后将matlab文件也拷贝到这个文件夹中。打开这个m文件,输入Ns=500(需要进行分析的采样点个数,由于我们在maxwell中只分析了一个磁极下的磁密,所以只有半个周期,我们需要通过镜像生成后半个周期,这样总采样点个数为250*2=500)。Order是需要分析的谐波次数,输入11就是分析到11次谐波。运行,就得到下面的两个图了,第一个是原始波形,基波分量以及各高次谐波;第二个是个谐波分量的幅值大小柱状图。这样一个电机气隙磁密谐波分析就完成了。clcclearall;formatlong;Ns=500;order=11;%**********************readthepositionandfluxdensity************************fid=fopen('B.dat','r');%opentheoriginalfilefidnew=fopen('b1.dat','w');%writethenewfilewhilefeof(fid)==0tline=fgetl(fid);%tline?if~ischar(tline),break,endtemp=abs(tline);Nlength=length(tline);isemptyline=0;%????????????ifNlength==0isemptyline=1;endallspace=0;%????????????isspace=0;fori=1:NlengthT=temp(i);ifT==32isspace=isspace+1;endifisspace==Nlengthallspace=1;breakendendfindalpha=0;%?????????????forj=1:NlengthT=temp(j);if((T=65)&(T=90))|((T=97)&(T=122))findalpha=1;break;endendif(~findalpha)&(~allspace)&(isemptyline==0)%????????????????????????fprintf(fidnew,tline);fprintf(fidnew,'\n');endendfclose(fid);fclose(fidnew);fid1=fopen('b1.dat','r');flux_position=fscanf(fid1,'%f',[2,Ns]);fclose(fid1);%********************************readfilefinish*****************************************flux_position=flux_position';pos=flux_position(:,1);flux=flux_position(:,2);figure;plot(pos,flux,'r');%plotorigionalwaveformholdon;gridon;fft1=fft(flux,Ns);j=0;amp_har=zeros(1,(order+1)/2);form=1:2:orderj=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);holdon;endk=(1:2:order);figure;bar(k,amp_har);gridon;%peak_b=max(fft1)%rms_b=0.707*peak_b