Buck 电路介绍与项目准备)
【数字电源/MATLABPLECS】如何进行 Buck 数字电源仿真一Buck 电路介绍与项目准备Buck 电路是一种最常见的 DC-DC 降压型开关电源拓扑。它可以把较高的直流输入电压转换成较低、相对稳定的直流输出电压常见于嵌入式设备、工业控制、电机驱动、通信电源、3D 打印机和机器人供电系统中。本系列准备使用 MATLAB/Simulink 和 PLECS从零搭建一个 Buck 数字电源仿真项目。内容会从 Buck 功率级开始逐步加入开环测试、离散 PI 电压环、软启动、占空比限幅、保护状态机、测试矩阵以及 C 风格控制代码。本文是系列第一篇主要解决三个问题Buck 电路到底在做什么为什么数字电源仿真适合从 Buck 开始后续 MATLAB PLECS 项目会按什么路线展开先说明一点本文不会一上来就调 PI也不会直接堆公式。数字电源学习最容易卡住的地方不是某一个公式而是不知道功率级、采样、控制器、PWM 和保护逻辑之间是什么关系。本文先把这条主线建立起来。本文中的拓扑图、控制链路图和状态机图属于概念示意图用来先建立整体认知。从下一篇开始实操部分会优先使用 PLECS/MATLAB 的真实模型截图和仿真波形截图。本系列适合哪些读者如果你已经能熟练设计 PFC、LLC、移相全桥或者已经做过数字电源量产项目这个系列会比较基础。但如果你现在处在下面这种状态本系列会比较适合知道 Buck 是降压电路但没有完整搭过模型知道 PWM 和 ADC但不知道它们怎么组成闭环电源听过 PI 控制但不知道怎么落到数字控制器里会一点 STM32 或 C 语言但不知道电源软件怎么分层有 MATLAB/PLECS但不知道从哪个项目开始练这个系列的目标不是把所有电源拓扑一次讲完而是先用一个足够典型、复杂度可控的 Buck 项目把数字电源软件开发的基本链路跑通。Buck 电路介绍Buck 电路也叫降压斩波电路核心作用是把较高的直流输入电压变成较低的直流输出电压。理想情况下Buck 输出电压和占空比之间满足Vout D * Vin其中名称含义Vin输入电压Vout输出电压DPWM 占空比例如输入电压为 24V希望输出 12V则理想占空比大约为D Vout / Vin 12 / 24 0.5也就是说在理想模型中占空比为 50% 时24V 输入可以得到 12V 输出。但是实际电路不会这么理想。MOSFET 有导通损耗二极管有压降电感有直流电阻电容有 ESR负载也会变化。因此工程上不能只记公式还要观察波形、分析误差并通过控制器不断修正占空比。这也是数字电源仿真的价值先在模型里看清楚这些变量之间的关系再考虑真实硬件。Buck 电路基本组成典型 Buck 电路主要由以下部分组成模块功能输入电源 Vin提供直流输入电压开关管 MOSFET根据 PWM 信号周期性导通和关断二极管或同步 MOSFET在主开关关断时为电感电流提供续流路径电感 L储能并平滑电流输出电容 C滤除输出纹波稳定输出电压负载 Load消耗输出功率ADC 采样采集输出电压、电流等反馈量控制器根据反馈量调整 PWM 占空比在 PLECS 中第一阶段会先搭建功率级也就是输入电源、开关管、续流器件、电感、输出电容和负载。采样、控制器和保护逻辑会在后续章节逐步加入。下图是本系列第一阶段要搭建的 Buck 功率级拓扑图01 Buck 降压电源基本拓扑这张图里建议重点看三个位置位置为什么重要SW 节点这里能看到开关波形是判断 PWM 和功率级是否工作的关键位置电感 L电感电流决定 Buck 是否工作在合理状态输出端 Vout后续闭环控制的目标就是让这里稳定在 12V学习 Buck 时不要只盯着 Vout。很多问题其实先出现在 SW 节点或电感电流上最后才表现为输出电压异常。本系列项目规格第一阶段项目规格如下项目参数拓扑Buck 降压电路输入电压范围18V - 30V标称输入电压24V输出电压12V最大输出电流5A最大输出功率60W初始开关频率200kHz控制方式数字 PI 电压环仿真工具MATLAB/Simulink、PLECS后续扩展C 风格控制代码、STM32G4 或 TI C2000 迁移这里特意选择低压 DC-DC不涉及 220V 市电也不涉及 PFC、LLC、反激等复杂拓扑。原因不是这些拓扑不重要而是第一阶段最重要的事情是先把下面这条链路跑通功率级建模- 开环验证- ADC 采样- 数字控制器- PWM 更新- 保护逻辑- 状态机- 测试报告如果一开始就做复杂拓扑很容易把时间耗在磁性器件、隔离反馈、谐振参数和驱动保护上反而看不清数字控制软件的主线。为什么先做开环再做闭环这是本系列很重要的一个学习顺序。很多人一上来就想加 PI 控制器然后开始调参数。但如果功率级模型本身有问题后面调 PI 只会越来越乱。所以第一步应该是开环测试给 Buck 一个固定占空比观察 Vout 是否接近 D * Vin观察电感电流是否合理观察 SW 节点是否有正确的开关波形只有开环模型可信闭环控制才有意义。可以把这个过程理解为先确认被控对象是正常的再设计控制器最后再分析控制效果这也是工程调试里很重要的习惯。不要在根因不清楚的时候直接堆控制算法。MATLAB 与 PLECS 的分工本系列会同时使用 MATLAB/Simulink 和 PLECS。它们不是互相替代的关系而是分工不同。工具作用PLECS搭建 Buck 功率级模型观察开关波形、电感电流、输出纹波、负载突变等现象MATLAB/Simulink搭建数字控制器编写测试脚本进行参数扫描和波形处理C 代码将控制逻辑整理成接近 MCU 固件的形式GitHub保存工程文件、代码、文档和波形CSDN记录教程步骤、问题分析和学习过程简单来说PLECS 负责电路和功率级MATLAB/Simulink 负责控制和测试C 风格代码负责贴近真实嵌入式实现后续文章中PLECS 主要用来观察电气波形MATLAB/Simulink 主要用来组织控制逻辑、测试矩阵和数据分析。数字 Buck 控制链路数字 Buck 电源的基本控制过程可以理解为采样输出电压计算输出误差PI 控制器计算占空比限制占空比范围更新 PWMBuck 功率级响应再次采样输出电压如果输出电压低于目标值控制器会增大 duty如果输出电压高于目标值控制器会减小 duty。下图是数字 Buck 电源的基本闭环控制链路图02 数字 Buck 电源闭环控制链路例如目标输出电压为 12V实际输出电压控制动作Vout 12V增大 dutyVout 12V减小 dutyVout ≈ 12V保持或小幅调整 duty但真实数字电源软件不能只写这一个闭环。至少还要考虑启动时不能直接给满目标电压占空比不能无限增大积分项不能一直累加输入欠压时要禁止启动或关断输出过压时要进入保护输出过流时要锁存故障调试时要能看到关键变量这些内容会在后续章节逐步加入。软件状态机设计为了让控制逻辑更接近真实工程本项目不会把所有判断都写在一个控制器函数中而是采用状态机方式组织。初步状态如下状态功能INIT初始化控制参数IDLE等待启动命令SOFT_START软启动过程RUN正常闭环运行FAULT_LATCH故障锁存RECOVERY故障恢复状态切换关系如下图所示图03 数字电源软件状态机这里的关键原则是分层PI 控制器只负责误差计算和 duty 输出保护模块只负责判断是否发生故障状态机只负责决定当前处于启动、运行、故障还是恢复这样做的好处是调试时更容易追根因。例如输出过流时不需要到处找是哪一段代码把 PWM 关掉了只要看保护模块是否给出了 OCP 故障码再看状态机是否进入 FAULT_LATCH 即可。关键观测变量数字电源调试不能只看输出电压。输出电压只是最终结果根因往往藏在其他变量里。本项目会重点观察以下变量变量作用Vin输入电压判断输入扰动和欠压Vout输出电压判断稳态误差和动态响应Iout输出电流判断负载变化和过流IL电感电流判断功率级工作状态dutyPWM 占空比判断控制器是否打满Vref输出电压参考值判断软启动过程state当前电源状态判断状态机是否走错fault_code故障码定位保护触发原因pi_integratorPI 积分项分析积分饱和和恢复速度后续每次出现问题都尽量按下面的顺序分析先看现象再看关键变量再判断是哪一层职责最后做最小修改验证这样可以避免一遇到波形不对就盲目调参数。常见误区在开始做模型前先把几个容易踩的坑列出来。误区问题一上来就调 PI如果开环功率级不对PI 参数没有意义只看 Vout很多问题需要看 SW 节点、电感电流和 duty把保护写进 PI 控制器控制职责和保护职责混在一起后续很难调试只跑稳态电源软件更怕启动、负载突变和故障工况仿真结果不记录没有波形和测试矩阵后面很难复现问题本系列后续会刻意围绕这些问题展开而不是只演示一个能跑的模型。后续教程安排本系列计划按照如下顺序展开篇章内容第 1 篇Buck 电路介绍与项目准备第 2 篇PLECS 搭建开环 Buck 功率级第 3 篇Buck 电感、电容和开关频率初步计算第 4 篇MATLAB/Simulink 搭建离散 PI 控制器第 5 篇占空比限幅与抗积分饱和第 6 篇软启动功能设计第 7 篇UVLO、OVP、OCP 保护逻辑第 8 篇电源状态机设计第 9 篇负载突变测试与波形分析第 10 篇ADC 噪声、采样延迟和 duty 抖动第 11 篇将仿真控制逻辑整理为 C 风格代码每一篇尽量只解决一个核心问题例如如何搭电路、如何看波形、为什么输出会下陷、为什么 duty 会打满、为什么要做软启动等。本篇总结本文主要完成了 Buck 数字电源仿真项目的准备工作。本系列会从一个 24V 输入、12V/5A 输出的 Buck 电路开始逐步完成 PLECS 功率级建模、MATLAB/Simulink 数字控制、保护状态机、测试矩阵以及 C 风格控制代码。第一阶段不要急着追求复杂拓扑。先把这条主线跑通开环功率级- 采样- 控制- PWM- 保护- 状态机- 测试和调试下一篇开始进入实操在 PLECS 中搭建开环 Buck 模型。先通过固定占空比观察输出电压、电感电流和 MOSFET Vds/SW 节点波形为后续闭环控制打基础。