基于四开关Buck-Boost的Simulink仿真模型
摘要:四开关Buck-Boost(Four-Switch Buck-Boost,FSBB)变换器是一种能够在输入电压高于、等于或低于输出电压时均保持稳定输出的非反相DC-DC拓扑。本文基于实际构建的Simulink仿真模型(FSBB.slx),从电路拓扑、工作原理、主电路参数、控制策略到PWM驱动逻辑,进行系统性讲解,适合作为电力电子仿真入门与进阶的参考资料。
目录
- FSBB变换器概述
- 电路拓扑与工作模式
- Simulink模型总体架构
- 主电路模块详解
- 闭环控制子系统(closedloop)
- [PWM发生器子系统(pwm generator)](#PWM发生器子系统(pwm generator))
- 关键信号与测量
- 仿真参数配置
- 模型亮点与工程意义
- 总结与展望
FSBB变换器概述
在许多实际应用场景中(如电池储能系统、车载DC-DC、光伏MPPT),输入电压的变化范围宽泛,可能既高于又低于所需的输出电压。传统的Buck变换器只能降压,Boost变换器只能升压,而传统的反相Buck-Boost虽然兼具升降压能力,却会产生极性翻转的输出,不利于直接接入系统。
四开关Buck-Boost(FSBB)变换器通过引入四个可控开关(通常为MOSFET),解决了以上所有问题:
| 特性 | 传统Buck | 传统Boost | 反相Buck-Boost | FSBB |
|---|---|---|---|---|
| 升压能力 | ✗ | ✓ | ✓ | ✓ |
| 降压能力 | ✓ | ✗ | ✓ | ✓ |
| 输出极性 | 正 | 正 | 反 | 正 |
| 开关数量 | 1 | 1 | 1 | 4 |
| 控制复杂度 | 低 | 低 | 低 | 中等 |
本仿真模型的设计目标是:将240V直流输入稳压为300V直流输出,实现升压比约为1.25的非反相升降压变换。
电路拓扑与工作模式
基本拓扑
FSBB的主电路由以下部分组成:
Vin (+) ──┬── S1(上桥臂) ──┬──── L ────┬── S3(上桥臂) ──┬── Vout (+)
│ │ │ │
S2(下桥臂) │ S4(下桥臂) Co (负载电容)
│ │ │ │
Vin (-) ──┴────────────────┘ └───────────────┴── Vout (-)
- S1 / S2:构成输入侧半桥(Buck桥臂)
- S3 / S4:构成输出侧半桥(Boost桥臂)
- L:储能电感(传递能量的核心元件)
- Co:输出滤波电容(稳定输出电压)
三种工作模式
根据输入/输出电压的相对大小,FSBB可在三种模式下工作:
① Buck模式(降压,Vin > Vout)
- S3 常通,S4 常断
- S1/S2 互补PWM调制
- 电路等效为普通Buck变换器
② Boost模式(升压,Vin < Vout)
- S1 常通,S2 常断
- S3/S4 互补PWM调制
- 电路等效为普通Boost变换器
③ Buck-Boost模式(升降压,Vin ≈ Vout)
- S1/S2 和 S3/S4 同时进行PWM调制
- 两对开关协调工作,输出与输入极性相同
- 本仿真模型主要工作于此模式
本模型输入为240V,输出目标为300V(Vin < Vout),主要工作于Boost模式,由闭环控制器自动调节占空比维持输出稳定。
Simulink模型总体架构
根据对 FSBB.slx 模型文件(基于MATLAB Simscape Electrical / Specialized Power Systems工具箱构建)的解析,顶层模型由以下五大模块构成:
┌──────────────────────────────────────────────────────────────┐
│ FSBB.slx 顶层 │
│ │
│ ┌────────────┐ ┌─────────────────────────────────────┐ │
│ │ DC Voltage │ │ 主电路 (Power Circuit) │ │
│ │ Source │───▶│ S1 S2 S3 S4 (4×MOSFET) │ │
│ │ Vin=240V │ │ L=51.3μH Co=100μF RL=180Ω │ │
│ └────────────┘ └───────────────┬─────────────────────┘ │
│ │ Vo (测量) │
│ ┌──────────▼──────────┐ │
│ │ closedloop 子系统 │ │
│ │ (PI控制器) │ │
│ │ Vref=300V │ │
│ └──────────┬──────────┘ │
│ │ Ds1 (占空比) │
│ ┌──────────▼──────────┐ │
│ │ pwm generator 子系统 │ │
│ │ fs=150kHz, 三角波 │ │
│ │ 输出S1/S2/S3/S4驱动 │ │
│ └─────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
主电路模块详解
直流电源
DC Voltage Source: Amplitude = 240 V
采用 Simscape Electrical 中的 powerlib/Electrical Sources/DC Voltage Source,仿真理想直流电压源,代表电池组或整流后的直流母线输入。
四个MOSFET开关(S1~S4)
matlab
% 每个MOSFET的寄生参数(来自模型 InstanceData)
Ron = 0.1 Ω % 导通电阻
Lon = 0 H % 导通电感(忽略)
Rd = 0.01 Ω % 反向二极管阻抗
Vfd = 0 V % 二极管正向压降(理想)
Rs = 1e5 Ω % 关断并联电阻(缓冲)
Cs = inf % 关断并联电容(理想)
四个开关均引用 powerlib 中的 MOSFET 模型,内置反并联二极管,Measurements = on(电压测量已启用),可直接输出 MOSFET 电压信号用于示波器观测(信号名:Vds1 ~ Vds4)。
储能电感 L
matlab
BranchType = 'L' % 纯电感支路
Inductance = 51.3e-6 H % L = 51.3 μH
Resistance = 1 Ω % 等效串联电阻(ESR)
Measurements = 'Branch current' % 输出电感电流 IL
电感选取 51.3 μH,在150kHz开关频率下能够保证连续导通模式(CCM),电流纹波控制在合理范围内。
电感电流纹波估算(Boost模式下):
Δ i L = V i n ⋅ D f s ⋅ L = 240 × ( 1 − 240 / 300 ) 150000 × 51.3 × 10 − 6 ≈ 1.24 A \Delta i_L = \frac{V_{in} \cdot D}{f_s \cdot L} = \frac{240 \times (1 - 240/300)}{150000 \times 51.3 \times 10^{-6}} \approx 1.24 \text{ A} ΔiL=fs⋅LVin⋅D=150000×51.3×10−6240×(1−240/300)≈1.24 A
输出滤波电容 Co
matlab
BranchType = 'C'
Capacitance = 100e-6 F % Co = 100 μF
Resistance = 1e-3 Ω % ESR = 1 mΩ(近似理想)
并联在 180Ω 负载电阻上,输出电压纹波估算:
Δ V o u t = Δ i L 8 ⋅ f s ⋅ C o = 1.24 8 × 150000 × 100 × 10 − 6 ≈ 10.3 mV \Delta V_{out} = \frac{\Delta i_L}{8 \cdot f_s \cdot C_o} = \frac{1.24}{8 \times 150000 \times 100 \times 10^{-6}} \approx 10.3 \text{ mV} ΔVout=8⋅fs⋅CoΔiL=8×150000×100×10−61.24≈10.3 mV
纹波极小,输出电压质量优异。
负载电阻
matlab
BranchType = 'R'
Resistance = 180 Ω % 额定负载
额定输出功率: P = V o u t 2 / R L = 300 2 / 180 = 500 W P = V_{out}^2 / R_L = 300^2 / 180 = 500 \text{ W} P=Vout2/RL=3002/180=500 W
附加缓冲电容(Snubber)
模型中还包含四个小容量电容(100pF),分别并联在开关节点上,用于吸收开关动作产生的电压尖峰,保护MOSFET器件。
闭环控制子系统(closedloop)
子系统接口
输入端口:
① Vout ------ 实测输出电压(来自 Voltage Measurement)
② Vref ------ 参考电压(300V,来自 Constant1)
输出端口:
① Ds1 ------ 占空比(送入PWM发生器)
PI控制器结构
闭环控制子系统实现了经典的**比例-积分(PI)**控制器:
Vref ─────────────────────────────────┐
▼
Vout ──────────────────────────►(−) Add ──► 误差 e
│
├──► [Kp] ──────────────────────────┐
│ ▼
└──► [Ki] ──► [Integrator] ──────► Add1 ──► Saturation ──► Ds1
从模型参数中提取的控制器系数:
matlab
Kp = Gain = 0.001 % 比例增益
Ki = Gain1 % 积分增益(通过积分器实现)
% 输出限幅(占空比约束)
Saturation:
UpperLimit = 0.9 % 最大占空比 90%
LowerLimit = 0.1 % 最小占空比 10%
占空比饱和限制的工程意义:
- 上限 0.9:防止电感进入极端工作状态,保留死区时间裕量
- 下限 0.1:确保电路始终有最小能量传输,防止输出电压骤降
PI控制器的传递函数为:
D ( s ) = K p + K i s = K p ⋅ s + K i / K p s D(s) = K_p + \frac{K_i}{s} = K_p \cdot \frac{s + K_i/K_p}{s} D(s)=Kp+sKi=Kp⋅ss+Ki/Kp
电压反馈归一化
注意到模型中有归一化增益(Gain2 ~ Gain5,值均为 1/240),用于将MOSFET电压测量值归一化处理,提升控制器数值稳定性。
PWM发生器子系统(pwm generator)
子系统接口
输入:Ds1 ------ 来自闭环控制器的占空比信号(0.1 ~ 0.9)
输出:S1、S2、S3、S4 ------ 四路MOSFET驱动信号(0/1逻辑)
三角载波生成
PWM发生器通过 Repeating Sequence 模块生成三角载波:
matlab
rep_seq_t = [0, 0.5/150000, 1/150000] % 时间节点(半周期为3.33μs)
rep_seq_y = [0, 1, 0] % 幅值节点(0→1→0)
由此确定:
- 开关频率 : f s = 150 , 000 Hz = 150 kHz f_s = 150,000 \text{ Hz} = 150 \text{ kHz} fs=150,000 Hz=150 kHz
- 开关周期 : T s = 1 / 150000 ≈ 6.67 μs T_s = 1/150000 \approx 6.67 \text{ μs} Ts=1/150000≈6.67 μs
- 载波波形:对称三角波,幅值范围 [0, 1]
驱动信号逻辑
通过比较器(Relational Operator)将占空比 Ds1 与三角波比较,生成基本 PWM 脉冲,再经过 逻辑运算模块 (Logical Operator × 6)生成互补驱动信号,并插入 死区延时 (Transport Delay × 5)防止同桥臂上下管直通:
三角波 ──┐
├──► 比较器 ──► 基础PWM
Ds1 ───┘
基础PWM ──► 逻辑NOT/AND ──► S1(上桥臂)
──► S2(下桥臂, 互补+死区)
──► S3(上桥臂)
──► S4(下桥臂, 互补+死区)
数据类型转换模块(Data Type Conversion × 8)负责将逻辑信号(boolean)转换为 double 类型,满足 Simscape Electrical MOSFET 门极信号的输入要求。
关键信号与测量
模型通过 Goto/From 标签系统在各模块间传递信号,主要观测量如下:
| 信号标签 | 类型 | 来源模块 | 物理意义 |
|---|---|---|---|
Vo |
电压 | Voltage Measurement | 输出电压(目标300V) |
IL |
电流 | Series RLC Branch (L) | 电感电流(CCM/DCM判断) |
S1 |
逻辑 | PWM Generator | MOSFET S1 驱动信号 |
S2 |
逻辑 | PWM Generator | MOSFET S2 驱动信号 |
S3 |
逻辑 | PWM Generator | MOSFET S3 驱动信号 |
S4 |
逻辑 | PWM Generator | MOSFET S4 驱动信号 |
Vds1 |
电压 | MOSFET S1 BusSelector | S1漏源极电压 |
Vds2 |
电压 | MOSFET S2 BusSelector | S2漏源极电压 |
Vds3 |
电压 | MOSFET S3 BusSelector | S3漏源极电压 |
Vds4 |
电压 | MOSFET S4 BusSelector | S4漏源极电压 |
模型配置了 3个示波器(Scope、Scope1、Scope2),可分别观测输出电压动态响应、电感电流波形和MOSFET驱动信号。
模型与运行结果




仿真参数配置
根据从 configSet0.xml 中提取的求解器配置:
| 参数 | 值 | 说明 |
|---|---|---|
| 仿真起止时间 | 0 ~ 0.05 s | 共50ms,覆盖系统启动与稳态过程 |
| 固定步长 | 1e-7 s = 100 ns | 远小于开关周期(6.67μs),保证仿真精度 |
| 求解器 | VariableStepAuto | 自适应变步长,配合固定步长下限 |
| 物理建模工具箱 | Power System Blocks | Simscape Electrical 专业版 |
| 仿真模式 | Discrete(离散域) | powergui 设置为离散模式,采样时间1e-8s |
| 离散求解算法 | Tustin/Backward Euler | 适合电力电子开关仿真的混合积分算法 |
仿真精度说明 :固定步长设为 100 ns,约为开关周期(6.67 μs)的 1/67,满足奈奎斯特采样定理对开关动作高频谐波的捕获需求,同时保证闭环控制器的数字实现精度。
模型亮点与工程意义
1. 完整的闭环控制链路
本模型不仅包含主电路,还实现了从"电压采样 → PI调节 → 占空比生成 → PWM驱动 → 开关动作"的完整控制闭环,具备完整的工程可用性。
2. 真实的器件参数建模
MOSFET 的导通电阻(Ron = 0.1Ω)、缓冲电路(Rs、Cs)以及电感ESR均在模型中有所体现,仿真结果更贴近实际硬件行为,而非理想化分析。
3. 死区保护机制
PWM 发生器中引入了 Transport Delay 模块实现硬件死区,防止同桥臂上下管同时导通(短路),这是工程实践中不可缺少的保护机制。
4. 信号路由清晰化
大量使用 Goto/From 标签代替直接连线,有效减少了模型顶层的信号线交叉,结构层次清晰,便于维护和扩展。
5. 参数化设计
输出电容 Co 以变量名(Co)而非硬编码数值的形式存在于部分支路中,便于在MATLAB工作空间中统一修改仿真参数,提升模型的复用性。
总结与展望
本文基于 FSBB.slx 仿真模型,系统介绍了四开关Buck-Boost变换器的:
- 电路拓扑:两个半桥 + 电感 + 输出滤波,240V升压至300V / 500W
- 工作原理:Boost模式下的闭环稳压控制
- 控制策略:PI控制器 + 占空比饱和限制(0.1 ~ 0.9)
- PWM生成:150kHz三角载波比较 + 互补驱动 + 死区保护
- 仿真设置:50ms仿真时长,100ns步长,离散模式,Tustin算法
后续优化方向
| 方向 | 说明 |
|---|---|
| 控制器优化 | 将PI替换为自适应PID或模型预测控制(MPC),提升动态响应速度 |
| 三模式自动切换 | 根据Vin/Vout比值自动在Buck/Boost/Buck-Boost三模式间切换 |
| 软启动设计 | 添加斜坡给定,避免上电瞬间的大电流冲击 |
| 效率分析 | 在模型中增加器件损耗计算,绘制效率-负载特性曲线 |
| HIL仿真 | 将控制器部分导出为C代码,对接dSPACE/Speedgoat等快速原型平台,进行硬件在环验证 |
附录:关键电路参数汇总
| 参数 | 符号 | 数值 | 单位 |
|---|---|---|---|
| 输入电压 | Vin | 240 | V |
| 输出目标电压 | Vout | 300 | V |
| 额定负载电阻 | RL | 180 | Ω |
| 额定输出功率 | Pout | 500 | W |
| 储能电感量 | L | 51.3 | μH |
| 电感ESR | rL | 1 | Ω |
| 输出滤波电容 | Co | 100 | μF |
| 电容ESR | rC | 1 | mΩ |
| 开关频率 | fs | 150,000 | Hz |
| MOSFET导通电阻 | Ron | 0.1 | Ω |
| 占空比上限 | D_max | 0.9 | --- |
| 占空比下限 | D_min | 0.1 | --- |
| 仿真步长 | Ts_sim | 100 | ns |
| 仿真时长 | T_end | 0.05 | s |