基于四开关Buck-Boost的Simulink仿真模型(免费下载)【MATLAB】

基于四开关Buck-Boost的Simulink仿真模型

摘要:四开关Buck-Boost(Four-Switch Buck-Boost,FSBB)变换器是一种能够在输入电压高于、等于或低于输出电压时均保持稳定输出的非反相DC-DC拓扑。本文基于实际构建的Simulink仿真模型(FSBB.slx),从电路拓扑、工作原理、主电路参数、控制策略到PWM驱动逻辑,进行系统性讲解,适合作为电力电子仿真入门与进阶的参考资料。


目录

  1. FSBB变换器概述
  2. 电路拓扑与工作模式
  3. Simulink模型总体架构
  4. 主电路模块详解
  5. 闭环控制子系统(closedloop)
  6. [PWM发生器子系统(pwm generator)](#PWM发生器子系统(pwm generator))
  7. 关键信号与测量
  8. 仿真参数配置
  9. 模型亮点与工程意义
  10. 总结与展望

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
开关频率 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

模型下载(免费)

https://mbd.pub/o/bread/YZWclp5saw==

相关推荐
yongui478342 小时前
MATLAB模糊控制的粒子群算法(Fuzzy-PSO)实现
数据结构·算法·matlab
沅_Yuan4 小时前
基于核密度估计的BP-KDE多输入单输出回归模型【MATLAB】
机器学习·matlab·回归·bp·核密度估计·kde
551只玄猫14 小时前
【数学建模 matlab 实验报告13】主成分分析
开发语言·数学建模·matlab·课程设计·主成分分析
wearegogog12315 小时前
离散系统参数辨识与广义预测控制MATLAB实现
开发语言·matlab
KAU的云实验台16 小时前
【算法精解】AIR期刊算法IAGWO:引入速度概念与逆多元二次权重,可应对高维/工程问题(附Matlab源码)
开发语言·算法·matlab
再一次等风来17 小时前
阶次分析是什么?一篇讲清旋转机械工程中的阶次概念、原理与 MATLAB 仿真
matlab·故障诊断·阶次分析·振动信号
森屿~~18 小时前
深入理解多目标优化实数编码:SBX交叉与多项式变异(PM)原理解析与MATLAB可视化
matlab
沅_Yuan1 天前
基于LSSVM-ABKDE的多输入单输出回归预测模型【MATLAB】
人工智能·神经网络·机器学习·matlab·回归预测·lssvm·kde
简简单单做算法1 天前
基于Qlearning强化学习的RoboCup足球场景下Agent智能进球决策matlab模拟与仿真
matlab·agent·强化学习·qlearning·robocup·智能进球决策