matlab脉动电压,使用matlab的fft分析六脉动整流的谐波

a7f4a3f590493a1e451dd952a488fd7c.gif 使用matlab的fft分析六脉动整流的谐波

(29页)

5daade4e-dca1-4fba-9196-f0d56fbd54c41.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

19.90 积分

matlab 谐波分析总结谐波分析总结一一 基本思路基本思路为直观分析显示整流装置的谐波特性,使用 matlab 的 simulink 搭建整流电路,利用 matlab 的 fft 函数分析其电压与电流波形的谐波特性,并利用 matlab的绘图工具,直观的显示谐波的相关参数。输出详细参数到文件。包括以下想法:1:用 simulink 搭建一个由多个不同幅值及相位的正弦波,输出到 workspace 的simout 参数,主要是为了验证算法的正确性。2:算出 THD%二二 算法及验证算法及验证1::Sine 叠加输出叠加输出 sine.mdl 文件 其中含 4 个 Sine Wave,其参数如下表所示。 SinewaveAmplitudebiasFrequency(rad/sec)Phase(rad)Sample Time120.72*pi*500-120.502*pi*50*5Pi/180*90-13102*pi*50*9pi/180*45-140.302*pi*50*26Pi/180/(-135)-1表达的波形为f(t)=2*sin(2*pi*50*t) +0.5*sin(2*pi*50*5*t+pi/2) +1*sin(2*pi*50*9*t+pi/4) +0.3*sin(2*pi*50*26*t-pi*3/4) 为不同幅值与相位的 50Hz 的基波,5 次、9 次、26 谐波的叠加。含基波、奇次、偶次、高次谐波。在基波上加了 0.7 的偏置,模拟直流分量。 示波器输出到 workspace 的参数名仿真参数 10 个周波,每周波采样点 2048 个使用 1/50/2048 的采样频率,是为了每个周波采 2048 个点,便于准确的 FFT 分析。理论上可以分析 1024 次以内的谐波。 simulink 的 scope 的输出simulink的workspace的输出ScopeData.signals.values共10*2048个点。之所以采10个周波,是为了保证可以避开初始的过渡状态,虽然当前的仿真没有过渡状态,但六脉动整流如果负载有电容的话会有。实际进行FFT分析时,只抽取一个稳定状态周期的2048个点。2:代码:代码程序名分 fenxi_FFT.m%基波频率为50Hz N=2048*4;%每周波采2048个点fp=30;%拟显示的倍频次数,需小于N/2 用于使前面的参数显示清晰wq=5;%稳定周期个数,为保证下行程序数组不出错,workspce的数据周期必须大于wq值kh=0.01;%幅值比例系数,输出到文本时太小的谐波参数不输出 fid=fopen('output.txt','wt');%准备写入文件,文件在当前目录下fprintf(fid,'每周波采样点数=%d\n',N); y =ScopeData.signals.values ; %读取workspce数据,第一个点前面为示波器输出到workspce参数名t=0:0.02/N:0.02/N*(size(y)-1);%每个周期为0.02秒,每周期采N个点,共 size(y)-1个点subplot(2,1,1);plot(t,y);xlabel('时间/s');ylabel('幅值');title('原始信号');grid on; subplot(2,1,2);pn=wq*N;%取数据的基准点,主要目的是等系统稳定plot(t(pn:pn+N-1),y(pn:pn+N-1));%数据周期必须小于wq,将出错xlabel('时间/s');ylabel('幅值');title('抽取信号');grid on; figure(2);subplot(2,1,1);z=fft(y(pn:pn+N-1),N);mag=abs(z)/N*2; %/N*2还原为真实的幅值mag(1)=mag(1)/2;% 直流幅值要再除以2f=0:N/2; %可分析N/2倍频率,N=128点时,可解析64倍频相关参数bar(f(1:fp),mag(1:fp));%频谱 直方图bar 火柴杆stem%bar(f(2:fp),mag(2:fp));%除去直流分量显示%bar(f(3:fp),mag(3:fp));%除去基波分量显示grid on;xlabel('频率/倍');ylabel('幅值');title('FFT分析结果'); fprintf(fid,'直流分量=%8.4g\n',mag(1)); fprintf(fid,'基波峰值=%8.4g\n',mag(2));%求THDuUhf=0;for i=3:(size(mag)-1)/2%去除直流与基波 各次谐波平方加 奈奎斯特频率为采样频率的一半 if((mag(i)/mag(2))>kh) %输出各次谐波电流 fprintf(fid,'%d次谐波峰值 %8.3g \t %2.3g%% \n',i-1,mag(i),mag(i)/mag(2)*100); end Uhf =Uhf+(mag(i))^2;endUhf=sqrt(Uhf);THDu=Uhf*100/mag(2);%比上基波 乘以100% fprintf(fid,'总谐波畸变率THD=%6.3f\n',THDu); subplot(2,1,2);theta=angle(z)/pi*180+90;%不知为何要+90才对 %考虑matlab计算误差,幅值接近0的地方需将相位强制赋0,因为 实部误差小/虚部误差小 求出的角度不为0,但无意义for i=1:size(mag)-1 if((mag(i)/mag(2))

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值