half_Vd=150ma=0.8mf=39ref_f=47
fs=8000N=16384n=0:N-1t=n/fs
ref_signal=10*ma*sin(2*pi*ref_f*t)
carrier_signal=10*sawtooth(2*pi*ref_f*mf*t,0.5)
spwm=half_Vd*sign(carrier_signal-ref_signal)
感觉应该是对的,但进行fft分析的时候又跟理论值不符,不知为何
y=fft(spwm,N)
mag=abs(y)
f=(0:N-1)*fs/N
plot(f(1:N/2),mag(1:N/2)*2/N)
grid
如何利用matlab/simulink计算PWM波占空比pi
function get_spwm()
global g_N32768 %正弦波幅值0~1
format long
g_K=2*g_N/
for tmp=1
global g_spwm..我有这个
g_spwm(2*tmp)=spwm_close_point(tmp):g_N*2 %
g_M=16384/..:g_N
g_spwm(2*tmp-1)=spwm_open_point(tmp)
end
g_spwm
.
clear
global g_M
global g_N
global g_K
global g_spwm
g_N=32 %半周期三角波个数
g_spwm=1..
这个还是比较容易的吧。三角波模块在matlab/simulink里可以直接找到的啊。你直接设置三角载波的频率不就可以了。要想反向的话就直接移相180度吧。
给你一个产生两电平的matlab截图,其中三路正弦调制波是自己搭建的。三角载波用的就是现成的模块。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)