CCM单电压环BUCK开关变换器传递函数理论分析与simulink估算对比

上周在https://ww2.mathworks.cn/help/ident/ug/estimating-transfer-function-models-for-a-boost-converter.html看到了一篇关于BOOST开关变换器传递函数估算的文章,觉得有一定实用性,于是对文章进行的翻译收藏,方便以后查阅:估算升压变换器的传递函数模型(通过Matlab&simulink)

本文要解决的问题是估算出来的传递函数是否正确,还是以最成熟最简单的CCM单电压环BUCK开关变换器作为实例进行一个对比。

理论分析

针对这一开关变换器传递函数的理论分析,我主要参考了《精通开关电源设计(第2版)》第12章节的内容,以下图为原型,对变换器的不同功能模块间传递函数进行理论分析,进而得到整个系统的传递函数:
在这里插入图片描述
这里,我们先忽略误差放大器补偿部分,而着重看开关变化器固有部分的传函。对放大器部分有兴趣可以跳至《开关电源中3型误差放大器参数设计及仿真(针对电压控制性CCMBUCK构架基于Pspice)》这篇文章对三型补偿网络的计算进行了介绍。

  1. 分压器:
    在环路的分析中,我们主要对交流量(扰动量,变化量)进行分析,而分压器只对直流偏置有影响,因此不考虑分压器比例的影响,对于使用电压型误差放大器的系统,分压器的上臂电阻的阻抗对环路有影响;

  2. 脉宽调制比较器
    参考下图:
    Gpwm = 1/Vramp在这里插入图片描述

  3. 功率部分
    由CCM BUCK 输入到输出的传函为:
    D = Vout / Vin
    可得:
    dD /dVout = dVin
    因此,G功率 = dVout/dD = 1/Vin(Vin为常数)

  4. LC滤波器:
    参考《开关电源闭环控制为啥需要补偿网络–3型运算放大器介绍》
    G l c = 1 L C S 2 + S L R L + 1 Glc = \frac{1}{LCS^2+S\frac{L}{RL}+1} Glc=LCS2+SRLL+11
    这里暂时不考虑输出电容ESR的影响。

把以上四部分结合到一起可以得到系统的的开环传递函数:
G ( s ) = V i n V r a m p ∗ 1 L C S 2 + S L R L + 1 G(s) = \frac{Vin}{Vramp}* \frac{1}{LCS^2+S\frac{L}{RL}+1} G(s)=VrampVinLCS2+SRLL+11
这里假设L为68uH,C为136uF,RL为5R,Vramp为1V,计算得:
G ( s ) = 12 ∗ 1 9248 ∗ 1 0 − 12 S 2 + 13.6 ∗ 1 0 − 6 S + 1 G(s) = 12* \frac{1}{9248*10^{-12}S^2+13.6*10^{-6}S+1} G(s)=1292481012S2+13.6106S+11
整理得:
G ( s ) = 1.3 ∗ 1 0 − 9 S 2 + 1470 S + 1.08 ∗ 1 0 − 8 G(s) = \frac{1.3*10^{-9}}{S^2+1470S+1.08*10^{-8}} G(s)=S2+1470S+1.081081.3109

Simulink模型估算

绘制如下simulink模型,命名为‘buck1’,在matlab界面运行如下脚本:

clear all;
clc

model = 'buck1';% 找到simulink仿真文件名
open_system(model);% 打开仿真文件

ios = [...
    linio([model,'/Duty'],1,'input'); ...
    linio([model,'/PS-Simulink Converter1'],1,'output')];
    % 找到添加输入点和输出点

f = logspace(log10(10),log10(10000),10);% 确定扫频范围
in = frest.Sinestream('Frequency',f,'Amplitude',0.03, 'FreqUnits','Hz');
% 确定扫频值、扰动幅度、频率的单位

getSimulationTime(in)/0.02% 获取仿真需要的时间
[sysData,simlog] = frestimate(model,ios,in);% 开始频率响应仿真分析

bopt = bodeoptions;
bopt.Grid = 'on';% 打开栅格
bopt.PhaseMatching = 'on';% 打开相位匹配
bopt.FreqUnits     = 'Hz';% 频率单位为Hz
% 以下为传递函数数算
Gp_s = tfest(sysData,2, 0) %这里假定有2个极点0个零点
figure, bode(sysData,'r*',Gp_s,bopt)% 绘制拟合的传递函数伯德图

运行结果如下:

ans =

   37.3070


Gp_s =
 
  From input "Duty" to output "PS-Simulink Converter1":
         1.306e09
  -----------------------
  s^2 + 2666 s + 1.085e08
 
Continuous-time identified transfer function.

Parameterization:
   Number of poles: 2   Number of zeros: 0
   Number of free coefficients: 3
   Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                                    
Estimated using TFEST on frequency response data "sysData".
Fit to estimation data: 90.85%                             
FPE: 1.038, MSE: 0.7669 

得到如下波特图:
在这里插入图片描述
与理论分析对比由些许差异,主要是由于simulink中我使用了物理模型,存在一些寄生参数,比如二极管的导通压降,导通阻抗等,而理论分析是纯理想状态下的分析。
我们把理论分析的传递函数的波特图一起画上去看看。
在这里插入图片描述
从上图可以看出,理论分析的传函和估算的传函还是十分接近的, simulink对传函的估算还是具有详单的参考价值。

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值