第三讲:反电动势法基本原理
1. 反电动势与转子位置的关系
反电动势法,说白了就是利用电机自己产生的电压信号来猜转子位置。你想想看,电机转动时,定子线圈切割磁力线,自然会产生一个反向的电压——这就是反电动势(Back EMF)。
这个反电动势的大小和方向,跟转子位置有直接关系。我刚开始学FOC时,总觉得这关系很抽象。后来在实验室里用手转动电机,用示波器看波形,一下子就明白了。
具体来说,对于三相无刷电机,每一相的反电动势可以表示为:
Ea = Ke * ω * sin(θe)
Eb = Ke * ω * sin(θe - 120°)
Ec = Ke * ω * sin(θe + 120°)
其中:
- Ke 是反电动势常数(电机固有参数)
- ω 是电角速度
- θe 是电角度(转子位置)
你看,反电动势的波形是正弦的,它的过零点正好对应转子磁极的特定位置。这就是我们用来估算位置的关键。
核心要点:反电动势的过零点,对应转子d轴与定子A相绕组轴线对齐的位置。这个关系是反电动势法的基础,一定要记牢。
2. 线反电动势与相反电动势
这里有个容易混淆的地方——线反电动势和相反电动势。我在项目中就吃过这个亏,一开始没搞清楚,导致算法怎么调都不对。
相反电动势:指的是电机每一相绕组两端产生的反电动势。就是我们上面公式里的Ea、Eb、Ec。但问题是,电机的中性点通常不引出,你没法直接测量相反电动势。
线反电动势:指的是两相之间的反电动势差。比如AB线反电动势就是Ea - Eb。这个可以直接测量,因为电机三相端子都是引出来的。
它们的关系很简单:
Eab = Ea - Eb = √3 * Ke * ω * sin(θe + 30°)
Ebc = Eb - Ec = √3 * Ke * ω * sin(θe - 90°)
Eca = Ec - Ea = √3 * Ke * ω * sin(θe + 150°)
嗯,这里要注意:线反电动势的幅值是相反电动势的√3倍,而且相位偏移了30°。所以用线反电动势估算位置时,要记得补偿这个相位差。
| 类型 | 测量方式 | 幅值 | 相位偏移 |
|---|---|---|---|
| 相反电动势 | 需中性点引出 | Ke·ω | 0°(参考) |
| 线反电动势 | 直接测量相间电压 | √3·Ke·ω | +30° |
实战技巧:我建议在实际项目中优先使用线反电动势。原因很简单——不需要中性点,硬件实现更简单。但记得在软件里做30°的相位补偿。
3. 零速与低速的挑战
反电动势法有个天生的缺陷——零速和低速时信号太弱。为什么会这样?你看看公式就明白了:反电动势的幅值跟转速ω成正比。转速为零时,反电动势也为零。你拿什么来估算位置?
我曾经在一个风机项目里踩过这个坑。客户要求从零速开始平稳启动,我一开始只用反电动势法,结果电机在低速时抖得像筛子一样。后来才明白,低速时反电动势信噪比太差,根本没法用。
具体来说,低速时面临三个主要问题:
- 信号幅值太小:转速低于100RPM时,反电动势可能只有几十毫伏,淹没在噪声里
- 信噪比恶化:PWM开关噪声、采样噪声都比反电动势信号大
- 过零点检测不准:信号太弱,比较器或ADC很难准确捕捉过零点
注意:反电动势法通常只适用于中高速(一般建议转速高于额定转速的5%-10%)。零速和极低速下,必须配合其他启动策略,比如I/F强制定向启动或高频注入法。
那怎么办?我个人的做法是分阶段处理:
- 零速到低速(0-200RPM):用I/F强制定向启动,强制转子跟随给定角度旋转
- 中低速过渡区(200-500RPM):反电动势信号逐渐变强,开始混合估算
- 中高速(500RPM以上):完全切换到反电动势法
这个切换点不是固定的,得根据你电机的反电动势常数和实际噪声水平来调。我记得有个项目,电机比较小,反电动势常数低,我不得不把切换点提高到800RPM才稳定。
避坑指南:我曾经在切换点附近没做滞回处理,结果电机在切换点来回跳,转速波动很大。后来加了滞回区间(比如启动时500RPM切过去,降速时400RPM切回来),问题就解决了。这个细节很多人会忽略。
总结一下,反电动势法原理不复杂,但实际用起来坑不少。核心就是记住三点:反电动势跟位置的正弦关系、线反电动势的相位补偿、以及低速时的局限性。下一讲我们会深入具体的过零点检测电路和软件实现,到时候再细聊。