Boost 电路是电力电子入门必学的拓扑之一,很多同学在课本上推导公式时觉得逻辑清晰,但一上手仿真就发现模型不收敛、波形发散、输出电压和理论值对不上。本文围绕 boost 电路的 Matlab 软件仿真演示与讲解,从工作原理、参数计算、Simulink 建模到波形分析完整走一遍流程,重点是让你能把书上的公式变成能运行的仿真模型。无论你是电力电子课程设计、开关电源入门,还是准备毕业设计中的 DC-DC 变换器部分,这篇内容都可以直接参考。
1. Boost 电路是什么,为什么要做 Matlab 仿真
1.1 Boost 电路的基本概念
Boost 电路,全称是升压斩波电路(Boost Converter),属于直流-直流(DC-DC)变换器的一种。它可以把一个较低的直流电压升高到一个较高的直流电压,所以经常被叫做“升压电路”。
从电路结构上看,Boost 电路主要由以下几个核心元件组成:
- 直流输入电源 ( V_{in} )
- 储能电感 ( L )
- 开关管(通常用 MOSFET 或 IGBT)
- 二极管 ( D )
- 输出滤波电容 ( C )
- 负载电阻 ( R )
它的基本拓扑结构非常经典:输入电源先经过电感,电感后面接开关管和二极管,二极管后面接电容和负载。开关管导通时,电感储存能量;开关管关断时,电感释放能量,和输入电源一起向负载供电,从而抬高了输出电压。
1.2 为什么用 Matlab/Simulink 做仿真
Boost 电路的分析方法有公式推导和仿真验证两条路。公式推导能帮我们理解工作原理,但实际工程中,开关管的导通压降、电感的寄生电阻、二极管的恢复特性、PWM 驱动信号的频率和占空比都会影响最终输出。如果只靠手算,很难把这些因素全部考虑进去。
Matlab/Simulink 的优势在于:
- 搭建模型可视化,器件连接关系一目了然;
- 支持功率电子器件库(Simscape Electrical / SimPowerSystems);
- 可以快速修改占空比、开关频率、电感值、电容值等参数;
- 直观观察到电感电流、输出电压、开关管电压应力等波形;
- 方便从开环仿真延伸到闭环控制设计。
对于初学者来说,Simulink 仿真是理解 Boost 电路动态过程最快的方式。你可以看到电感电流在每个开关周期内的上升和下降,可以看到输出电压从零慢慢建立到稳态值的过程,这些波形远比公式更直观。
1.3 典型应用场景
Boost 电路在实际工程中非常常见,比如:
- 新能源发电系统中的 DC-DC 升压环节,太阳能电池板输出电压较低,需要通过 Boost 电路升压后接入直流母线;
- 电动汽车的 DC-DC 变换器,动力电池电压经过 Boost 升压后为电机控制器供电;
- 便携式电子设备的 LED 驱动、升压充电电路;
- PFC(功率因数校正)电路的前级升压拓扑;
- 电池供电系统中,将电池电压升到系统所需电压轨。
接下来,我们先从工作原理入手,把关键公式和参数计算搞清楚,再进行 Simulink 仿真实战。
2. Boost 电路工作原理与关键参数计算
2.1 开关管导通与关断两个状态
Boost 电路在一个开关周期内有两个工作状态。
状态一:开关管导通。
这时,输入电源 ( V_{in} ) 直接加在电感两端,电感电流线性上升,电感储存能量。二极管阳极电压被开关管拉低,阴极接输出电压,因此二极管反偏截止,负载由输出电容供电。
状态二:开关管关断。
电感电流不能突变,所以电感两端会产生反向感应电动势。此时电感电流通过二极管向输出电容和负载续流,输入电源和电感一起向负载提供能量,输出电压被抬高。
稳态工作时,电感在一个周期内“吸收的能量”和“释放的能量”相等,这就是伏秒平衡原则。
2.2 占空比与输出电压的关系
根据伏秒平衡,可以推导出 Boost 电路在连续导通模式(CCM)下的输入输出电压关系:
[ V_{out} = \frac{V_{in}}{1 - D} ]
其中,( D ) 是占空比(Duty Cycle),也就是开关管导通时间占整个开关周期的比例。
从公式可以看出,占空比越接近 1,输出电压理论上就越接近无穷大。但实际电路中,由于电感寄生电阻、开关管导通电阻、二极管压降等非理想因素,输出电压不可能无限升高。占空比过大时,电感电流可能会进入断续模式,效率也会明显下降。
补充一个实际工程中更精确的公式:
[ V_{out} = \frac{V_{in} - V_{sw} \cdot D - V_d \cdot (1-D)}{1-D} ]
其中,( V_{sw} ) 是开关管的导通压降,( V_d ) 是二极管的导通压降。仿真时如果使用理想器件,这个修正项可以忽略,但实际硬件设计时需要考虑。
2.3 电感与电容的选型计算
电感值的选取决定了电感电流纹波大小。在 CCM 模式下,电感电流纹波可以表示为:
[ \Delta I_L = \frac{V_{in} \cdot D}{f_{sw} \cdot L} ]
其中,( f_{sw} ) 是开关频率。
如果希望电感电流纹波控制在 ( \Delta I_L ) 以内,电感量可以按下面公式估算:
[ L = \frac{V_{in} \cdot D}{\Delta I_L \cdot f_{sw}} ]
输出电容主要影响输出电压纹波。输出电压纹波可以近似表示为:
[ \Delta V_{out} = \frac{I_{out} \cdot D}{f_{sw} \cdot C} ]
实际选型时还会考虑电容的 ESR(等效串联电阻)、耐压值、纹波电流承受能力等参数。在仿真阶段,我们先用理想电容验证拓扑逻辑,再根据波形评估是否需要修改参数。
2.4 CCM 与 DCM 模式
Boost 电路有两种主要工作模式:
- CCM(连续导通模式):电感电流在整个开关周期内始终大于零;
- DCM(断续导通模式):电感电流在一个周期内有一段时间降为零。
临界电感的计算公式为:
[ L_{critical} = \frac{R \cdot D \cdot (1-D)^2}{2 \cdot f_{sw}} ]
当实际电感大于临界电感时,电路工作在 CCM 模式;小于临界电感时,工作在 DCM 模式。DCM 模式下,输出电压与占空比的关系不再是简单的 ( V_{out} = V_{in}/(1-D) ),计算会复杂很多,而且动态响应特性也不同。
因此,仿真时建议先计算临界电感,确保电感值足够大,让电路工作在 CCM 模式,这样更容易验证理论公式。
3. 仿真环境准备
3.1 Matlab 与 Simulink 版本说明
本文的仿真基于 Matlab/Simulink 环境。不同版本的 Simulink 在模块库名称和界面上会有一些差异,但整体操作思路一致。
目前常见的版本有 Matlab R2021a、R2022b、R2023a、R2024a 等。新版 Simulink 将电力电子仿真模块整合在Simscape Electrical库中,Specialized Power Systems(SPS)库仍然保留。
如果你使用的是 R2022b 及更高版本,打开库浏览器后,路径一般是:
Simscape > Electrical > Specialized Power Systems > Fundamental Blocks > Power Electronics如果你的版本较旧,可能在:
SimPowerSystems > Power Electronics本文示例以常见的 Matlab R2022b 为参考环境,但核心建模思路不依赖具体版本。
3.2 需要的工具箱
做 Boost 电路仿真,主要需要以下工具箱:
| 工具箱 | 用途 |
|---|---|
| MATLAB 基础环境 | 运行脚本、参数计算 |
| Simulink | 搭建仿真模型 |
| Simscape Electrical(含 Specialized Power Systems) | 提供功率器件和电源模块 |
| Simulink Control Design(可选) | 闭环控制器设计辅助 |
如果没有安装 Simscape Electrical,可以在 MATLAB 的“附加功能”中检查并安装。安装完成后,在命令行输入powerlib可以打开电力电子元件库。
3.3 新建 Simulink 模型
在 MATLAB 命令行窗口输入:
simulink然后在 Simulink Start Page 中选择 Blank Model,新建一个空模型。保存文件时,建议命名为boost_converter_sim.slx,方便后续管理。
4. Boost 电路 Simulink 开环仿真搭建
下面开始搭建完整的 Boost 电路开环仿真模型。开环的意思是,PWM 驱动信号的占空比固定,不随输出电压变化,适合用来验证基本工作原理。
4.1 模型整体结构
Boost 电路 Simulink 模型分为三大部分:
- 主电路部分:直流电源、电感、MOSFET、二极管、电容、负载;
- 控制信号部分:PWM 脉冲发生器;
- 测量显示部分:电压电流测量模块、示波器。
主电路的电气连接顺序:
直流电源正极 → 电感 → 节点A 节点A → MOSFET 漏极 节点A → 二极管阳极 二极管阴极 → 输出电容正极 → 负载上端 MOSFET 源极 → 直流电源负极(地) 输出电容负极 → 直流电源负极(地)4.2 器件选择与参数设置
打开 Simulink 库浏览器,选择以下模块并添加到模型中:
1. 直流电压源(DC Voltage Source)
路径:Simscape > Electrical > Specialized Power Systems > Fundamental Blocks > Electrical Sources
参数设置:
- Amplitude: 24(输入直流电压 24V)
2. 电感(Series RLC Branch 或 Inductance)
路径:Elements中的Series RLC Branch
设置 Branch type 为L,电感值设置为:
[ L = \frac{V_{in} \cdot D}{\Delta I_L \cdot f_{sw}} ]
假设输入 24V、占空比 0.5、开关频率 50kHz、电感电流纹波 0.5A,则:
[ L = \frac{24 \times 0.5}{0.5 \times 50000} = 480 \mu H ]
取工程常用值 500μH。
3. MOSFET 开关管
路径:Simscape > Electrical > Specialized Power Systems > Fundamental Blocks > Power Electronics > MOSFET
参数设置:
- FET Resistance Ron: 0.1Ω(模拟导通电阻)
- Internal diode inductance: 默认即可
- Snubber resistance Rs: 较大值,例如 1e5,避免数值振荡
4. 二极管(Diode)
路径:Power Electronics > Diode
参数设置:
- Resistance Ron: 0.001Ω
- Forward voltage Vf: 0.8V(可选,如果模拟实际二极管压降)
5. 输出电容(Series RLC Branch)
设置 Branch type 为C,电容值取 100μF 或 220μF。根据输出电压纹波要求计算后可调整。
6. 负载电阻(Series RLC Branch)
设置 Branch type 为R,阻值根据输出功率确定。假设目标输出电压 48V、输出功率 50W,则:
[ R = \frac{V_{out}^2}{P_{out}} = \frac{48^2}{50} = 46.08 \Omega ]
取 46Ω。
7. PWM 脉冲发生器(Pulse Generator)
路径:Simulink > Sources > Pulse Generator
参数设置:
- Pulse type: Time based
- Time (t=0): 0
- Period: 20e-6(对应 50kHz 开关频率)
- Pulse Width: 50(占空比 50%)
- Amplitude: 1(驱动电压幅度,这里用于控制 MOSFET 的 gate 信号)
4.3 电压电流测量模块
为了观察波形,需要添加测量模块。
电压测量(Voltage Measurement)
路径:Measurements > Voltage Measurement
将其并联在输出电容两端,测量输出电压。
电流测量(Current Measurement)
路径:Measurements > Current Measurement
将其串联在电感支路,测量电感电流。
测量模块输出的信号通过Goto或者直接连线到Scope模块显示。
4.4 完整模型连接方式
Simulink 模型连接时,需要注意功率信号和控制信号的区分。MOSFET 的 g 端口接收 PWM 脉冲信号,这是一个 Simulink 普通信号;而主电路的电压电流是通过电气线路连接的。
一个完整的建模流程如下:
- 拖入直流电源,正极接电感的一端;
- 电感另一端接 MOSFET 的漏极 d,同时接二极管阳极;
- 二极管阴极接电容正极和负载上端;
- MOSFET 源极 s 接电源负极,同时作为公共地线;
- 电源负极接电容负极和负载下端;
- 将电压测量模块并联在负载两端;
- 将电流测量模块串联在电感支路上;
- 将 Pulse Generator 信号连接到 MOSFET 的 g 端;
- 添加两个 Scope,分别显示输出电压和电感电流。
为了后续读取数据方便,可以在测量信号上添加To Workspace模块,将波形数据保存到 MATLAB 工作空间。
4.5 仿真参数设置
在 Simulink 模型窗口中,打开 Simulation > Model Configuration Parameters,设置如下:
- Start time: 0
- Stop time: 0.02(仿真 20ms,大约 1000 个开关周期)
- Solver:
ode23tb或ode15s(电力电子仿真推荐刚性求解器) - Max step size: 2e-6(保证步长足够小,避免漏掉开关瞬态)
如果仿真时间过短,输出电压可能还没达到稳态;如果最大步长过大,波形会变得粗糙甚至不收敛。建议先跑 20ms,观察输出电压是否稳定在理论值附近。
5. 仿真结果分析与波形解读
5.1 输出电压波形
仿真正常运行后,打开输出电压 Scope,可以看到波形从 0 开始上升,经历一段暂态过程后逐渐趋于稳定。
理论输出电压:
[ V_{out} = \frac{24}{1 - 0.5} = 48V ]
仿真得到的稳态输出电压应该在 47V 到 48V 左右。如果略低,是因为 MOSFET 导通电阻、二极管压降和电感寄生电阻产生了一定的电压降。
如果仿真结果远低于理论值,重点检查:
- 占空比是否设置正确;
- 是否工作在 CCM 模式;
- 电感是否饱和(实际模型中不会自动饱和,但数值上可能异常);
- 求解器步长是否足够小。
5.2 电感电流波形
电感电流波形是判断工作模式的关键。CCM 模式下,电感电流呈三角波,平均值大于 0,纹波在一定范围内波动。如果电感电流降到了 0,说明电路工作在 DCM 模式。
在开环仿真中,如果想看到更明显的电感电流纹波,可以减小电感值或增大负载电阻。
5.3 开关管与二极管波形
通过示波器观察 MOSFET 漏源极电压 ( V_{ds} ),可以看到:
- 开关管导通时,( V_{ds} ) 接近 0;
- 开关管关断时,( V_{ds} ) 约为输出电压 ( V_{out} )。
理论上,MOSFET 承受的反向电压就是输出电压。这个参数在硬件设计时非常重要,直接决定开关管的耐压选型。
二极管反向电压同样是输出电压,需要留出足够的耐压裕量。
5.4 不同占空比的影响
修改 Pulse Generator 的 Pulse Width 参数,可以观察占空比对输出电压的影响。
例如:
| 占空比 D | 理论输出电压 Vout | 仿真观察结果 |
|---|---|---|
| 0.3 | 34.3V | 约 34V 左右 |
| 0.5 | 48V | 约 47V 左右 |
| 0.7 | 80V | 约 78V 左右 |
注意,占空比越大,输出电压越高,但电路损耗占比也会增加,仿真结果与理论值偏差会变大。这也是实际硬件设计中不能追求极限占空比的原因之一。
6. 闭环控制与进阶方向
6.1 电压闭环控制思路
开环仿真验证了 Boost 电路的基本工作原理,但实际工程中占空比固定会导致输出电压随负载和输入电压变化而波动。因此需要引入闭环控制:采集输出电压,与参考电压比较,经过 PI 控制器调节占空比。
电压闭环控制框图大致如下:
参考电压 Vref → 误差计算 → PI 控制器 → PWM 占空比 → Boost 主电路 → 输出电压 ↑ | └────────────────────────────────────────────────┘6.2 PI 控制器参数
在 Simulink 中,可以使用PID Controller模块。
参数设置思路:
- 先设 ( K_p ) 较小,( K_i ) 为 0,观察系统的响应速度;
- 逐步增大 ( K_p ),直到输出电压出现振荡;
- 再引入 ( K_i ),消除稳态误差;
- 最后微调参数,使动态响应和稳定性达到平衡。
一组常用的初始参考值,例如 ( K_p = 0.05 ),( K_i = 20 ),可以通过试凑法继续调整。不同电路参数下,最优 PI 参数差异较大。
6.3 闭环仿真模型扩展
闭环模型比开环模型多出以下模块:
- 电压测量模块(已有);
- 减法器(计算参考电压和实际电压的误差);
- PID Controller 模块;
- PWM 生成模块,可选择
PWM Generator或者直接用Pulse Generator配合外部占空比信号。
如果使用功能更完整的 PWM 模块,可以在Simscape > Electrical > Specialized Power Systems > Control中找到PWM Generator (DC-DC)模块。该模块可以接收占空比信号并输出驱动脉冲。
需要注意:PID 控制器输出的是占空比信号,范围应该在 0 到 1 之间。为了防止输出越界,可以在 PID 控制器后加一个Saturation限幅模块,限制输出在 0.1 到 0.9 之间,防止占空比过大导致电感电流失控。
6.4 交错并联 Boost 等进阶方向
基础 Boost 电路仿真做熟之后,可以尝试以下进阶方向,这些内容在工程应用和毕业设计中都比较有含金量:
- 交错并联 Boost 电路:两个 Boost 单元并联,相位差 180°,可以有效降低输入电流纹波,在新能源汽车和服务器电源中应用广泛;
- Boost PFC 电路:在 Boost 拓扑上加入输入电压前馈和电流内环控制,实现功率因数校正;
- 同步整流 Boost:将二极管替换为 MOSFET 作为同步整流管,降低导通损耗;
- 软开关 Boost:增加谐振电路,实现 ZVS/ZCS,降低开关损耗。
这些进阶方向都可以在基础模型上逐步增加控制环路和辅助电路来完成。
7. 常见问题与排查思路
Boost 电路仿真中,初学者常遇到一些典型问题。下面整理了一份排查对照表。
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 仿真开始后一直报错“Solver unable to converge” | 电路存在数值振荡,或模型中存在代数环 | 改用 ode23tb 求解器;设置较小的最大步长;检查是否有模块连接错误 |
| 输出电压为 0 | MOSFET 没有开通,PWM 信号未正确连接到 g 端 | 检查 Pulse Generator 是否输出信号;检查 MOSFET 的 g 端连接 |
| 输出电压远低于理论值 | 电感工作在 DCM 模式;二极管压降和开关管压降过大;占空比信号周期错误 | 计算临界电感;增大电感值;检查占空比计算方式 |
| 输出电压波形振荡严重 | PI 参数不合适;输出电容过小;负载跳变 | 先开环验证主电路,再调闭环参数;增加电容值 |
| 仿真速度非常慢 | 求解器最大步长太小,或仿真时间太长 | 适当增大最大步长;减少仿真时间;关闭高精度不必要的参数 |
| 电感电流非常大,接近无穷 | 占空比过大,或电感值过小,电容充电瞬间电流过大 | 限制占空比范围;增大电感;加软启动过程 |
| 示波器波形为一条直线 | 测量模块未正确连接;采样时间未设置 | 检查测量模块接线;设置 Scope 的采样时间 |
| “Data type mismatch” 错误 | 控制信号和电气信号混用 | 确认电气线用粗实线连接,控制信号用细线连接;必要时使用 Simulink-PS Converter |
另外,仿真中如果遇到数值不收敛,可以尝试在 MOSFET 和二极管两端并联一个较大的 snubber 电阻,例如 1e5Ω。这个电阻只是在数值上帮助仿真收敛,不影响电路稳态特性。
8. 工程实践建议
8.1 仿真模型从小到大逐步验证
不要一上来就搭一个完整的闭环 Boost 模型。建议按下面步骤循序渐进:
- 先搭纯开环理想器件模型,验证拓扑是否正确;
- 加入非理想参数,比如 MOSFET 导通电阻、二极管压降,观察效率变化;
- 再引入闭环控制,先调 PI 参数,再调保护逻辑;
- 最后通过参数扫描(Parameter Sweep)分析不同输入电压、负载条件下的系统表现。
8.2 参数设计要有依据
许多初学者在模型中随意填电容值、电感值,导致波形看起来“正常”但实际参数不合理。这里建议:
- 电感值保证 CCM 模式,并有 20%-30% 的裕量;
- 电容值根据输出电压纹波要求计算;
- 开关频率不宜过低,否则电感体积会很大;也不宜过高,否则开关损耗增加。
8.3 仿真和硬件设计的区别
仿真中可以使用理想器件,但硬件设计中还必须注意:
- 开关管耐压至少是输出电压的 1.5 倍以上,建议 2 倍裕量;
- 二极管的恢复时间要短,否则反向恢复会导致开关损耗增加;
- 电感要关注饱和电流,防止磁饱和导致电感量急剧下降;
- 输出电容要关注 ESR 和纹波电流承受能力。
8.4 保护电路设计
在闭环模型加入限幅是第一步,实际设计中还需要考虑:
- 过压保护:输出电压超过阈值时关断 PWM;
- 过流保护:电感电流或输入电流超过阈值时关断 PWM;
- 软启动:启动时占空比从 0 逐渐增大,避免浪涌电流;
- 二极管 RC 吸收电路:部分设计会在二极管两端并联电阻电容,抑制关断尖峰,这在热词中提到的“boost二极管两端并联rc吸收电路”就是相关做法。
在仿真中,可以先用Relay模块或Saturation模块实现简单的保护逻辑,再用Stateflow实现复杂的状态机控制策略。
9. 总结与学习路线
到这里,Boost 电路的 Matlab 软件仿真演示与讲解就全部完成了。我们做了几件事:从 Boost 电路的基本工作原理出发,推导了占空比和输出电压的关系;设计了电感、电容的关键参数;在 Simulink 中完整搭了一套开环仿真模型,并分析了输出电压、电感电流、开关管电压等波形;最后介绍了闭环控制思路和常见问题排查方法。
如果后面要往更深的方向学习,建议按这个顺序推进:
- 先自己动手把开环模型跑通,改几个参数,观察波形变化规律;
- 在此基础上增加电压闭环 PI 控制,理解反馈系统的调节过程;
- 尝试用
bode和margin做控制器的频域设计,而不是纯靠试凑; - 再仿真 Buck 电路、Boost-Buck 电路,对比三种基本拓扑的异同点;
- 条件允许的话,把仿真参数迁移到实验板,对比仿真与实测波形的差异。
仿真跑通只是第一步,能解释波形、能修改参数、能排查故障,才算是真正掌握了 Boost 电路。你可以打开 Matlab,按文章里的参数先搭一个最简单的开环模型,看到 48V 输出电压稳定在示波器上时,那种感觉和只看课本是完全不一样的。如果过程中遇到报错或波形不对,别急着删模型,按第 7 节的排查表一步步查,大多数问题都能定位到原因。