单电感升降压斩波拓扑与双闭环MATLAB仿真解析

发布时间:2026/11/2 2:52:12
单电感升降压斩波拓扑与双闭环MATLAB仿真解析

简介:围绕升、降压直流斩波电路的设计与仿真,这份面向电力电子课程设计学习者及初学者的文档,系统梳理DC/DC变换器的拓扑选择、工作模式与储能电感参数设计,并讲解PWM闭环控制、占空比调节和反馈稳压思路。正文从降压斩波电路的工作原理与输入输出关系展开,涉及连续与断续导通模式、全控器件和续流二极管的配合,以及Buck、Boost、Buck-Boost等结构的适用场景;随后结合MATLAB建模,说明如何设置参数、观察动态响应,并从输出电压精度、纹波、效率和瞬态表现等测试结果评估设计。末尾附课程设计体会与参考文献,便于读者理解方案取舍、复现仿真并对照撰写报告。资源包仅含1个doc文件,大小约823KB,目录清晰、篇幅集中,适合按章节查阅。已有3251人学习下载,可作为斩波电路入门、课程设计参考与仿真调试的辅助材料。

1. 一只开关管,凭什么把 200 V 切成 100 V

先给一个反直觉的结论:降压斩波电路里没有任何“变压”的部件,输出 100 V 不是因为哪只器件把电压压下去了,而是负载侧的电感和电容把开关波形在一个周期内的平均值“记住”了。200 V 输入、50% 占空比、10 Ω 负载,Simulink 里跑出来稳稳的 100 V,这个数字跟开关管的导通电阻、二极管的管压降几乎无关,只跟一个比值有关。理解这件事,是从“会画斩波电路”到“能设计斩波电路”的分水岭。升、降压直流斩波电路及 MATLAB 仿真这套材料真正值得琢磨的,不是那条占空比公式,而是三件事:电感为什么非有不可、升压时能量到底从哪来、以及一个拓扑要同时干两件事时,模式切换靠什么信号完成。

2. 降压斩波:伏秒平衡是怎么把开关波形变成直流的

把 Buck 电路拆开看,一个周期只有两种状态:开关管 V 通、开关管 V 断。通态时电源 E 直接挂在负载两端,断态时电感电流没处可去,只能经续流二极管 VD 绕回来。这两段状态里,电感两端的电压不一样,但电感电流在稳态下必须回到起点。这个“必须回到起点”的约束,就是所有斩波电路输出电压公式的来源。

2.1 通态与断态:两段指数曲线的接力

t=0 时刻驱动 V 导通,电源 E 向负载供电,负载电压 uo 等于 E,负载电流 io 按指数曲线上升;到 t=t1 时刻控制 V 关断,负载电流经二极管 VD 续流,负载电压 uo 近似为零,负载电流呈指数曲线下降。整个周期里,电流波形是一段上升、一段下降的锯齿,平均值就是最终输出的直流分量。

这里的“指数”不是数学修饰。电感 L 和电阻 R 构成一阶系统,时间常数是 L/R,通态和断态各走一段指数。当 L 足够大、开关周期远小于 L/R 时,这两段指数在局部可以近似成直线,这就是课本里“分段线性”分析的由来。原文特意强调“由于 L 为无穷大,故负载电流维持为 Io 不变”,说的就是这个近似的前提:电感大到电流来不及明显变化。

电感在这个过程中扮演的是“续流泵”角色,而不是很多人以为的“滤波器”。断态时如果没有 L,负载电流会瞬间断掉,uo 直接掉到零,输出就是一堆离散脉冲;有了 L,断态期间电流靠它储存的磁场能量继续流动,二极管才有机可乘。所以续流二极管不是可有可无的保护元件,它是电感电流的唯一通道,拿掉它,电感电流突变会在开关管上打出高压尖峰。

2.2 伏秒平衡:为什么一个周期内电感电压积分为零

稳态下电感电流满足 iL(0) = iL(T),而电感电压与电流的关系是 vL = L·di/dt,两边在一个周期内积分:

