M1 · 推导并验证降压变换器
- 由伏秒平衡(volt-second balance)推导降压(buck)变换器在 CCM 下的电压变换比,分别用手工和 sympy 完成。
- 由导通区间(on-interval)内电流的斜率推导其电感电流纹波。
- 以一个公式为例,走一遍本站的检查:它在
equations.yaml中的条目、它的测试值、必须复现它的 sympy 推导,以及生成器(generator)。逐一故意破坏,看哪项检查失败。
- 阅读伏秒平衡与电荷平衡和降压变换器。
- 克隆本仓库并安装其 Python 包(按 README 所述,
pip install -e "python[dev,figures]")。以下命令均在克隆的根目录下运行。 - 本站中, 表示电感电流纹波峰峰值的一半,与 Erickson 相同。
1. 手工推导
Section titled “1. 手工推导”在 CCM 下,开关管在 内把电感接到 ,二极管在周期的其余时间内把它接地。将输出电压 视为恒定(小纹波近似,small-ripple approximation),写出每个区间内的电感电压。求它在一个周期内的平均值,令平均值为零,解出 。将 与降压变换器的电压变换比比较。
2. 用 sympy 推导
Section titled “2. 用 sympy 推导”让 sympy 完成同样的代数运算。填入两个电感电压:
import sympy as sp
D, Vg, V = sp.symbols('D V_g V', positive=True)v_on = ... # 开关管导通期间的电感电压v_off = ... # 二极管导通期间的电感电压print(sp.solve(sp.Eq(D * v_on + (1 - D) * v_off, 0), V))本仓库自己的推导是 python/pe_core/derive/ccm_ratios.py,推导页面逐步展示了它。
在导通区间内,电感电流以恒定斜率上升。它在 内的上升量就是纹波峰峰值,其一半即 。将结果与降压变换器的电感纹波比较。
4. 示例的数值
Section titled “4. 示例的数值”降压变换器示例的参数为 = 24 V、 = 0.5、 = 100 µH 和 = 100 kHz。求出它的输出电压和 ,填入“验收标准”中。然后在公式浏览器中打开纹波公式并扫描电感量:纹波按 减小。
▶ 在公式浏览器中打开:降压变换器电感电流纹波(峰峰值的一半),CCM
预设取自例题 buck-basic
5. 检查通过
Section titled “5. 检查通过”在你的克隆中运行 python scripts/gen_equations.py、pytest 和 python scripts/mathlint.py。三者均通过,且 git status 显示生成器没有改动 packages/pe-core/equations/。
6. 改错一个测试值
Section titled “6. 改错一个测试值”在 packages/pe-core/equations/equations.yaml 中,修改 buck.ccm.M 的 tests 里的第一个期望值。运行 python scripts/gen_equations.py:它拒绝执行,其消息指出该条目、该测试以及表达式给出的值。用 git checkout -- packages/pe-core/equations/ 撤销修改。
7. 自洽地改错公式
Section titled “7. 自洽地改错公式”现在修改 buck.ccm.M 的表达式及其两个期望值,使三者彼此一致(例如三者都减半)。生成器接受这一修改,但 pytest 在 test_derivation_reproduces_yaml[buck.ccm.M] 处失败:sympy 推导给出的仍是你在第 1 步中求得的变换比。按前面的方法撤销修改;同一次 checkout 也会恢复生成器改写过的文件。
显示例题中的值
12 V(出自
buck-basic:降压变换器示例)显示例题中的值
300 mA(出自
buck-basic:降压变换器示例)
勾选记录只保存在此浏览器中:无需账号,也不发送任何数据。
- 此处的 是纹波峰峰值的一半。电流的完整摆幅是该项检查所期望值的两倍。
- 该变换比只在 CCM 下成立。电感电流在周期结束前降到零时,输出会升到 以上(CCM 与 DCM,以及任务 M2)。
- 用安装了
pe_core的 Python 运行pytest。换用其他解释器,会在任何检查运行之前就在导入时失败。 - 生成器接受的实验修改也改写了生成器的输出文件。
git checkout -- packages/pe-core/equations/会同时恢复 YAML 和这些文件。
- 图书章节 Principles of Steady-State Converter Analysis (Ch. 2)
伏秒平衡、电荷平衡、小纹波近似以及电感/电容纹波的标准推导。 - 课程 Introduction to Power Electronics
CU Boulder 专项课程的第一门课:稳态分析、损耗与效率。
稳态下,电感电压在一个开关周期内的平均值为什么为零?
答案与解析
正确答案:B 电感电流在一个周期内的变化量,等于其平均电压乘以周期再除以电感量。逐周期重复的电流变化量为零,因此平均电压为零:这就是伏秒平衡。
一个 CCM 降压变换器由 48 V 供电,占空比为 0.25。其输出电压是多少?
答案与解析
正确答案:C 电压变换比等于占空比:0.25 乘以 48 V 为 12 V。
一个降压变换器的电感电流在 1.0 A 与 1.6 A 之间变化。按本站的约定, 是多少?
答案与解析
正确答案:B 纹波峰峰值为 0.6 A, 是它的一半,即 0.3 A,与 Erickson 相同。平均电流为 1.3 A。
将 CCM 降压变换器的电感量加倍,其余不变。 如何变化?
答案与解析
正确答案:A 导通区间内电流的斜率等于电感电压除以电感量,因此在同样时间内的上升量减半。
修改 equations.yaml 中某个公式的一个测试的期望值,而不改动其表达式。结果如何?
答案与解析
正确答案:C 加载目录时会用表达式计算每个测试,因此生成器和 pytest 都会在第一个不一致处停止,并指出其位置。
修改一个表达式及其期望值,使它们彼此一致。哪项检查仍能发现这一错误?
答案与解析
正确答案:B 测试值只是拿表达式与其自身核对。python/pe_core/derive/ 中的推导独立于 YAML,由 pytest 比较两者。
本站例题、预设和练习中的数值均为合成值:为教学而凑整的数值,并非来自任何实际设计的数据。