Buck变换器的原理与仿真

电路介绍

直流变换器是在直流电源与负载之间接一个由电力半导体器件构成的直流开关,用它控制主电路的接通与断开,以将恒定的直流“斩”成断续(离散)的方波,然后经滤波变为电压可调的直流电供给负载。

压斩波电路(buck)又称直流降压器,它可以将直流电压降低。其电路原理图如下所示。

电路计算分析

当负载电流连续时,且Buck变换器处于脉冲宽度调制的状态下,设开关管导通时间为 ton,关断时间为 toff,开关周期为 T,α为导通占比,Gain 为电压增益,输入电压为 E,负载电压为 U0,负载电流为 I0。可得以下几个公式。

\begin{aligned} &U_0=\frac{t_{on}}{t_{on}+t_{off}}E \\ &T=t_{on}+t_{off} \\ &\alpha=\frac{t_{on}}T \\ &I_{0}=\frac{U_{0}-E_{m}}{R} \end{aligned}

在Simulink中搭建Buck变换器电路

  1. 放置必需的元器件,包括RLC,直流电源,脉冲发生器,MOSFET等。
  2. 设置脉冲发生器的周期为1/e5,占空比为75。因为根据计算公式${​{U}_{0}}=\frac{​{​{t}_{on}}}{​{​{t}_{on}}+{​{t}_{off}}}E$以及$\alpha =\frac{​{​{t}_{on}}}{T}$带入计算可得到占空比。
  3. 设置R,L,C 参数,设置直流电源参数为400V。添加必要的测量装置,并设置仿真最大步长为1e-7。

固定占空比的仿真结果

占空比为75时

电流电压波形如下图

电流波形

电压波形

稳态部分放大后为下图

理论计算验证

电感电流纹波

在计算电感电流纹波时,近似认为输出电压 Vout 不变,即 Vout=αVin。 在电路达到稳态后,取某个时刻,使得MOSFET在t=0时刻导通,则MOSFET在 t=0~ton 时导通,在t=ton~T时关断。于t=0~ton 时刻,对电感L,可以列出下面公式:

\begin{aligned}u_L&=L\frac{di_L}{dt}=V_{in}-V_{out}=(1-\alpha)V_{in}\\di_L&=\frac{(1-\alpha)V_{in}}Ldt\end{aligned}

对等式两侧从t=0到t=ton上积分:

$\begin{matrix} \text{ }\!\!\Delta\!\!\text{ }{​{i}_{L}}=\frac{(1-\alpha ){​{V}_{in}}}{L}{​{t}_{on}}=\frac{\alpha (1-\alpha ){​{V}_{in}}T}{L}=\frac{\alpha (1-\alpha ){​{V}_{in}}}{L{​{f}_{s}}} \\ \end{matrix}$

即可得到电感电流纹波峰峰值。这里使用的参数是Vin=100V, Vo=80V, RL=20omg, fs=100kHz, L=2mH, C=30uF。入参数计算可得

\Delta u_c=\frac{0.75\times(1-0.75)\times400}{8\times1\times10^{-3}\times50\times10^{-6}\times1\times10^{10}}=0.01875\quad V

仿真得到的值为0.74815,可计算出误差仅为0.24%。

电容电压纹波

在计算电容电压纹波的公式如下:

$\text{ }\!\!\Delta\!\!\text{ }{​{u}_{c}}=\frac{1}{C}\int _{0}^{\frac{T}{2}}{​{i}_{C}}dt=\frac{S}{C}=\frac{\text{ }\!\!\Delta\!\!\text{ }{​{i}_{C}}}{8C{​{f}_{s}}}=\frac{\alpha (1-\alpha ){​{V}_{in}}}{8LCf_{s}^{2}}$

带入数值计算得到:

\Delta u_c=\frac{0.75\times(1-0.75)\times400}{8\times1\times10^{-3}\times50\times10^{-6}\times1\times10^{10}}=0.01875\quad V

仿真得到的值为0.01870,可计算出误差仅为0.26%。

改变占空比的仿真

代码编写

要求占空比从0变化到80。