∫₀ᵀ vL dt = L·[iL(T) − iL(0)] = 0

也就是说,稳态时电感两端电压在一个周期内的积分必须为零,这就是伏秒平衡。Buck 电路里,通态时电感电压是 E − Uo,断态时是 −Uo,代入:

(E − Uo)·Ton = Uo·Toff

整理得 E·Ton = Uo·(Ton + Toff) = Uo·T,于是:

Uo = (Ton/T)·E = D·E

D 就是占空比,原文里用的符号是 α,两者同义。这条公式的适用范围比想象中宽:只要电感电流连续,不管开关频率多高、负载多大,电压比只由占空比决定。开关管的导通电阻、二极管的 Forward 压降只会让实际输出略低于 D·E,属于二阶修正。

原文还给了另一种推法:从能量传递关系出发,电源只在 V 通态时提供能量 E·Io·Ton,整个周期负载消耗 Uo·Io·T,忽略损耗两者相等,同样得到 Uo = D·E。这两种推法不是两套理论,伏秒平衡本质就是电感上的能量守恒,一个从电压积分入手,一个从功率积分入手,结果必然一致。

理解这一点之后,很多“玄学”现象就有了解释。比如为什么输入电压从 12 V 跳到 40 V,输出还能稳在 28 V?因为控制环调节的是 D,D 跟着输入电压反向变化,E·D 这个乘积被锁住了。斩波电路像一个直流变压器,变比就是 D,而这个变比是可以实时改的。

2.3 电感量:从纹波率反推 L,以及 5 mH 为什么刚好

电压比定下来之后,下一个绕不开的参数就是电感量。电感电流的峰峰值纹波可以直接算:

ΔI = (E − Uo)·Ton/L = Uo·Toff/L = E·D·(1−D)·T/L

这个式子说明,纹波电流跟开关频率成反比,跟电感量成反比,跟 D(1−D) 成正比。D=0.5 时 D(1−D) 取最大值 0.25,也就是说占空比一半时纹波最严重,电感设计要按这个最坏点来。

判断电流是否连续,看纹波的一半是否小于平均电流:ΔI/2 ≤ Io。临界点对应的电感量是:

Lc = E·D·(1−D)·T/(2·Io)

拿原文仿真参数代进去:E=200 V、D=0.5、f=1 kHz、R=10 Ω、L=5 mH。先算 Uo = 100 V,Io = 10 A,ΔI = 200×0.5×0.5×1e−3/0.005 = 10 A,纹波率 100%,峰值 15 A,谷值 5 A,仍在连续导通范围内。临界电感 Lc = 200×0.25×1e−3/(2×10) = 2.5 mH,5 mH 正好是临界值的两倍。

% Buck 主电路参数核算:对应 E=200V, Uo=100V, R=10ohm, f=1kHz E = 200; % 输入直流电压 (V) D = 0.5; % 占空比 f = 1e3; % 开关频率 (Hz) T = 1/f; % 开关周期 (s) R = 10; % 负载电阻 (ohm) L = 5e-3; % 储能电感 (H) Uo = D*E; % 理想输出电压 (V) Io = Uo/R; % 平均负载电流 (A) dI = E*D*(1-D)*T/L; % 电感电流峰峰值 (A) Lc = E*D*(1-D)*T/(2*Io); % 临界连续电感 (H) fprintf('Uo=%.1f V, Io=%.2f A, dI=%.2f A, Lc=%.2f mH\n', ... Uo, Io, dI, Lc*1e3);

这段脚本只做静态核算,不涉及仿真。E、D、f 决定工作点,R 决定负载轻重,L 是待校验的取值;输出里 dI 告诉你纹波多大,Lc 告诉你再小多少就会掉进断续模式。把 L 从 5 mH 改成 1 mH,dI 会变成 50 A,远超 2Io,电路进入断续导通,输出电压会明显高于 D·E,这时候再调控制环也拉不回来,因为电压比公式已经不成立了。

