13HFI 高频注入低速无感
凸极比解调 + 零速启动的压缩机标配方案
本模块主旨
零速也要锁角度——往 d 轴主动喊一声,听 IPM 凸极的回声里有没有 2θe;CORDIC + biquad 把这条信号链塞进 ISR。学完应能回答
- 能解释 IPM 凸极性 (Lq > Ld) 的物理来源(永磁体磁阻大)以及为什么这是 HFI 的物理前提
- 能描述"注入 → 凸极响应 → 同相解调 → LPF → PLL 锁 sin(2Δθ)"全链路 + 公式
- 理解为什么表贴式 PMSM (Ld ≈ Lq) 用 HFI 完全无效(凸极信号增益 (r-1)/(r+1) → 0)
- 掌握注入频率选 800-1500 Hz 的三个约束(人耳、PWM 余量、铁损)+ PWM 必须 ≥ 4 × 注入
- 知道 HFI 的 180° 极性歧义来源(sin(2Δθ) 周期 π)和上电 d 轴对齐的解决办法
- 能写 STM32 上 HFI 解调骨架:CORDIC 算载波 + CMSIS-DSP biquad LPF + PLL PI
- 能识别"凸极崩塌 / 注入频率落入 PWM 谐波带 / PLL Kp 过大 / 跳过对齐"四类典型故障现象
总览
HFI 是压缩机低速无感的标配。本质是用主动注入信号克服 BEMF 在低速消失的盲区,但只对 IPM 凸极有效。零基础速入
类比
HFI 像往黑屋子里**发声呐**——低速时反电动势太小("光"看不见),就主动注入一个高频信号,听回声里的"凸极差异"判断转子位置。压缩机零启动靠它。核心概念
在 d 轴注入高频电压,IPM 电机 Ld < Lq 让响应电流幅值与转子位置相关,解调后能反推角度。整个过程电机几乎不转,就能知道"它现在朝哪儿"。为什么要学
- 压缩机要求"零启动"——上电就能直接闭环 FOC,不能像 V/f 那样先盲推。
- BEMF 观测器在 < 500 rpm 时基本失效;HFI 是这一段唯一可行方案。
- 只对 IPM 凸极电机有效;表贴式 PMSM 的 Ld ≈ Lq,HFI 失效。所以选压缩机电机时凸极比是硬指标。
第一手操作
右侧把"凸极比 Lq/Ld"从 2.18 拉到 1.05(接近表贴式),看角度估算崩溃;再拉回 2.5+,立刻锁相。学习目标
- 理解高频注入的物理直觉与凸极信号机制
- 掌握注入 → 响应 → 解调 → PLL 流水线
- 知道 HFI 的边界:必须 IPM、低速段、有可听噪声
核心概念
- IPM 电机 Ld < Lq 形成磁阻不对称,注入的高频电流响应在 dq 系不一样。
- 解调 = 测量信号 × 同相载波 → 直流分量包含 sin(2·Δθ) 误差信息。
- PLL 用这个误差锁相到 Δθ = 0,得到平滑角度估算。
公式
凸极信号增益
gain ≈ (Lq − Ld) / (Lq·Ld) · V_h
差越大信号越强;表贴式电机 Lq ≈ Ld 时增益接近 0,HFI 失效。
解调输出
demod_lp ∝ sin(2·(θ_true − θ_est))
注意是 2 倍角差——HFI 只能提取到 180° 内的信息,需要额外极性判断逻辑。
BEMF vs HFI 切换
speed < 5%·rated → HFI; 5-10% → 平滑过渡; > 10% → BEMF / SMO
过渡段需要加权混合两套估算结果,避免切换瞬间角度跳变。
工程意义
- HFI 是压缩机零启动的硬性要求。卖家手册里"凸极比"参数就是为它准备的。
- 注入频率折中可听噪声(>1kHz 避开 200-1000Hz 敏感段)和 PWM 余量。
- 高频注入会增加铁损和电流谐波,所以高速时必须切 BEMF。
STM32 移植指南
- 注入的高频信号叠加在电流环 PI 输出之后、反 Park 之前。
- 解调用 IIR 低通(截止 ~200Hz),CMSIS-DSP 内置滤波器能直接用。
- HFI ↔ BEMF 切换用滞回比较器避免抖动。
常见误区
- 用在表贴式电机上(Lq ≈ Ld 完全没用)。
- 注入电压过大造成可听噪声;过小信号被噪声淹没。
- 没做极性判别,启动方向随机。
调试方法
- 临时装编码器对比 HFI 估算角度。
- 看解调输出 demod_lp,正常应是平滑直流;有强 2ω_h 纹波 → 解调 LPF 不够低。
- 高速运行时观察 HFI 切到 BEMF 的瞬态——切换瞬间不能有 > 10° 角度跳变。
建议实验
- 凸极比 2.5 → 1.05,看 HFI 失效。
- 注入频率 800Hz → 200Hz(太低,被 PWM 谐波污染)→ 1500Hz。
- 加噪声看 PLL 锁相速度变化。
STM32 C 代码骨架
/* hfi.c — 压缩机低速无感 HFI 控制 */
typedef struct {
float v_inject; // 注入电压幅值 V
float f_inject; // 注入频率 Hz
float omega_inject; // = 2π × f_inject
float carrier_phase; // 载波相位累加
float demod_lp; // 解调低通输出
float lpf_alpha;
/* PLL */
float pll_kp, pll_ki, pll_int, theta_est, omega_est;
} hfi_ctx_t;
void hfi_init(hfi_ctx_t *h, float v, float f_hz, float pwm_freq) {
h->v_inject = v;
h->f_inject = f_hz;
h->omega_inject = 2.0f * M_PI * f_hz;
h->lpf_alpha = (2.0f * M_PI * 200.0f / pwm_freq); // 200Hz LPF
/* ... */
}
/* 在 FOC 中断里:注入信号 + 解调 + PLL */
void hfi_step(hfi_ctx_t *h, float i_q_meas, float dt,
float *out_v_d_inject, float *out_theta_est)
{
/* 1. 累加载波相位 */
h->carrier_phase += h->omega_inject * dt;
if (h->carrier_phase > 2.0f * M_PI) h->carrier_phase -= 2.0f * M_PI;
float carrier = sinf(h->carrier_phase);
/* 2. 注入电压(叠加到电流环 V_d 输出之后) */
*out_v_d_inject = h->v_inject * carrier;
/* 3. 解调:用 i_q_meas 中的高频分量乘载波 → 包含 sin(2Δθ) */
float product = i_q_meas * carrier;
h->demod_lp += h->lpf_alpha * (product - h->demod_lp);
/* 4. PLL 锁相到 sin(2Δθ) = 0 */
float err = -h->demod_lp;
h->pll_int += h->pll_ki * err * dt;
h->omega_est = h->pll_kp * err + h->pll_int;
h->theta_est += h->omega_est * dt;
if (h->theta_est > M_PI) h->theta_est -= 2.0f * M_PI;
if (h->theta_est < -M_PI) h->theta_est += 2.0f * M_PI;
*out_theta_est = h->theta_est;
}下一步
- 进入启动状态机模块(14),看 HFI 在整个启动流程里如何与 V/f / BEMF 协作。
随堂题
HFI 能用于表贴式 PMSM (Lq ≈ Ld) 吗?
- 能
- 不能 —— 凸极信号增益接近 0 (正确)
- 只能在低速
- 硬件改造后能
提示:HFI 信号机制依赖 (Lq − Ld) / (Lq·Ld) 不为 0;表贴式电机这一项几乎为零,注入再大也无信号。
注入频率为什么常选 800-1500 Hz?
- 硬件限制
- > 1kHz 避开人耳最敏感的 200-1000Hz;PWM 6kHz 时 1.5kHz 还有 4 倍以上余量 (正确)
- 无所谓
- 电网频率相关
提示:可听噪声敏感区 200-1000 Hz;同时要远低于 PWM 频率(一般 < 1/4 PWM)才能保证采样不混叠。
HFI 解调输出 sin(2·Δθ) 意味着角度估算只有 180° 周期歧义,怎么解?
- 不用解
- 启动时用一个固定方向(强制对齐 d 轴)来消除 (正确)
- 改用 cos
- 换硬件
提示:上电对齐阶段先给 d 轴一个直流让转子停在零位,PLL 从已知方向开始就避免 180° 翻转。
HFI 切到 BEMF 的速度边界一般是?
- 同步速 1%
- 5-10% 同步速 (正确)
- 50% 同步速
- 100%
提示:5-10% 同步速时 BEMF 已经能被 SMO 稳定观测,再用 HFI 反而引入额外噪声和损耗,所以切到 BEMF。
同样压缩机,凸极比从 2.5 改到 1.5,HFI 锁相效果会怎么变?
- 没影响
- 锁相时间变长,误差变大 (正确)
- 反而更稳
- 不收敛
提示:凸极信号增益 ≈ (r-1)/(r+1)。r=2.5 时 0.43;r=1.5 时 0.20,下降一半多,信号变弱噪声相对放大。
相关公式索引
HFI 凸极信号增益
gain = (r − 1)/(r + 1), r = Lq/Ld; r=1.5 → 0.20, r=2.5 → 0.43
HFI 解调误差
i_response × cos(ωh·t) → LPF → ≈ 0.5·sin(2·Δθ)