clear;clc
%% 循环遍历
open_system('Ti_Mu_1');
load_system('Ti_Mu_1');
a_series =1:80;%设置好要修改的序列
model='Ti_Mu_1';
a=1;%参数初始化
in=repmat(Simulink.SimulationInput,[1 length(a_series)]); %自动并行运行
for i = 1:1:length(a_series)
in(i) = Simulink.SimulationInput(model); %模型名称
in(i) = in(i).setVariable('a',a_series(i)); %运行变量名称
end
out = parsim(in, 'ShowProgress', 'on','ShowSimulationManager','on','TransferBaseWorkspaceVariables','on');

%% 计算
results=zeros(80,3);

for k=1:80
results(k,1)=max(out(1, k).ScopeData{2}.Values.Data(end-1000:end))-min(out(1, k).ScopeData{2}.Values.Data(end-1000:end));
results(k,2)=max(out(1, k).ScopeData{3}.Values.Data(end-1000:end))-min(out(1, k).ScopeData{3}.Values.Data(end-1000:end));
results(k,3)=out(1, k).average.Data(end);
end
save Ti_Mu_1_Shu_Jv.mat results

 这里使用了并行仿真工具箱,目的是为了加快仿真的进行。

仿真结果

可以根据结果绘制出电感电流纹波和占空比的关系和电容电压纹波和占空比的关系的图。

电感电流纹波和占空比的关系

电容电压纹波和占空比的关系

电压增益和占空比的关系

理论分析

电流纹波

有公式$\text{ }\!\!\Delta\!\!\text{ }{​{i}_{L}}=\frac{(1-\alpha ){​{V}_{in}}}{L}{​{t}_{on}}=\frac{\alpha (1-\alpha ){​{V}_{in}}T}{L}=\frac{\alpha (1-\alpha ){​{V}_{in}}}{L{​{f}_{s}}}$

可见\Delta i_{L}与α呈二次函数关系,在α = 50%时, \Delta i_{L}取得最大值。

跟仿真曲线相吻合。

电压纹波

有公式$\text{ }\!\!\Delta\!\!\text{ }{​{u}_{c}}=\frac{1}{C}\int _{0}^{\frac{T}{2}}{​{i}_{C}}dt=\frac{S}{C}=\frac{\text{ }\!\!\Delta\!\!\text{ }{​{i}_{C}}}{8C{​{f}_{s}}}=\frac{\alpha (1-\alpha ){​{V}_{in}}}{8LC{​{f}_{s}}^{2}}$

可见\Delta u_{C}与α呈二次函数关系,在α = 50%时, \Delta u_{C}取得最大值。

跟仿真曲线相吻合。

电压增益

有公式$\frac{​{​{V}_{o}}}{​{​{V}_{in}}}=\alpha $

显然为简单的线性关系,与仿真曲线相吻合。

  • 23
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据提供的引用内容,我们可以了解到降压(Buck)变换电路是一种输出直流电压小于等于输入直流电压的单管非隔离直流变换电路。同时,我们还可以了解到设计一个降压变换电路需要考虑多个技术指标,例如输入电压、输出电压、纹波电压、负载电阻和工作频率等。因此,我们可以使用MATLAB来设计一个Buck变换器。 以下是Buck变换器MATLAB代码: ```matlab % Buck变换器设计 Vin = 200; % 输入电压 Vout = 50; % 输出电压 fsw = 20e3; % 开关频率 L = (Vin - Vout)/(2*fsw*0.2*Vout); % 计算电感值 C = 1/(2*pi*fsw*20); % 计算电容值 R = 20; % 负载电阻 % Buck变换器输出电压纹波计算 delta_IL = (Vin - Vout)/(2*L*fsw*Vout); % 计算电感电流纹波 delta_VC = (1 - (Vin/Vout))/(2*R*C*fsw); % 计算电容电压纹波 delta_Vout = sqrt(delta_IL^2 + delta_VC^2)*Vout; % 计算输出电压纹波 % Buck变换器效率计算 D = Vout/Vin; % 计算占空比 eta = D*(1 - D)*(1 - delta_IL)*100; % 计算效率 % 输出结果 fprintf('电感值L = %.4f H\n', L); fprintf('电容值C = %.4f F\n', C); fprintf('输出电压纹波delta_Vout = %.4f V\n', delta_Vout); fprintf('Buck变换器效率eta = %.2f%%\n', eta); ``` 在上述代码中,我们首先定义了输入电压、输出电压和开关频率等参数。然后,我们使用这些参数计算电感值、电容值和负载电阻等参数。接着,我们计算了Buck变换器的输出电压纹波和效率,并将结果输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值