0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Buck变换器Matlab闭环仿真

CHANBAEK 来源:高方寒 作者:我在网吧 2023-09-28 16:44 次阅读

分为三大主要内容:

一、拓扑参数计算

二、开环和单、双闭环M文件配置及仿真

三、Tunner工具仿真双闭环

1.1 Buck拓扑关键参数计算

图片

1.2 闭环仿真验证Buck参数指标

图片

输出电压纹波在1.6V以内,设置输出电容合理

图片

电感纹波接近8A,设置输出电感合理

图片

2.1 开环模型

图片

仿真结果:较大的过冲,可以使用M文件运行看搭建开环模型是否接近合理。

图片

L=0.0004;
r=0;
C=0.000047;
R=4;
VIN=320;
Vout=80;
Ts=1/20000;
D=0.25;
s=tf('s');%传递函数变量
%主函数对应的开环传递函数
Hs=1/(L*C*s^2+L/R*s+r*(C*s+1/R)+1);
% bode(Hs);
% hold on
step(Hs*80,0.05)  %观察主电路开环阶跃响应;Hs*80等于此电路输出电压,运行0.05s

图片

主电路开环阶跃响应如上所示,说明开环模型输入数值正确,开环模型搭建完成,仿真器步长选择合理(目前选择的寄生参数,影响较小),进入下一步操作;

2.2 PI控制器补偿仿真

M文件代码如下

%% PI控制器
Voltage_ki=35;    %引入PI控制器,无法抑制波特图震荡凸起的尖峰(闭环传递),尖峰依旧存在,反映仿真时,输出过冲严重;穿越频率不是-20db,相位裕度也较小。
Voltage_kp=10;       %只引入积分控制,输出电压波动无法抑制,积分器滤波输出电压波动,无法反馈
G_voltage_pi=Voltage_ki/s+Voltage_kp;    %kp增大观察波形,输出震荡严重,最后选用0.2
G_voltage_open=G_voltage_pi*Hs;
% bode(G_voltage_open);
% hold on
% bode(G_voltage_open/(1+G_voltage_open));

试揍调节PI参数,当P等于35,I等于10时,观察波特图如下所示,系统整体开环传递函数G_voltage_open 带宽接近4K,相位裕度接近10°左右,系统很不稳定,运行此参数的输出电压仿真波形如下:

图片

运行此参数的输出电压仿真波形如下:虽然输出电压响应速度很快,由于带宽较大,相位裕度很差,穿越频率呈现-2斜率(这里的PI控制器只能缓冲PI初始极点的影响,主功率LC双重极点还是没法补偿)

图片

继续调节PI参数,当P等于35,I等于1时,可以看到,输出电压速度200m左右才达到稳定,这里还没有做动态,不言而喻,做动态肯定差;

图片

一开始的地方出现震荡,主要还是闭环传递函数波特图在穿越频率处尖峰的影响,波特图如下所示,如右边第二个橙色波形。当P等于35,I等于0.3时,带宽明显较低,如标识的角频率和相位裕度。再次对此参数代入PI控制器,输出电压波形如下所示:可以看到,输出开启尖峰明显减小。也可以改变I参数试试效果

图片

图片

上节说到的PI控制器补偿,其实用于Buck电路中,是微乎其微的,这里只是做一个简单的PI控制讲述,数字PI参数对波形的影响效果;接着上一节,讲述PID控制器补偿

2.3单电压环 PID控制器补偿仿真

模型如下所示

图片

M文件调试代码如下

%% 使用PID控制器调节  没有考虑到输出电容的ESR情况下,属于二型补偿网络,下面的PID形式只有两个零点
k=140;   %先定k值,k值影响穿越频率,穿越频率设置在开关频率的1/10处,再调节T1,T2;
T1=1/100;    
T2=1/10000;  %T1,T2的值,可以先观察主电路的振荡凸起的波形的频率位置,再选择放置T2;T2放置在凸起频率右侧,穿越频率-20db穿越,波特图可以对比
G_voltage_kp=k*T1*(1+T2/T1);
G_voltage_ki=k*T1/T1;
G_voltage_kd=k*T1*T2;         %根据T1,T2,k值配置后,计算出PID参数,代入模型中
G_voltage_pid=k*(1+T1*s)*(T2*s+1)/s;   %只有两个零点,一个积分器
bode(G_voltage_pid*Hs);
hold on
bode(G_voltage_pid);
hold on
% bode(G_voltage_pid*Hs/1+G_voltage_pid*Hs);

