maxwell_电机气隙磁密与用matlab进行fft谐波分析
- 格式:doc
- 大小:477.50 KB
- 文档页数:11
DSP MATLAB上机实验一班级:学号:姓名:函数代码:function xn()format longq=0.9+0.3*i;wn=exp(-2*pi*i/32);xn=q.^[0:31]xk1=(1-q^32)./(1-q*wn.^[0:31]) %利用公式计算XK的理论值xk2=fft(xn,32) %运用基二基2时间抽选的FFT算法计算Xkdiff=xk1-xk2 %两者的差运行xn()即得结果结果为:xn =Columns 1 through 21.000000000000000 0.900000000000000 + 0.300000000000000i Columns 3 through 40.720000000000000 + 0.540000000000000i 0.486000000000000 + 0.702000000000000i Columns 5 through 60.226800000000000 + 0.777600000000000i -0.029160000000000 + 0.767880000000000i Columns 7 through 8-0.256608000000000 + 0.682344000000000i -0.435650400000000 + 0.537127200000000i Columns 9 through 10-0.553223520000000 + 0.352719360000000i -0.603716976000000 + 0.151480368000000i Columns 11 through 12-0.588789388800000 - 0.044782761600000i -0.516475621440000 - 0.216941302080000i Columns 13 through 14-0.399745668672000 - 0.350189858304000i -0.254714144313600 - 0.435094573075200i Columns 15 through 16-0.098714357959680 - 0.467999359061760i 0.051556885554816 - 0.450813730543488i Columns 17 through 180.181645316162381 - 0.390265291822695i 0.280560372092951 - 0.296745167791711i Columns 19 through 200.341527885221169 - 0.182902539384655i 0.362245858514449 - 0.062153919879838i Columns 21 through 220.344667448626955 + 0.052735229662480i 0.294380134865516 + 0.150861941284319i Columns 23 through 240.219683538993669 + 0.224089787615542i 0.130488248809639 + 0.267585870552088i Columns 25 through 260.037163662763049 + 0.279973758139771i -0.050544830955187 + 0.263125481154709i Columns 27 through 28-0.124427992206081 + 0.221649483752682i -0.178480038111278 + 0.162156137715589i Columns 29 through 30-0.209278875614827 + 0.092396512510647i -0.216069941806538 + 0.020373198575134i Columns 31 through 32-0.200574907198425 - 0.046485103824341i -0.166571885331280 - 0.102009065601434i xk1 =Columns 1 through 20.693972803195698 + 3.499715655993840i 2.792267857648369 + 8.050455721438597i Columns 3 through 49.402964607913189 - 9.135013555028673i 1.866445467462052 - 3.833832762635439i Columns 5 through 61.131822689478846 -2.234157347130941i 0.904793922868299 - 1.534629307882413i Columns 7 through 80.799557206779214 - 1.139609357830753i 0.739605630813150 - 0.882314367550644i Columns 9 through 100.700861643199240 - 0.698565363198060i 0.673575789604202 - 0.558478478082158i Columns 11 through 120.653109437428513 - 0.446244996656357i 0.636991253015040 - 0.352689135211701i Columns 13 through 140.623788380776217 - 0.272085968296931i 0.612612873742441 - 0.200641851238978i Columns 15 through 160.602883340189454 - 0.135703205872800i 0.594200434347139 - 0.075313670713158i Columns 17 through 180.586277479436723 - 0.017949220626496i 0.578899608820263 + 0.037651723475093i Columns 19 through 200.571898466305671 + 0.092606953506914i 0.565135772013173 + 0.147983310049841i Columns 21 through 220.558492135768929 + 0.204880771267792i 0.551859131244066 + 0.264522208758452i Columns 23 through 240.545133643745847 + 0.328364940349017i 0.538214362209129 + 0.398257131749283i Columns 25 through 260.531001527230573 + 0.476677768575531i 0.523403723684219 + 0.567132338629562i Columns 27 through 280.515362483773298 + 0.674849986673143i 0.506925762334513 + 0.808101482252638i Columns 29 through 300.498467012317214 + 0.980906313951879i 0.491389377970933 + 1.219207441587793i Columns 31 through 320.490732201059483 + 1.577081955159802i 0.517353973624932 + 2.188832884536347i xk2 =Columns 1 through 20.693972803195698 + 3.499715655993839i 2.792267857648366 + 8.050455721438597i Columns 3 through 49.402964607913182 - 9.135013555028694i 1.866445467462051 - 3.833832762635439iColumns 5 through 61.131822689478844 -2.234157347130942i 0.904793922868298 - 1.534629307882413i Columns 7 through 80.799557206779213 - 1.139609357830754i 0.739605630813149 - 0.882314367550644i Columns 9 through 100.700861643199240 - 0.698565363198060i 0.673575789604202 - 0.558478478082158i Columns 11 through 120.653109437428513 - 0.446244996656356i 0.636991253015040 - 0.352689135211701i Columns 13 through 140.623788380776217 - 0.272085968296931i 0.612612873742441 - 0.200641851238978i Columns 15 through 160.602883340189454 - 0.135703205872799i 0.594200434347139 - 0.075313670713158i Columns 17 through 180.586277479436723 - 0.017949220626496i 0.578899608820263 + 0.037651723475093i Columns 19 through 200.571898466305671 + 0.092606953506913i 0.565135772013173 + 0.147983310049840i Columns 21 through 220.558492135768929 + 0.204880771267792i 0.551859131244066 + 0.264522208758452i Columns 23 through 240.545133643745847 + 0.328364940349016i 0.538214362209129 + 0.398257131749282i Columns 25 through 260.531001527230572 + 0.476677768575531i 0.523403723684219 + 0.567132338629563iColumns 27 through 280.515362483773297 + 0.674849986673143i 0.506925762334512 + 0.808101482252638i Columns 29 through 300.498467012317213 + 0.980906313951878i 0.491389377970932 + 1.219207441587794i Columns 31 through 320.490732201059480 + 1.577081955159802i 0.517353973624928 + 2.188832884536347i diff =1.0e-013 *Columns 1 through 20.001110223024625 + 0.004440892098501i 0.031086244689504Columns 3 through 40.071054273576010 + 0.213162*********i 0.013322676295502 + 0.008881784197001i Columns 5 through 60.015543122344752 + 0.004440892098501i 0.004440892098501 + 0.006661338147751i Columns 7 through 80.008881784197001 + 0.002220446049250i 0.003330669073875 - 0.001110223024625i Columns 9 through 100.006661338147751 - 0.001110223024625i 0.006661338147751 - 0.003330669073875i Columns 11 through 120.001110223024625 - 0.009992007221626i 0.002220446049250 + 0.003330669073875i Columns 13 through 14-0.002220446049250 + 0.000555111512313i 0.003330669073875 + 0.000832667268469i Columns 15 through 160.006661338147751 - 0.006938893903907i 0.002220446049250 + 0.000693889390391i Columns 17 through 180.002220446049250 - 0.000173472347598i -0.001110223024625 - 0.004302114220422i Columns 19 through 200.001110223024625 + 0.010963452368173i -0.001110223024625 + 0.006383782391595i Columns 21 through 220.001110223024625 + 0.002775557561563i 0 + 0.000555111512313i Columns 23 through 240.001110223024625 + 0.006106226635438i 0.004440892098501 + 0.003330669073875i Columns 25 through 260.004440892098501 0.001110223024625 - 0.003330669073875i Columns 27 through 280.012212453270877 - 0.002220446049250i 0.006661338147751 - 0.004440892098501i Columns 29 through 300.009992007221626 + 0.002220446049250i 0.011102230246252 - 0.006661338147751i Columns 31 through 320.028310687127941 0.035527136788005 - 0.008881784197001i 由上面结果可知,由基2时间抽选的FFT算法所得到的DFT结果与利用公式法所得的理论值稍有偏差,但误差较小,从结果可以看出大概在小数点第15位才开始出现误差,故而用计算机FFT处理数据在精度上是可以接受的。
基于Ansoft Maxwell 的电机气隙径向磁密求取编写:y1949b日期:2011-7-10首发:西莫论坛()1 前言使用工具: Ansoft Maxwell 2D V14.0目的:求取电机气隙径向磁密例子:pmsg-1.mxwl例子所在目录:C:\Program Files\Ansoft\Maxwell14.0\Examples\RMxprt\pmsg(默认安装路径的话)2 正文使用静磁场求解器,本例求解的为永磁同步电机的空载气隙径向磁密,电机模型如图2-1,为全模型。
图2-1打开场计算器,如图2-2所示图2-2场计算器如图2-3所示,其中序号1、2、3、4、5 为主要的点取顺序,其气隙径向磁密利用的公式2-1为B=B X×cos(θ)+ B Y×sin(θ) (2-1)式中 B-径向磁密B X-磁密的x轴分量By-磁密的y轴分量θ-柱坐标的θ图2-3具体的点取顺序见下图2-4至2-13图2-4图2-5图2-6图2-6图2-7图2-8图2-9图2-10图2-11图2-12图2-13生成的公式如图2-14,其中PHI为系统内置变量,即式2-1中的θ图2-14将公式命名,如图2-15至2-17,并加入公式表中,必备后处理使用图2-15图2-16图2-17到此,场计算器的操作完成,然后求解模型,可见场结果如图2-18、2-19磁力线和磁密均正常,说明模型设置正确图2-14图2-15进行后处理操作,先取消软件默认的将闭合的线自动生成面,如图2-16、2-17图2-16图2-17在模型上的定子与转子间画圆,如图2-18、2-19图2-18图2-19 在结果里查看圆的径向磁密如图2-20、2-21图2-20图2-21得到气隙径向磁密如图2-22图2-22对径向磁密进行傅里叶分解,在V13版本之前,一般是导出结果,通过Matlab 等第三方工具进行傅里叶分级,在V13版本及后续版本,添加了一个FFT的工具,通过这个工具,可很便捷的进行傅里叶分解,但请注意所要进行傅里叶分解的曲线的周期!傅里叶分解如图2-22至2-24图2-22图2-23图2-24图2-25图2-26得到气隙径向磁密基波幅值为0.839292T。
电机磁动势的matlab程序
编写电机磁动势的Matlab程序涉及到电机的数学建模和磁场分析。
一般来说,电机磁动势可以通过有限元分析或者解析方法来计算。
以下是一个简单的示例程序,假设我们使用解析方法来计算电机磁动势。
matlab.
% 定义电流和磁场参数。
I = 5; % 电流。
N = 1000; % 匝数。
L = 0.2; % 磁场长度。
mu_0 = 4pi10^-7; % 真空中的磁导率。
% 计算磁动势。
F = NILmu_0;
% 显示结果。
disp(['电机磁动势为,', num2str(F), ' 特斯拉']);
在这个简单的示例中,我们假设电机的线圈匝数为1000匝,通过线圈的电流为5安培,磁场的长度为0.2米,然后利用公式F = NILmu_0来计算磁动势。
最后通过disp函数来显示计算结果。
然而,实际的电机磁动势计算可能更加复杂,可能需要考虑电机的几何形状、磁场分布、非线性特性等。
对于复杂的情况,可能需要使用有限元分析等数值方法来进行计算。
这就需要建立更加复杂的模型,并编写相应的Matlab程序来进行计算和分析。
总之,电机磁动势的Matlab程序编写涉及到电机建模和磁场分析,需要根据具体情况选择合适的方法和工具来进行计算。
ansys maxwell电磁力转成频域导入谐波力计算原理ansysMaxwell是一款广泛应用于电磁场仿真分析的软件,其强大的仿真能力在许多领域都得到了广泛的应用。
然而,在许多实际应用中,仅仅依靠Maxwell场仿真可能无法得到准确的电磁力,尤其是在涉及到高频或者多频的情况时。
这种情况下,通常需要进行频域分析,从而得到谐波力的计算结果。
一、Maxwell电磁力解析Maxwell电磁力是在电磁场中,电荷或电流受到电磁场的作用力而产生的。
其基本公式为:F=-∂E·dJ-∂H·dB,其中E为电场强度,H为磁场强度,B为磁感应强度,J为电荷密度,B为电流密度。
这些量在空间和时间中随时间变化,因此会产生电磁力。
二、从Maxwell到频域的转换为了进行频域分析,我们需要将Maxwell场仿真结果导入到频域中进行计算。
通常的做法是将Maxwell场仿真结果(如电场强度、磁场强度等)转换为频域形式,再根据傅里叶变换的原理进行计算。
傅里叶变换可以将时域信号转换为频域信号,从而方便进行频域分析。
三、谐波力的计算原理谐波力是周期性变化的电磁力,其大小和相位随着频率的变化而变化。
在频域分析中,谐波力的计算通常基于傅里叶级数展开。
傅里叶级数可以将任意函数展开为无穷多个正弦函数和余弦函数的和的形式。
对于电磁力,我们可以将其表示为一系列谐波的叠加,从而得到谐波力的计算公式。
四、导入方法与步骤在进行频域分析时,我们需要将Maxwell场仿真结果导入到ansys软件中,并进行频域转换和谐波计算。
具体步骤如下:1.在Maxwell仿真完成后,导出需要的电磁场数据;2.打开ansys软件,并导入导出的电磁场数据;3.选择合适的频率范围和采样点数,进行频域转换;4.使用傅里叶级数或傅里叶变换公式进行谐波计算;5.根据计算结果进行后续的分析和建模工作。
五、注意事项在进行频域分析时,需要注意一些关键问题,如采样点的选择、频率范围的设置、谐波数的确定等。
matlab滤除谐波的方法
在MATLAB中,滤除谐波的方法可以通过数字信号处理技术来实现。
下面我将从几个角度来介绍如何在MATLAB中滤除谐波。
首先,可以使用滤波器来滤除谐波。
MATLAB提供了丰富的滤波器设计函数,如fir1、fir2、butter、cheby1等。
你可以根据信号的特点选择合适的滤波器类型和参数,然后利用filter函数将滤波器应用到信号上。
其次,可以利用频域分析的方法来滤除谐波。
你可以使用MATLAB中的快速傅里叶变换(FFT)函数对信号进行频谱分析,找到谐波的频率成分,然后将这些频率成分滤除或者减弱,最后再通过反变换将信号转换回时域。
另外,如果你知道谐波的频率成分,也可以直接在频域将谐波的频率成分置零,然后通过逆FFT将信号转换回时域,这样就可以实现谐波的滤除。
此外,你还可以尝试使用小波变换来滤除谐波。
MATLAB提供了丰富的小波分析函数,你可以利用小波变换将信号分解成不同频率
的子带,然后去除包含谐波的子带,最后再进行小波重构得到滤除了谐波的信号。
总的来说,MATLAB提供了多种方法来滤除谐波,包括滤波器设计、频域分析、小波变换等。
你可以根据信号的特点和需求选择合适的方法来进行谐波滤除。
希望以上介绍对你有所帮助。
clcclear all;format long;Ns=1000;order=13; I与**********************read the position and flux density************************ fid=fopen(,",' r'); %open the original file fidnew = fopen(* ',' w'); Swrite the new file while feof(fid)==0tline = fgetl(fid); %tline if ^ischar(tline), break, end temp=abs(tline);Nlength=length(tline); isemptyline=O; % (if Nlength==0 isemptyline=l;endallspace=O; % .isspace=0;for i=l:Nlength T=temp(i);if T==32isspace=isspace+l;endif isspace==Nlength allspace=l;breakend<endfindalpha=O; % for j=l:Nlength T=temp(j);if ((T>=65)&(T>=90)) | ((T>=97)&(T>=122)) findalpha=l;break; end end )if (^f indalpha) & (""al 1 space) & (i sempt5r l ine==O) % fprintf(fidnew, tline); fprintf(fidnew, ' \n'); endendfclose(fid); fclose(fidnew);fidl=fopen(* ',' r');■flux_position =fscanf(fidl, > [2, Ns]); fclose(fidl);%********************************read file finish***************************************** flux_position=flux_position,;posl=flux_posit ion(:, 1); (pos_delta=posl(2);pos_length=length(posl);pos_last=posl(pos_length);for i=l:l:pos_length %copy and get another part of position pos2(i)=pos_last+i*pos_delta; ( end posl=posl';fluxl=flux_position(:, 2);flux2=-flux_pos it ion(:, 2);pos=[posl, pos2];%combine and get all part of position > fluxl=fluxf ;flux2=flux2,;flux=[fluxl, flux2];%combine and get all part of flux density value figure;plot(posl, fluxl,' r') ;%plot origional waveform hold on;grid on;fftl=fft(flux, Ns);j=0; amp_har=zeros(l, (order+l)/2);for m=l:2:orderj=j+l;fftl=fft(flux, Ns);fund_ele_front=fftl(m+1);1fund_ele_back=fftl(Ns+l-m);amp_har(j)=(abs(fund_ele_front))/Ns*2;fftl=O*fftl;fftl(m+l)=fund_ele_front;fftl(Ns+l-m)=fund_ele_back;fftl=ifft(fftl,Ns);fftl=real(fftl);plot(posl, fftl);hold on;endYk=(l:2:order);figure;bar(k, amp_har);grid on;peak_b=max(fftl)srms_b=*peak_b clcclear all;format long;Ns=1000;order=7;$**********************read the position and flux density************************ fid=fopenC '," r'); %open the original file fidnew = fopenC ',' w'); %write the new file while feof(fid) =0 Atline = fgetl(fid); Stline if "ischar(tline), break, end temp=abs(tline);Nlength=length(tline); isemptyline=0; % ] if Nlength==0 isemptyline=l; end allspace=0; % * isspace=0;for i=l:Nlength T=temp(i);if T==32 isspace=isspace+l; I end if isspace==Nlength allspace=l;break endendfindalpha=0; % for j=l:Nlength T=temp(j);if ((T>=65)&(T>=90))!((T>=97)&(T>=122)) findalpha=l; break;end endif (^f indalpha) & (""al 1 space) & (i sempt5r l ine==O) %fprintf(fidnew, tline);fprintf(fidnew, ' \n');end(endfclose(fid);fclose(fidnew);fidl=fopen(' ',' r');flux_position =fscanf(fidl, ' %f', [2, Ns]);fclose(fidl);$********************************read filefinish***************************************** flux_position=flux_position,;posl=flux__position(:, 1);)pos_delta=posl (2);pos_length=length(posl);pos_last=posl(pos_length);for i=l:l:pos_length %copy and get another part of positionpos2(i)=pos_last+i*pos_delta;endpos^posl* ;fluxl=flux_position(:, 2);flux2=-flux_position(:, 2);pos=[posl, pos2];%combine and get all part of positionfluxl=fluxf ;flux2=flux2,;flux=[fluxl, flux2];%combine and get all part of flux density value figure; plot(posl, fluxl, ' r');%plot origional waveformhold on;grid on;fftl=fft (flux, Ns);j=0;amp_har=zeros(l, (order+l)/2);for m=l:2:orderfftl=fft(flux, Ns);fund_ele_front=fftl(m+1);f und_e1e_bac k=ff11(Xs+l-m);amp_har(j)=(abs(fund_ele.front))/Ns*2;fftl=O*fftl;fftl(m+l)=fund_e1e_front;fftl(Ns+l-m)=fund_ele_back;fftl=ifft(fftl, Ns);fftl=real(fftl);plot (posl, fftl);hold on;end k=(l:2:order);figure;bar(k, amp_har);grid on;%peak_b=max(fftl) %rms_b=*peak_b。
基于maxwell通过傅里叶变换获取谐波幅值的方法
Maxwell电磁场理论是研究电磁场规律的基础,傅里叶变换则是分析信号频谱的重要工具。
本文介绍一种基于Maxwell电磁场理论,通过傅里叶变换获取谐波幅值的方法。
首先,根据Maxwell方程组,可以得到电磁波的传播方程。
在该方程中,电磁场可以分解为基波和谐波的叠加。
基波是频率最低的分量,而谐波则是频率是基波的整数倍的分量。
因此,如果我们想要获取某一频率的谐波幅值,可以先通过Maxwell方程组求解出该频率对应的电磁场分量,然后再进行傅里叶变换。
具体地,假设我们想要获取第n个谐波的幅值,首先需要将Maxwell方程组中的电磁场分解为基波和谐波两部分。
然后,我们可以用复数形式表示电磁场,即E=E0exp(jωt),其中E0表示复振幅,ω是角频率。
在该形式下,电磁场的傅里叶变换为:
F(ω)=2π∫E0exp(-jωt)dt
根据傅里叶变换的性质,我们可以将上式中的E0表示为:
E0=F(-ωn)+F(ωn)
其中,ωn=2πn/T,T是周期。
因此,我们可以通过求解Maxwell 方程组得到频率为ωn的电磁场分量,然后进行傅里叶变换,就可以得到第n个谐波的幅值了。
需要注意的是,Maxwell方程组的求解需要使用数值计算方法,而且由于实际电磁场中存在噪声干扰等因素,所以傅里叶变换的结果也可能存在误差。
因此,在实际应用中需要进行合理的处理和分析。
使用Matlab中的谐波叠加法步骤使用谐波叠加法是一种常用的信号处理技术,能够通过将多个谐波信号叠加以生成更复杂的信号。
在Matlab中,我们可以使用谐波叠加法来模拟和分析各种波形和信号。
在这篇文章中,我们将介绍使用Matlab中的谐波叠加法的基本步骤和一些实例。
通过深入探索这些步骤,您将能够更好地理解谐波叠加法的原理和应用。
1. 确定谐波的频率和振幅在使用谐波叠加法之前,我们需要明确要叠加的谐波的频率和振幅。
这些参数将决定最终生成的复合信号的特性。
可以通过定义一个频率向量和振幅向量来确定谐波的频率和振幅。
2. 生成谐波信号在Matlab中,我们可以使用sin或cos函数来生成谐波信号。
通过设置相应的频率和振幅,可以生成单个谐波信号。
为了生成多个谐波信号,我们可以使用循环语句来逐一生成并叠加这些信号。
3. 叠加谐波信号通过循环生成的多个谐波信号,我们可以使用加法运算符来将它们叠加在一起,生成复合信号。
在Matlab中,可以使用sum函数来实现信号的叠加。
4. 分析复合信号生成了复合信号之后,我们可以使用Matlab提供的各种信号分析工具来对它进行进一步的分析。
例如,我们可以使用快速傅里叶变换(FFT)来将信号转换到频域,以便于观察信号的频谱特性。
此外,我们还可以计算信号的均方根值、峰值、功率等参数。
回顾性的总结:在本文中,我们介绍了使用Matlab中的谐波叠加法来模拟和分析信号的步骤。
首先,我们确定了谐波的频率和振幅,然后生成了多个谐波信号,并将它们叠加在一起生成复合信号。
最后,我们可以使用Matlab提供的信号分析工具对复合信号进行进一步的研究和分析。
从简到繁、由浅入深的方式,本文提供了一个基本的介绍和步骤示例,以帮助读者更好地理解和应用谐波叠加法。
通过本文的学习,读者可以了解如何使用Matlab来模拟和分析各种复杂的信号。
期望读者能够根据这些基础知识在自己的工程和科研领域中灵活应用谐波叠加法。
基于Ansoft Maxwell 的电机气隙径向磁密求取
编写:y1949b
日期:2011-7-10
首发:西莫论坛()
1 前言
使用工具: Ansoft Maxwell 2D V14.0
目的:求取电机气隙径向磁密
例子:pmsg-1.mxwl
例子所在目录:C:\Program Files\Ansoft\Maxwell14.0\Examples\RMxprt\pmsg(默认安装路径的话)
2 正文
使用静磁场求解器,本例求解的为永磁同步电机的空载气隙径向磁密,电机模型如图2-1,为全模型。
图2-1
打开场计算器,如图2-2所示
图2-2
场计算器如图2-3所示,其中序号1、2、3、4、5 为主要的点取顺序,其气隙径向磁密利用的公式2-1为
B=B X×cos(θ)+ B Y×sin(θ) (2-1)式中 B-径向磁密
B X-磁密的x轴分量
By-磁密的y轴分量
θ-柱坐标的θ
图2-3
具体的点取顺序见下图2-4至2-13
图2-4
图2-5
图2-6
图2-6
图2-7
图2-8
图2-9
图2-10
图2-11。
基于Matlab中FFT函数的电力谐波分析方法
李达义;陈乔夫;贾正春
【期刊名称】《电测与仪表》
【年(卷),期】2002(039)007
【摘要】对电力系统谐波电压(或电流)进行了仔细分析,得出基于连续信号傅立叶级数的各次谐波系数的计算公式,并推导了该计算公式与Matlab函数FFT计算出的谐波系数的关系.实例分析证明了基于连续信号傅立叶级数的谐波系数计算公式及其与FFT所计算出系数关系的正确性.
【总页数】4页(P23-26)
【作者】李达义;陈乔夫;贾正春
【作者单位】华中科技大学电气与电子学院,武汉,430074;华中科技大学电气与电子学院,武汉,430074;华中科技大学电气与电子学院,武汉,430074
【正文语种】中文
【中图分类】TM933.4
【相关文献】
1.基于Nuttall自卷积窗四谱线插值FFT的电力谐波分析方法 [J], 刘冬梅;杨重良;张艳;梅恒荣
2.基于MATLAB中FFT函数在电力谐波分析中的应用 [J], 郑俊观;王硕禾
3.基于加窗插值FFT的电力谐波测量理论:(I)窗函数研究 [J], 潘文;钱俞寿
4.基于 Hanning 自相乘窗的电力谐波 FFT 分析方法 [J], 陈坚;汪伟;王少华;杨世海
5.一种新型高精度窗函数的FFT电力谐波分析方法仿真与研究 [J], 莫建平;董亮
因版权原因,仅展示原文概要,查看原文内容请购买。
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('B.dat','r'); %open the original file fidnew = fopen('b1.dat','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('b1.dat','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=0.707*peak_b。