Boost电路控制

一、小信号建模

参考相关资料,可以建立2个基本等式:

L\frac{\mathrm{d} \widehat{i}(t)}{\mathrm{d}t}=\hat{v}_g(t)-{D}'\hat{v}(t)+\hat{d}(t)V----------------------公式1

C\frac{\mathrm{d} \hat{v}(t)}{\mathrm{d}t}=D'\hat{i}(t)-\frac{\hat{v}(t)}{R}-I\hat{d}(t)   -------------------------公式2

假设\hat{v}_g(t)扰动为0,则可以推导

G_{id}(s)=\frac{\hat{i}(s)}{\hat{d}(s)}|_{\hat{v}_g(s)=0}=V*\frac{sC+\frac{2}{R}}{LCs^2+\frac{L}{R}s+D'^2}

得到系统控制框图如下:

进一步计算电感电流扰动到输出电压扰动之间的传递函数关系。

假设\hat{v}_g(t)的扰动为0,由公式①和②可得

G_{vi}(s)=\frac{\hat{v}(s)}{\hat{i}(s)}|_{\hat{v}_g(s)=0}=\frac{D'^2R-Ls}{D'RCS+2D'}

二、控制环

2.1 电流内环控制

电流环采用PI控制器

G_i(s)=\frac{K_{ip}s+K_{ii}}{s}

补偿后的开环传递函数

G_1(s)=\frac{K_{ip}s+K_{ii}}{s}\cdot \frac{1}{V_m} \cdot \frac{V_oCs+\frac{2V_o}{R}}{LCs^2+\frac{L}{R}s+(1-D)^2}

设计指标,期望穿越频率为开关频率的二十分之一,设置相位裕度为75°,由此可以得到

\begin{cases} & \angle G_1(s)|_{s=j2\pi f_c}=\frac{-(180^{\circ}-75^{\circ})}{180/\pi} \\ & \left | G_1(s)|_{s=j2\pi f_c} \right | = 1 \end{cases}

解方程

基本思路是角度相加,模相乘。

求解方程的matlab代码如下:

clear;clc;
format long
syms Kip Kii w
Vg=100;
Vo=200;
L=1000e-6;
C=1000e-6;
R=10;
% boost matlab求解PI控制器参数
fc=5e3;
w=2*pi*fc;%穿越频率
D=1-Vg/Vo;
PM=75;
Vm=200;%载波幅值
s=w*1j;
%% 参数求解过程
G1PI=(Kip*s+Kii)/(s);
Gid=(Vo*C*s+2*Vo/R)/(Vm*(L*C*s^2+(L/R)*s+(1-D)^2));
a1=Gid

a=sqrt((Kip*w)^2+(Kii)^2)/w
b=atan(Kip*w/Kii)-pi/2

ab=abs(a1)
an=angle(a1)

exp1=[ab*a==1,b+an==-(180-PM)/(180/pi)]
solu=vpasolve(exp1,[Kip,Kii])
[solu.Kip,solu.Kii]

%% 波特图绘制
num1=[double(solu.Kip) double(solu.Kii)];
den1=[1 0];%电流环pi

Gpi=tf(num1,den1)
num2=[Vo*C 2*Vo/R];
den2=[L*C L/R (1-D)^2];
G1=tf(num2,den2)
Gopen=Gpi/Vm*G1;
%bode(PIi,Iden,[100,10e6]);
bode(Gpi,G1,Gopen);

legend('Gpi','G1','Gopen');
grid

电流环PI控制算法:

float iPI(float REF , float FB)
{
    I.REF = REF;
    I.FB = FB;
    I.ERROR = I.REF-I.FB;
    I.P = I.KP*I.ERROR;

    //向前欧拉法,h是控制周期值,比如100kHz的控制频率则是10us
    I.I = I.I+I.KI*I.LAST ERROR*I.h;  
    I.I = sat(I.I,0,P1.PRD*O.85);

    I.tAST_ERROR = I.ERROR;
    return sat(I.I+I.P,O,P1.PRD*O.85);
}

2.2 电压外环控制

电压环PI控制算法

G_v(s)=\frac{K_{vp}s+K_{vi}}{s}

电压环被控对象:

G_3(s) = \frac{G_1(s)}{1+G_1(s)}*G_{vi}(s)

用matlab语言来计算和整理:

% 说明:
% 该内容用于计算boost电压环控制对象
clear;clc;
format long
syms Kip Kii w Kvp Kvi Vg C L R T K s Vo D Vm Dp
%% 电流环内容
GiPI=(Kip*s+Kii)/(s);
Gid=(Vo*C*s+2*Vo/R)/(Vm*(L*C*s^2+(L/R)*s+Dp^2));
Gvi=(Dp^2*R-L*s)/(Dp*R*C*s+2*Dp);
%% 电压环内容
GvPI=(Kvp*s+Kvi)/(s);

G1=Gid*GiPI
G2=G1/(1+G1)
G3=G2*Gvi
%整理,以s为未知数合并同类项
collect(G3,s)

整理出来就是这样子的:

下面的matlab代码用于计算电压环参数:

clear;clc;
format long
syms Kvp Kvi w
Vg=100;
Vo=200;
L=310e-6;
C=33e-6;
R=20;
% boost matlab求解boost 电压环PI控制器参数
fc=1e3;
w=2*pi*fc;%穿越频率
D=1-Vg/Vo;
Dp=1-D;
PM=75;
Vm=200;%载波幅值
s=w*1j;

Kip=9.247;
Kii=63458;
%% 参数求解过程
GiPI=(Kip*s+Kii)/(s)
Gid=(Vo*C*s+2*Vo/R)/(Vm*(L*C*s^2+(L/R)*s+Dp^2));
Gvi=(Dp^2*R-L*s)/(Dp*R*C*s+2*Dp);
GvPI=(Kvp*s+Kvi)/(s);

a1=(Gvi*Gid*GiPI)/(1+Gid*GiPI);
ab=abs(a1)                      %a1的模
an=angle(a1)                    %a1的相角
a=sqrt((Kvp*w)^2+(Kvi)^2)/w     %pi控制器的模
b=atan(Kvp*w/Kvi)-pi/2          %pi控制器的相角

%解方程组
exp1=[ab*a==1,b+an==-(180-PM)/(180/pi)]
solu=vpasolve(exp1,[Kvp,Kvi])
[solu.Kvp,solu.Kvi]

%% 波特图绘制
num1=[double(solu.Kvp) double(solu.Kvi)];
den1=[1 0];%电流环pi

Gpi=tf(num1,den1)
num2=[(-Kip*L*Vo) (Kip*R*Vo*Dp^2 - Kii*L*Vo) Dp^2*Kii*R*Vo];
den2=[C*Dp*L*R*Vm  (Dp*L*Vm + C*Dp*Kip*R*Vo)  (2*Dp*Kip*Vo + Dp^3*R*Vm + C*Dp*Kii*R*Vo)  2*Dp*Kii*Vo];
G1=tf(num2,den2)
Gopen=Gpi*G1;
%bode(PIi,Iden,[100,10e6]);
bode(Gpi,G1,Gopen);

legend('Gpi','G1','Gopen');
grid

float vPI(float REF ,float FB)
{
    V.REF=REF;
    V.FB=FB;
    V.ERROR=V.REF-V.FB;
    V.P=V.KP*V.ERROR;

    V.I=V.I+V.KI*V.LAST ERROR*V.h;//向前欧拉法
    v.I=sat(v.I,0,30);//上限设在稳态值的1.5倍

    V.LAST ERROR = V.ERROR;
    return sat(V.I+V.P,0,30);
}

参考文献:

1:电力电子系统建模及控制,作者:徐德鸿;

2:开关变换器的建模及控制,作者:张卫平;

3:基于Boost电路的有源功率因数校正(论文),作者:陈伟(指导教师:陈德容)

4:电压控制型Boost变换器系统的分析与设计(硕士论文),作者:郭俊峰

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值