DCtoDC变换器控制策略设计报告Word格式.docx
《DCtoDC变换器控制策略设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《DCtoDC变换器控制策略设计报告Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
4.2.补偿环节的设计7
4.3.BUCK变换器闭环仿真8
五、附录10
一、实验目的
DC/DC变换器可将不可控的直流输入变为可控的直流输出,广泛应用于可调直流开关电源及直流电机驱动中。
Buck变换器是DC/DC变换器中最具代表性的拓扑结构之一。
在工程实际中,Buck变换器的控制方式可以开环和闭环来实现。
其中闭环控制方式又可分为PI校正,PID控制,fuzzy控制等方式。
本文首先会建立Buck变换器的模型,然后会分别进行开环、PID控制器校正,并在MATLAB/SIMULINK上进行仿真。
二、设计内容及要求
1、输入电压(Ui):
28V
2、输出电压(Uo):
15V(1%稳定度)
3、额定电流(Io):
5A
4、开关频率(f):
60kHz
5、相位裕度(α):
>60°
三、开环Buck电路设计与仿真分析
1.
2.
3.
3.1.开环Buck主电路图设计
依据经典Buck电路图,设计的电路图如下所示:
图3.1开环Buck电路
3.2.参数计算与选择
依据设计要求,对Buck电路中未知参数进行选定。
(1)占空比取
;
(2)滤波电感L取50μH;
(3)滤波电容C取500μF。
3.3.开环BUCK电路模型建立
在simulink中搭建Buck电路的仿真模型,使用开关器件是MOSFET,如图3.2所示。
图3.2开环Buck电路仿真模型
3.4.开环Buck电路仿真及结果分析
对所建立的模型进行仿真,得出电压波形和负载电流波形图。
图3.3电压波形
图3.4负载电流波形
由仿真结果可以看出,电路输出电压为14.4V,电流输出为4.8A,显然不满足设计要求。
在对滤波电感、电容进行调节时,发现电感、电容与电路性能的规律:
电感越小,超调越大,越稳定;
电容越小,超调越小,纹波越大。
因此,需要在稳定度,超调量,纹波电压之间进行折衷,对电感、电容进行调节。
因此需要对电路进行闭环调节,本设计采用PID控制校正方式。
3.5.开环传递函数
利用小信号模型,对Buck电路进行建模,得到其开环传递函数为
(3.1)
其中,RC为滤波电容的ESR,Buck电路的纹波电压,主要是由电容的寄生电阻ESR和电容容量决定,所以要想对电路纹波进行比较精确地控制必须考虑寄生电阻的影响,而对于一般的电容,其C与寄生电阻Rc的乘积趋于常数,约为50~80μΩ∗F。
本例中取为50μΩ∗F。
所以Rc=0.1Ω
代入数据得
(3.2)
原始回路增益G0为:
(3.3)
(3.4)
使用以下代码画出开环状态下的Bode图:
num=[1.05e-42.1];
den=[2.5e-81.667e-51];
H=tf(num,den);
margin(H);
grid;
相角裕度只有34.9度,相角裕度过低,不满足设计要求。
可采取有源超前滞后校正器。
四、闭环Buck电路设计与仿真分析
4.
4.1.反馈回路设计
补偿网络电路基本原理如图4.1所示.
图4.1有源超前-滞后补偿网络
反馈回路即H(s)取0.3,即
为0.3。
取Ry为3K欧姆,Rx为7K欧姆,Ry一端接地。
4.2.补偿环节的设计
根据已知条件使用MATLAB程序(见附录)算得一下各参数值,并在满足相位裕度为60度的条件下对其进行微调。
补偿器的传递函数是:
(4.1)
带入数据计算得
(4.2)
BUCK变换器闭环传递函数:
(4.3)
(4.4)
根据已知条件使用MATLAB并微调算得校正器各元件的值如下:
num=[1.061e-112.789e-71.44e-32.1];
den=[1.113e-183.575e-131.399e-91.501e-54.468e-20];
图4.2Bode图
4.3.BUCK变换器闭环仿真
电路原理图为:
图4.3Buck变换器闭环仿真电路原理图
闭环仿真结果:
图4.4Buck变换器闭环仿真结果
五、附录
补偿电路环节参数选取程序:
clc;
clear;
Vg=28;
L=5*10^-5;
C=5*10^-4;
fs=50*10^3;
R=3;
Vm=4;
H=0.3;
Rc=0.1;
G0=tf([C*Rc*Vg*H/VmVg*H/Vm],[L*CL/R1])
figure
(1)
margin(G0);
fp1=1/(2*pi*sqrt(L*C));
fg=(1/5)*fs;
fz1=(1/2)*fp1;
fz2=(1/2)*fp1;
fp2=fs;
fp3=fs;
[marg_G0,phase_G0]=bode(G0,fg*2*pi);
marg_G=1/marg_G0;
AV1=fz2/fg*marg_G;
AV2=fz2/fg*marg_G;
R2=10^3;
R3=R2/AV2;
C1=1/(2*pi*fz1*R2);
C3=1/(2*pi*fp2*R3);
C2=1/(2*pi*fp3*R2);
R1=1/(2*pi*C3*fz1);
num=conv([C1*R21],[(R1+R3)*C31]);
den1=conv([(C1+C2)*R10],[R1*C31]);
den=conv(den1,[R2*C1*C2/(C1+C2)1]);
Gc=tf(num,den)
figure
(2)
bode(Gc);
G=series(Gc,G0);
figure(3)
margin(G)
grid