简介:面向电力电子课程设计与DC/DC变换器入门学习者,这份课程设计文档围绕升压、降压直流斩波电路展开,重点解决斩波电路拓扑选择、工作模式分析、储能电感参数设计以及PWM闭环控制实现等问题。包内仅含1个doc文件,压缩包约823KB,篇幅集中,适合按目录连续阅读或作为课设报告撰写参考。文档从降压斩波电路工作原理与输入输出关系讲起,延伸至DC/DC变换器设计、测试结果分析,并给出MATLAB建模与仿真内容,可帮助读者理解占空比调节、续流二极管与电感取值对输出电压纹波和稳定性的影响。文末还附有课设体会、总结与参考文献,便于复盘设计思路、整理实验结论和继续查阅资料。目前已有3251人学习下载,适合电力电子、电气工程及相关专业学生和初学斩波电路的读者参考。
1. 从一道课程设计题目说起:升、降压斩波电路要交付什么
「升、降压直流斩波电路及 MATLAB 仿真」这道题,多数人第一反应是打开 Simulink 拖一个开关管、一个二极管、一个电感,接上脉冲发生器就等波形。真跑起来才发现:波形是有的,可输出电压平均值和手算的 Uo = αE 差一大截,电感电流早就断续了,效率算出来还能超过 100%。问题不在仿真软件,在于整条设计链是断的——拓扑没推透、参数没算准、控制没落地,仿真只是把错误放大给人看。
这套方案要闭合的正是这条链:从斩波电路的伏秒平衡推导,到宽输入 12~40 V、输出 28 V/200 W 的 DC/DC 变换器参数设计,再到电压电流双闭环与两路 PWM 逻辑分配,最后落到 Simulink 建模、波形读数和指标验收。适合电力电子课程设计、毕业设计做 DC/DC 变换器题目的学生,也适合需要快速预研 500 W 以下小功率直流开关电源拓扑的工程师。有一条反直觉的线要先摆明:输入 12 V 时要得到 28 V,降压电路根本做不到,这套拓扑必须能升能降,还得是正极性输出。
2. 拓扑与工作机理:三种斩波电路的输入输出关系从哪来
斩波电路的本质是把恒定直流切成脉冲,再靠储能元件把脉冲的平均值捡回来。所有输入输出关系都不是背下来的,而是一个周期内电感两端电压积分为零这一条推出来的。把这条推明白,后面参数怎么改、波形为什么不对,都能自己判断。
2.1 降压斩波电路:分段线性与伏秒平衡
降压电路(Buck Chopper)主开关 V 串联在电源和负载之间,续流二极管 VD 反并联在负载两端,电感 L 串在回路里。t = 0 时刻驱动 V 导通,电源 E 直接加在电感与负载上,负载电压 uo = E,负载电流 io 按指数曲线上升;t = t1 时刻关断 V,电感电流不能突变,经 VD 续流,负载电压 uo 近似为零,io 按指数曲线下降。为了让电流连续且脉动小,L 要取得足够大,工程上通常按额定负载的 20%~30% 仍能连续来定。
按分段线性思路,一个周期内电感两端电压对时间的积分必须为零:导通期间电感承受 (E − Uo),关断期间承受 −Uo,于是 (E − Uo)·ton = Uo·toff,整理得 Uo = ton/T · E = αE,α 就是导通占空比。这个式子还说明一件事:忽略损耗时输入功率等于输出功率,降压斩波器等效于一台直流降压变压器,电流关系自然就是 Io = Ii/α。
原文之所以强调「基于分段线性的思想」,是因为它绕开了微分方程求解,直接用电感伏秒平衡拿结论,这也是后面所有拓扑的统一工具。带电动机负载或蓄电池负载时,回路里会多出一个反电动势 E,此时电流表达式要改写,但电压关系不变,这一点在做闭环仿真时很容易被忽略。
2.2 升压斩波电路:电感储能与释能的平衡
升压电路(Boost Chopper)把电感挪到了电源侧。V 导通时,电源 E 向电感 L 充电,电流近似恒定(假设 L 很大),电容 C 单独向负载 R 供电并维持输出电压恒定;V 关断时,电源 E 和电感 L 串联起来同时向电容 C 充电并向负载供能。注意这里的能量流向:电感在导通期间存下的能量,必须在关断期间全部释放出去,否则一个周期下来电感就饱和了。
设导通时间为 ton,此阶段 L 上积蓄的能量为 E·IL·ton;关断时间为 toff,电感释放的能量为 (Uo − E)·IL·toff。稳态时两者相等,消去 IL 得 Uo = E·T/toff = E/(1 − α)。把升压比的倒数记作 β = 1 − α,就有 α + β = 1,输出电压 Uo = E/β。这个式子直接点出 Boost 的两个特征:输出永远高于输入,且 α 越接近 1 升压比越大,理论上无穷,实际上受器件压降、电感和负载限制。
做仿真时最容易翻车的地方也在这里——α 给到 0.9 以上,理想模型输出电压能冲到输入的十倍,实际模型则因为电感电流断续或饱和直接崩掉。所以升压电路的空载和轻载启动必须做软启动,不能一上来就给目标占空比。
2.3 升降压电路与三种占空比调制方式
升降压电路(Buck-Boost Chopper)把电感放在开关管和二极管之间。V 导通时电源经 V 向 L 供电储能,电流为 IL1,此时电容 C 维持输出电压并向负载供电;V 关断时 L 的能量向负载释放,电流为 IL2,负载电压极性为上负下正,与电源极性相反。稳态时一个周期内电感电压积分仍为零,得 Uo = −αE/(1 − α),负号就是极性反转的标志。
极性反转在实际系统里很麻烦:反馈采样要反接,负载对地参考变了,多路输出共地也成问题。原文给的选型逻辑很清楚——非隔离升降压拓扑里,Buck-Boost 和 Cuk 是负极性输出,Sepic 和 Zeta 虽然是正极性,但结构复杂、需要两个储能电感,损耗、效率、体积质量都不占优。因此这份设计改成了前后级串联结构:前级由 T1、T3、D1、D2、L、C、R1、R2 构成降压变换,后级由 T2、D2、L、C 构成升压变换,两级共用一个储能电感 L 和一个电容 C。
拓扑上的巧劲在于共地问题。两个主开关管 T2、T3 的控制端不共地,两路 PWM 直接驱动很别扭;设计里加了一只辅助开关管 T1,并把 T2 由 NPN 改为 PNP,使 T1、T2 共地、T1 与 T3 同步开关。于是原本控制 T2、T3 变成控制 T1、T2,T1 叫降压斩波辅助开关,T2 叫升压斩波主开关,T3 叫降压斩波主开关。这个改动看着只是换了个器件极性,实际是把「两路不共地驱动」变成了「两路共地驱动」,驱动电路一下子简单了。
调制方式有三种:保持开关周期 T 不变、只调导通时间 ton,叫 PWM;保持 ton 不变、调 T,叫频率调制;两者都调、改变占空比,叫混合型。这套设计走的是 PWM 路线,因为固定开关频率对滤波器和 EMI 都友好,仿真里也只需要一个周期固定的脉冲源。
| 拓扑 | 电压关系 | 输出极性 | 储能电感数 | 典型适用 |
|---|---|---|---|---|
| Buck | Uo = αE | 正 | 1 | 输入高于输出,如 40 V 降到 28 V |
| Boost | Uo = E/(1−α) | 正 | 1 | 输入低于输出,如 12 V 升到 28 V |
| Buck-Boost | Uo = −αE/(1−α) | 负 | 1 | 宽范围但需隔离或反相采样 |
| Sepic/Zeta | Uo = ±αE/(1−α) | 正 | 2 | 正极性宽范围,体积偏大 |
| 串联升降压 | 分段:降压段 αE,升压段 E/(1−α) | 正 | 1 | 12~40 V 进、28 V 出这类宽输入场合 |
3. 主电路参数设计:从 12~40 V 输入到 28 V/200 W 输出
参数设计这一步最容易被跳过,大家习惯直接抄一组「看起来能跑」的数值。但仿真参数和实物参数是两套东西:仿真里 L 取 5 mH 是为了波形平滑好看,实物里 5 mH/7 A 的电感体积大得离谱。设计时先把指标摆出来,再倒推器件应力和无源件参数,最后才决定仿真里用什么值验证。
3.1 开关管与续流二极管的电压电流应力
设计条件来自原文:输入电压 12~40 V,输出电压 28 V,额定功率 200 W,效率不低于 85%,功率容量 500 W 以下。额定输出电流 Io = 200/28 ≈ 7.14 A,等效负载电阻 R ≈ 3.92 Ω。输入低于 28 V 时工作在升压模式,输入高于 28 V 时工作在降压模式,分界点就在 28 V 附近,这也是这套拓扑的价值所在。
开关管电压应力按最恶劣工况取。降压模式下 V 关断时承受接近输入电压,40 V 输入就是 40 V;升压模式下 V 关断时承受输出电压 28 V。考虑 2 倍裕量和关断尖峰,选 100 V 耐压的 IGBT 或 MOSFET 足够。电流应力按额定电流 7.14 A 的 2~2.5 倍取,再叠加纹波,20 A 级别的器件是常规选择。续流二极管的电压应力同理,电流取 Io 加上纹波峰值。
这里有个省事的判断:如果仿真里只关心电压关系和波形形状,器件应力可以不细究,直接用默认模型;一旦要做效率核算和热校核,器件通态压降必须填进去,否则效率虚高。IGBT 的 VCE(sat) 通常在 1.5~2.5 V 量级,7 A 电流下通态损耗就有十几瓦,占 200 W 的 5% 以上,这部分不算清楚,效率指标就没法验收。
3.2 储能电感 L 与滤波电容 C 的计算
储能电感是整个变换器的关键元件。因为它要在降压和升压两种模式下都保证电流连续,必须取两种极端工况算出来的较大者。降压模式的临界电感按 L ≥ (1 − α)·R·T/2 估算,α 越小所需电感越大;升压模式按 L ≥ α(1 − α)²·R·T/2 估算。原文的思路也是如此:分别计算两个极端工作状态下的电感量,取大者作为 L 的设计参数。
滤波电容按输出电压纹波要求倒推。降压模式下 ΔUo ≈ Io·α·T/C,给定纹波峰峰值不超过 250 mV,就能反算 C 的下限。下面这段脚本把占空比、临界电感、滤波电容一次算完,改输入范围或开关频率时只改前四行即可。
% 升、降压斩波电路主参数估算 Uin_min = 12; Uin_max = 40; % 输入电压范围 (V) Uo = 28; % 额定输出电压 (V) Po = 200; % 额定功率 (W) fs = 20e3; % 开关频率 (Hz),实物取 20 kHz ripple = 0.25; % 允许输出纹波峰峰值 (V) T = 1/fs; Io = Po/Uo; % 额定输出电流 ≈ 7.14 A R = Uo/Io; % 等效负载电阻 ≈ 3.92 Ω % 降压模式:输入最高时占空比最小,是电感最恶劣点 alpha_buck = Uo/Uin_max; % 28/40 = 0.7 L_buck = (1-alpha_buck)*R*T/2; % 升压模式:输入最低时占空比最大 alpha_boost = 1 - Uin_min/Uo; % 1 - 12/28 ≈ 0.571 L_boost = alpha_boost*(1-alpha_boost)^2*R*T/2; L_design = max(L_buck, L_boost) * 2; % 取大者并留 2 倍裕量 C_design = Io * max(alpha_buck, alpha_boost) * T / ripple; fprintf('降压占空比 %.3f,升压占空比 %.3f\n', alpha_buck, alpha_boost); fprintf('临界电感 %.1f uH,设计取 %.1f uH\n', max(L_buck,L_boost)*1e6, L_design*1e6); fprintf('滤波电容下限 %.0f uF\n', C_design*1e6);脚本里alpha_buck对应最高输入时的降压占空比,alpha_boost对应最低输入时的升压占空比,这两个点是电感设计的两端。L_design乘 2 是工程裕量,实际取 60~100 μH 之间比较现实。C_design是纹波约束下的理论下限,实物还要考虑 ESR 和电容容差,通常再翻一倍。仿真里可以直接用 1~5 mH 的大电感把电流压得很平,波形漂亮,但那是为了观察原理,不是设计值。
值得注意的是,原文的仿真参数是电压源 200 V、反电动势 80 V、R = 10 Ω、L = 5 mH,这组数值是为了在 10 ms 内看到完整的暂态过程,和 200 W 实物的参数不是一回事。把仿真参数当设计参数抄进报告,是课程设计里最常见的硬伤。
3.3 双闭环控制与两路 PWM 的逻辑分配
控制系统采用电压、电流双闭环串级结构,外环电压、内环电流。电压给定与电压反馈比较,误差经电压调节器输出作为电流给定;电流给定与电流反馈比较,误差经电流调节器输出对应 PWM 的脉冲宽度,再经 PWM 控制单元决定送给哪个开关管,最后通过驱动电路驱动主开关。两级 PI 调节器都带限幅输出:电压调节器的限幅值决定了电流调节器的最大输出,也就是最大电流;电流调节器的限幅值限制了最大输出电压,防止输出电压异常升高。这两处限幅是保护逻辑的落脚点,调参时先把它们定死,再调 PI 参数。
PWM 波产生电路负责两种开关方案的实现。两路比较器共用一只三角波发生器,但反相端叠加不同的偏移电压:电流调节器输出低于 5 V 时,一路比较器与三角波有交点,输出 PWM 驱动降压主开关,另一路无脉冲、升压主开关截止;高于 5 V 时,另一路比较器有交点,输出 PWM 驱动升压主开关,降压侧保持全导通。这样随着输入电压变化,两种工作模式之间是平滑过渡的,不会出现控制权切换时的输出跳变。
驱动之外还得有故障检测与保护电路,过流、过压、过热各用一只比较器,检测值与设定保护值比较,超限立即动作。这部分在仿真里可以用 SaturaTIon 模块和 Breaker 近似,也可以先不建,但报告里要作为一个模块写清楚,答辩时大概率会被问到「输出短路怎么办」。
4. Simulink 建模:从模块搭建到波形读数
仿真不是把模块拖齐就完事,建模顺序直接影响后面排查的效率。我的习惯是先搭开环、固定占空比,跑通电压关系;再加闭环、加软启动;最后才批量扫参数。一上来就上双闭环,出了问题根本分不清是拓扑错、参数错还是控制错。
4.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(即 1 kHz),占空比 50%。
这组参数里有两个容易忽略的细节。一是「取消缓冲电路」,Simulink 里 IGBT 默认带 RC 吸收网络,不取消的话,开关瞬间的振铃会污染波形,读数时平均值会偏;二是求解器选 ode23tb,它是刚性求解器,适合含开关不连续点的电路模型,用 ode45 硬跑要么很慢,要么步长被强行压小。
改占空比重复仿真,可以验证 Uo = αE 的线性关系。50% 时输出约 100 V,80% 时约 160 V,40% 时约 80 V,三组数据落在一条直线上,就说明拓扑和读数窗口都没问题。这一步做扎实,后面加闭环才有参照。
4.2 升压与升降压模型的差异点
升压模型的搭建和降压几乎一样,区别在电感位置和输出采样参考点。直流电源正极接电感,电感另一端接开关管集电极与二极管的公共点,二极管阴极接电容和负载。仿真时输出端要并一只大电容,否则输出电压会随开关动作剧烈跳动。
升降压模型的输出是负极性,示波器接反了会看到一条负的直线,初学者往往以为模型错了。仿真里可以用电压测量模块的极性反接,或者在后处理时取绝对值,但报告里必须标明「输出极性与输入相反」,这是拓扑本身的属性,不是接线失误。
升压和升降压模型都要加软启动。做法是用一个斜率受限的参考信号替代阶跃给定,或者让占空比在 1~2 ms 内从 0 线性升到目标值。不加软启动,启动瞬间电感电流会冲到几十安培,波形前段全是尖峰,稳态窗口根本找不到。
4.3 波形怎么读:平均值、纹波与效率核算
波形读数比搭建更容易出错。正确做法是跳过启动暂态,截取最后若干个完整开关周期做统计。下面这段脚本演示如何从仿真输出里取稳态窗口、算平均值和纹波峰峰值,再核算效率。
% 从 Simulink 输出中提取稳态数据并核算指标 out = sim('buck_chopper'); % 需先设置 Solver=ode23tb, StopTime=0.01 t = out.yout{1}.Values.Time; uo = out.yout{1}.Values.Data; ui = out.yout{2}.Values.Data; ii = out.yout{3}.Values.Data; idx = t > 0.006; % 跳过前 6 ms 启动暂态 Uo_avg = mean(uo(idx)); % 输出电压平均值 Uo_pp = max(uo(idx)) - min(uo(idx)); % 纹波峰峰值 Pin = mean(ui(idx) .* ii(idx)); % 输入平均功率 Pout = Uo_avg^2 / 10; % 负载 R=10Ω 时的输出功率 eff = Pout / Pin * 100; fprintf('Uo=%.2f V, 纹波=%.1f mV, 效率=%.1f%%\n', Uo_avg, Uo_pp*1e3, eff);idx这个逻辑索引是关键,它决定统计窗口。窗口起点取得太早,启动冲击会把平均值拉低、纹波拉大;取太晚,周期数不够,统计噪声大。经验是至少覆盖 3~5 个完整开关周期,且在负载或输入突变后留出足够的建立时间。
Pin用瞬时电压电流乘积的平均值算,不要用平均值相乘,两者在纹波较大时差别明显。Pout直接按阻性负载算,如果负载含反电动势,得改用mean(uo(idx).*io(idx))。效率超过 100% 基本可以断定窗口取错或功率计算方式错了,这是仿真阶段最常见的「物理定律被打破」现象。
5. 排查清单:仿真跑不通、波形对不上公式的五个坑
仿真出问题是常态,关键是有没有一套从现象反推原因的路径。下面五条是这类题目里出现频率最高的,每条都按「看到什么—为什么—怎么改」走一遍,照着排查能省掉大半调试时间。
5.1 仿真跑不起来与波形发散
现象一:仿真跑到一半报步长过小、求解失败,或者波形在某个时刻突然冲到几千伏。原因通常是开关动作造成强不连续点,而求解器被设成了变步长且没限制最大步长,在开关瞬间反复缩步仍然收敛不了;另一个常见原因是电感回路被断开(比如开关管和二极管同时截止),电感电流被迫突变,数值上就发散了。解决方法是把求解器换成 ode23tb 或 ode15s 这类刚性求解器,最大步长限制在开关周期的 1/100 以内,同时检查主回路是否存在「电感无续流通路」的死区,有的话补一只续流二极管或调整开关时序。
现象二:启动瞬间电感电流冲到几十安培,输出被拉到零,很久建立不起来。原因是给定信号是阶跃,占空比一开始就到目标值,输出电容相当于短路,冲击电流只受电感直流电阻限制。解决办法是加软启动:用 Saturation 与积分环节把参考电压做成斜坡,或者让占空比在 1~2 ms 内从 0 升到目标值;同时把仿真停止时间放长到能覆盖启动过程,否则永远只看到暂态。
现象三:IGBT 两端电压波形全是高频振铃,读数完全没法用。原因是器件模型自带的 RC 缓冲电路在起作用,开关瞬间电容充放电形成振荡。解决方法是按原文做法取消缓冲,把 Rs 设为 5 Ω、Cs 设为 0,或者把缓冲电容改到极小;如果振铃来自线路寄生参数,那就在器件两端并一只小电容做吸收,但仿真阶段一般不需要。
5.2 数值对不上公式与结论站不住
现象四:输出电压平均值明显低于 αE,加大占空比也上不去。先看电感电流波形,如果每个周期都有一段时间电流为零,说明电路进了断续模式(DCM),而 Uo = αE 只在电流连续(CCM)时成立。原因无非是电感太小、开关频率太低或负载太轻。解决办法是加大电感或提高开关频率,也可以在报告里明确写出「本设计工作在 CCM,负载低于额定值 20% 时进入 DCM,电压关系改用另一组表达式」。这一条如果没意识到,整章推导都会被答辩老师一句话推翻。
现象五:脉冲发生器设了 50% 占空比,实测导通时间却接近整个周期。这是 Pulse Generator 模块参数单位的问题:它既可以按时间(Time based)配置周期和脉宽,也可以按采样(Sample based)配置,两种模式下「周期」和「脉宽」的含义不同,混用就会出现占空比离谱的情况。解决办法是统一用 Time based,周期填 1/fs 秒、脉宽填 α/fs 秒,或者直接改用「Pulse Generator + 占空比」参数化的封装。同类问题还有示波器采样率低于开关频率,看到的波形是混叠后的假象,把采样时间设成开关周期的 1/100 即可。
现象六:升降压模型输出电压符号不对,闭环完全失控。原因是反馈采样接到了正极性端,或者误差调节器的极性设反,负反馈变成了正反馈。解决办法是先开环确认输出极性和幅值,再闭合反馈;PI 调节器的输出限幅先设窄一点,观察调节方向对不对,方向对了再放开限幅调参数。这类问题在双闭环里更隐蔽,因为电流内环可能把错误暂时掩盖住,表现为「能稳压但一动负载就崩」。
提示:每改一次拓扑或参数,都把仿真重跑一遍并保存波形截图,报告里的每一张图都能对应到一组确定的参数,答辩时被追问才拿得出依据。
6. 验收与答辩:指标怎么测、结论怎么讲
验收这一步,很多人栽在「测了但没测全」。原文给的测试项是一份很好的模板:输入电压允许范围、输出电压及稳定度、电压调整率、负载调整率、输出纹波、负载能力、效率、动态响应,八项覆盖了稳态和动态。按这套指标逐条对照,比笼统说一句「仿真结果与理论基本一致」有说服力得多。
具体怎么测,建议做成一张对照表,左边写指标要求,中间写仿真或实测值,右边写判定。电压调整率测的是输入从 12 V 变到 40 V 时输出电压的相对变化,负载调整率测的是负载从 50% 变到满载时的相对变化,纹波要在额定负载下取峰峰值,效率用输入输出平均功率之比。每一项都要注明测试条件,否则数据没法复现。
| 测试项 | 条件 | 指标要求 | 判定方式 |
|---|---|---|---|
| 输入电压范围 | 满载 | 10~40 V 内输出稳定 | 扫描输入,记录 Uo 偏差 |
| 输出电压稳定度 | 50% 负载 | ≤ 0.04 | 稳态多点取最大偏差 |
| 电压调整率 | 全负载段 | ≤ 0.18 | 输入 12→40 V,看 Uo 变化率 |
| 负载调整率 | 以 50% 负载为基准 | ≤ 0.14 | 负载 10%→100%,看 Uo 变化率 |
| 输出纹波 | Io = 3.6 A | 峰峰值 ≤ 250 mV | 稳态窗口取 max−min |
| 负载能力 | 输出 7.5 A | 电压保持稳定 | 加载至额定,看是否跌出范围 |
| 效率 | 阻性负载 | ≥ 85% | Pin、Pout 均取稳态平均 |
| 动态响应 | 负载突变 | 快速恢复且无持续振荡 | 观察恢复时间与超调 |
答辩讲述顺序也有讲究。先给一张拓扑框图,说清楚「前级降压、后级升压、共用一个储能电感、辅助开关解决共地」,这是整套设计的骨架;再推一遍伏秒平衡,把 Uo = αE、Uo = E/(1−α)、Uo = −αE/(1−α) 三个式子当场写出来,证明你不是背的;然后放仿真波形,重点讲电感电流是否连续、模式切换是否平滑;最后对照指标表收尾,把没达标的项如实说出来并给出原因,比硬凑一个漂亮数字可信得多。
我最早做这类课设时,把仿真波形截图往报告里一贴就交,结果被问「你这个纹波是哪个负载下测的」当场卡住。从那以后我每次做仿真都强制走一遍「参数表—波形—指标表」三件套,任何一张图都能追到一组确定的参数和测试条件。希望这套结构能帮到你,把这道题从「能跑」做到「能验收」。
本文还有配套的精品资源,点击获取