3. DCM Boost PFC 的占空比与电感设计

任务目标

在 DCM(断续导通模式)Boost PFC 中,开关周期内电感电流会降到零。设输入电压 vin(t)=Vm·|sin(ωt)|,输出电压 Vo,开关周期 Ts,电感 L。DCM 下峰值电流 ipk=vin·D·Ts/L,由伏秒平衡可得占空比关系:

D(t) = sqrt(2·L·(Vo-vin(t)) / (Ts·Vo·vin(t)))

要让输入电流包络接近正弦,需保证在每个工频半周内电感电流峰值 ipk(t) 与 vin(t) 成正比,即 ipk(t)=k·vin(t)。本案例用数值方法:给定 Vm、Vo、Ts、L,计算全工频周期内的 D(t) 与 ipk(t),并验证 ipk(t)/vin(t) 是否近似恒定,从而判断电感取值是否合适。

关键公式与设计约束

  • DCM 条件:ipk·(1-D)·Ts/(2·L) < Vo 不成立时进入 CCM,需检查。
  • 峰值电流:ipk(t)=vin(t)·D(t)·Ts/L。
  • 正弦包络判据:ipk(t)/vin(t) 的波动率 (max-min)/mean 越小越好,工程上可要求 < 5%。
  • 电感下限由最大占空比与 DCM 边界共同决定,本案例通过扫描 L 找到满足波动率的最小电感。

完整可运行代码(Python)

import numpy as np

# 设计参数
Vm = 311.0        # 输入峰值电压 (V), 220Vrms
Vo = 400.0        # 输出电压 (V)
Ts = 1e-5         # 开关周期 (s), 100kHz
f_line = 50.0     # 工频 (Hz)
N = 2000          # 半周采样点数

t = np.linspace(0, 1/(2*f_line), N, endpoint=False)
vin = Vm * np.sin(2*np.pi*f_line*t)
vin = np.clip(vin, 1e-3, None)   # 避免除零

def duty(vin, L):
    # DCM 占空比
    return np.sqrt(2*L*(Vo - vin) / (Ts*Vo*vin))

def ipk(vin, D, L):
    return vin * D * Ts / L

def ripple_ratio(L):
    D = duty(vin, L)
    ip = ipk(vin, D, L)
    ratio = ip / vin
    return (ratio.max() - ratio.min()) / ratio.mean()

# 扫描电感,找满足波动率<5%的最小值
L_candidates = np.linspace(10e-6, 500e-6, 500)
best_L = None
for L in L_candidates:
    if ripple_ratio(L) < 0.05:
        best_L = L
        break

print("满足正弦包络(<5%)的最小电感: %.1f uH" % (best_L*1e6))

# 用选定电感计算占空比与峰值电流
L = best_L
D = duty(vin, L)
ip = ipk(vin, D, L)
ratio = ip / vin

print("占空比范围: %.3f ~ %.3f" % (D.min(), D.max()))
print("峰值电流范围: %.2f ~ %.2f A" % (ip.min(), ip.max()))
print("ipk/vin 波动率: %.2f%%" % (ripple_ratio(L)*100))

# 验证 DCM 边界:关断期间电流是否降到零
t_off = (1 - D) * Ts
i_valley = ip - (Vo - vin) * t_off / L
print("最小谷值电流: %.4f A (应>=0 表示DCM)" % i_valley.min())

运行方式

python dcm_boost_pfc.py

依赖:numpy。无需其他库。

验证方法与通过条件

  • 脚本输出“满足正弦包络(<5%)的最小电感”,说明在该电感下 ipk(t)/vin(t) 波动小于 5%,输入电流包络接近正弦。
  • 输出“占空比范围”应随 vin 增大而减小,符合 DCM 占空比规律。
  • 输出“最小谷值电流”应 ≥ 0,否则说明部分区间进入 CCM,需增大电感或调整参数。
  • 若波动率始终 ≥ 5%,说明扫描范围内无合适电感,需扩大 L_candidates 范围或检查 Vo/Vm 比例。

SVG:DCM Boost PFC 占空比与电感设计流程

DCM Boost PFC 设计流程 输入参数 Vm, Vo, Ts, f_line 采样 vin(t) 半周 N 点 计算 D(t) DCM 公式 计算 ipk(t) ipk=vin·D·Ts/L 扫描 L,计算 ipk/vin 波动率 (max-min)/mean < 5% ? 选定最小 L 满足正弦包络 验证 DCM 边界 谷值电流 ≥ 0 输出设计 L, D范围, ipk