在实际电力电子和电源控制项目中,Boost电路(升压斩波电路)是直流变换的核心拓扑之一。其核心挑战在于,当输入电压固定时,如何通过调节开关管的占空比,使输出电压能够快速、稳定、准确地跟踪给定值,并有效抑制负载扰动。单纯的开环控制无法应对负载变化和元器件参数漂移,因此闭环控制是工程实现的必然选择。电压单闭环控制作为最基础、最直观的闭环策略,是理解更复杂控制算法(如电流模式控制、双闭环控制)的基石。
本文面向电力电子、自动化及相关专业的工程师和学生,旨在提供一个从理论到实践、从模型到代码的完整设计流程。我们将基于MATLAB/Simulink环境,逐步完成一个输入电压Vin恒定的Boost电路电压单闭环控制系统设计。读者将不仅学会如何搭建仿真模型,更能理解控制器参数(如PI调节器的Kp、Ki)与系统动态性能(超调量、调节时间、稳态误差)之间的内在联系,掌握一套可复用于其他拓扑(如Buck、Buck-Boost)的控制器设计与调试方法论。
1. Boost电路与电压单闭环控制的核心概念
在动手搭建模型之前,必须清晰理解被控对象(Boost电路)的工作原理和控制目标(电压单闭环)的实现机制。这是后续所有参数设计和调试工作的理论基础。
1.1 Boost电路的工作原理与数学模型
Boost电路的基本拓扑包含一个开关管(通常为MOSFET或IGBT)、一个二极管、一个电感和一个输出电容。其核心原理是利用电感的储能和释能来实现升压。当开关管导通时,输入电源向电感充电,电感电流线性上升,二极管因反偏而截止,负载由输出电容供电。当开关管关断时,电感为了维持电流不变,其感应电动势极性反转,与输入电源串联共同向负载和电容供电,从而实现输出电压高于输入电压。
在连续导通模式下,其稳态电压增益公式为:Vout / Vin = 1 / (1 - D)其中,D为开关管的占空比。该公式清晰地揭示了控制量(占空比D)与被控量(输出电压Vout)之间的非线性关系。当输入电压Vin固定时,通过调节D即可控制Vout。
为了设计线性控制器(如PI控制器),通常需要在小信号扰动下对系统进行线性化,得到其传递函数。对于一个工作在稳态点(D0, Vout0)附近的Boost电路,其控制到输出的传递函数通常是一个包含右半平面零点的二阶系统,这决定了其动态响应存在固有的限制,控制器设计需要特别考虑稳定性。
1.2 电压单闭环控制的结构与目标
电压单闭环控制,顾名思义,系统中只有一个反馈环——输出电压反馈环。其结构框图如下所示:
给定电压Vref --> [比较器] --> 误差e --> [电压调节器 (如PI)] --> 占空比D --> [PWM调制器] --> [Boost主电路] --> 实际输出电压Vout ^ | | | --------------------------------------------------------------------------------------------------------------------------------- 反馈与比较:通过电阻分压等采样电路,将实际输出电压
Vout按比例缩小为与给定电压Vref同量级的反馈电压Vfb。比较器计算误差e = Vref - Vfb。 - 调节器运算:电压调节器(最常用的是PI控制器)根据误差
e计算出控制量。PI控制器的输出综合了误差的比例项和积分项,旨在快速响应并消除静差。 - PWM调制:调节器的输出(通常是一个0-1之间的连续信号)作为调制波,与一个固定频率的三角载波进行比较,生成对应占空比的PWM脉冲信号,驱动开关管。
- 主电路执行:PWM信号控制Boost电路开关管的通断,从而改变电感能量的存储与释放,最终调节输出电压
Vout,使其向Vref靠近。
控制目标:
- 稳定性:系统在任何扰动下都能回到平衡点,不发散、不振荡。
- 快速性:当给定值变化或负载突变时,系统能快速响应,调节时间短。
- 准确性:稳态时,输出电压与给定值之间的误差(静差)尽可能小,理想情况下为零。
- 鲁棒性:在电路参数(如电感、电容值)存在一定偏差或输入电压有微小波动时,系统仍能保持良好的控制性能。
2. 基于MATLAB/Simulink的仿真环境搭建
理论分析之后,我们进入实践环节。MATLAB/Simulink为电力电子系统的建模与控制设计提供了强大的可视化仿真平台。我们将从零开始搭建整个系统。
2.1 主电路参数设计与器件选型
首先需要确定Boost电路的核心参数。假设我们的设计指标如下:
- 输入电压
Vin = 24V(恒定) - 额定输出电压
Vout = 48V - 额定输出功率
Pout = 96W - 开关频率
fs = 50kHz - 期望输出电压纹波
< 1%(即< 0.48V) - 期望电感电流纹波
< 20%(额定电流下)
根据这些指标,我们可以计算关键元器件参数:
- 占空比D:根据稳态公式
D = 1 - Vin/Vout = 1 - 24/48 = 0.5。 - 负载电阻R:
R = Vout^2 / Pout = 48^2 / 96 = 24 Ω。 - 额定输出电流Iout:
Iout = Pout / Vout = 96 / 48 = 2 A。 - 电感L:电感值需满足电流连续且纹波要求。计算公式为
L = Vin * D / (ΔIL * fs),其中ΔIL为电感电流纹波峰值。取ΔIL = 20% * Iout / (1-D) ≈ 0.8 A,则L ≈ 24 * 0.5 / (0.8 * 50000) = 300 μH。实际仿真中可选取一个标称值,如330 μH。 - 输出电容C:电容值需满足输出电压纹波要求。计算公式为
C = (Iout * D) / (ΔVout * fs),其中ΔVout为输出电压纹波峰值。取ΔVout = 0.48V,则C ≈ (2 * 0.5) / (0.48 * 50000) ≈ 41.7 μF。考虑到电容的等效串联电阻等因素,实际选取值应更大,如100 μF或220 μF。
我们将这些参数整理成表,便于后续在Simulink模型中设置:
| 参数 | 符号 | 计算值/选取值 | 说明 |
|---|---|---|---|
| 输入电压 | Vin | 24 V | 恒定直流源 |
| 目标输出电压 | Vout | 48 V | 控制目标 |
| 开关频率 | fs | 50 kHz | PWM载波频率 |
| 占空比 | D | 0.5 | 理论稳态值 |
| 电感 | L | 330 μH | 取标称值,略大于计算值 |
| 输出电容 | C | 220 μF | 取标称值,留有余量 |
| 负载电阻 | R | 24 Ω | 额定负载 |
2.2 Simulink主电路模型搭建
打开MATLAB,新建一个Simulink模型(.slx文件)。
- 添加电源和地:从
Simulink Library Browser->Simscape->Electrical->Specialized Power Systems->Fundamental Blocks->Electrical Sources中拖入一个DC Voltage Source,将其电压设置为24 V。拖入一个Ground元件。 - 搭建Boost拓扑:
- 从
Power Electronics库中拖入一个MOSFET和一个Diode。通常使用默认的Ideal Switch模型即可用于原理性仿真。将MOSFET的Ron(导通电阻) 设置为一个很小的值(如1e-3 Ohm),Diode的Ron和Forward voltage也可根据实际情况微调,或先使用理想模型。 - 从
Elements库中拖入一个Series RLC Branch,将其配置为纯电感(R=0, C=inf),电感值设置为330e-6 H。 - 再拖入一个
Series RLC Branch,将其配置为纯电容(R=0, L=0),电容值设置为220e-6 F。 - 从
Elements库中拖入一个Parallel RLC Branch,将其配置为纯电阻(L=0, C=inf),电阻值设置为24 Ohm。
- 从
- 连接电路:按照Boost电路的标准连接方式将上述元件连接起来。注意二极管的极性(阴极接输出正端)和MOSFET的驱动信号接入端(
g端口)。 - 添加测量模块:为了观测波形,需要添加电压和电流测量。
- 从
Measurements库中拖入Voltage Measurement和Current Measurement模块。将Voltage Measurement并联在负载电阻两端以测量输出电压。将Current Measurement串联在电感支路以测量电感电流。 - 将这些测量模块的输出(
V和I端口)连接到Simulink Sinks库中的Scope(示波器)上,以便观察。
- 从
至此,一个开环的Boost主电路模型已经搭建完成。你可以先用一个Pulse Generator(脉冲发生器)模块直接驱动MOSFET的g端,设置其周期为1/50000秒,占空比为0.5,运行仿真,观察输出电压是否在暂态过程后稳定在48V附近。这是验证主电路连接是否正确的重要一步。
3. 电压单闭环控制器的设计与实现
开环电路验证无误后,我们开始构建闭环控制系统。核心是设计电压调节器(PI控制器)和PWM调制环节。
3.1 电压采样与给定环节
在实际硬件中,输出电压通过分压电阻采样,并经过运放调理后送入控制芯片的ADC。在Simulink中,我们用简单的增益模块来模拟这一过程。
- 采样比例:假设我们的控制芯片ADC参考电压为3.3V,而输出电压为48V。为了将48V映射到0-3.3V,采样比例
Kfb = 3.3 / 48 ≈ 0.06875。我们在模型中用一个Gain模块来实现,增益值设为0.06875,输入接输出电压测量值Vout。 - 给定电压:我们的目标是控制
Vout = 48V,对应到采样后的反馈电压应为48 * 0.06875 = 3.3V。因此,我们设置给定电压Vref = 3.3V。使用一个Constant模块,值设为3.3。 - 误差计算:使用
Sum模块计算Vref - Vfb。将Sum模块的图标形状设置为rectangular,符号列表设置为|+-(上正下负)。
3.2 PI控制器参数设计与建模
PI控制器的传递函数为:Gc(s) = Kp + Ki/s。其中Kp为比例系数,Ki为积分系数。参数设计是控制性能好坏的关键。
初始参数整定(经验法/试凑法): 对于开关电源这类系统,一个常用的经验起点是:
- 先令
Ki = 0,只保留比例控制Kp。 - 将
Kp从一个很小的值(如0.01)开始逐渐增大,直到系统开始出现等幅振荡(临界稳定)。记下此时的Kp为Kpcrit。 - 根据齐格勒-尼科尔斯(Ziegler-Nichols)经验公式,取
Kp = 0.45 * Kpcrit,Ki = (0.54 * Kpcrit) / Tcrit,其中Tcrit是临界振荡周期。 - 由于仿真中我们可以方便地观察波形,也可以直接采用试凑法。一个合理的起点可以是:
Kp = 0.1,Ki = 10。
在Simulink中,我们可以使用PID Controller模块,并将其设置为PI模式,Filter coefficient (N)置为无穷大(或很大)以禁用微分滤波器。将Kp和Ki填入对应参数框。
控制器输出限幅:PI控制器的输出直接对应占空比D,其值必须在0到1之间(对于Boost电路,通常还需留有余量,如0到0.8,避免占空比过于接近1导致系统不稳定)。因此,必须在PI控制器后添加一个Saturation(饱和)模块,下限设为0.05(保证最小导通时间),上限设为0.75(保留安全裕量)。
3.3 PWM调制器实现
PWM调制器将连续的占空比信号转换为驱动开关管的脉冲信号。
- 载波生成:使用
Repeating Sequence模块可以生成三角波。设置其Time values为[0, 1/50000/2, 1/50000],Output values为[0, 1, 0],即可生成一个峰值为1、谷值为0、频率为50kHz的三角波。 - 比较器:使用
Relational Operator模块,设置为>。将PI控制器输出(经过限幅后的占空比信号)连接到第一个输入,三角波载波连接到第二个输入。当占空比信号大于三角波瞬时值时,输出为1(高电平),否则为0(低电平)。这个0/1信号就是最终的PWM波。 - 驱动连接:将比较器的输出连接到MOSFET的
g(门极)驱动端口。
至此,完整的电压单闭环控制系统模型已经搭建完毕。模型的主要信号流为:Vout -> Gain (Kfb) -> Sum (与Vref比较) -> PID Controller -> Saturation -> Relational Operator (与三角波比较) -> MOSFET。
4. 系统仿真、性能分析与参数调试
模型搭建完成后,我们需要通过仿真来验证控制效果,并根据性能指标调整PI参数。
4.1 仿真配置与运行
- 求解器设置:由于电力电子系统是刚性系统且包含开关动作,需要选择合适的求解器。在Model Configuration Parameters中,将求解器类型
Solver选择为ode23tb(stiff/TR-BDF2) 或ode15s(stiff/NDF),这些变步长求解器能更好地处理开关事件。将最大步长Max step size设置为开关周期的1/10到1/100,例如1/(50000*100) = 2e-7秒,以保证仿真精度。 - 仿真时间:设置一个足够长的仿真时间以观察启动、稳态和动态过程,例如
0.01秒(10ms)。 - 添加观测点:在Scope中,至少需要观测以下信号:
- 输出电压
Vout(目标:稳定在48V) - 电感电流
IL(观察是否连续、纹波大小) - 占空比信号
D(PI控制器输出,观察其变化) - 误差信号
e(观察是否趋于0) - PWM驱动信号 (验证频率和占空比)
- 输出电压
运行仿真,观察Scope中的波形。
4.2 性能评估与参数整定
首次运行,性能很可能不理想。我们需要根据波形评估并调整PI参数。
| 性能问题 | 可能原因 | 调整方向 |
|---|---|---|
| 输出电压发散、振荡剧烈 | 比例系数Kp过大,系统不稳定。 | 大幅减小Kp,可以先设为0.01再试。 |
| 启动超调过大 | 积分系数Ki过大,或Kp偏大。 | 减小Ki,或适当减小Kp。积分作用太强会导致“积分饱和”,引起大超调。 |
| 调节时间过长,响应缓慢 | 比例系数Kp过小,系统“太软”。 | 增大Kp,能加快响应。 |
| 稳态存在静差 | 积分系数Ki过小或为0,积分作用不足以消除静差。 | 增大Ki。注意,增大Ki也可能减慢响应或引入超调,需与Kp配合调整。 |
| 输出电压纹波大 | 主电路参数(L, C)不合适,或PI控制器对高频开关纹波过于敏感。 | 检查L、C值是否满足纹波计算公式。不建议通过降低控制器带宽来抑制开关纹波,这会影响动态性能。应在PI控制器前或后加入低通滤波器来滤除高频噪声。 |
调试步骤建议:
- 先调比例 (
Kp):将Ki设为0,逐渐增大Kp,观察系统从迟缓到出现轻微振荡的过程。选择一个响应较快且无明显振荡的Kp值。 - 再加入积分 (
Ki):在选定的Kp基础上,从小逐渐增大Ki,观察稳态误差的消除情况和超调量的变化。目标是快速消除静差,同时超调量可控(例如<5%)。 - 微调与权衡:
Kp和Ki相互影响。通常,增大Kp能提高响应速度但可能增加超调和振荡风险;增大Ki能消除静差但可能降低稳定裕度。需要反复微调,在快速性、稳定性和准确性之间取得平衡。
一个经过调试后可能表现良好的参数示例:Kp = 0.15,Ki = 50。但这强烈依赖于你的具体电路模型和仿真设置。
4.3 动态性能测试:负载阶跃扰动
一个优秀的控制器不仅要能稳定在额定状态,还要能抵抗外部扰动。最常见的扰动就是负载变化。
- 创建可变负载:将之前固定的
24 Ohm电阻,替换为一个受控的电流源或一个可变电阻模型。更简单的方法是使用Breaker(断路器)或Switch模块并联另一个电阻,在特定时间切换负载。- 例如,在
0.005秒时,将一个48 Ohm的电阻(半载)通过Breaker并联到原有的24 Ohm电阻上,使总负载变为16 Ohm(1.5倍负载)。观察系统如何响应这种负载阶跃增加。 - 在
0.007秒时,断开Breaker,负载恢复为24 Ohm,观察系统如何响应负载阶跃减小。
- 例如,在
- 评估动态指标:
- 最大动态偏差:负载突变时,输出电压偏离稳态值的最大幅度。越小越好。
- 恢复时间:从负载突变开始,到输出电压重新进入并保持在稳态值±2%误差带内所需的时间。越短越好。
- 稳态误差:扰动过后,输出电压是否能回到精确的给定值。
通过观察负载阶跃下的响应,可以进一步微调PI参数。通常,面对负载扰动,需要更强的积分作用来快速消除因负载变化引起的静差。
5. 常见问题、故障排查与工程实践建议
仿真与实践中会遇到各种问题,以下是一些典型场景的排查思路。
5.1 仿真模型常见问题排查
| 问题现象 | 可能原因 | 检查与解决步骤 |
|---|---|---|
| 仿真报错或无法启动 | 1. 电路连接错误,存在短路或开路。 2. 求解器设置不当,步长太大。 3. 元器件参数不合理(如电感为0)。 | 1. 仔细检查所有连线,特别是接地。 2. 改用 ode23tb或ode15s求解器,并减小最大步长。3. 检查每个 Series RLC Branch的参数设置,确保非零参数正确输入。 |
| 输出电压始终为0或接近输入电压 | 1. MOSFET或二极管方向接反。 2. PWM驱动信号未正确连接或占空比始终为0/1。 3. 负载电阻值过大(近似开路)或过小(近似短路)。 | 1. 检查MOSFET的源漏极方向、二极管的阴阳极方向。 2. 用Scope观察PWM驱动信号和PI控制器输出的占空比信号是否正常变化。 3. 检查负载电阻值是否合理。 |
| 输出电压振荡且不收敛 | 1. PI参数严重不合理,系统失稳。 2. 占空比饱和限幅值设置不当(如上限超过0.9)。 3. 电压采样比例 Kfb计算错误,导致反馈回路增益异常。 | 1. 回归最基本的参数(Kp=0.01, Ki=0)重新调试。2. 检查 Saturation模块的上下限,对于Boost,上限建议不超过0.8。3. 复核 Vref和Kfb的计算,确保Vref = Vout_desired * Kfb。 |
| 电感电流波形异常(断续或畸变) | 1. 电感值L太小,导致电流纹波过大,进入断续导通模式。 2. 负载过轻(电阻过大)。 | 1. 根据公式重新计算并增大电感值L。 2. 检查负载条件,确保在设计的功率范围内。 |
5.2 从仿真到工程实践的考量
仿真模型是理想化的,实际硬件实现需要考虑更多因素:
- 采样与计算延时:实际微控制器(如DSP、ARM)中,ADC采样、PI运算、PWM更新都需要时间,这会引入半个到一个开关周期的延时。在仿真中,可以在反馈回路中加入一个
Transport Delay模块来模拟这种延时,并观察其对稳定性的影响。通常需要降低控制器带宽(减小Kp,Ki)来补偿延时。 - PI控制器的离散化:仿真中的连续时间PI控制器需要转换为离散形式才能在数字芯片中运行。常用方法有前向欧拉、后向欧拉或双线性变换。Simulink中的
PID Controller模块可以直接设置为离散模式,并指定采样时间Ts(通常等于PWM开关周期或其整数倍)。 - 抗饱和积分(Integral Anti-Windup):当控制器输出因限幅而饱和时,积分器会继续累积误差,导致系统退出饱和时产生大的超调或振荡。实际的PI实现必须包含抗饱和机制。Simulink的
PID Controller模块可以勾选Anti-windup选项并选择back-calculation等方法。 - 硬件非理想特性:包括MOSFET的导通压降和开关损耗、二极管的导通压降和反向恢复、电感的直流电阻(DCR)、电容的等效串联电阻(ESR)等。这些都会导致实际效率降低、温升和波形畸变。在仿真中,可以逐步将这些参数加入模型,使仿真更贴近实际。
- 启动冲击与软启动:直接以高占空比启动可能导致巨大的输入电流冲击。工程上通常采用软启动策略:让电压给定值
Vref从0缓慢斜坡上升至目标值,从而限制启动电流。可以在仿真中用一个Ramp模块代替恒定的Vref来模拟。
5.3 扩展方向:从单闭环到更优策略
电压单闭环控制实现简单,但其动态响应性能有限,特别是应对输入电压突变或负载大范围变化时。为了提升性能,可以探索以下方向:
- 电压电流双闭环控制:这是工业界更常用的方案。内环为电流环(控制电感电流),外环为电压环。电流环响应快,可以及时限制电流、保护器件,并改善系统的动态性能。外环电压环提供电流给定。这种结构对输入电压扰动有更强的抑制能力。
- 状态反馈控制:将电感电流和输出电压作为状态变量,通过状态观测和反馈矩阵设计,可以将系统极点配置到期望位置,获得更优的动态性能。
- 滑模变结构控制:一种非线性控制策略,对参数变化和扰动不敏感,鲁棒性强。
- 数字控制算法优化:在数字实现中,可以研究预测控制、重复控制等先进算法,以进一步优化稳态精度和动态响应。
电压单闭环设计是通往这些更高级控制策略的必经之路。透彻理解本文所述的设计、仿真和调试流程,将为后续学习打下坚实的基础。建议读者在掌握单闭环设计后,尝试将其改造为双闭环控制,并对比两者在负载阶跃响应和输入电压扰动抑制上的性能差异,这将是一次极具价值的学习实践。