原文还提到斩波电路有三种控制方式:保持开关周期 T 不变、调节导通时间 Ton,叫 PWM;保持 Ton 不变、改变 T,叫频率调制;两者都可调,叫混合型。PWM 之所以成为主流,是因为开关频率固定,电感和电容的设计点固定,滤波器不用跟着工况变,电磁干扰的频谱也好管。这一条在后面的双闭环控制里会直接体现:控制器的输出最终就是一路占空比。

3. 升压斩波与升降压斩波:电感储能的两种接法

降压电路的输出永远低于输入,这是拓扑决定的,不是器件不行。要想让输出高过输入,电感不能串在输出侧,得换个接法:让电感先在通态时把能量存起来,断态时把电源和电感串联起来一起往负载灌。这就是 Boost 的核心动作,也是“升压”两个字的物理来源。

3.1 Boost:断态时电源和电感串联叠加

假设 L 和 C 都很大,通态时电源 E 向电感 L 充电,电流恒定,电容 C 向负载 R 供电,输出电压恒定;断态时电源 E 和电感 L 同时向电容 C 充电,并向负载提供能量。设 V 通态时间为 Ton,此阶段 L 上积蓄的能量为 E·Ii·Ton;设断态时间为 Toff,此期间电感释放的能量为 (Uo − E)·Ii·Toff。

稳态时一个周期内积蓄和释放相等:

E·Ton = (Uo − E)·Toff

整理得 Uo = E·(Ton + Toff)/Toff = E·T/Toff。把 Toff/T 记作 β,就有:

Uo = E/β = E/(1 − D)

D 趋近 1 时,理论上输出电压可以无限高。当然实际做不到,器件压降、电感电阻、电容 ESR 都会限制升压比,占空比拉到 0.9 以上效率会明显下滑。

这里有个容易被忽略的结构差异:Buck 的电感在输出侧,输出电流是连续的;Boost 的电感在输入侧,输入电流连续,但输出电流只有断态那一段时间有,二极管一关,输出电流就断了,全靠输出电容撑着。所以 Boost 的输出纹波天生比 Buck 大,电容选型要按输出电流的脉动来算,不能照搬 Buck 的经验。

用伏秒平衡来推也一样。通态时电感电压是 E,断态时是 E − Uo,一个周期积分为零:

E·Ton + (E − Uo)·Toff = 0

展开就是 E·(Ton + Toff) = Uo·Toff,跟能量法殊途同归。两种推导都指向同一个结论:升压比只跟断态占空比 β 有关,β 越小、升压越高。

3.2 Buck-Boost:极性反转换来的宽输入范围

升和降都要,最直接的想法是把两个拓扑拼起来。Buck-Boost 的做法是让电感在通态时只接电源、断态时只接负载,中间靠开关和二极管切换。通态时电源 E 经 V 向 L 供电使其储能,同时 C 维持输出电压并向负载 R 供电;断态时 L 的能量向负载释放。注意输出的参考方向:负载电压极性为上负下正,与电源电压极性相反。

对电感列伏秒平衡。通态时电感电压是 E,断态时电感向负载释放,电压是 Uo(按反极性定义),稳态下一个周期内电感两端电压对时间的积分为零:

E·Ton = Uo·Toff

所以:

Uo = E·Ton/Toff = E·D/(1 − D)

D < 0.5 时降压,D > 0.5 时升压,D = 0.5 时输出等于输入。一条公式覆盖两种工况,代价是输出极性反了。反极性在很多场合是硬伤:负载一端接地、传感器共地、后级 ADC 参考地,任何一个环节都不接受负压,就得再加一级反相或者用隔离电源,成本和体积又回去了。

原文对几种非隔离升降压拓扑做了对比:Buck-Boost 和 Cuk 是负极性输出,Sepic 和 Zeta 是正极性输出,但后两者结构复杂,都需要两个储能电感,必然导致损耗增加、效率变低,且体积和质量大。这段话其实点出了一个设计上的两难:想要正极性,传统方案就得付两个电感的代价;想要单电感,就得接受反极性。

