1. Boost PFC 主电路参数计算与选型

Boost PFC 主电路参数计算与选型 学习卡片

任务说明

输入:交流输入 Vac=220V(有效值)、输出功率 Po=1000W、开关频率 fs=65kHz、输出母线 Vo=400V。目标:算出 Boost PFC 的升压电感 L、输出电容 Co、开关管与二极管的电压/电流应力,并据此选型。

计算依据

  • 峰值输入电压 Vpk=√2·Vac,峰值输入电流 Ipk=√2·Po/(η·Vac)。
  • 电感按最低输入电压(取 Vac_min=176V)下、峰值电流处允许的纹波 ΔI=0.3·Ipk 计算:L=Vpk_min·(1−Vpk_min/Vo)/(ΔI·fs)。
  • 输出电容按保持时间 th=20ms、允许母线跌落 ΔVo=40V 计算:Co=2·Po·th/(Vo²−(Vo−ΔVo)²)。
  • 开关管/二极管电压应力取 Vo 并留 1.5 倍裕量;电流应力取峰值输入电流并留裕量。
Boost PFC 参数计算流程 输入参数 Vac, Po, fs, Vo 峰值电压/电流 Vpk, Ipk 电感 L 纹波法 电容 Co 保持时间法 器件应力:Vds/Vd = Vo×1.5 Id = Ipk×1.5 选型:L, Co, MOSFET, Diode

完整计算与选型代码

import math

# ---- 输入参数 ----
Vac = 220.0        # 交流输入有效值 (V)
Vac_min = 176.0    # 最低输入电压 (V)
Po = 1000.0        # 输出功率 (W)
Vo = 400.0         # 输出母线电压 (V)
fs = 65e3          # 开关频率 (Hz)
eta = 0.95         # 预估效率
ripple = 0.30      # 电感电流纹波系数
th = 20e-3         # 保持时间 (s)
dV = 40.0          # 允许母线跌落 (V)

# ---- 峰值电压/电流 ----
Vpk = math.sqrt(2) * Vac
Vpk_min = math.sqrt(2) * Vac_min
Ipk = math.sqrt(2) * Po / (eta * Vac)

# ---- 升压电感 ----
dI = ripple * Ipk
L = Vpk_min * (1 - Vpk_min / Vo) / (dI * fs)

# ---- 输出电容 ----
Co = 2 * Po * th / (Vo**2 - (Vo - dV)**2)

# ---- 器件应力 ----
V_stress = Vo * 1.5
I_stress = Ipk * 1.5

print(f"Vpk={Vpk:.1f} V, Vpk_min={Vpk_min:.1f} V")
print(f"Ipk={Ipk:.2f} A, dI={dI:.2f} A")
print(f"L={L*1e6:.1f} uH")
print(f"Co={Co*1e6:.1f} uF")
print(f"Vds/Vd stress={V_stress:.0f} V, Id stress={I_stress:.2f} A")

# ---- 选型建议 ----
print("\n--- 选型 ---")
print(f"电感: {L*1e6:.0f} uH, 饱和电流 > {Ipk+dI/2:.1f} A")
print(f"电容: {Co*1e6:.0f} uF / 450V 电解电容")
print(f"MOSFET: 600V, Id > {I_stress:.1f} A, Rds(on) 低")
print(f"二极管: 600V SiC 肖特基, If > {I_stress:.1f} A")

运行与验证

直接运行 python calc.py。预期输出(由公式唯一确定):Vpk≈311.1V、Ipk≈6.76A、L≈ 数百微亨量级、Co≈ 千微法量级。判定通过:打印出的 L、Co 与手算一致,且选型建议中的电压/电流裕量均大于计算应力。