1. 脉振方波高频注入无感算法概述
在永磁同步电机(PMSM)控制领域,无传感器控制技术一直是研究热点。传统基于反电势(EMF)的观测器在低速时(通常低于500rpm)会因反电势信号过小而失效,这就催生了专门针对低速工况的高频注入(HFI)技术。脉振方波高频注入法作为其中的典型代表,通过向电机注入特定高频信号并分析响应电流来估算转子位置,特别适合内嵌式永磁同步电机(IPMSM)的低速控制场景。
我最初接触这个算法时,最困惑的就是为什么方波注入频率与常见的500-2kHz不同。后来通过实际调试发现,这与PWM载波频率和采样策略密切相关。以10kHz PWM为例,采用中心对齐模式时,方波注入频率实际上是PWM频率的一半即5kHz,这与正弦波注入有着本质区别。
2. 算法原理深度解析
2.1 电机数学模型基础
理解HFI算法的核心在于掌握PMSM的数学模型。对于IPMSM,dq轴电感存在明显差异(Ld ≠ Lq),这种凸极性正是HFI能够工作的物理基础。通过推导dq轴电压方程:
code复制ud = Rsid + Ld(did/dt) - ωrLqiq
uq = Rsiq + Lq(diq/dt) + ωr(Ldid + ψf)
在低速高频注入条件下,可以做出三个关键简化:
- 电阻压降Rs可忽略(高频时感抗远大于电阻)
- 反电势项ωrLqiq和ωr(Ldid + ψf)可忽略(低速时反电势小)
- 基波电流变化率远小于高频分量变化率
经过简化后,高频响应电流主要反映电感参数的变化,这正是位置估算的基础。
2.2 方波注入的独特优势
与传统正弦波注入相比,方波注入有以下显著优势:
- 实现简单:无需额外DAC生成正弦信号,直接通过PWM调制实现
- 抗干扰强:通过正负周期差分可有效抑制基波干扰
- 采样效率高:结合PWM中心对齐模式,可在零矢量时刻采样获得更干净的信号
在实际工程中,我推荐采用如下注入时序:
- 奇数PWM周期:注入正电压(如+50V)
- 偶数PWM周期:注入负电压(如-50V)
- 每个PWM周期的中点进行电流采样
关键提示:采样时刻必须严格对齐PWM中点,否则会引入严重的开关噪声。建议使用定时器硬件触发ADC,而非软件触发。
2.3 位置信息提取原理
通过坐标变换和信号处理,可以从响应电流中提取出包含位置误差的信号:
code复制Δiαβ = K·sin(2Δθ)·[1 -1]^T
其中Δθ是估计位置与实际位置的偏差。当偏差较小时,sin(2Δθ)≈2Δθ,可直接作为PI控制器的输入。这里有个重要经验:为了保证线性度,Δθ最好控制在π/4以内,否则会导致系统失稳。
3. 工程实现关键细节
3.1 硬件平台选择
基于STM32F4/F7系列MCU的硬件平台完全能满足需求,主要考虑:
- PWM频率:建议8-16kHz(折中方波注入频率4-8kHz)
- ADC采样:至少12位分辨率,采样保持时间≤100ns
- 运算能力:需要支持浮点运算,三角函数计算时间≤1μs
3.2 软件架构设计
推荐采用如下中断架构:
- 10kHz PWM周期中断(主控制循环)
- PWM中点触发ADC采样(硬件自动触发)
- ADC采样完成中断(数据处理)
c复制// 伪代码示例
void PWM_IRQHandler() {
static uint8_t inject_dir = 0;
if(inject_dir) {
set_injection_voltage(+V_inj);
} else {
set_injection_voltage(-V_inj);
}
inject_dir ^= 1;
start_hardware_ADC_trigger();
}
void ADC_IRQHandler() {
process_current_samples();
update_pll_estimator();
}
3.3 极性辨识实现
极性辨识是确保电机正转的关键,我的工程经验是:
- 先进行初始角度估算(不考虑极性)
- 分别注入正负d轴电压(幅值相同)
- 比较响应电流幅值:
- 若正向注入时电流更大,则极性正确
- 否则需要角度补偿180°
实测技巧:极性辨识时建议让电机保持静止,且注入电压持续时间至少20ms以获得稳定响应。
4. 参数整定与系统优化
4.1 PLL参数设计
锁相环(PLL)的参数直接影响系统动态性能。根据自动控制原理,系统开环传递函数为:
code复制G(s) = (Kp·s + Ki)/s^2
工程中常用参数配置:
- Kp = 1200
- Ki = 3
这对应着:
- 阻尼比ζ=346(强过阻尼)
- 自然频率ωn=1.732rad/s
- 调节时间≈3ms
4.2 频域特性分析
通过伯德图分析可以看到:
- 开环截止频率:约172Hz
- 相位裕度:90°(绝对稳定)
- 闭环带宽:约207Hz
这意味着系统能跟踪的最高转速约为:
code复制207Hz * 60s/min / (极对数) ≈ 6200rpm(4极对)
4.3 注入电压幅值选择
注入电压需要在信噪比和电机振动间权衡:
- 电压太低:信号容易被噪声淹没
- 电压太高:引起额外铁损和振动
我的经验公式:
code复制V_inj = (0.1~0.2)*V_bus
例如48V系统可选择5-10V注入电压。
5. 常见问题与解决方案
5.1 角度抖动问题
现象:估算角度存在高频抖动
排查步骤:
- 检查ADC采样是否与PWM中点对齐
- 确认电流传感器带宽是否足够(建议≥50kHz)
- 调整PLL带宽(降低Kp可减少噪声敏感度)
5.2 启动失败问题
现象:电机启动时出现反转或失步
解决方案:
- 增加启动时的注入电压(正常运行的1.5倍)
- 延长极性辨识时间
- 加入开环启动阶段(0-50rpm)
5.3 低速转矩波动
优化方向:
- 提高PWM频率(16kHz以上)
- 采用预测电流控制替代PI控制
- 注入频率自适应调整(低速时降低频率)
6. 进阶优化思路
经过多个项目实践,我总结了以下优化经验:
- 变注入频率技术:根据转速动态调整注入频率(低速用低频,高速用高频)
- 混合观测器设计:在5%额定转速以上平滑切换到反电势观测器
- 参数自整定:在线辨识Ld/Lq参数以提高估算精度
一个特别实用的技巧是:在电机停止时,可以利用HFI测量初始转子位置,省去额外的位置传感器。具体做法是注入短脉冲(约10ms),根据响应电流的幅值和相位即可确定转子位置,精度可达±5°。
最后需要强调的是,虽然传统观点认为HFI只适用于IPMSM,但实际测试表明,只要存在微小的凸极性(Ld/Lq>1.05),脉振注入法在SPMSM上也能工作,只是需要更高的信号处理精度。这为无感算法在更多电机类型上的应用提供了可能。