拓扑输出极性储能电感数理想电压比结构特点
Buck-Boost负1−D/(1−D)器件最少,输出反极性
Cuk负2−D/(1−D)输入输出电流都连续
Sepic正2D/(1−D)正极性,需耦合电容
Zeta正2D/(1−D)正极性,结构较复杂

这张表里,电感数量直接对应磁性元件的体积和铜损。一个 200 W 级的电感不是小个子,多一个就意味着多一份磁芯、多一份绕组、多一份损耗。所以“单电感 + 正极性输出”这个组合,在工程上确实有吸引力,只是传统拓扑给不了,得自己搭。

3.3 为什么 Boost 不能空载、不能把占空比拉满

Boost 有一个反直觉的特性:理想情况下输出电压只跟占空比有关,跟负载无关。Uo = E/(1−D),负载从满载变到空载,只要 D 不变,输出就该是那个值。但实际电路里,空载时输出电容没有放电回路,能量只进不出,电压会一直往上爬,直到电容或开关管耐压撑不住。所以 Boost 类拓扑必须有假负载或者过压保护,不能真的空载运行。

第二个坑是启动。上电瞬间输出电容电压为零,如果控制环一上来就把占空比拉到很大的值,电感电流会以 E/L 的斜率线性上升,几个周期就饱和,电感变成一根导线,开关管直接短接电源。常见的做法是软启动:让给定电压从零缓慢爬升,占空比跟着从小往大走,给电感电流一个跟随的时间。原文的控制系统里设计了故障检测与保护电路,包括过流保护、过压保护、过热保护,用比较器对电流、电压、温度的检测值与设定值比较,一旦超限立即动作,这套东西在很大程度上就是为启动和异常工况兜底的。

第三个坑是模式切换时的电感电流。升降压拓扑在降压模式和升压模式之间切换,真正连续的量是电感电流,不是输出电压。切换瞬间如果两只开关管的驱动时序有重叠或者空隙,电感电流会找错通路,轻则输出跌落,重则开关管直通。这就引出了下一章要讲的问题:一个拓扑两种模式,两只开关管怎么配合,控制信号又怎么分配。

4. 单电感双模式拓扑:共地、模式切换与双闭环

把 Buck 和 Boost 串起来,共用一只电感和一只电容,理论上就能用一套主电路实现升降压。但串联之后问题立刻来了:前级的开关管和后级的开关管,源极不在同一个电位上,驱动信号没法共地。这不是一个小麻烦,它直接决定了驱动电路能不能用现成的低边驱动芯片。

4.1 拓扑拆解:前级 Buck 后级 Boost 串起来

原文给出的拓扑是前后级串联结构:前级由 T1、T3、D1、D2、L、C、R1、R2 构成降压变换电路,后级由 T2、D2、L、C 构成升压变换电路,其中 D2、L、C 同时出现在前、后级变换电路中。也就是说,电感和电容是两级共用的,二极管 D2 也是共用的。

这种共用不是偷懒,而是刻意的设计。如果前后级各自配一只电感,那就退化成两个变换器级联,体积和损耗都上去了,跟 Sepic、Zeta 的问题一样。共用一只电感之后,整个变换器只有一个储能元件,L 必须在两种工作模式下都能存储足够的能量,在斩波开关截止时向负载提供连续的电流。原文明确说“L 是该 DC/DC 变换器的关键元件,其参数的选取直接影响到变换器能否正常工作”,这句话的分量就在这里。

两种工作模式的等效关系很干净。降压模式下,T3 截止,T1 以 PWM 方式工作,变换器与 Buck 相比只是多了一个二极管 D2,而这个二极管对 Buck 的工作没有影响,所以电压关系是 Uo = D1·Ui。升压模式下,T1 全导通,T2 以 PWM 方式工作,变换器与 Boost 相比多了一个全导通的开关管 T1 和一个二极管 D2,同样没有影响,电压关系是 Uo = Ui/(1 − D2)。

