【数字电源/MATLAB+PLECS】如何进行 Buck 数字电源仿真(二)PLECS 搭建开环 Buck 功率级

📅 2026/7/9 5:44:23 👁️ 阅读次数 📝 编程学习
【数字电源/MATLAB+PLECS】如何进行 Buck 数字电源仿真(二)PLECS 搭建开环 Buck 功率级

【数字电源/MATLAB+PLECS】如何进行 Buck 数字电源仿真(二)PLECS 搭建开环 Buck 功率级

上一篇主要介绍了 Buck 电路、数字电源控制链路以及本系列的整体路线。本文开始进入实操,在 PLECS 中先搭建一个开环 Buck 功率级模型。

配套 GitHub 仓库:digital-power-buck-sim-lab
本章的 PLECS 模型、导出脚本、原始 CSV 数据和波形图都已经放到仓库中,读者可以对照本文复现。

这里先强调一个顺序:

先开环
再闭环
先验证功率级
再设计控制器

不要一开始就急着加 PI 控制器。因为如果功率级模型本身接错了,或者电感、电容、负载参数不合理,后面调 PI 参数只会把问题掩盖得更深。

先看本篇成品

本文最后搭出来的 PLECS 模型如下:

图01 PLECS 开环 Buck 完整模型

这张图先看两条链路:

Dopen -> PWM Generation 的 m 输入
PWM Generation 的 s 输出 -> MOSFET gate

也就是说,Dopen不是直接驱动 MOSFET,而是先作为占空比指令进入 PWM 模块,再由 PWM 模块输出开关信号。这个关系必须看清楚,否则后面做闭环时很容易把“占空比指令”和“实际开关脉冲”混在一起。

仿真结果先给结论:

项目结果
输入电压24V
开环占空比0.5
稳态输出电压约 12V
稳态电感电流约 5A
MOSFET Vds0V / 24V 周期切换

本文的目标是:

固定占空比 duty
观察输出电压 Vout
观察电感电流 IL
观察 MOSFET Vds 开关波形
确认 Buck 功率级模型符合基本规律

本篇要完成的内容

本文只做开环 Buck,不做闭环控制。

本篇完成后,模型中应该至少包含:

输入电源 Vin
PWM 信号
高边开关管
续流二极管
电感 L
输出电容 C
负载 R
Probe 三路采样
Scope 波形观察

本篇不会加入:

PI 控制器
软启动
过压保护
过流保护
状态机
C 代码

这些内容放到后续章节。这样做的原因是职责要清楚:本文只证明“被控对象”是正常的。

开环 Buck 的验证思路

理想 Buck 电路中,输出电压近似满足:

Vout = D * Vin

其中:

名称含义
Vin输入电压
Vout输出电压
DPWM 占空比

本系列标称输入电压为 24V,目标输出电压为 12V,所以开环测试时可以先取:

D = 0.5

理论上:

Vout = 0.5 * 24V = 12V

实际仿真中,如果考虑器件压降、电感电阻、电容 ESR,输出电压会略有偏差。第一版模型可以先从理想器件开始,确认拓扑正确后,再逐步加入非理想参数。

初始参数设计

先给出一组适合入门仿真的参数。

参数初始值说明
Vin24V标称输入电压
Vout12V目标输出电压
Iout5A最大输出电流
Pout60W最大输出功率
fsw200kHzPWM 开关频率
duty0.5开环固定占空比
L22uH初始电感值
C100uF初始输出电容
Rload2.4Ω满载等效负载

负载电阻的计算如下:

Rload = Vout / Iout = 12V / 5A = 2.4Ω

电感值可以按电感电流纹波估算。假设电感电流纹波取满载电流的 30%:

ΔIL = 5A * 30% = 1.5A

Buck 电感估算公式:

L = (Vin - Vout) * D / (ΔIL * fsw)

代入参数:

L = (24V - 12V) * 0.5 / (1.5A * 200kHz)
L ≈ 20uH

因此第一版可以选一个常见值:

L = 22uH

输出电容先取:

C = 100uF

这里不追求一次算得非常精确。第一版重点是把模型跑起来,并能解释波形。后续章节会再讨论电感、电容、纹波和动态响应之间的关系。

PLECS 元件清单

在 PLECS 中,可以按下面的元件搭建第一版开环 Buck:

元件作用
DC Voltage Source输入电源 Vin
MOSFET高边开关管
Diode开关关断时的续流通路
InductorBuck 电感
Capacitor输出电容
Resistor等效负载
Constant固定占空比指令 Dopen
PWM Generation将 duty 指令转换成开关脉冲
Plecs Probe采样 Vout、IL 和 MOSFET Vds
Scope观察仿真波形
Electrical Reference电气参考地

