近期遇到了需要加吸收电路的需求,但是查阅网上资料全都是根据经验公式求得,并没有给出吸收完后的效果预测,因此自己动手做个方法。
电路模型
由于变压器漏感和整流二极管电容的存在整流二极管两端电压会产生过冲,如果电路或变压器设计的不好过冲甚至能达到两倍,迫使你不得不选择耐压更高的开关器件,从而增加成本,增大损耗。
以移向全桥的整流电路为例电路结构如下:
整流桥和RC吸收电路如下
D1、D4导通,D2、D3关断瞬间的等效电路如下,lr为变压器漏感,Rd、Cd为二极管寄生电路
在进行吸收电路之前,首先要确定寄生电路的参数:
- 变压器的漏感Lr可以通过测量得到;
- 确定Lr后,根据未加RC吸收电路时的震荡频率确定Cd
C d = 1 / L r / ( 2 ∗ p i ∗ f ) 2 . Cd =1/Lr/(2*pi*f)^2. Cd=1/Lr/(2∗pi∗f)2.
- 确定Cd后可以通过simulink仿真调整Rd的大小保证震荡衰减速度和实际电路一致;
MATLAB代码如下
clc
clear
%实际电路参数
L=20e-6;
R=50;
C=0.2e-9;
%吸收电路参数
R1=200;
C1=1e-9;
%LC传递函数
num=[ 1];
den=[L*C 0 1 ];
G1=tf(num,den)
%吸收电路
num2=[ R1*C1 1];
den2=[C1 0 ];
G2=tf(num2,den2)
%寄生电路
num3=[ R*C 1];
den3=[C 0];
G3=tf(num3,den3)
%吸收电路并联寄生电路
num4=[L 0];
den4=[1];
G4=tf(num4,den4)
G51=G2*G3/(G2+G3);
G5=G51/(G4+G51)
G6=G3/(G4+G3)
bode(G6)
hold on
bode(G5)
figure(2)
t=0:1e-8:3.5e-6;%仿真时间0~3.5us
y=step(G5,t);
y1=step(G6,t);
plot(t,y);
hold on
plot(t,y1);
运行结果:
下图两种震荡分别为加吸收电路前后的两种波形,添加吸收电路后震荡周期和幅度明显减小。
全局搜索吸收电路参数
按照上面的思路我们可以同时仿真多组吸收电路参数,并且从中挑选出吸收效果最好并且损耗可以接受的那一组来
clc;
clear;
%实际电路参数
L=20e-6;
R=50;
C=0.2e-9;
%LC传递函数
num=[ 1];
den=[L*C 0 1 ];
G1=tf(num,den)
%寄生电路
num3=[ R*C 1];
den3=[C 0];
G3=tf(num3,den3)
%漏感传递函数
num4=[L 0];
den4=[1];
G4=tf(num4,den4)
%无吸收电路传递函数
G6=G3/(G4+G3);
%设定RC搜索范围
%搜索范围
nR=50;%电阻组数
nC=50;%电容组数
stepR=50;%电阻变化步长
stepC=10e-10;%电容变化步长
stept=1e-8;%时间步长
nt=50;%时间组数
R1=stepR:stepR:stepR*nR;
C1=stepC:stepC:stepC*nC;
t=0:stept:stept*nt;
%建立数组保存所有尖峰和时间
[m1,n1]=size(R1);
[m2,n2]=size(C1);
R1C1=zeros([n1*n2,4]);
%设置最大尖峰
os=1.15;
for i=1:nR
for j=1:nC
num2=[ R1(i)*C1(j) 1];
den2=[C1(j) 0 ];
G2=tf(num2,den2);
G51=G2*G3/(G2+G3);
G5=G51/(G4+G51);
y=step(G5,t);
for k=2:nt
if y(k)<y(k-1)
R1C1((i-1)*nC+j , :)=[R1(i) C1(j) t(k-1) y(k-1)];
break
end
end
if ( R1C1( (i-1)*nC+j , 4)<os ) && ( R1C1( (i-1)*nC+j , 4)>0.2 )
plot(t,y);
hold on
end
end
end
%显示符合要求的RC组合
l=1;
R1C1e=zeros([10,4]);
for i=1:nR*nC
if (R1C1(i , 4)<os)&&(R1C1(i , 4)>0.2)
plot(R1C1(i , 3),R1C1(i , 4),'*')
hold on
R1C1e(l,:)=R1C1(i,:);
l=l+1;
end
end
format shortE
R1C1e %[吸收电阻 吸收电容 峰值出现时间 峰值大小]
size(R1C1e)
运行结果
局部放大
R1C1e =
2.0000e+02 4.0000e-09 3.6000e-07 1.1278e+00
2.0000e+02 5.0000e-09 3.6000e-07 1.1082e+00
2.0000e+02 6.0000e-09 3.6000e-07 1.0946e+00
2.0000e+02 7.0000e-09 3.6000e-07 1.0847e+00
2.0000e+02 8.0000e-09 3.6000e-07 1.0771e+00
2.0000e+02 9.0000e-09 3.6000e-07 1.0711e+00
2.0000e+02 1.0000e-08 3.6000e-07 1.0662e+00
。。。。。。。文章来源:https://www.toymoban.com/news/detail-474906.html
我们可以从若干组数据中选出一个你最想要的参数然后在用MATLAB搭建实际电路模型,把吸收电路参数带进去就可以仿真出电阻的损耗和电容电压电流等参数(往往吸收效果越好电阻损耗越大)。文章来源地址https://www.toymoban.com/news/detail-474906.html
到了这里,关于【开关电源RC吸收电路matlab simulink仿真】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!