合并起来,理想电压变换关系是分段函数:降压模式下 Uo = D1·Ui,升压模式下 Uo = Ui/(1 − D2)。两个模式各自等价于一个基本拓扑,中间通过开关管的配合来选通。这种“等效”不是近似,只要共用元件在两种模式下都不改变角色,方程就是严格的。

4.2 共地难题与辅助开关管

原文点得很直接:采用 PWM 方式控制两个主开关管 T1、T2 存在困难,因为它们的控制端不共地。为了实现两路控制信号共地,只能选用功率晶体管。为此在主变换电路中增加了辅助开关管 T1,且 T0 由 NPN 型改为 PNP 型,这样 T0、T2 是共地的,T1、T3 是同步开关的。

这段描述里藏着拓扑演化的关键一步。原本是想通过控制 T0、T2 来控制电路状态,现在改成通过 T1、T2 来控制,T1 叫降压斩波辅助开关,T2 叫升压斩波主开关,T3 叫降压斩波主开关。换句话说,辅助开关管的加入不是为了改变电路功能,而是为了把“高边开关”的控制问题转化成“低边开关”的控制问题,让两路驱动信号能站在同一个参考地上。

共地这件事在仿真里看不出来,在实物上却是分水岭。不共地意味着要么用隔离驱动(光耦、变压器、隔离栅极驱动器),要么用自举电路把驱动电平抬上去,前者增加元件和延迟,后者在占空比接近 100% 时没法维持自举电容电压。把高边开关换成低边加辅助管,本质上是拿一只器件换掉一整套隔离驱动,在 500 W 以下的场合这笔账是划算的。

代价是导通损耗。辅助开关管串在主回路里,通态时一直有电流流过,它的导通电阻或者饱和压降会直接变成损耗。所以这只管子要选低导通电阻的型号,而且不能只看耐压,得看工作电流下的实际压降。

4.3 双闭环串级与限幅的真正作用

控制系统的结构是电压、电流双闭环串级:外环是电压环,内环是电流环。电压给定 Uref 与电压反馈 Uf 比较,得到的电压误差经电压调节器输出作为电流给定 Ir,Ir 与电流反馈 If 比较,得到的电流误差经电流调节器输出对应 PWM 波的脉冲宽度,然后经 PWM 控制决定分配给哪个开关管,之后 PWM 波通过驱动电路驱动相应的开关管工作。

两级 PI 调节器都是带限幅输出的。电压调节器的输出作为电流调节器的给定,所以电压调节器的限幅值决定了电流调节器的最大输出电流,这就是限流的来源;电流调节器的限幅值限制了最大输出电压,防止输出电压过高的非正常状态。这两条限幅不是保护电路的补丁,而是控制律本身的一部分:给定信号在被下一级使用之前就已经被物理约束住了。

为什么要串两道环,而不是只用电压单环?电压单环也能稳压,但它的动态过程是“电压掉了—加大占空比—电压回来”,中间要经过电感和电容的延迟,响应慢,而且启动或者负载突变时占空比会冲到极限,电感电流没有约束。加上电流内环之后,电压环输出的是电流目标,电流环以更快的速度去追这个目标,电感电流被实时限制在一个给定值附近,动态响应快,也天然具备限流能力。

从控制理论上说,电流内环把电感这个一阶环节改造成了一个受控电流源,外环面对的负载特性变简单了,补偿网络好设计。从工程上说,调试的时候可以先给一个固定的电流给定,把内环调稳,再闭合外环调电压环,分两步走,不至于两个环互相打架。

4.4 三角波偏移:两路 PWM 如何平滑切换

模式切换是这套控制里最巧的部分。PWM 波产生电路负责两种 PWM 开关方案的实现,电流调节器输出送到比较器 IC1、IC2 的同相端,由一个三角波发生器产生的三角波送到反相端,两路信号相比较叠加获得 PWM 波。两种不同的开关方案,是通过对送到比较器 IC1、IC2 反相端的三角波加上不同的偏移电压 V1 和 V2 来实现的。