这里没有直接使用库里的 Pulse Generator,而是用了一个PWM Generation子系统。这样做是为了给后续闭环控制留接口:现在输入是常数Dopen,后面可以把它替换成 PI 控制器输出的 duty,而功率级不用重搭。

第一版模型先使用理想器件。等开环模型验证正确后,再加入器件导通压降、导通电阻、电容 ESR 和寄生参数。

搭建步骤

1. 新建 PLECS 模型

打开 PLECS,新建一个模型文件,建议命名为:

buck_open_loop_24v_12v.plecs

本仓库中的对应路径为:

models/plecs/buck_open_loop_24v_12v.plecs

2. 放置输入电源和参考地

先放置 DC Voltage Source,并设置:

Vin = 24V

再放置 Electrical Reference,作为电路地。

这一步的目标是先建立输入电源和公共参考点。电源仿真中如果忘记参考地,模型很容易报错或者波形异常。

图02 输入电源与参考地

3. 搭建高边开关和续流路径

Buck 的核心是开关管周期性导通和关断。

先放置高边开关管,再在 SW 节点到地之间放置续流二极管。

这里的 SW 节点非常重要。第一版模型先通过 MOSFET Vds 间接判断开关动作,后续如果要分析尖峰、振铃和吸收回路,再单独加入 SW 节点电压测量。

开关管导通时:SW 节点接近 Vin
开关管关断时:电感电流通过二极管续流,SW 节点电压下降

图03 高边 MOSFET 与续流二极管

4. 放置电感、输出电容和负载

在 SW 节点后面接入电感 L,再接输出电容 C 和负载 R。

第一版参数:

L = 22uH
C = 100uF
Rload = 2.4Ω

图04 电感、输出电容和负载

输出端命名为:

Vout

5. 加入 PWM 信号

开环模型不需要控制器,只需要固定占空比指令。

本文模型中使用一个 Constant 作为占空比输入:

Dopen = 0.5

然后把Dopen接到PWM Generation子系统的m输入端。PWM Generation内部用三角波和占空比指令比较,输出开关信号s,再由s去驱动 MOSFET gate。

图05 Dopen 到 PWM Generation 再到 MOSFET gate

此时模型的逻辑是:

Dopen 固定 duty 指令
-> PWM Generation 产生开关脉冲
-> MOSFET 周期性导通/关断
-> Buck 功率级自然响应
-> 输出电压由 duty 和 Vin 决定

这个地方是新手最容易看错的点:m是调制指令,s才是开关信号。画图时也要把这两条线分开,不要让读者误以为Dopen直接接到了 MOSFET。

6. 加入测量点和 Scope

为了判断模型是否正确,至少需要观察三个波形:

波形作用
MOSFET Vds判断开关管是否按固定频率切换
电感电流 IL判断电感电流是否连续、纹波是否合理
输出电压 Vout判断输出是否接近理论值

建议 Scope 中至少放入:

MOSFET Vds
IL
Vout

Probe 输出三路信号:输出电容电压、电感电流、MOSFET Vds。这里没有直接额外放一个 SW 节点电压传感器,是为了保持第一版模型足够干净;Vds 已经能证明开关动作是否正常。

图06 PLECS Probe 与 Scope 信号连接

仿真设置建议

第一版仿真可以先设置:

项目建议值
仿真时间5ms - 10ms
初始 duty0.5
输入电压24V
负载2.4Ω
开关频率200kHz

仿真时间不要太短,否则输出电压还没稳定就结束;也不要一开始设得太长,避免仿真速度变慢。

如果仿真步长可以设置,建议先使用 PLECS 默认设置。等后续出现波形抖动、开关细节看不清楚、仿真速度过慢等问题时,再调整求解器和步长。

Scope 里为什么看起来跳来跳去

第一次运行这个开环模型时,Scope 里很容易看到下面这种现象:

看到的现象真实原因正确读法
Vout 启动时冲到 20V 左右,然后再掉下来开环硬启动激励了 LC 输出滤波器的自然响应先确认后面是否衰减到 12V 附近
IL 启动时冲到 20A 以上电容从 0V 被突然充电,电感电流先承担启动能量转移这是启动冲击电流,不是稳态负载电流
MOSFET Vds 像一整块绿色色带200kHz 开关波形被压缩到 0ms - 3ms 的全局时间尺度里要放大到几个开关周期再判断高低电平

