采用notebook进行反激式开关电源的设计,代码如下
%设计开始
%输入交流最小值(V)
Uacmin = 85;
fprintf('输入交流最小值:%dV\n',Uacmin)
%输入交流最大值(V)
Uacmax = 265;
fprintf('输入交流最大值:%dV\n',Uacmax)
%线电压频率(HZ)
Fline = 50;
fprintf('输入线电压频率:%dHZ\n',Fline)
%输出电压(V)
Uo = [5 15];
%输出整流管正向导通压降(V)
Uf = [0.4];
%输出电流(A)
Io = [0.8 0.5];
for i = 1:length(Uo);
fprintf('输出电压%d为%2.1fV,输出电流为%3.2fA\n',i,Uo(i),Io(i))
end
%输出功率(w)
Po = (Uo+Uf)*Io';
fprintf('输出功率:%3.1fW\n',Po)
%效率
eta = 0.8;
fprintf('效率:%d%%\n',round(eta*100))
%整流桥导通时间(s)
Tc = 32e-4;
%整流滤波电容(uF) ///////////////////////////////////////
Cin = 33;
fprintf('滤波电容:%duF\n',Cin)
%输入最小直流电压(V)
Udcmin = sqrt(2*(Uacmin^2)-(2*Po*(1/(2*Fline) - Tc))/(eta*Cin*10^(-6)));
fprintf('输入直流最小值:%dV\n',round(Udcmin))
%输入最大直流电压(V)
Udcmax = sqrt(2)*Uacmax;
fprintf('输入直流最大值:%dV\n',round(Udcmax))
%最大占空比
Dmax = 0.45;
fprintf('设定最大占空比:%d%%\n',round(Dmax*100))
%开关管饱和导通压降(V)
Uds = 10;
%反激电压(V)
Uor = (Udcmin - Uds)*Dmax/(1-Dmax);
fprintf('反激电压:%4.1fV\n',Uor);
%开关管最小耐压(V)
Umos_min= Udcmax+1.4*1.5*Uor+20;
fprintf('开关管最小耐压:%5.2fV\n',Umos_min)
%设定工作模式(CCM/DCM)
Krp = 1;
if(Krp >= 1)
fprintf('工作模式为DCM\n');
else
fprintf('工作模式为CCM\n');
end
%开关频率(KHZ)
f = 60;
%选定磁芯EI22(mm^2)
Ae = 42;
%初级绕组平均电流(A)
Iavg = Po/(eta*Udcmin);
fprintf('初级绕组平均电流:%5.3fA\n',Iavg)
%初级绕组峰值电流(A)
Ipkp= Iavg*(2/((2-Krp)*Dmax));
fprintf('初级绕组峰值电流:%5.3fA\n',Ipkp)
%确定开关管的最大电流(A)
Imos_pk = 1.5*Ipkp;
fprintf('开关管能承受的最小电流:%5.3fA\n',Imos_pk)
%初级绕组有效值电流(A)
Irmsp = Ipkp*sqrt(Dmax*((Krp^2)/3-Krp+1));
fprintf('初级绕组有效值电流:%5.3fA\n',Irmsp)
%确定初级电感量Lp(mH)
Lp = Udcmin*Dmax/(f*Ipkp*Krp);
fprintf('初级绕组电感量:%3.2fmH\n',Lp);
%最大磁通密度(T) (0.2~0.3)
Bm = 0.22;
%原边匝数(Turn)
Np = 1000*Lp*Ipkp/(Ae*Bm);
fprintf('原边匝数:%d匝\n',round(Np));
Ns = Np*(Uo+Uf)/Uor;
for i = 1:length(Uo)
fprintf('第%d路输出副边绕组匝数:%d匝\n',i,round(Ns(i)));
end
%偏置电压(V) (与具体芯片有关)
Ub = 15;
%偏置绕组输出整流二极管正向导通压降(V)
Ud = 0.7;
%偏置绕组匝数(Turn)
Nb = Np*(Ub+Ud)/Uor;
fprintf('偏置绕组匝数:%d匝\n',round(Nb));
%开气隙前Al (nH/Turn^2) (与磁芯型号有关)
Al = 2400;
fprintf('开气隙前电感系数:%3.2fnH/Turn^2\n',Al);
Alg = 10^6*Lp/(Np^2);
fprintf('开气隙后电感系数:%3.2fnH/Turn^2\n',Alg);
%气隙长度Lg(mm)
Lg = 0.4*pi*Ae*(1/Alg-1/Al);
fprintf('气隙长度:%3.2fmm\n',Lg);
%集肤效应穿透深度(mm)
d = 66.1/sqrt(f*10^3);
fprintf('集肤效应穿透深度:%3.2fmm\n',d );
%电流密度(A/mm^2)
J = 5;
%原边导线线径(mm)
for i = 1:6;%最多6股并绕
Dp = 1.13*sqrt(Irmsp/(i*J));
if Dp <= 2*d
break;
end
end
if i > 1
fprintf('原边导线线径:%3.2fmm,%d股并绕\n',Dp,i);
else
fprintf('原边导线线径:%3.2fmm,单股\n',Dp);
end
%副边电流峰值(A)
Ipks = Ipkp*((Uo+Uf).*Io/Po)*Np./Ns;
for i = 1:length(Uo)
fprintf('第%d路输出副边电流峰值:%3.2fA\n',i,Ipks(i));
end
%副边电流有效值(A)
Irmss = Ipks*sqrt((1-Dmax)*((Krp^2)/3-Krp+1));
for i = 1:length(Uo)
fprintf('第%d路输出副边电流有效值:%3.2fA\n',i,Irmss(i));
end
for i = 1:length(Uo)
for j = 1:6%最多6股并绕
Ds(i) = 1.13*sqrt(Irmss(i)/(j*J));
if Ds(i) <= 2*d
if j > 1
fprintf('第%d路输出副边导线线径:%3.2fmm,%d股并绕\n',i,Ds(i),j);
else
fprintf('第%d路输出副边导线线径:%3.2fmm,单股\n',i,Ds(i));
end
break;
end
end
end
%输出滤波电容上的纹波电流(A)
Irs = sqrt(Irmss.^2-Io.^2);
for i = 1:length(Uo)
fprintf('第%d路输出滤波电容纹波电流:%3.2fA\n',i,Irs(i));
end
%输出整流管最低耐压(V)
Ubrs = 1.25*(Uo + Udcmax*Ns/Np);%取1.25倍余量
for i = 1:length(Uo)
fprintf('第%d路输出整流管最低耐压:%3.2fV\n',i,Ubrs(i));
end
%偏置绕组整流管最低耐压(V)
Ubrb = 1.25*(Ub + Udcmax*Nb/Np);%取1.25倍余量
fprintf('偏置绕组整流管最低耐压:%3.2fV\n',Ubrb);
%输入整流桥最低耐压(V)
Ubr = 1.25*Uacmax;%取1.25倍余量
fprintf('输入整流桥最低耐压:%3.2fV\n',Ubr);
%开关电源功率因数cosPhi
cosPhi = 0.6;
fprintf('开关电源功率因数设为:%3.2f\n',cosPhi );
%输入整流桥最小有效值电流(A)
Ibr = 2*Po/(eta*Uacmin*cosPhi);%取2倍余量
fprintf('输入整流桥最小额定电流:%3.2fA\n',Ibr);
%设计结束