逻辑是这样的:当电流调节器输出电压低于 5 V 时,比较器 IC1 与三角波有交点,输出 PWM 波,该波形用于驱动 T1,而比较器 IC2 与三角波没有交点,故无脉冲输出,T2 截止;当电流调节器输出电压高于 5 V 时,比较器 IC2 与三角波有交点,输出 PWM 波,该波形用于驱动 T2,而 IC1 输出高电平,T1 处于全导通状态。而且,降压工作模式和升压工作模式的切换是平滑过渡的。

这里的 5 V 就是三角波的中心电平,也是两个比较器工作区间的分界。偏移电压的作用相当于给两路 PWM 划定了各自的输入范围:低段归降压,高段归升压,中间没有死区,也没有重叠。平滑过渡的关键在于,切换点上 IC1 的输出从 PWM 变成恒高,T1 从斩波变成常通,正好对应 Boost 模式对前级的要求;反过来,IC2 从无输出变成 PWM,T2 开始斩波。两个动作在同一个输入电压下完成,不存在“两边都关”或者“两边都开”的中间态。

% 双模式 PWM 分配的控制律骨架(示意,非主电路模型) Vref = 28; % 输出电压给定 (V) Vfb = 28.01; % 输出电压反馈 (V) Kp_v = 0.8; % 电压环比例系数(示意值) Ilim = 7.5; % 电压环输出限幅 = 最大电流给定 (A) % 电压外环:输出作为电流给定,先限幅再送内环 Iref = Kp_v * (Vref - Vfb); % 积分项在循环中累加,此处省略 Iref = min(max(Iref, 0), Ilim); % 限流:决定了最大输出电流 % 电流内环:输出对应占空比指令,5 V 为三角波中心电平 Uc = 2.0 * Iref; % 电流环增益(示意值) if Uc < 5 d1 = Uc / 5; d2 = 0; % 降压模式:T1 斩波,T2 关断 else d1 = 1; d2 = (Uc - 5) / 5; % 升压模式:T1 常通,T2 斩波 end

这段代码不是仿真模型,只是把比较器逻辑翻译成可读的分段函数。Vref 和 Vfb 的差经过比例环节变成电流给定,Ilim 对应电压调节器的限幅值;Uc 是电流调节器的输出,拿它跟 5 V 比较,就得到 d1 和 d2 两路占空比。可以看到,d1 在降压区从 0 连续变到 1,到切换点时正好等于 1,也就是全导通,跟“T1 处于全导通状态”的描述对上了;d2 在升压区从 0 开始往上走,切换点上没有跳变。参数 Kp_v 和增益 2.0 只是示意,实际整定要看主电路参数和动态指标,但分段结构是确定的。

模式平滑切换带来的一个隐性好处是,负载突变时不需要判断“该不该换模式”,控制量自己会走过分界点。电压掉下去,误差变大,Uc 往上走,自然从降压区进到升压区,中间没有状态机,也没有切换延时。这种用连续量表达离散状态的思路,在电力电子控制里很常见,可靠性比显式的模式判断高。

5. MATLAB 仿真:参数设置与波形翻车的排查清单

仿真这一步最容易出现“图跑出来了,但图是错的”。模型搭对、参数填错,波形照样能画出来,只是跟实际电路对不上。原文给的仿真设置里,有几个参数是有讲究的,弄明白它们为什么这么取,比照着填一遍更有用。

5.1 参数设置与波形判读

降压斩波的仿真模型由 IGBT 构成,IGBT 按默认参数设置,并取消缓冲电路,即 Rs=5 Ω、Cs=0;电压源参数取 Us=200 V、E=80 V;负载参数取 R=10 Ω、L=5 mH。仿真算法选 ode23tb,相对误差设置为 1e−3,开始时间 0,停止时间 0.01 s,控制脉冲周期 0.001 s(频率 1000 Hz),占空比 50%。

