ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Boost电路原理与Simulink开环仿真建模:从公式到波形验证全流程

Boost电路原理与Simulink开环仿真建模:从公式到波形验证全流程 boost电路是电力电子技术里最经典的直流-直流升压变换器也是很多开关电源、逆变前级、新能源发电接口电路的基础。学习 boost 电路时课本会给出输出电压与占空比的关系式Vo Vin / (1 - D)也能在一张图上画出电感电流、二极管电流和输出电压波形但真正打开 Matlab/Simulink 自己搭模型时问题往往一个接一个模块放在哪里、参数怎么填、仿真为什么发散、波形为什么和理论对不上。这篇博客要做的就是把这些环节串起来先用公式定出一组电气参数再在 Simulink 里搭建开环 boost 电路运行后把示波器波形和公式计算结果放到同一张表里对比最后给出仿真不收敛、电压抬不上去、波形高频振荡等常见问题的排查顺序。学完后这套方法可以直接迁移到 buck 电路、反激变换器或交错并联 boost 的仿真验证中。1. 先从“为什么需要 boost 电路”开始理解原理1.1 升压变换的本质电感先把能量存起来再叠加到输入电源上boost 电路要解决的工程问题很直接把较低的直流电压抬升到较高的直流电压。常见的场景包括电池供电设备需要 5V 升 12V、光伏组件输出电压波动后需要升压到母线电压、车载电源需要把 12V 升到 24V 或更高。boost 的升压能力不靠变压器而是靠电感的储能和续流特性。整个工作过程可以拆成两个阶段理解开关管导通阶段输入电源直接给电感充电电感电流线性上升电感把能量以磁场形式存起来。此时二极管反偏截止负载电流由输出电容维持。开关管关断阶段电感电流不能突变电感两端感应电压反向顶起使二极管正向导通。输入电源和电感感应电压串联在一起共同向输出电容和负载供电。因为两个电压叠加输出电压才会高于输入电压。用一句话概括boost 是先让电感“存电”再让电感“放电”时把电压顶上去。这个原理也解释了为什么 boost 电路必须有一个较大的输出电容作为能量缓冲否则开关管关断期间负载电压会迅速跌落。1.2 用伏秒平衡推出 Vo Vin / (1 - D)并给出纹波关系理解 boost 电路的最佳切入点是“稳态伏秒平衡”。在开关电源稳态工作下电感两端电压在一个开关周期内的平均值为零否则电感电流会持续上升或下降不可能稳定。假设开关周期为T占空比为D开关管导通时间为D * T关断时间为(1 - D) * T。忽略二极管压降和开关管导通压降时导通阶段电感两端电压约为Vin。关断阶段电感两端电压约为Vin - Vo数值上是负值。由伏秒平衡Vin * D * T (Vin - Vo) * (1 - D) * T 0整理之后得到Vo Vin / (1 - D)这个公式是 boost 电路最核心的关系式。它说明在理想情况下只要占空比大于 0输出电压就高于输入电压占空比越大输出电压越高。除了输出电压还有几个公式在仿真验证时会用到物理量公式说明输出电压Vo Vin / (1 - D)理想 CCM 模式下与负载无关电感电流纹波delta_iL Vin * D * T / L峰峰值与电感量成反比电感平均电流IL_avg Io / (1 - D)CCM 模式下大于负载电流临界电感Lcrit D * (1 - D)^2 * R / (2 * fsw)低于该值会进入 DCM输出纹波估算delta_Vo ≈ Io * D / (C * fsw)未考虑电容 ESR 的简化结果这些公式不需要死记但要理解每个变量变化带来的影响。比如电感电流纹波与电感量成反比所以想降低纹波就要加大电感或提高开关频率输出纹波与电容容量成反比所以输出电容越大电压波动越小。1.3 CCM 与 DCM公式成立的前提很多仿真偏差来自这里boost 电路存在两种常见工作模式CCM电感电流连续模式整个开关周期内电感电流都大于零。DCM电感电流断续模式电感电流在一个周期内会跌到零并且在一段时间内保持为零。前面给出的Vo Vin / (1 - D)是在 CCM 模式下推导出来的。进入 DCM 之后输出电压不仅与占空比有关还会受到负载、电感和开关频率的影响结果通常比 CCM 公式计算值更高。换句话说如果仿真参数让电路工作在 DCM却仍然拿着 CCM 公式去对比结果波形和数据一定会对不上。判断是否处于 CCM可以直接看电感电流波形是否出现过零。也可以用临界电感来预判当实际电感大于临界电感时大概率工作在 CCM小于临界电感时轻载或大占空比条件下很容易进入 DCM。临界电感公式Lcrit D * (1 - D)^2 * R / (2 * fsw)在后面的仿真示例中输入 12V、目标输出 24V、占空比 0.5、负载 20Ω、开关频率 50kHz 时Lcrit 0.5 * 0.25 * 20 / (2 * 50000) 25uH只要电感选 100uH 以上理论上就能保持 CCM。工程上还要留裕量通常取临界电感的 1.5 到 2 倍以上因此示例中电感取 300uH 是合理的。2. 用 Simulink 建模前先确认环境、选型并算好参数2.1 软件和工具箱Matlab、Simulink、Simscape Electrical在 Matlab/Simulink 中做 boost 电路仿真需要以下组件组件作用MATLAB运行参数脚本、结果分析和后处理Simulink搭建仿真模型并运行Simscape / Simscape Electrical提供电气元件库、Powergui 和测量模块不同 Matlab 版本对电气库的组织方式有差异。较新的版本中电气元件主要放在 Simscape Electrical 下的 Specialized Power Systems 子库里较老的版本可能显示为 SimPowerSystems。只要库浏览器里能搜到Powergui、MOSFET、Diode、DC Voltage Source这些模块说明相关工具箱已经安装成功。在 MATLAB 命令行窗口输入以下命令可以快速检查工具箱是否可用ver(Simscape) ver(SimscapeElectrical)如果提示找不到产品说明当前安装没有包含该工具箱。安装或激活工具箱时记得勾选 Simscape Electrical 相关组件。这里只说明正常使用方式无论个人学习还是企业使用都应该使用合法授权的 MATLAB 环境。2.2 两种建模思路器件级电路与预置 Boost Converter 模块在 Simulink 中搭 boost 电路有多种方式学习阶段主要使用两种器件级建模用 MOSFET、Diode、Inductor、Capacitor 等实际器件搭建完整电路。这种方式能直观观察开关过程、电感电流、二极管续流和器件压降最适合学习原理。预置模块建模使用 Simscape Electrical 自带的 Boost Converter 模块只需填入输入电压、占空比、电感、电容等参数即可运行。这种方式适合快速验证公式和后续做闭环控制。本文以器件级建模为讲解重点因为只有从器件级电路上看到电感电流的锯齿波和二极管续流过程才能真正理解 boost 为什么能升压。预置模块会在每个模块内部封装这些细节直接观察结果虽然方便但不容易建立物理概念。2.3 先算后仿用一个脚本定下全部电气参数建模前先确定参数而不是在仿真模型里随手填。推荐把参数写在一个独立的 MATLAB 脚本里或者在模型回调函数里初始化。这样做的好处是改一个参数时不用满模型找所有取值都集中在同一个地方。示例参数如下%% Boost Converter 开环仿真参数 clc; clear; close all; Vin 12; % 输入电压 [V] Vo_ref 24; % 目标输出电压 [V] fsw 50e3; % 开关频率 [Hz] Ts 1 / fsw; % 开关周期 [s] D 1 - Vin / Vo_ref; % 期望占空比计算为 0.5 L 300e-6; % 电感 [H] C 470e-6; % 输出电容 [F] R 20; % 负载电阻 [ohm]根据这些参数可以提前算出理论上的稳态结果% 根据稳态公式推算关键波形值 Io Vo_ref / R; IL_avg Io / (1 - D); delta_iL Vin * D * Ts / L; Lcrit D * (1 - D)^2 * R / (2 * fsw); delta_Vo Io * D / (C * fsw); fprintf(理论输出电压: %.2f V\n, Vo_ref); fprintf(稳态负载电流: %.3f A\n, Io); fprintf(稳态电感平均电流: %.3f A\n, IL_avg); fprintf(电感电流纹波(峰峰): %.3f A\n, delta_iL); fprintf(临界电感: %.2f uH\n, Lcrit * 1e6); fprintf(输出电压纹波估算: %.4f V\n, delta_Vo);运行这段脚本预期输出为理论输出电压: 24.00 V 稳态负载电流: 1.200 A 稳态电感平均电流: 2.400 A 电感电流纹波(峰峰): 0.400 A 临界电感: 25.00 uH 输出电压纹波估算: 0.0255 V这些数字会作为后续仿真结果的对照基准。如果仿真值明显偏离这些理论值就需要回到电路连接、参数设置和工作模式上找原因。3. 在 Simulink 中搭建 boost 开环仿真模型3.1 模块放置与电路连接顺序打开 Simulink新建一个空模型从库浏览器中放置以下模块功能推荐模块所在库输入直流源DC Voltage SourceSimscape / Electrical / Specialized Power Systems / Fundamental Blocks电感Inductor 或 Series RLC Branch同上开关管MOSFET 或 IGBT同上续流二极管Diode同上输出电容Capacitor 或 Series RLC Branch同上负载Resistor 或 Series RLC Branch同上驱动信号Pulse GeneratorSimulink / Sources电压测量Voltage MeasurementSimscape / Electrical / Specialized Power Systems电流测量Current Measurement同上示波器ScopeSimulink / Sinks电气求解器PowerguiSimscape / Electrical / Specialized Power Systems器件级 boost 电路的连接顺序如下电源正极 -- 电感 L -- 节点A 节点A -- MOSFET 漏极(D) 节点A -- 二极管阳极 MOSFET 源极(S) -- 电源负极地 二极管阴极 -- 电容正极、负载上端 电容负极、负载下端 -- 电源负极接线时重点检查二极管方向。boost 电路中二极管阳极接开关管漏极一侧阴极接输出电容正端电流方向是从节点 A 流向输出电容和负载。如果二极管方向接反输出电压永远起不来。建议在模型里放置两个测量模块用 Voltage Measurement 测量输出电压输出接 Scope。用 Current Measurement 测量电感电流输出接另一个 Scope。测量模块的作用是把电气物理量转换为普通 Simulink 信号否则 Scope 无法直接显示电气网络中的电压电流。3.2 设置电源、开关管、二极管、电感和负载参数按以下参数设置器件器件参数设置说明DC Voltage SourceAmplitude 12输入电压InductorL 300e-6Rw 可设 0.01Rw 模拟电感绕组电阻MOSFETRon 默认缓冲电路可用默认值教学模型暂用默认即可Diode默认参数注意正向压降默认 0.8V 左右会导致微小偏差CapacitorC 470e-6ESR 可设 0.01输出滤波电容ResistorR 20输出负载这里要注意MOSFET 和 Diode 都带有并联缓冲电路参数。在 Specialized Power Systems 中缓冲电阻默认值往往比较大相当于开路不影响电路工作。如果为了快速仿真把缓冲电阻设得太小相当于给器件并联了一个漏电电阻会明显拉低输出电压。这是新手很容易踩的坑。3.3 用 Pulse Generator 产生 PWM 驱动信号Pulse Generator 提供 MOSFET 栅极驱动信号仿真中常用 0 和 1 的逻辑信号代替真实驱动器输出。双击 Pulse Generator设置Amplitude: 1 Period: 20e-6 Pulse Width: 50 Phase delay: 0周期20e-6对应开关频率 50kHzPulse Width 填的是50表示占空比 50%而不是 50 微秒。这是很常见的错误点如果 Pulse Width 填成20e-6Simulink 会把它理解为“占空比为一亿分之一”结果 MOSFET 几乎不导通输出电压自然抬不上去。可以用一个 Scope 单独看驱动信号确认它是周期为 20us、高电平时间为 10us 的方波。3.4 配置 Powergui 与求解器避免第一轮仿真就发散Powergui 是 Simscape Electrical 电气网络的求解核心模型中必须有一个 Powergui。双击 Powergui选择“Discrete”仿真类型并设置采样时间为1e-6秒。离散仿真的好处避免连续求解器在开关动作瞬间因步长自适应过慢而卡住。更适合电力电子这类强非线性切换电路。仿真速度更快波形更稳定。接着打开 Simulink 的 Model Configuration Parameters做以下设置Solver: discrete (no continuous states) Fixed-step size: 1e-6 Stop time: 0.05停止时间设成 0.05 秒是有原因的。输出电容和负载形成的时间常数约为R * C 20 * 470e-6 9.4ms要观察到完整的启动过程和稳态波形仿真停止时间至少要覆盖 3 到 5 个时间常数也就是 30ms 到 50ms。如果只仿 5ms输出电压可能还在上升段容易被误判成电路有问题。3.5 参数入模在工作区用变量而不是硬编码模型里所有器件参数都可以直接填数值但更推荐填变量名。比如电感参数框写成L电容参数框写成C电阻参数框写成R。只要 MATLAB 工作区中存在这些变量仿真就会自动读取。如果希望模型打开时自动加载参数可以在模型属性中配置初始化回调Model Properties - Callbacks - InitFcn在 InitFcn 里填上参数脚本的内容或者直接调用脚本文件名boost_params这样每次打开模型或点击仿真时都会先执行参数初始化避免“双击模型但工作区没有变量”导致的报错。4. 运行仿真把波形和公式放进同一张表验证4.1 稳态波形怎么看输出、电感电流、驱动信号点击仿真运行按钮等仿真结束后打开 Scope。正常情况下能看到三个关键波形输出电压从 0 开始上升经过一段时间后稳定在 24V 附近波动。电感电流呈锯齿状平均值约 2.4A上下波动幅度约 0.4A。驱动信号0 和 1 交替的方波。因为 24V 输出叠加的纹波只有几十毫伏直接看完整电压波形时纹波不明显。可以把 Scope 的 Y 轴范围缩小例如显示 23.8 到 24.2V就能清楚地看到输出纹波的形状。电感电流波形是判断电路工作模式的最直接依据。如果电感电流始终大于零说明工作在 CCM如果电流跌到零并保持一段水平线说明进入了 DCM。4.2 理论值与仿真值对比偏差从哪里来仿真运行结束后把结果与理论计算放在一起对比物理量理论计算值仿真预期值偏差来源输出电压24.00 V23.x V 左右二极管压降、开关管导通压降电感平均电流2.400 A2.3x A输出功率变化和损耗电感电流纹波峰峰值0.400 A0.38 到 0.42 AL、fsw 参数的微小差异输出纹波估算25.5 mV几十 mV 量级电容 ESR 和测量噪声仿真值略低于理论值是完全正常的。理论公式建立在理想器件假设上实际模型里的二极管有 0.8V 左右的正向压降MOSFET 有导通电阻电感也有绕组电阻。仿真中这些非理想因素都会吃掉一部分电压造成输出不是严格的 24.00V。如果偏差在 0.5V 以内说明模型和参数正确。如果偏差超过 2V就要考虑是否进入了 DCM、二极管方向是否正确、缓冲电阻是否漏电等问题。4.3 启动过程要多长RC 时间常数和仿真停止时间boost 电路上电后输出电压从 0 上升到稳态需要一定时间这个时间主要由输出电容和负载共同决定。可以把输出侧看成一个一阶 RC 充电过程时间常数约等于R * C。在本例中tau R * C 20 * 470e-6 9.4ms按照一阶系统经验约 5 个时间常数后电压基本进入稳态5 * tau 47ms所以仿真停止时间设置为 0.05s 是合适的。如果你把停止时间改到 0.01s看到的输出电压大约只有十几伏容易误认为升压失败。需要缩短仿真时间时可以使用两类方法减少输出电容容量例如从 470uF 降到 100uF但输出纹波会变大。使用 powergui 设置输出电容初始电压让电路从接近稳态的位置开始仿真。实际学习中不建议设置初始电压最好让电路完整模拟真实上电过程这样可以同时理解启动动态和稳态特性。5. 仿真结果不对时按这条链路排查5.1 输出电压一直为 0 或抬不上去这是 boost 仿真最典型的故障排查顺序如下先看 Pulse Generator 输出波形确认周期、占空比和幅值是否正常。检查 Pulse Generator 的输出是否接到了 MOSFET 的栅极输入端口。检查占空比设置Pulse Width 应填百分比值而不是秒值。检查二极管方向二极管阴极必须在输出正端一侧。检查电感和 MOSFET 的连接顺序确保电源正极出来后先经过电感再进入开关节点。用 Voltage Measurement 和 Scope 确认测量点是否选在输出电容两端。常见原因优先级驱动信号缺失 占空比参数填错 二极管方向接反 测量点选错。建议按这个顺序逐个排查不要一上来就怀疑公式。5.2 仿真报错、不收敛或出现代数环现象通常有两种Simulink 弹出“Directory or file not found”类型错误。仿真运行极慢或者提示求解器步长过小、无法收敛。排查和处理建议问题现象常见原因处理方向找不到模块版本差异或缺少工具箱用库浏览器搜索模块路径仿真报奇异错误存在悬空电气节点或未连接端口检查所有电气端口是否闭合不收敛连续求解器不适合强开关电路Powergui 切到 Discrete代数环警告测量信号和驱动信号形成循环增加 Memory 模块或在测量通道加滤波器步长过小无法收敛离散采样步长设置过大将采样步长降到 1e-6 再试在开环 boost 仿真中代数环通常不会太严重。如果出现代数环警告可以在反馈通道或测量通道插入一个 Memory 模块截断循环但首先要确认是否真的是电路连接造成的环。5.3 电感电流断续导致输出偏低如果输出电压比理论值低但又不是完全无法升压优先查看电感电流波形是否已经降到了 0。电感电流断续有两个常见原因电感取得太小小于或接近临界电感。负载太轻输出电流小电感电流平均值小很容易在开关周期内归零。处理方式1. 增大电感例如从 100uH 提高到 300uH。 2. 保持 CCM 设计L 至少大于 Lcrit 的 1.5 到 2 倍。 3. 若一定要工作在 DCM就不要再使用 CCM 的输出电压公式。这里要特别提醒当电感电流进入 DCM 后boost 的输出电压会比 CCM 公式计算值更高还是更低取决于负载和占空比。为了减少学习阶段的概念混淆建议先保持负载电阻不变通过增大电感让电路回到 CCM再对比公式。5.4 波形出现高频尖峰先区分真振荡还是采样假象仿真波形出现尖峰时不要急着给电路加吸收网络。先判断尖峰来源。第一类原因是仿真步长过大。示波器显示的数据点太少开关动作瞬间被离散化看起来像尖峰实际是采样造成的假象。处理方式是减小固定步长例如从1e-5改成1e-6。第二类原因是开关瞬态寄生振荡。开关管和二极管在开通和关断瞬间电感和器件寄生电容之间会发生高频谐振仿真波形上表现为电压尖峰。工程中常用 RC 吸收电路来抑制这种尖峰常见做法是在二极管两端并联一个 R 10
返回列表