
在电力电子和开关电源的设计与仿真中Boost电路因其能够将输入电压升高而广泛应用。然而对于初学者或需要快速验证控制策略的工程师来说面对复杂的双闭环电压外环、电流内环控制设计常常感到无从下手调试过程也颇为耗时。本文将聚焦于一种更易入门和理解的控制方案——基于MATLAB/Simulink的Boost电路电压单闭环控制设计并设定一个关键约束占空比D保持不变。我们将深入探讨其工作原理、在连续导通模式CCM下的特性并通过一个完整的、可复现的Simulink仿真案例带你一步步搭建模型、分析波形并理解这种简化控制方式的适用场景与局限性。无论你是电力电子的学生还是希望快速上手电源仿真的工程师本文都能提供一条清晰的实践路径。1. Boost电路与单闭环控制核心概念在深入设计之前我们有必要厘清几个核心概念这有助于理解我们“为什么要这么做”以及“能做到什么程度”。1.1 Boost电路基本原理Boost电路又称升压斩波电路是一种DC-DC变换器。其核心原理是通过控制开关管如MOSFET的周期性通断利用电感储能和释放能量的特性使输出电压高于输入电压。一个典型的CCM模式Boost电路在一个开关周期内经历两个阶段开关管导通阶段输入电源对电感充电电感电流线性上升二极管反偏截止负载由输出电容供电。开关管关断阶段电感释放能量其感应电动势与输入电源串联共同通过二极管向负载和电容供电电感电流线性下降。输出电压Vo与输入电压Vin、占空比D的关系在理想、CCM条件下为Vo Vin / (1 - D)由此可见通过调节占空比D(0D1)即可实现对输出电压的调节。D越大输出电压越高。1.2 什么是电压单闭环控制在开关电源控制中闭环控制旨在使系统的输出量如电压稳定在期望的设定值不受输入电压波动或负载变化的影响。双闭环控制这是高性能电源的常见策略。内环电流环快速控制电感电流提高系统动态响应和稳定性外环电压环则保证输出电压的精度。两者协同工作性能优越但设计复杂。电压单闭环控制顾名思义只采用一个电压反馈环。控制器通常是PI控制器直接根据输出电压与参考电压的误差计算并输出所需的占空比信号驱动开关管。其结构简单易于理解和实现。1.3 “占空比D不变”的设定与意义本文标题中“占空比D不变”是一个非常重要的前提条件。在标准的电压单闭环控制中占空比D是控制器的输出是变化的用以应对各种扰动。而我们将要探讨的是一种特殊情况或简化模型在整个仿真或运行过程中占空比D被设定为一个固定值不再由PI控制器动态调节。这实际上意味着我们暂时关闭了闭环的动态调节功能或者将其视为闭环系统设计中的一个静态工作点分析。这样做的意义在于简化分析剥离动态控制的复杂性让我们可以单独、清晰地观察在某一固定占空比下Boost电路的稳态特性、电压纹波、电流波形等。开环特性验证在搭建完整的闭环系统前先验证功率电路部分主拓扑在开环状态下的行为是否正确这是电力电子仿真的一个重要步骤。理解极限帮助我们理解如果没有闭环控制电路在输入扰动或负载阶跃变化时输出电压将如何失控从而深刻体会闭环控制的必要性。接下来我们将在一个具体的仿真环境中实践这一概念。2. 仿真环境准备与模型搭建我们将使用MATLAB R2021a或相近版本如R2020b-R2023b中的Simulink和Simscape Electrical以前称为SimPowerSystems工具箱来完成本次设计。请确保你的MATLAB已安装该工具箱。2.1 创建新模型与基本参数设定首先我们定义一组电路参数这将是整个仿真的基础输入电压 Vin: 12 V期望输出电压 Vo_ref: 24 V (用于计算理论占空比)开关频率 Fsw: 50 kHz电感 L: 100 µH输出电容 C: 220 µF负载电阻 R_load: 10 Ω根据CCM理想公式为达到24V输出所需理论占空比D_theory 1 - Vin / Vo_ref 1 - 12/24 0.5。 我们将这个固定的占空比D 0.5用于仿真。打开MATLAB在命令窗口输入simulink并回车新建一个空白模型保存为Boost_OpenLoop_FixedD.slx。在模型中我们通过添加注释或使用Constant块来明确这些参数便于后续修改。可以将参数封装在一个MATLAB Function块或使用Model Workspace初始化但为简单起见我们直接在相关模块的参数框中设置。2.2 搭建固定占空比信号源由于占空比固定我们需要一个能产生固定占空比PWM信号的源。从Simulink - Sources库中拖入一个Constant块。将其值设置为0.5即50%占空比。这个常数块代表固定的占空比信号D。但是开关管需要的是PWM脉冲波而非一个常数。我们需要一个比较器来生成PWM。拖入一个Relational Operator块关系运算设置为。从Simulink - Sources库中拖入一个Repeating Sequence块来生成三角载波。双击它进行设置Time values:[0, 1/Fsw](即[0, 2e-5])Output values:[0, 1]这将产生一个频率为50kHz幅值在0到1之间变化的三角波。连接线路Constant (0.5)连接到Relational Operator的“”端口Repeating Sequence (三角波)连接到“-”端口。Relational Operator的输出即为PWM信号当三角波小于0.5时输出1高电平否则输出0低电平。2.3 搭建Boost主功率电路使用Simscape Electrical库中的元件来搭建电路。在Simulink库浏览器中找到Simscape / Electrical / Specialized Power Systems / Fundamental Blocks。依次拖入以下元件并按下图所示连接Electrical Reference(地)DC Voltage Source(直流电压源)设置为12V。Series RLC Branch仅选择电感L参数设为100e-6H。MOSFET (Ideal)或IGBT (Ideal)选择默认参数。其门极G接收PWM信号。Diode (Ideal)选择默认参数。Series RLC Branch仅选择电容C参数设为220e-6F。Series RLC Branch仅选择电阻R参数设为10Ohm。连接方式电压源正极 - 电感 - MOSFET的漏极(D)/IGBT的集电极(C)。MOSFET的源极(S)/IGBT的发射极(E)接地。二极管阳极接在电感与MOSFET连接点阴极接输出电容正端。输出电容与负载电阻并联。电压源负极、电容负端、负载另一端共同接地。关键步骤PWM信号来自关系运算块的输出需要连接到MOSFET/IGBT的门极G。由于Simulink信号Simulink Port不能直接驱动Simscape物理网络Simscape Port必须使用Simulink-PS Converter模块在Simscape/Utilities中进行转换。将PWM信号先通过此转换器再连接到开关管的门极。2.4 添加测量与示波器为了观察结果我们需要测量输入电压、输出电压和电感电流。在需要测量的点如电压源两端、电容两端、电感支路添加Voltage Measurement和Current Measurement模块。将这些测量模块的输出通过PS-Simulink Converter模块转换为Simulink信号。拖入多个Scope示波器模块分别连接这些信号以便观察。建议至少有一个Scope同时显示输出电压和PWM驱动信号。为了得到更精确的数值也可以将信号连接到To Workspace模块将数据保存到MATLAB工作区便于后续用脚本分析。完成后的简化模型结构图如下所示文字描述[固定占空比Constant] -- [Relational Operator ()] -- [Simulink-PS Converter] -- [MOSFET Gate] [三角波发生器] -------^ [12V DC Source] - [Inductor] - [MOSFET Drain] | | [Diode] - [Capacitor] // [Load Resistor] |______________________|所有接地端连接在一起。3. 仿真配置与稳态运行分析模型搭建完成后正确的仿真配置是获得准确结果的关键。3.1 仿真参数设置在Simulink模型窗口点击Modeling选项卡下的Model Settings或按CtrlE。Solver 选择对于电力电子仿真推荐使用变步长求解器以兼顾速度和精度。在Solver面板中Type选择Variable-step。Solver选择ode23tb(stiff/TR-BDF2) 或ode15s(stiff/NDF)。这些求解器更适合处理开关动作带来的刚性系统。仿真时间设置Stop time为0.01即10ms。这足以让电路从零状态启动并进入稳态。步长设置为了清晰捕捉开关细节需要设置最大步长。在Solver details中将Max step size设置为开关周期的1/50到1/100即2e-5 / 100 2e-7秒0.2 µs。这能确保每个开关周期都有足够多的采样点。初始状态保持为零状态启动即可。3.2 运行仿真与观察波形点击运行按钮。仿真结束后双击连接了输出电压和PWM信号的示波器。你应该观察到以下现象启动过程输出电压从0V开始经过几个开关周期的振荡逐渐上升。稳态波形大约在2-3ms后输出电压趋于稳定。在稳态下输出电压Vo其平均值会在某个值附近波动。根据我们的参数Vin12V D0.5 考虑元件非理想性平均值可能接近但略低于24V。你会看到明显的纹波电压这是由电容的充放电造成的。PWM驱动信号一个标准的50kHz、占空比50%的方波。电感电流IL在CCM模式下电感电流始终大于零波形是叠加在直流分量上的三角波。三角波的上升斜率是Vin/L下降斜率是(Vo - Vin)/L。下图展示了理想的稳态波形示意图需在仿真中实际观察PWM Gate: HIGH |-----| |-----| | | | | LOW | |-----| |-----... t0 t1 t2 t3 (周期 T1/Fsw) Inductor Current IL (CCM): /| /| /| / | / | / | / | / | / | / | / | / | / |/ |/ |/... t0 t1 t2 t3 Output Voltage Vo (with ripple): ------- ------- | | | | | | DC Avg ------- ------- -------... | | | t0 t1 t2(注此图为ASCII示意实际应以仿真Scope波形为准)3.3 关键数据测量与理论验证我们可以使用MATLAB命令或Scope的数据游标来测量关键值输出电压平均值在Scope中使用Signal Statistics测量或读取稳态后一段时间内的平均值。电压纹波峰峰值测量输出电压波形的最大值与最小值之差。电感电流纹波峰峰值计算公式为ΔIL (Vin * D) / (Fsw * L)。代入我们的参数ΔIL (12 * 0.5) / (50000 * 100e-6) 1.2 A。在仿真中测量三角波的峰峰值应与此计算值接近。输出电压纹波理论值近似公式为ΔVo (Io * D) / (Fsw * C)其中Io Vo/R_load。代入计算Io ≈ 24/102.4AΔVo ≈ (2.4 * 0.5) / (50000 * 220e-6) ≈ 0.109 V。仿真测量值应与此量级相当。对比与思考将仿真测得的平均输出电压与理论值Vin/(1-D)24V对比。由于二极管、开关管导通压降等非理想因素我们使用了理想模型所以影响很小以及电容ESR等因素仿真值可能略低。这验证了在固定占空比下电路确实工作在一个确定的稳态点。4. 从“固定占空比”到“电压单闭环”的演进前面的仿真展示了Boost电路在开环、固定占空比下的工作情况。这是一个重要的基准。现在我们在此基础上引入电压单闭环控制让占空比D动起来以实现稳压。4.1 引入电压反馈与PI控制器我们将修改模型实现真正的电压单闭环控制。测量输出电压保留之前的Voltage Measurement模块。设定参考电压添加一个Constant块值设为24代表我们的目标电压Vo_ref。计算误差添加一个Sum求和块配置为-参考电压为正反馈电压为负输出误差e Vo_ref - Vo。添加PI控制器从Simulink / Continuous库中拖入PID Controller块。双击它将Controller设置为PIForm设置为Parallel。初步设置Proportional (Kp)为0.01Integral (Ki)为10。这些参数需要后续整定此处仅为起点。PID控制器的输出限幅非常重要因为占空比必须在0到1之间通常还需留有余量。双击PID块在Output Saturation选项卡中设置Lower limit为0.05Upper limit为0.85。这避免了占空比跑到不可行的区域。替换信号源删除之前产生固定占空比的Constant (0.5)块和Relational Operator块。将PI控制器的输出连接到原来Relational Operator的位置与三角波比较生成PWM。4.2 闭环系统仿真与动态测试保持其他电路参数和仿真设置不变再次运行仿真。观察与开环的区别稳态精度在负载电阻不变的情况下输出电压的平均值应被精确调节到24V误差非常小由PI积分环节消除静差。占空比信号此时驱动开关管的PWM信号的占空比不再是固定的0.5而是一个由PI控制器动态调整的值。在稳态时它会稳定在某个值可能接近但略高于0.5以补偿电路中的微小压降。动态响应测试可选为了测试闭环系统的性能我们可以模拟一个扰动。负载阶跃将负载电阻R_load用一个Controlled Current Source或通过开关切换的并联电阻来模拟阶跃变化。例如在0.05s时让负载电流从2.4A阶跃到4.8A等效电阻从10Ω变为5Ω。观察输出电压的跌落和恢复过程。性能好的PI参数电压跌落小恢复快且超调小。输入电压阶跃将输入电压源改为一个阶跃变化的源例如从12V阶跃到10V。观察系统如何调整占空比以维持输出24V稳定。4.3 PI参数整定思路初始设定的PI参数Kp0.01 Ki10很可能不是最优的。整定PI参数是闭环设计的核心。可以遵循以下经验步骤先调P比例将Ki设为0逐渐增大Kp。Kp太小时系统响应慢调节能力弱Kp太大时系统会产生振荡甚至不稳定。找到系统开始出现轻微振荡的临界Kp值然后取其为一半到三分之二作为初步Kp。后调I积分在初步Kp的基础上逐渐增加Ki。Ki用于消除静差但过大的Ki会引入相位滞后导致系统超调增大、响应变慢、稳定性变差。从小Ki开始增加直到静态误差在可接受范围内且动态响应如负载阶跃恢复没有过度的振荡或超调。联合微调在负载阶跃和输入阶跃测试下微调Kp和Ki在响应速度、超调量和稳定性之间取得平衡。注意对于开关电源这种离散系统更严谨的方法是使用频域法如环路增益的波特图分析进行设计但基于仿真测试的试凑法对于理解单闭环原理和快速验证是有效的入门手段。5. 常见仿真问题与排查思路在搭建和运行此类仿真时你可能会遇到以下问题问题现象可能原因排查思路与解决方案仿真报错代数环 (Algebraic loop)信号回路中不存在离散模块或延迟导致Simulink无法计算。在电压闭环中从输出Vo到PI再到PWM比较如果所有环节都是直通的就容易形成代数环。1. 在PI控制器后添加一个小的延迟模块Memory或Unit Delay。2. 在PID控制器设置中启用“抗饱和Anti-windup”机制这通常会引入内部状态打破纯代数环。3. 检查模型确保Simulink信号域和Simscape物理网络域之间的转换器Simulink-PS Converter, PS-Simulink Converter使用正确。输出电压完全不对或为01. 电路连接错误特别是二极管方向、开关管类型或接地。2. PWM信号未正确连接到开关管门极忘记加Simulink-PS Converter。3. 占空比限制过严如上限0.5但实际需要0.6才能升压导致控制器饱和。1. 仔细检查电路拓扑与标准Boost电路图比对。2. 用Scope查看PWM信号是否确实送到了开关管门极并且是高电平时开关管导通。3. 放宽PID控制器的输出限幅如0.05-0.95观察占空比输出值是否达到限幅值。仿真速度极慢1. 仿真步长设置过小。2. 使用了不适合的求解器如ode45。3. 电路中有非常小的时间常数如极小电容或非常大的时间常数并存构成刚性系统。1. 尝试将最大步长适当调大例如设为开关周期的1/20 (1e-6)。2.务必切换为刚性求解器如ode23tb或ode15s。3. 简化模型移除不必要的测量和示波器或将部分Scope的采样率降低。电感电流为负或断续1. 负载过轻电阻太大电路进入了断续导通模式DCM。2. 电感值L太小无法维持CCM。1. 确认电路是否设计在CCM。计算CCM临界电感L_critical (R_load * (1-D)^2) / (2*Fsw)。我们的参数下L_critical (10*(1-0.5)^2)/(2*50000)25e-6 H我们用的100µH 25µH因此是CCM。如果负载R_load变大临界电感会增大可能导致进入DCM。2. 减小负载电阻或增大电感值确保工作在CCM。电压纹波远大于理论计算1. 输出电容C的等效串联电阻ESR过大。在仿真中如果使用了非理想电容模型其ESR参数会影响纹波。2. 测量点包含了线路寄生电感的影响。1. 检查电容模型参数。对于理想电容ESR为0纹波应主要取决于容值。可以尝试在电容上串联一个小电阻模拟ESR观察纹波变化。2. 确保电压测量点是直接跨接在电容两端。6. 工程实践建议与扩展思考掌握了基础的仿真后以下建议可以帮助你将知识应用于更实际的场景。6.1 从仿真到实际电路的考量仿真模型基于理想元件而实际电路设计需考虑更多因素开关器件非理想特性MOSFET的导通电阻Rds(on)、二极管的正向压降Vf和反向恢复时间。这些会带来导通损耗影响效率并使实际输出电压低于理想值。在Simulink中可以使用更详细的器件模型来评估。寄生参数PCB走线电感、电容的ESR和ESL。这些寄生参数会影响高频开关噪声、纹波和系统稳定性。驱动电路PWM信号需要经过驱动芯片放大后才能有效驱动MOSFET。驱动能力不足会导致开关速度慢损耗增加。采样与延迟实际单片机或DSP采样输出电压、执行PI计算、更新PWM占空比都存在延迟。这个计算延迟和PWM更新延迟会在频域中引入相位滞后影响环路稳定性。仿真时可以在反馈回路中加入一个小延迟模块来模拟。保护功能实际电源必须包含过压保护、过流保护、短路保护等。这些可以在控制算法中实现。6.2 单闭环控制的局限性本文重点介绍的电压单闭环控制有其固有的优缺点优点结构简单易于理解和实现不需要采样噪声较大的电感电流对于性能要求不高的场合足够。缺点动态响应慢由于电压环的带宽受到输出电容和负载的影响通常较低因此对负载突变或输入电压突变的响应速度有限。没有电流保护电感电流是开环的如果负载短路或突变电感电流可能急剧上升而损坏开关管因为电压环的响应跟不上电流的变化。右半平面零点RHPZ问题Boost拓扑在CCM下存在一个右半平面零点它限制了电压环可达到的带宽。过高的环路增益会导致不稳定。因此在要求高动态性能、需要严格电流保护的场合如CPU供电、电池充电峰值电流模式控制Peak Current Mode Control或平均电流模式控制双闭环是更优的选择。它们通过引入快速的电流内环解决了上述大部分问题。6.3 下一步学习方向基于本文的实践你可以继续深入探索双闭环控制设计在现有模型上增加电感电流采样设计电流内环。理解电流环如何提高响应速度并实现限流保护。频域分析与补偿器设计学习使用MATLAB的Control System Toolbox或Simulink Control Design进行环路增益的波特图分析科学地设计PI或PID补偿器而不是单纯试凑。数字控制实现将模拟的PI控制器离散化如使用位置式或增量式PID算法并在一个简单的单片机模型如用MATLAB Function块实现中实现理解数字控制的采样和量化效应。不同工作模式分析修改参数增大负载电阻、减小电感让电路工作在断续导通模式DCM观察其波形和控制特性的变化。其他拓扑将同样的单闭环控制思想应用到Buck降压、Buck-Boost升降压等电路上加深对开关电源控制共性的理解。通过这个从“固定占空比”开环分析到“电压单闭环”动态控制的完整流程你不仅学会了如何在Simulink中搭建和调试一个Boost电路更重要的是理解了闭环控制的基本构成和作用。记住仿真只是第一步它帮助你验证想法、理解原理。真正的挑战在于理解仿真与现实的差距并将这些知识运用到实际PCB设计、元器件选型和控制器编程中去。建议你反复修改电路参数、PI参数甚至引入不同的扰动观察系统的行为这是掌握电源设计最有效的方法。