02三相正弦波与旋转磁场

观察三相电流如何合成旋转磁场

本模块主旨
三个 120° 错开正弦 → 旋转磁场矢量;同时 Ia+Ib+Ic=0 是免费的硬件健康度听诊器。

学完应能回答

查看完整 Walkthrough(8 步 + 4 误区)

总览
三相正弦的核心不是 sin 公式,而是"相位差 120° 的三个量在空间相差 120° 的绕组里合成出一个旋转磁场"。

零基础速入

类比
三相电流就像三个排成 120° 的人**轮流**推一个旋转门——任何时刻总有人在推,门就一直转。三个人发力大小是正弦曲线,相互错开 120°,合起来给门一个**幅值不变方向连续转动**的力。这个"力"就是定子合成磁场。
核心概念
三个固定方向的绕组通入相位差 120° 的正弦电流,合成出一个像转子一样转动的磁场——这是所有 AC 电机能转起来的物理基础。

为什么要学

第一手操作
把右侧"频率"从 50 Hz 拉到 120 Hz,看左侧定子截面的合成磁场箭头转得明显变快;底部三相波形周期变短。然后试试"三相不平衡"=0.3,看箭头轨迹从圆变成椭圆。

学习目标

核心概念

公式

三相正弦电流
Ia = I·sin(ωt), Ib = I·sin(ωt − 2π/3), Ic = I·sin(ωt + 2π/3)

I 是峰值,ω = 2πf;三相和恒为 0(平衡时)。

合成磁动势
F(t) = (3/2)·I·e^(jωt)

空间相差 120° 的三个绕组 + 时间相差 120° 的三相电流 → 幅值稳定 (3/2)I 的旋转复矢量。

电频率 vs 同步转速
n_s = 60·f / p

50 Hz 4 极对电机 → 同步转速 750 rpm。FOC 中 f 由控制器选定,决定电机要追的目标转速。

工程意义

STM32 移植指南

常见误区

  • 只看单相电流,忽略三相相位关系。
  • 采样点靠近 PWM 边沿,开关纹波直接进控制环。
  • RMS / 峰值 / 平均值混用导致标定比例错。
  • ADC 偏置没校准就上电流环。

调试方法

建议实验

STM32 C 代码骨架

/* ============================================
 * 三相 ADC 采样 + 偏置校准
 * 适配 STM32 ADC + DMA + 注入序列触发
 * ============================================ */

/* 上电校准:电机不通电时取 1024 次平均,记录零电流 ADC 值 */
typedef struct {
    int32_t ia_offset;   // ADC 原始码值
    int32_t ib_offset;
    int32_t ic_offset;
    float   adc_to_amps; // 转换系数 = Vref / (4096 × R_shunt × Gain)
} current_calib_t;

void current_calibrate(current_calib_t *c) {
    int32_t sa = 0, sb = 0, sc = 0;
    for (int i = 0; i < 1024; i++) {
        while (!(ADC1->JSR & ADC_JSR_JEOC)) { /* 等注入完成 */ }
        sa += ADC1->JDR1;
        sb += ADC1->JDR2;
        sc += ADC1->JDR3;
        ADC1->JSR &= ~ADC_JSR_JEOC;
    }
    c->ia_offset = sa >> 10;   // /1024
    c->ib_offset = sb >> 10;
    c->ic_offset = sc >> 10;
}

/* 中断中:原始码值 → 真实安培 */
static inline float adc_to_amps(int32_t raw, int32_t offset, float scale) {
    return (float)(raw - offset) * scale;
}

/* 用法(在 FOC ISR 里):
 *   float ia = adc_to_amps(ADC1->JDR1, calib.ia_offset, calib.adc_to_amps);
 *   float ib = adc_to_amps(ADC1->JDR2, calib.ib_offset, calib.adc_to_amps);
 *   float ic = -ia - ib;   // 三相和=0 重构第三相,省一路 ADC
 *   // 调试断言:fabsf(ia + ib + ic) 应该 < 0.1A
 */

下一步

随堂题

三相平衡正弦电流 Ia + Ib + Ic 理论值是多少?
  1. 正比于幅值 I
  2. 正比于频率 f
  3. 恒为 0 (正确)
  4. 随 ωt 变化
提示:sin(ωt) + sin(ωt − 2π/3) + sin(ωt + 2π/3) = 0 是恒等式。运行时若 |Ia+Ib+Ic| > 0.1A 多半是 ADC 偏置没校准。
三相电流频率从 50Hz 调到 120Hz,定子合成磁场会怎样?
  1. 幅值变大
  2. 幅值不变、转得更快 (正确)
  3. 消失
  4. 反向
提示:幅值取决于电流峰值,频率只决定旋转角速度 ω = 2πf。
示波器看到三相幅值各 6A 但只有两相相差 120°,第三相相差 100°,会发生什么?
  1. 和正常一样
  2. 合成磁场幅值不稳定,轨迹变椭圆 (正确)
  3. 电机停转
  4. PWM 频率改变
提示:相位失配让三相不再对称合成出圆形旋转磁场,αβ 矢量端点画椭圆/抖动。
STM32 ADC 采样三相电流时为什么强烈推荐放在 PWM 中点?
  1. 硬件要求
  2. 中点是开关边沿,电流变化最快
  3. 中点电流纹波最小,避开开关噪声 (正确)
  4. 只能这样接线
提示:中心对齐 PWM 中点是上下管已经稳定切换完成的位置,电流纹波接近平均值,靠近开关边沿采样会引入巨大噪声。
4 极对 PMSM,定子电流频率 100Hz,电机的同步机械转速是?
  1. 100 rpm
  2. 1500 rpm (正确)
  3. 6000 rpm
  4. 400 rpm
提示:n_s = 60·f / p = 60 × 100 / 4 = 1500 rpm。