平均电流控制模式BUCK变换器的环路设计
引言电压模式的BUCK变换器存在的常见缺点:1、在没有前馈补偿的时候,对输入源的跳动响应较慢;2、在不加入电感电流控制的时候,由于不直接对电感电流进行采样,因此不能实时的控制电感电流,有可能在某些负载极端变化时,系统直接奔溃;3、LC组成的二阶系统存在谐振点,谐振峰随负载变化而变化,不容易做到完全消除;峰值电流模式的BUCK变换器存在的常见缺点:1、占空比大于50%时,存在次谐波震荡的问题,需要添
引言
电压模式的BUCK变换器存在的常见缺点:
1、在没有前馈补偿的时候,对输入源的跳动响应较慢;
2、在不加入电感电流控制的时候,由于不直接对电感电流进行采样,因此不能实时的控制电感电流,有可能在某些负载极端变化时,系统直接奔溃;
3、LC组成的二阶系统存在谐振点,谐振峰随负载变化而变化,不容易做到完全消除;
峰值电流模式的BUCK变换器存在的常见缺点:
1、占空比大于50%时,存在次谐波震荡的问题,需要添加斜坡补偿已解决该问题;
2、抗干扰能力较差;
3、峰值电流和平均电流间存在误差,不适合做PFC线路;
4、拓扑的限制,峰值电流实际是控制电感的峰值电流,由于BUCK线路的电感不在输入端,因此峰值电流模式的BUCK不适合做PFC,由于BOOST、FlyBack的电感不在输出端,因此不太适合做峰值电流模式;
平均电流模式的BUCK变换器存在的常见缺点:
1、电流环在开关频率处存在最大增益限制(为了不出现次谐波震荡);
2、双闭环放大器带宽、增益等配合参数设计调试复杂,我实际仿真验证时,外环用简单的PI环节,开环穿越频率做不高,严重影响负载跳变时的动态特性。
之前的文章多以讨论最容易最简单的电压单环模式为主介绍,本文增对最近学习的平均电流的环路设计作分享。
本文基于如下线路以及控制环路讨论:
输入电压:15-30V
输出电压Vo:12V
输出电流:3A
开关频率Fs:100KHz
Vramp:5V
电流采样比率Gi:0.1
环路模型
电流内环补偿器的设计
平均电流模式同样存在次谐波震荡的问题,但解决方案比峰值电流模式来的容易,只要保证电感电流采样后的下降斜率小于误差放大器的上升斜率即可保证不产生次谐波震荡。因此如引言所提,在开关频率处,存在最高增益的限制,最高增益如下:
(
V
o
/
L
)
∗
G
i
∗
G
i
c
m
a
x
=
V
r
a
m
p
∗
F
s
(Vo/L)*Gi*Gicmax = Vramp*Fs
(Vo/L)∗Gi∗Gicmax=Vramp∗Fs
G
i
c
m
a
x
=
V
r
a
m
p
∗
F
s
∗
L
V
o
∗
G
i
Gicmax = \frac{Vramp*Fs*L}{Vo*Gi}
Gicmax=Vo∗GiVramp∗Fs∗L
本例计算值为:19dB
我们根据找个计算值可以算出电流环在开关频率处的最高增益限制,根据这个增益我们可以配置补偿网络的增益。
为了增加电流环路低频出的开环增益,补偿网络Hi(s)可以增加积分环节,为了减小穿越频率处的相位裕度(减小相位裕度相当于减小阻尼,提升动态特性)。问了提升高频的衰减能力,我们在开关频率处增加一个极点。实际做出来的幅频、相频曲线见下图:
我们写出电流环补偿网络Gic(s)的传递函数:
G
i
c
(
s
)
=
K
c
i
∗
(
s
/
W
z
1
+
1
)
s
∗
(
s
/
W
p
1
+
1
)
Gic(s) = \frac{Kci*(s/Wz1+1)}{s*(s/Wp1+1)}
Gic(s)=s∗(s/Wp1+1)Kci∗(s/Wz1+1)
其中Kci为电流环补偿器的开环增益,Wz1为十分之一开关频率处的零点,Wp1为开关频率处的极点,设计参数时,我们可以将Kci设置成1画出补偿器波特图,再根据开关频率处的最大增益,计算Kci的值。
如下图,读出Kci为1时,开关频率处的增益为98.9dB,加上刚才计算的19dB,考虑转折频率处下降的3dB,我们设置Kci为114.9dB,即555904:
将该值带入传递函数,绘制出波特图如下:
根据如上设计原则设计如下matlab脚本:
Vinmin = 15;%输入电压最小值
Vinmax = 30;%输入电压最大值
Vo = 12;%输出电压
Vramp = 5;
Gi = 0.1;
R = 4; %负载
L = 22*10^-6; %主电感
C = 440*10^-6; %输出电容
Ts = 1*10^-5; %采样时间
Fs = 1/Ts;
%电流内环设计
Wp1 = 2*pi*Fs;%电流环补偿器极点
Wz1 = 2*pi*Fs/10;%电流环补偿器零点
Fccmax = Vinmax/Vo/2/pi/Ts%电流环穿越频率
Fccmin = Vinmin/Vo/2/pi/Ts%电流环穿越频率
Gicmax = 20*log10(Vramp*L/Ts/Vo/Gi)-3
Kci = 555904%电流补偿器开环增益
s=tf('s');
Gic = (Kci*(s/Wz1+1))/(s*(s/Wp1+1))%电流环补偿器传递函数
Gp = Gi*Vinmax/Vramp/L/s;%功率部分传递函数
Giol = Gic*Gp;
Gicl = Giol /(1+Giol);
w = logspace(1,7, 1000);%频率范围
%bode(Gp, w);%功率环节波特图
bode(Gic, w);
hold on
bode(Giol, w);
%bode(Gicl, w);
%电压外环设计
Fvc = 1000;%s设置期望的系统开环穿越频率
Kvp = 1737;%先将电压补偿器的增益设置为1,根据系统穿越频率需求调整
Gv = Gicl*(R/(1+C*R*s));
Gvc = Kvp*(s/2/pi/(Fvc/10)+1)/s %*(s/2/pi/(Fvc*10)+1)))
bode(Gv, w);
bode(Gv*Gvc,w)
legend('Gic', 'Giol','Gv','Gol')
hold off
grid on
运行后可以得到电压和电流环环路补偿器的传递函数:
Gic =
3.493e11 s + 2.195e16
-------------------------
6.283e04 s^2 + 3.948e10 s
Continuous-time transfer function.
Gvc =
1737 s + 1.091e06
-----------------
628.3 s
Continuous-time transfer function.
系统仿真
将以上计算的传递函数,填入到对应的位置,用Psim仿真(没用simulink是因为Psim感觉比较快):
30V输入时的稳态纹波:
15V输入时的稳态纹波:
50%负载和100%负载切换的动态响应:
输入电压跳变动态特性:
参考文献:《Average Current Mode Control of Swithing Power Supplies》----Lloyd Dixon
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)