电路图:
首先很重要的一点,我们要知道,每个桥臂都会导电180,同一相上下两个桥臂交替导通,而各相相位互差120。也就是在任意时刻都会有三个桥臂同时导通,另外三个截止。需要注意的是,实际中,我们必须严格控制同一相的上下两个桥臂不同同时导通,否则会使直流侧电源短路,这并不允许,一般我们会采取先断后通,这样上下两个IGBT的导通与关断之间会有一个死区时间。
仿真结果:
下面用Matlab对以线电压u(UV)为例进行傅里叶分解:
新建一个脚本,创建一个function:
部分函数已经做了清楚的使用说明,你可以虽然不是很全面但是你可以很快的了解如何去运用它们
function [a0,an,bn]=fly(f,k)%f为一个周期内的分段函数(分两段,对分两段以上的函数可类似处理)
%k为近似展开项数,k≥1
%输入:syms U;f=sym([-1 1]); [a0,an,bn]=fly(f,32)
%计算傅里叶系数,L = pi;
syms n x L
a0 = 1/2/L*int(f(1),x,-5*L/6,-L/6)+1/2/L*int(f(2),x,L/6,5*L/6);
an = 1/L*int(f(1)*cos(n*x),x,-5*L/6,-L/6)+1/L*int(f(2)*cos(n*x),x,L/6,5*L/6);
bn = 1/L*int(f(1)*sin(n*x),x,-5*L/6,-L/6)+1/L*int(f(2)*sin(n*x),x,L/6,5*L/6);
%选择作图步长p
if k>=4
p=fix(k/4);%fix:让x向0靠近取整
else
p=1;
end
%绘制4个近似子图
for i=1:4
%symsum(fun,var,a,b):其中fun是通项表达式,var为求和变量,a为求和起点,b为求和终点
% 例如:I为1/[n*(2n+1)]从1到正无穷的和,求I
% syms n;
% f1=1/(n*(2*n+1));
% I=symsum(f1,n,1,inf)
% 计算结果为:I =2-2*log(2)
f=a0+symsum(an*cos(n*x)+bn*sin(n*x),n,1,i*p);
%subs(S,OLD,NEW) 表示将符号表达式S中的符号变量OLD替换为新的值NEW。
f=subs(f,L,pi);
%subplot就是将Figure中的图像划分为几块,每块当中显示各自的图像,有利于进行比较。
%subplot的格式为(行数,列数,第几个区域的位置)
subplot(2,2,i);
%ezplot是画出隐函数图形,是形如f(x,y)=0这种不能写出像y=f(x)这种函数的图形
%ezplot(<隐函数表达式>,[x最小值,x最大值,y最小值,y最大值])
ezplot(f,[-2*pi,2*pi]);
title(['n=',int2str(i*p)]);
end
命令窗口输入:假设Ud = U
format compact
>> syms U;f=sym([-U U]); [a0,an,bn]=fly(f,32)
a0 =
0
an =
0
bn =
(2*U*(cos((L*n)/6) - cos((5*L*n)/6)))/(L*n)
可见只有(6k+_1)次谐波分量,L = pi,n = 1,2,3…代入bn,就可求出uUV得到式子(4-8).
我在假设Ud = 1,命令窗口输入:
f=sym([-1 1]); [a0,an,bn]=fly(f,32)
分别绘制出了n = 8/16/24/32次近似傅里叶图形:
是的,随着n的增大会无限接近与平直的矩形