第三讲:反电动势法基本原理

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. 零速与低速的挑战

反电动势法有个天生的缺陷——零速和低速时信号太弱。为什么会这样?你看看公式就明白了:反电动势的幅值跟转速ω成正比。转速为零时,反电动势也为零。你拿什么来估算位置?

我曾经在一个风机项目里踩过这个坑。客户要求从零速开始平稳启动,我一开始只用反电动势法,结果电机在低速时抖得像筛子一样。后来才明白,低速时反电动势信噪比太差,根本没法用。

具体来说,低速时面临三个主要问题:

  1. 信号幅值太小:转速低于100RPM时,反电动势可能只有几十毫伏,淹没在噪声里
  2. 信噪比恶化:PWM开关噪声、采样噪声都比反电动势信号大
  3. 过零点检测不准:信号太弱,比较器或ADC很难准确捕捉过零点

注意:反电动势法通常只适用于中高速(一般建议转速高于额定转速的5%-10%)。零速和极低速下,必须配合其他启动策略,比如I/F强制定向启动或高频注入法。

那怎么办?我个人的做法是分阶段处理:

  • 零速到低速(0-200RPM):用I/F强制定向启动,强制转子跟随给定角度旋转
  • 中低速过渡区(200-500RPM):反电动势信号逐渐变强,开始混合估算
  • 中高速(500RPM以上):完全切换到反电动势法

这个切换点不是固定的,得根据你电机的反电动势常数和实际噪声水平来调。我记得有个项目,电机比较小,反电动势常数低,我不得不把切换点提高到800RPM才稳定。

避坑指南:我曾经在切换点附近没做滞回处理,结果电机在切换点来回跳,转速波动很大。后来加了滞回区间(比如启动时500RPM切过去,降速时400RPM切回来),问题就解决了。这个细节很多人会忽略。

总结一下,反电动势法原理不复杂,但实际用起来坑不少。核心就是记住三点:反电动势跟位置的正弦关系、线反电动势的相位补偿、以及低速时的局限性。下一讲我们会深入具体的过零点检测电路和软件实现,到时候再细聊。