这里不要急着改拓扑,也不要急着调求解器。本文这个模型本来就没有软启动、没有闭环、没有限流,Dopen = 0.5是在仿真开始时直接给到 PWM 模块的。对 Buck 来说,这相当于一上电就用固定占空比硬推输出电容,所以 Vout 和 IL 在启动阶段出现过冲是合理的。

下面这张图专门看启动阶段:

图07 开环 Buck 硬启动暂态

从这张图可以看出,本模型的启动峰值大约为:

Vout 启动峰值 ≈ 20.8V
IL 启动峰值 ≈ 27.3A

这两个数不能拿来评价稳态输出质量。开环功率级验证应该分成两张尺度来看:

启动总览:看 Vout/IL 是否过冲后衰减
稳态局部:放大到几个开关周期,看 Vds、IL 纹波和 Vout 纹波

查看这类结果时也建议按这个顺序分开看。不要只盯着 Scope 的全局截图,因为全局截图会把高频开关细节压成一片,很容易误判为模型乱跳。

预期波形

开环 Buck 正常工作时,要按时间尺度分别观察下面几类波形。

1. MOSFET Vds 波形

MOSFET Vds 应当是一个高低切换的开关波形。

大致特征:

开关管导通时:Vds 接近 0V
开关管关断时:Vds 接近 Vin
频率等于 PWM 开关频率
在 Dopen = 0.5 时,高低电平时间大致各占一半

注意,这里看的是 MOSFET Vds,不是 gate 信号。Vds 低电平对应开关管导通,Vds 高电平对应开关管关断。如果以后 duty 不是 0.5,Vds 的高电平时间和 gate 导通时间是互补关系,不能直接把 Vds 高电平比例当成 gate duty。

实际仿真波形如下:

图08 MOSFET Vds 开关波形

这张图只截取了稳态后的局部时间窗口。不要用 0ms - 3ms 的全局窗口判断 Vds 细节,否则 200kHz 的高低电平会在 Scope 里压成一整块色带。

2. 电感电流 IL

电感电流应该呈现上升和下降的锯齿形纹波。

开关管导通时:

电感电流上升

开关管关断时:

电感电流下降

如果参数合理,满载下电感电流应当大致围绕 5A 上下波动,而不是直接降到 0A。

实际仿真中,稳态电感电流围绕 5A 呈连续锯齿波。这里看的是稳态局部放大图,不是启动冲击电流:

图09 开环 Buck 电感电流纹波

3. 输出电压 Vout

输出电压会从 0V 进入启动暂态,最终稳定到接近 12V。

如果使用理想器件和 duty=0.5,稳态输出应接近:

Vout ≈ 12V

启动阶段的过冲前面已经单独分析过。这里重点看稳态结果:过冲衰减后,输出是否回到D * Vin附近。

如果输出明显偏离 12V,需要先检查:

Vin 是否为 24V
duty 是否为 0.5
负载是否为 2.4Ω
电感和电容是否接对
二极管方向是否正确
测量点是否接在输出端

实际仿真中,输出最终稳定在 12V 附近:

图10 开环 Buck 输出电压启动波形

开环验证表

仿真完成后,可以按下面的表格记录结果。下面的数据由scripts/export_open_loop_waveforms.py调用 PLECS RPC 导出,不是手工编出来的截图结论。

检查项预期结果实际结果
PWM 频率200kHzVds 周期约 5us,对应 200kHz
duty0.5Dopen = 0.5
MOSFET Vds有高低切换0V / 24V 高低切换
IL有锯齿纹波稳态均值约 5A,峰峰值约 1.31A
Vout接近 12V稳态均值约 12V,峰峰值约 8.5mV
启动 Vout 峰值开环硬启动允许出现过冲约 20.8V,随后衰减到 12V 附近
启动 IL 峰值开环硬启动会有冲击电流约 27.3A,随后回到 5A 附近
输出是否稳定经过启动后趋于稳定有开环启动过冲,约 3ms 后稳定

这一张表很重要。后续如果加入 PI 控制后出现问题,可以回头对比开环模型是否本来就是正常的。

常见问题

1. Vout 不接近 12V

优先检查:

duty 是否设置为 0.5
Vin 是否设置为 24V
负载是否设置为 2.4Ω
电感是否串在 SW 和 Vout 之间
输出电容是否接在 Vout 和 GND 之间
二极管方向是否正确

不要一上来就怀疑 PLECS 或求解器。大多数初期问题都是连接错误、参数错误或测量点放错。

2. 电感电流直接降到 0

这可能说明 Buck 工作在断续电流模式,或者负载太轻、电感值太小。

可以先检查:

负载电阻是否过大
电感值是否过小
开关频率是否设置正确

3. 启动过冲是不是说明模型错了

不一定。