这里的穿越调试在2K左右,如下波特图所示,由于这边的PID只有两个零点,一个零点缓冲了初始极点的影响,另一个零点补在了主功率双极点的右侧,抵消了一个极点的影响,剩下-1斜率穿越;(零极点配置法,如果要考虑输出电容ESR的影响,PID需要加上极点),如我配置的另一个案例,可以多加一两个极点,当然,高频极点越多越好;配置完后,可以按照上例,M文件自动导出封装好的PID参数(变量最好放在变量工作区,方便浏览),再代入数字PID控制器;需要提到一点,如果考虑输出电容ESR的影响,主功率原始系统开环传递函数需要在分子上加一个零点;再作为级联传递函数的一部分,再进行波特图补偿。

T1=1/1884;   %放置一个零点在双重极点的角频率位置的1/2处,缓冲PI控制器极点对系统的不利影响
T2=1/3768;  %T2零点放置在LC双重极点的0.8~1之间,穿越频率-20db穿越,波特图可以对比
T3=1/(2*pi*fc);
G_voltage_pid=k*(1+T1*s)*(T2*s+1)/(s*(1+T3*s));

实际补偿中,只使用一个零点和极点的控制器,最多只能实现在穿越频率处相位裕度拉高90°(零点和极点位置距离很远才能实现);使用两个极点和零点补偿能拉升180°相位,操作较为灵活。

图片

运行该参数的实际效果:可以看到,相比PI补偿器,PID补偿后的响应速度加快;

图片

2.4 单电流环补偿仿真

单电流环模型如下所示

图片

M代码如下所示

current_kp=3;
current_ki=90;
k3=0      %当k等于0时,开环比闭环传递函数的带宽变低,可以观察闭环波特图    
G_current_pi=current_kp+current_ki/s;
Gs_current=G_current_pi/(L*s+r);  %不考虑输出电压扰动,输出电压前馈,k值等于1Gs_current1=G_current_pi*(R*C*s+1)/((R*C*s+1)*(L*s+r)+(1-k3)*R);   %k值不等于1bode(Gs_current);
hold on 
bode(Gs_current1);
hold on 
bode(Gs_current/(Gs_current+1));
bode(Gs_current1/(Gs_current1+1));

可以看到,输出电压在2ms内已经达到稳定,响应很快(加入输出电压前馈)图片

分析对比加入电压全前馈和不加前馈波特图对比

图片

由上面波特图可以发现,不带电压前馈的闭环传递函数,在低频段已经出现小于0db的情况,说明了不带电压前馈功能的带宽速度很低,待会仿真看看输出电压效果既可以,如下图所示:需要经过很长时间才能达到稳定状态

图片

2.5 电流电压双闭环控制

控制模型如下所示

图片

输出电压仿真结果如下所示:输出电压在10ms内达到稳定,输出无静差

图片

来看下外环电压环的带宽情况,观察波特图:可以看到,外环电压环带宽其实很低,才100Hz左右,但是输出看出来,好像还不错,其原因在于其拥有内环(电流环),双环控制,能采集更多的信息;快速性方面还得观察动态响应波形

图片

来观察的双闭环下的动态响应波形,负载在10A~20A之间跳变,如下所示

图片

可以看到,动态响应,输出虽然没有阻尼震荡的现象(不带电压前馈),但过冲和恢复时间较差,特别是过冲,根本原因主要在于输出电容取值较小和闭环PI参数设置还得继续优化(带宽/电压环和电流环的跟踪性)。

3.1 整定电流环

图片

3.2 整定电压外环

先把电流内环的PI参数整定出来,和前面的零极点配置法进行对比,电流内环整定后,输出电压尽量不要小震荡,会影响整个系统的动态响应波形。电流环整定后,作为整个系统的内环,再进行整定电压环。

图片

整定后的输出电压动态响应波形(还可以继续优化)

图片

3.3 tunner工具整定中,简要说明

图片

