15APF 前级 PFC
单相 220V → Boost PFC → 直流母线
本模块主旨
Boost PFC 双环:外环稳 380V 母线,内环让输入电流跟电压同形——PF→1、THD→低、过认证 + 给后级 FOC 留弱磁余量。学完应能回答
- 能讲清 Boost PFC 的四大件(升压电感、MOSFET、二极管、母线电容)各自的工程作用 + 选型公式
- 能解释"为什么是双环、为什么外环慢内环快",并说出典型带宽(电压环 50-200 Hz / 电流环 1-5 kHz)
- 知道 PF / THD / 母线纹波三个指标的工程目标值(家电 PF>0.95 / 商用 PF>0.99 / THD<10%)
- 能识别"电流环带宽不够 / 电感饱和 / 母线电容不足 / 双环带宽颠倒"四类典型现场坑
- 理解为什么压缩机变频器必须先升压到 380V 才好做弱磁(弱磁电压余量 = 母线 − BEMF)
- 能算电容选型:ΔU = I_load / (2·ω_line·C),配合纹波 % 目标反推 C
- 会写 STM32 TIM1 + ADC + DMA 双缓冲的 PFC 同步采样骨架(电网过零 + |sin| 模板 + 电感电流采样)
总览
PFC 是压缩机变频器与电网的"接口管理员"——又要听电网话(PF=1),又要给后级稳定母线。双环 + 平均模型是入门的钥匙。零基础速入
类比
APF / PFC 像家用变频器的"电源整形师"——把"电网取来的杂乱无章电流"整理成跟电压同形同步的干净正弦,顺便升压到 380V 给后级压缩机变频器用。没有它,电流谐波超标过不了认证,电网也用得吃力。核心概念
单相 220V 电网经整流桥得到 |sin| 半波,再用 Boost 升压电路 + 双环控制(外环稳母线、内环让电感电流跟踪 |sin|)实现高功率因数 + 低 THD + 稳定 380V 母线。为什么要学
- 国标 GB/T 17625.1 要求家电谐波;没 PFC 直接整流的 THD > 100%,过不了认证。
- 380V 高母线是后级 FOC 弱磁运行的前提(详见弱磁模块)。
- 负载(压缩机)功率突变时 PFC 的电压环要能稳住母线,不让 FOC 看到大电压扰动。
第一手操作
右侧把"母线目标 Udc"从 380V 拉到 250V(接近不升压),看输入电流和电网电压的相位偏差变大、PF 降低;再拉回 380V,PF 接近 1。学习目标
- 理解 Boost PFC 拓扑和控制目标
- 掌握双环结构:电压环 + 电流环
- 知道 PF / THD / 母线纹波三个关键指标的工程含义
核心概念
- Boost PFC = 整流桥 + 升压电感 + 开关 + 二极管 + 母线电容;通过控制开关让电感电流跟踪 |sin|。
- 外环:母线电压 PI → 输出电流参考幅值。内环:参考 × |sin| 与电感电流比较 → 占空比。
- PF = 真功率 / 视在功率;THD = 谐波 RMS / 基波 RMS;纹波 % = (Umax-Umin)/Uavg。
公式
Boost 升压关系(稳态)
Udc = Vrect / (1 - D)
D 是占空比;D=0 时 Udc=Vpeak(不升压),D=0.5 时 Udc=2·Vpeak。
理想 PF
PF = 1 当 i_line(t) = k · v_line(t)
电流和电压完全同相位、同形状(正弦),PF=1。PFC 的目标就是逼近这个状态。
母线纹波
ΔUdc ≈ I_load / (2·ω_line · C)
电网频率两倍是主纹波频率(整流桥输出 100Hz);C 越大纹波越小。
工程意义
- PFC 是直流变频空调和工业冰箱的标配前级,不是"加分项"。
- 电流环带宽 1-5 kHz,电压环带宽 50-200 Hz;外环带宽要远小于内环避免互相打架。
- 母线电容选型按"持住 ≥ 1 个电网周期能量"算,太小纹波大、太大启动冲击大。
STM32 移植指南
- PFC 用单独的 PWM 通道(典型 TIM1_CH4 或 TIM3);和 FOC 隔开避免相互干扰。
- 电流采样用 OPAMP 内置 + ADC injected 与 PWM 同步;母线 ADC 可放在常规序列。
- CCM (连续导通模式) 最常用;轻载 DCM 切换边界要单独处理避免调制比突变。
常见误区
- 内外环带宽颠倒(外环比内环快) → 振荡。
- 负载突变没限速 → 母线被瞬间拉低。
- 电流采样滤波太重 → 内环失稳。
- 没区分 100Hz 纹波和 PWM 开关纹波。
调试方法
- 示波器抓输入电压和电流,理想应同相同形状。
- FFT 分析输入电流谐波,3/5/7 次是常见超标项。
- 观察负载阶跃下母线电压跌落和恢复时间。
建议实验
- Udc 380→250V 看 PF 下降。
- 负载电流 4→12A 看母线下沉。
- Boost 电感 1.5→0.5 mH 看电流纹波加剧。
STM32 C 代码骨架
/* apf_pfc.c — 单相 Boost PFC 双环控制
* PWM 频率 60kHz,控制周期 = PWM 周期 = 16.7μs
* 适配 STM32G4 + OPAMP 内置电流放大
*/
typedef struct {
/* 测量 */
float v_ac_rect; // 整流后电压(A/D 实测)
float i_l; // 电感电流 A
float udc; // 母线电压 V
/* 给定 */
float udc_ref; // 母线目标
float i_amp_ref; // 电流幅值参考(电压环输出)
/* 控制器状态 */
float volt_int, curr_int;
float volt_kp, volt_ki;
float curr_kp, curr_ki;
/* 内部 */
float sin_norm; // |sin(ωt)| 模板(由零交叉过 PLL 得到)
} pfc_ctx_t;
void pfc_pwm_isr(pfc_ctx_t *p, float dt) {
/* 1. 外环(电压):每 N 个 PWM 周期跑一次(这里假设每周期都跑) */
float err_v = p->udc_ref - p->udc;
p->volt_int += err_v * dt;
p->i_amp_ref = clamp(p->volt_kp * err_v + p->volt_ki * p->volt_int, 0, 30);
/* 2. 电流参考:跟踪 |sin| */
float i_ref = p->i_amp_ref * p->sin_norm;
/* 3. 内环(电流) */
float err_i = i_ref - p->i_l;
p->curr_int += err_i * dt;
float duty = p->curr_kp * err_i + p->curr_ki * p->curr_int;
duty = clamp(duty, 0, 0.95f);
/* 4. 写 CCR */
TIM1->CCR4 = (uint16_t)(duty * (TIM1->ARR + 1));
}
/* 零交叉检测产生 |sin| 模板:
* 输入端电压采样 PLL 跟随 100Hz 整流后正弦的相位 */
void pfc_update_sine_template(pfc_ctx_t *p) {
/* 简化:直接用 v_ac_rect 归一化 */
static float v_peak = 1;
if (p->v_ac_rect > v_peak) v_peak = p->v_ac_rect;
v_peak *= 0.9999f; // 慢衰减
p->sin_norm = p->v_ac_rect / fmaxf(v_peak, 1.0f);
}下一步
- 至此 15 个模块全部完成。回到电机基础(01)按顺序通读,能完整看懂一台压缩机变频器从电网到电机的整条链路。
随堂题
Boost PFC 的双环结构里,谁是外环?
- 电流环
- 电压环 (正确)
- 同等
- 看负载
提示:电压环外、电流环内。外环慢(50-200 Hz),内环快(1-5 kHz)。外环输出当作内环参考幅值。
理想 PF=1 的输入电流应该长什么样?
- 方波
- |sin| 半波
- 与电网电压同相位的正弦(含正负) (正确)
- 常数
提示:PF = 1 ⇔ 电流与电压完全同相同形。注意:电感电流是 |sin|(始终正),但输入端线电流随电网半波翻转,是完整正弦。
母线电容 C 增大 4 倍,100Hz 纹波幅度大约怎么变?
- 不变
- 4 倍
- 减半
- 减 4 倍 (正确)
提示:ΔUdc ≈ I/(2ω·C),反比于 C。C 翻 4 倍 → 纹波 1/4。但启动冲击电流也成比例增大,要折中。
不加 PFC 直接用整流桥 + 大电容做"被动 PF",输入电流大概什么样?
- 正弦
- 只在电网电压峰值附近的窄脉冲,THD > 100% (正确)
- 方波
- 直流
提示:电容电压接近 Vpeak 时整流桥才导通,电流是高瘦窄脉冲,谐波丰富,THD 通常 100-150%。这就是为什么国标不让用。
负载(压缩机变频器)从 4A 突变到 12A,PFC 母线电压会怎么样?
- 立刻稳
- 短时下沉,电压环把它拉回目标 (正确)
- 持续下降
- 飞升
提示:负载突变让 C 放电速度增加,母线下沉。电压环 PI 检测到 err 增大 → 拉高电流幅值参考 → 内环吸收更多能量补偿 → 母线回到目标。整个过程典型 50-200ms。