本文是开环模型,没有软启动,也没有闭环阻尼。输入 24V、占空比直接给到 0.5 时,LC 输出端会出现启动振铃,Vout 先冲高再回到 12V 附近,这是合理现象。

真正要判断的是:

稳态是否接近 12V
电感电流是否连续
MOSFET Vds 是否按 200kHz 切换

如果这三件事都对,说明功率级搭建基本可信。启动过冲留到后面用软启动和闭环控制解决。

4. 仿真报错或无法运行

优先检查:

是否存在电路悬空
是否缺少 Electrical Reference
是否有理想电压源和理想开关形成不合理回路
开关控制信号是否连接正确

5. 波形看起来很乱

先不要急着调复杂参数。先判断它是“真的乱”,还是“显示尺度不对”。

看启动:用 0ms - 3ms,总览 Vout 和 IL 的过冲衰减
看开关:放大到几个 us,观察 MOSFET Vds 的 0V / 24V 切换
看纹波:放大到稳态局部,观察 IL 和 Vout 的峰峰值

调试顺序应该先分清时间尺度,再判断电路行为。如果 Vout 最终能回到 12V 附近、IL 稳态围绕 5A、Vds 按 200kHz 切换,那么这张 Scope 全局图虽然看起来跳,但模型本身是合理的。

本篇总结

本文完成了开环 Buck 功率级的搭建思路。

本篇的核心不是让输出电压“看起来对”,而是证明:

PWM 能驱动开关管
MOSFET Vds 有正确开关波形
电感电流有合理纹波
输出电压接近 D * Vin

只要这几个条件满足,说明功率级模型基本可信。下一篇可以继续讨论 Buck 电感、电容和开关频率的参数估算,并进一步解释为什么电感值、负载和开关频率会影响输出纹波和动态响应。

本章配套文件

为了方便复现,本章对应的模型、脚本、数据和说明如下:

仓库入口:https://github.com/Old-Ding/digital-power-buck-sim-lab

本章直达:

内容链接
第二章复现说明docs/02-open-loop-buck-reproduce.md
PLECS 开环 Buck 模型models/plecs/buck_open_loop_24v_12v.plecs
波形导出脚本scripts/export_open_loop_waveforms.py
仿真原始数据waveforms/02-open-loop-data.csv
类型文件作用
PLECS 模型models/plecs/buck_open_loop_24v_12v.plecs开环 Buck 功率级模型
Python 脚本scripts/export_open_loop_waveforms.py导出仿真数据、关键指标和波形图
原始数据waveforms/02-open-loop-data.csvPLECS 导出的 Vout、IL、Vds 数据
指标汇总waveforms/02-open-loop-summary.csv本章验证表中的关键数值来源
波形图片waveforms/02-open-loop-*.png本文使用的真实仿真波形
复现说明docs/02-open-loop-buck-reproduce.md第二章的运行步骤和结果判断

如果你想自己复现,建议按这个顺序走:先看复现说明,再打开 PLECS 模型,最后运行导出脚本,并用waveforms/里的 CSV 和波形图核对结果。

本文图片和波形对应文件如下:

文件内容
models/plecs/buck_open_loop_24v_12v.plecsPLECS 开环 Buck 模型
scripts/export_open_loop_waveforms.py调用 PLECS RPC 导出仿真数据和波形图
assets/screenshots/02-plecs-open-loop-buck-model.pngPLECS 完整开环模型
assets/screenshots/02-step-01-input-reference.png输入电源与参考地局部图
assets/screenshots/02-step-02-switch-freewheel.png高边 MOSFET 与续流二极管局部图
assets/screenshots/02-step-03-lc-output-load.png电感、输出电容和负载局部图
assets/screenshots/02-step-04-pwm-chain.pngDopen、PWM Generation 和 MOSFET gate 局部图
assets/screenshots/02-step-05-probe-scope.pngProbe 与 Scope 信号连接局部图
waveforms/02-open-loop-mosfet-vds.pngMOSFET Vds 开关波形
waveforms/02-open-loop-il.png电感电流波形
waveforms/02-open-loop-vout.png输出电压波形
waveforms/02-open-loop-startup-overview.png开环硬启动暂态总览
waveforms/02-open-loop-summary.csv开环仿真关键指标

技术交流

如果你在复现本章模型、运行脚本或判断波形时遇到问题,可以加入技术交流群交流。

渠道信息
QQ 群嵌入式交流群:1056095456
加群链接https://qm.qq.com/q/rygrSD2Ddu
微信交流扫码添加 Old-ding,备注“数字电源仿真”

提问时建议附上 PLECS 模型截图、关键参数、Scope 波形和脚本输出。