ode23tb 的选择不是随便挑的。开关电源在开关瞬间是不连续系统,状态变量在极短时间内剧烈变化,属于刚性方程。ode45 是变步长显式算法,遇到这种刚性点会把步长压到极小,仿真时间成倍增加,甚至跑不动;ode23tb 是隐式算法,对刚性系统更稳,步长可以放得大一些。相对误差 1e−3 是一个折中,再小仿真会明显变慢,再大波形细节会丢。

仿真时间 0.01 s 对应 10 个开关周期,对于观察稳态波形够用,但如果要看启动过程或者负载突变的动态响应,这个时间太短,至少得跑到电感时间常数 L/R 的 5 到 10 倍。L=5 mH、R=10 Ω 时时间常数是 0.5 ms,10 倍就是 5 ms,0.01 s 勉强够,但如果电感取大了,就得相应延长。

波形判读的重点不是看电压平均值对不对,而是看三件事:电感电流有没有降到零(判断是否断续)、开关瞬间有没有电压尖峰(判断缓冲和寄生参数)、输出电压的纹波形状是不是跟理论一致(Buck 的纹波频率等于开关频率,Boost 的输出纹波还叠加了二极管导通角的影响)。原文的仿真结果给出 100 V、160 V、80 V 三个输出电压,对应不同的占空比设置,这三个点正好覆盖了 D=0.5、D=0.8、D=0.4 附近的工作状态,可以用来验证 Uo = D·E 这条关系。

5.2 常见问题排查

现象一:开关瞬间电压波形剧烈振荡,尖峰远高于输入电压。原因通常是缓冲电路没处理。原文的模型明确“取消缓冲电路,即 Rs=5 Ω、Cs=0”,这是为了让波形干净、便于观察主电路的电压关系;但如果照搬到实物或者别的仿真模型里,IGBT 关断时电感电流突变会在杂散电感上感应出高压,振荡会一直存在。解决方式是先确认缓冲参数:仿真里按原文设 Rs=5 Ω、Cs=0 关掉缓冲,看主波形;要模拟真实开关过程,就给 Cs 一个实际值(比如几百 pF 到几 nF),Rs 按阻尼比配,别让 RC 环节跟电感形成欠阻尼振荡。

现象二:输出电压比 D·E 明显偏高,调占空比也不线性。这是电感电流进入断续导通的典型症状。原因要么是电感太小,要么是负载太轻,ΔI/2 超过了平均电流,断态期间电感电流已经降到零,二极管提前关断,输出电压不再服从 Uo = D·E。解决办法是回到 2.3 节的临界电感公式,按最轻负载核算 Lc,把 L 加大到 Lc 的两倍以上;如果负载本身就要求很轻,那就得接受断续模式,改用断续模式下的电压比公式重新设计,而不是硬调控制环。

现象三:仿真报步长过小或者直接卡住。多半是算法和步长设置不匹配。开关电源的开关事件是强不连续的,用 ode45 会在每个开关沿反复缩步长,仿真时间稍长就撑不住。换成 ode23tb,把最大步长限制在开关周期的 1/100 以内(1 kHz 对应 10 μs),相对误差放到 1e−3,通常就能跑完。另外检查一下仿真时间是不是设得太长,0.01 s 跑 1 kHz 是 10 个周期,如果误设成 1 s 就是 1000 个周期,时间自然长。

现象四:带反电动势负载时,电流方向反了或者电流直接断流。原文的仿真里电压源参数取了 Us=200 V、E=80 V,这个 E 是负载侧的反电动势,用来模拟直流电机的电枢。Buck 带反电动势负载时,负载电流只在 Uo > E 时才能流出,如果占空比调得太低,Uo 掉到 80 V 以下,二极管反偏,电流就断了,波形上表现为输出端电压跟着电容放电往下掉。排查的时候先确认 Uo = D·E 是否大于反电动势,再看电流波形有没有出现平底为零的区间。顺带一提,反电动势负载会改变电流连续的判断,平均电流变成 (Uo − E)/R,同样的电感更容易进断续,L 要重新

本文还有配套的精品资源,点击获取