许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  开关电源RC吸收电路Matlab/Simulink仿真

开关电源RC吸收电路Matlab/Simulink仿真

阅读数 7
点赞 0
article_banner


开关电源RC吸收电路matlab simulink仿真

  • 电路模型 全局搜索吸收电路参数


近期遇到了需要加吸收电路的需求,但是查阅网上资料全都是根据经验公式求得,并没有给出吸收完后的效果预测,因此自己动手做个方法。

电路 模型  

由于 变压器  漏感和整流二极管电容的存在整流二极管两端电压会产生过冲,如果电路或变压器设计的不好过冲甚至能达到两倍,迫使你不得不选择耐压更高的开关器件,从而增加成本,增大损耗。

以移向全桥的整流电路为例电路结构如下:

整流桥和RC吸收电路如下
整流桥和RC吸收电路

   D1、D4导通,D2、D3关断瞬间的等效电路如下,lr为变压器漏感,Rd、 Cd  为二极管寄生电路
在这里插入图片描述

在进行吸收电路之前,首先要确定寄生电路的参数:

  1. 变压器的漏感Lr可以通过测量得到;
  2. 确定Lr后,根据未加RC吸收电路时的震荡频率确定Cd

Cd=1/Lr/(2∗pi∗f)2. Cd =1/Lr/(2*pi*f)^2. Cd=1/Lr/(2∗pi∗f)2.

  1. 确定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

   。。。。。。。

我们可以从若干组数据中选出一个你最想要的参数然后在用 MATLAB  搭建实际电路模型,把吸收电路参数带进去就可以仿真出电阻的损耗和电容电压电流等参数(往往吸收效果越好电阻损耗越大)。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空