其中电流环整定中,模型辨识Structure这里要选择一阶系统,电压外环整定中,选定二阶阻尼震荡系统,外加一个零点(ESR)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    175

    文章

    2924

    浏览量

    228444
  • BUCK
    +关注

    关注

    31

    文章

    466

    浏览量

    63201
  • 变换器
    +关注

    关注

    17

    文章

    2027

    浏览量

    108399
  • 闭环仿真
    +关注

    关注

    0

    文章

    3

    浏览量

    4300
收藏 人收藏

    评论

    相关推荐

    单级BUCK-BOOST变换器实现APFC的原理及分析

    单级BUCK-BOOST变换器实现APFC的原理及分析本文分析了用BUCK-BOOST电路和反激变换器隔离实现单级功率因数校正的原理和变换
    发表于 12-10 17:09

    BUCK变换器

    BUCK变换器
    发表于 08-14 13:05

    【分享】Buck变换器的设计与仿真

    Buck变换器的设计与仿真
    发表于 05-25 09:58

    BUCK变换器反馈设计手册

    频率fCC。上面公式中对于Buck变换器,许多参数是固定的,除了补偿电阻RC。为了实现理想的闭环频率响应,补偿的电阻RC可以用下面公式计算:在RC补偿网络中,当功率级固定时,补偿电阻RC决定了
    发表于 10-10 13:12

    有谁会基于单片机控制的Buck变换器设计与仿真

    求大神帮助单片机控制的Buck变换器设计与仿真
    发表于 12-25 14:57

    matlab仿真推挽变换器

    matlab对推挽变换器做个很简单的仿真,但是里面这个变压参数怎么设置啊,输出的电压很奇怪啊
    发表于 11-04 17:25

    buck级联推挽变换器小信号建模的问题

    变换器拓扑是buck级联推挽,后级推挽开环控制,前级buck采用闭环控制,在进行小信号建模的时候,buck电路的输出阻抗可以直接按照它输出的
    发表于 11-17 19:36

    ZCS-PWM Buck变换器的工作原理是什么?

    ZCS-PWM Buck变换器的工作原理是什么?与功率场效应管(MOSFET)相比,绝缘栅双极晶体管有什么优点?通过Saber仿真软件对新型ZCS PWM Buck
    发表于 04-07 07:02

    Buck-Boost变换器的原理是什么

    Buck-Boost变换器:既可以升压又可以降压,其简单电路组成如下其中的器件和Buck电路完全一致,只是开关SW,二极管和电感的位置发生了改变Buck-Boost
    发表于 10-29 09:14

    BUCK变换器设计

    BUCK,主要采用PSIM仿真,适用于需要设计此变换器的课设同学。一、设计指标及要求BUCK变换器有关指标为:  输入电压:标称直流48V
    发表于 11-16 07:22

    BUCK变换器的DCM模式建模

    BUCK变换器的DCM模式建模1.前言新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居
    发表于 12-30 07:15

    Buck变换器的电压电流双闭环终端滑模控制

    Buck变换器的电压电流双闭环终端滑模控制_王艳敏
    发表于 01-07 17:16 32次下载

    buck变换器介绍_buck变换器设计

    本文为大家带来buck变换器设计介绍。
    发表于 01-10 10:46 8609次阅读
    <b class='flag-5'>buck</b><b class='flag-5'>变换器</b>介绍_<b class='flag-5'>buck</b><b class='flag-5'>变换器</b>设计

    buck变换器介绍_buck变换器matlab仿真

    BUCK 电路是一种降压斩波器,降压变换器输出电压平均值UO 总是小于输入电压Ui。通常电感中的电流是否连续,取决于开关频率、滤波电感L 和电容C 的数值。
    发表于 01-10 11:16 1.4w次阅读
    <b class='flag-5'>buck</b><b class='flag-5'>变换器</b>介绍_<b class='flag-5'>buck</b><b class='flag-5'>变换器</b><b class='flag-5'>matlab</b><b class='flag-5'>仿真</b>

    使用PSpice进行Buck变换器仿真研究的资料说明

    作为一种基本的DC/DC降压式变换电路, Buck变换器被广泛应用于电机的无级变速与控制。本文基于PSpice 软件,对Buck变换器进行参
    发表于 08-28 17:46 24次下载
    使用PSpice进行<b class='flag-5'>Buck</b><b class='flag-5'>变换器</b>的<b class='flag-5'>仿真</b>研究的资料说明