Boost变换器控制器设计——03:基于小信号建模的Boost变换器电压电流双闭环参数设计(附MATLAB代码)
Boost变换器控制器设计——02:Boost变换器小信号分析与可行性讨论_boost控制器设计-CSDN博客
Boost变换器控制器设计——01:基于输出电压全前馈的电流电压双闭环控制器设计(平均模型法)-CSDN博客
本文在上文推导出的小信号建模设计PI控制器参数可行性的基础上,将进一步通过小信号建模推导变换器的数学模型,并进行参数设计,给出一般的设计步骤。
目录
1. Boost变换器的小信号模型
根据上文所展现的方法,对Boost变换器进行小信号建模,最终可以得到以下的关系模型:

通过小信号建模建立以上数学模型后,便可以按下面步骤依次进行电压环、电流环的参数设计与性能分析。
2. 小信号建模下的控制器参数设计步骤
2.1 电流环参数设计
2.1.1 确定被控对象
在设计PI控制器之前,首先要确定被控对象。对于电流环,其被控对象,也就是整个电流环的输出,应该是电感电流IL,而对于PI控制器的输出,作为系统内环,通常以占空比的方式,通过PWM波来作用于系统自身,实现对系统的控制。根据上述推导,可以选择上面的式(2.31)作为电流内环的控制对象。
图参考:基于MATLAB的Boost电路控制环建模与参数计算-CSDN博客

上图给出了电流内环的控制框图,如图所示,Gi为电流内环的PI控制器,Vm为调制波的峰值,此处假设为1,则可以得到PI控制器的输出结果直接就为占空比D,后面的公式即为系统的实际模型。
2.1.2 设计控制器参数
下图给出了Kpi取6,Kii取500时的电流内环开环、闭环bode图。如图所示,蓝色部分为开环bode图,其截止频率wc=1.5*10^6,相位裕度为90°,满足设计要求。

2.1.3 电流内环主要作用
电流内环提供足够大的增益,以及足够大且合适的带宽,并有效抑制开关噪声。
具体性能指标见Boost变换器控制器设计——01:基于输出电压全前馈的电流电压双闭环控制器设计(平均模型法)-CSDN博客
2.2 电压环参数设计
2.2.1 确定控制对象
在设计电压环参数时,首先要明确电压环的输入与输出。作为整个控制器的外环,电压环的作用就是稳定输出电压。即电压环的输入即为输出的参考电压,输出则为实际的输出电压。
其次,就是要考虑电压外环与电流内环的衔接问题。由上文给出的电流内环框图来看,电流环的输入需要接到电压环控制器的前项,而电流环的输出则需要通过某些特定关系变换为输出电压。一般情况下,通常将电压外环PI控制器的输出,作为电流内环的电流参考值,也就是电流内环的参考输入,而电流内环与电压外环的衔接,则需要通过下式转换:
![]()
由此可得出整个系统的控制框图:
参考基于MATLAB的Boost电路控制环建模与参数计算-CSDN博客

2.2.2 设计控制参数
当kpu =0.1,kpi=5时,系统的开环以及闭环bode图如图所示:

可以看到,蓝色部分(开环)相位裕度74.6°,满足稳定性要求。
2.2.3 电压外环主要作用
对于电压外环,其主要除了得到稳定的输出电压外,还应有效滤除输出直流电压中的低频谐波(如无桥PFC输出直流电压中含有的100Hz谐波),来防止电流内环收到干扰,保证输出电流的质量。因此,电压外环的截止频率通常不是很高,即拥有较低的带宽,以抑制低频噪声。
同时,由于电压外环的输出作为电流内环的参考输入,因此可以通过对电压环PI控制器的输出加以限幅,起到输出电流限流的作用。通常,限流值应略大于最低输入电压,最大占空比时的输出额定电流。
3. 与平均模型的对比分析
3.1 输出响应
输入电压为Uin=400V时的系统阶跃响应如图所示,可以看到,在几乎相同的两组参属下,两种模型得到的阶跃响应输出结果也大致相同。

3.2 小信号建模的优势
3.2.1 关于小信号建模可行性的再讨论
上期在讨论小信号建模可行性分析的文中提到,小信号建模仅仅针对小的扰动起到较为精确的作用。然而,在实际设计时,我们往往希望系统就工作在静态工作点附近,来抵抗小的参数变化,这与平均模型建模时假设占空比D不变的思想类似,都是在系统已经工作在静态工作点的条件下进行分析的。因此,小信号建模在控制器设计以及系统建模分析方面具有完全的可行性。
3.2.2 小信号建模优势分析
首先,小信号建模在应用时,可以直接得到多组变量的对应关系。在设计控制器时,只需要对照各个变量之间的关系进行拼接对应。相比于平均模型法,极大简化了控制框图绘制变换的过程。
其次,最重要的是,小信号模型本身是一种对非线性模型进行线性化的思想。因此,在一些平均模型建立后,模型内部含有非线性部分时,即可使用小信号模型进行线性化处理,极大简化了控制器的设计。
4. 附:MATLAB实现代码
%参数设计
C = 0.00022;
L = 0.0002;
r = 0;
R = 50;
D = 0.28;
Vin = 36;
Vo = 50;
fs = 20000;
s = tf('s');
%开环传函
Gs = (1-D)/(L*C*s*s+L/R*s+(s*C+1/R)*r+(1-D)^2);
% bode(Gs);
% hold on
% figure;
% step(Gs*100,1);
% figure;
%设计电流环
Kpi = 6;
Kii = 500;
Gis = (Kpi*s+Kii)/s;
Gopi = Gis/(L*s+r); %电流环开环传函
% bode(Gopi);
% hold on
Gcli = Gopi/(1+Gopi);
% bode(Gcli);
%设计电压环
Kpu = 0.1;
Kiu = 20;
Gus = (Kpu*s+Kiu)/s;
Gopu = Gus*Gcli*(1-D)*R/(s*C*R+1);
Gclu = Gopu/(1+Gopu);
%bode(Gopu);
%hold on;
% bode(Gclu);
% figure;
% step(Gclu*400,1);
%小信号建模
Gids = Vo*((s*C+2/R)/(L*C*s*s+L/R*s+(1-D)^2));
%设计电流内环
Kpii = 6;
Kiii = 500;
Giis = (Kpii*s+Kiii)/s;
Giop = Giis*Gids;
% bode(Giop);
% hold on
Gicl = Giop/(1+Giop);
% bode(Gicl);
%设计电压环
Gui = ((1-D)^2*R-L*s)/((1-D)*R*C*s+2*(1-D));
Kpuu = 0.01;
Kiuu = 5;
Gus = (Kpuu*s+Kiuu)/s;
Guop = Gus*Gicl*Gui;
bode(Guop,(Guop/(1+Guop)));
figure;
step(400*Guop/(1+Guop),1);
更多推荐


所有评论(0)