电机基础知识:PMSM 结构、反电动势与转矩生成

系列:电机控制系列 - 第 2 篇
目标平台:STM32F407ZGT6
阅读时间:25 分钟
前置知识:电路基础、电磁学

前言

很多人一上来就想"直接做 FOC",但只要你调过一次参数,就会发现:

看不懂电机原理,就调不好控制算法。

本篇文章的目标:帮你彻底理解永磁同步电机(PMSM)的工作原理

不懂数学公式?没关系,我会用图示 + 直觉解释。

读完这篇,你会明白:

  • 为什么电机能转动?
  • 什么是反电动势?它如何影响控制?
  • 转矩是怎么产生的?如何增大转矩?
  • 电机参数(Rs、Ld、Lq、ψf)有什么物理意义?

一、电机分类与选择

1.1 直流电机 vs 交流电机

电机分类树
├─ 直流电机
│  ├─ 有刷直流电机(碳刷换向)
│  └─ 无刷直流电机(BLDC,电子换向)
│
└─ 交流电机
   ├─ 感应电机(异步电机)
   │  └─ 笼型、绕线型
   │
   └─ 同步电机
      ├─ 电励磁同步电机
      └─ 永磁同步电机(PMSM)⭐

1.2 为什么选 PMSM?

电机类型优点缺点应用场景
有刷直流控制简单、成本低碳刷磨损、维护频繁电动玩具、低端工具
BLDC无碳刷、寿命长转矩脉动大、噪声电动工具、无人机
PMSM高效率、高功率密度、低转矩脉动成本稍高电动汽车、工业伺服、机器人

PMSM 的核心优势

  • ✅ 效率高(95%+,BLDC 约 85%)
  • ✅ 功率密度大(体积小、力大)
  • ✅ 转矩脉动小(平稳)
  • ✅ 控制精度高(FOC)

本系列文章聚焦 PMSM + FOC 控制。


二、PMSM 结构详解

2.1 整体结构

┌────────────────────────────────┐
│         定子(Stator)         │
│  ┌──────────────────────────┐  │
│  │  ┌────────────────────┐  │  │
│  │  │                    │  │  │
│  │  │    转子(Rotor)   │  │  │
│  │  │   [永磁体 N-S-N]  │  │  │
│  │  │                    │  │  │
│  │  └────────────────────┘  │  │
│  │      A+   B+   C+        │  │
│  │       \   |   /          │  │
│  │        \  |  /           │  │
│  │      A-  B-  C-          │  │
│  └──────────────────────────┘  │
│                                │
└────────────────────────────────┘

定子:三相绕组(A/B/C),通交流电产生旋转磁场
转子:永磁体(N-S-N-S...),跟随旋转磁场转动

2.2 定子绕组

三相绕组(A/B/C)

  • 空间分布:120° 电角度对称分布
  • 绕组类型

    • 集中绕组:每极一相,简单但谐波大
    • 分布绕组:每极多相,复杂但谐波小

极对数(Pole Pairs, P)

  • 定义:永磁体 N-S 对数
  • 影响

    • 极对数越多,转速越低(相同频率)
    • 极对数越多,转矩越大(相同体积)

公式

电角度 = 机械角度 × 极对数
转速(rpm) = 60 × 频率(Hz) / 极对数

例子

  • 1 极对(2 极):3000 rpm @ 50Hz
  • 2 极对(4 极):1500 rpm @ 50Hz
  • 4 极对(8 极):750 rpm @ 50Hz

2.3 转子结构

表贴式永磁(SPM)

转子结构(SPM)
┌─────────────┐
│ [N][S][N][S] │  ← 永磁体贴在转子表面
│   铁芯      │
└─────────────┘

特点:
✅ 结构简单
✅ Ld ≈ Lq(无凸极效应)
❌ 高速时永磁体易脱落

内置式永磁(IPM)

转子结构(IPM)
┌─────────────┐
│ ┌─┐ ┌─┐ ┌─┐ │
│ │N│ │S│ │N│ │  ← 永磁体嵌入转子内部
│ └─┘ └─┘ └─┘ │
│   铁芯      │
└─────────────┘

特点:
✅ 永磁体固定牢靠
✅ Ld < Lq(凸极效应,可利用磁阻转矩)
✅ 高速性能好
❌ 结构复杂、成本高

IPM 的优势:磁阻转矩

  • SPM:只有永磁转矩
  • IPM:永磁转矩 + 磁阻转矩(额外 10-20% 转矩)

三、反电动势(Back-EMF)

3.1 反电动势的物理本质

核心原理:法拉第电磁感应定律

当导体在磁场中运动时,会产生感应电动势:

e = -dψ/dt = -N × dΦ/dt

其中:
- e:感应电动势(V)
- ψ:磁链(Wb)
- Φ:磁通(Wb)
- N:匝数

直观理解

  • 转子旋转 → 永磁体磁场切割定子绕组 → 绕组产生感应电动势
  • 转速越快 → 反电动势越大

3.2 反电动势波形

正弦波反电动势(PMSM)

反电动势波形(PMSM)
  ea(t) = Em × sin(ωt)
  eb(t) = Em × sin(ωt - 120°)
  ec(t) = Em × sin(ωt + 120°)

其中:
- Em:反电动势幅值 = Ke × ω
- Ke:反电动势系数(V·s/rad)
- ω:角速度(rad/s)

特点:
✅ 正弦波,谐波小
✅ 适合 FOC 控制

梯形波反电动势(BLDC)

反电动势波形(BLDC)
  ea(t) ≈ 梯形波(120° 平顶)
  
特点:
❌ 梯形波,谐波大
❌ 适合方波控制(六步换相)
❌ 转矩脉动大

3.3 反电动势对控制的影响

电压平衡方程

施加电压 = 反电动势 + 电阻压降 + 电感压降

U = E + I×R + L×(dI/dt)

其中:
- U:施加电压(V)
- E:反电动势(V)= Ke × ω
- I:电流(A)
- R:电阻(Ω)
- L:电感(H)

关键结论

  1. 低速时:反电动势 E 小,容易控制电流
  2. 高速时:反电动势 E 大,需要更高电压
  3. 超过电压极限:无法控制 → 需要弱磁

例子

电机参数:
- Ke = 0.05 V·s/rad
- 额定转速 = 3000 rpm = 314 rad/s
- 母线电压 = 24V

反电动势 @ 3000 rpm:
E = 0.05 × 314 = 15.7V

可用电压余量:
24V - 15.7V = 8.3V(还有 8.3V 可控)

四、转矩生成机制

4.1 转矩的本质:洛伦兹力

洛伦兹力公式:
F = I × L × B

其中:
- F:力(N)
- I:电流(A)
- L:导线长度(m)
- B:磁感应强度(T)

转矩 = 力 × 半径
T = F × r = I × L × B × r

直观理解

  • 定子电流产生磁场 → 与转子永磁体相互作用 → 产生转矩
  • 电流越大 → 转矩越大

4.2 转矩方程(dq 坐标系)

PMSM 转矩方程

Te = (3/2) × P × [ψf × iq + (Ld - Lq) × id × iq]
     └─────┬─────┘   └──────────┬──────────┘
       永磁转矩           磁阻转矩

其中:
- Te:电磁转矩(N·m)
- P:极对数
- ψf:永磁体磁链(Wb)
- id, iq:d 轴、q 轴电流(A)
- Ld, Lq:d 轴、q 轴电感(H)

两项转矩的物理意义

转矩项公式物理意义适用电机
永磁转矩ψf × iq永磁体与定子电流相互作用SPM、IPM
磁阻转矩(Ld-Lq) × id × iq磁路磁阻变化产生IPM(Ld < Lq)

4.3 如何增大转矩?

方法 1:增大 iq(q 轴电流)

Te ∝ iq(永磁转矩主导)

✅ 直接有效
❌ 受电流极限限制(热、磁饱和)

方法 2:利用磁阻转矩(IPM)

Te 额外增加 (Ld-Lq) × id × iq

当 id < 0 且 iq > 0 时:
- 磁阻转矩为正(增加转矩)
- 这就是 MTPA(最大转矩电流比)的原理

方法 3:增加极对数 P

Te ∝ P

✅ 同体积下转矩更大
❌ 转速降低

五、电机参数详解

5.1 电气参数

定子电阻(Rs)

  • 定义:定子绕组的电阻(Ω)
  • 测量方法

    • 静态测量:万用表测两端(相-相)
    • Rs = (R_相相) / 2

影响

  • 电阻大 → 铜损耗大(I²R)→ 发热
  • 电阻大 → 低速性能差(电阻压降占比大)

典型值

  • 小功率电机(< 100W):0.1-1Ω
  • 中功率电机(100W-1kW):0.01-0.1Ω
  • 大功率电机(> 1kW):< 0.01Ω

电感(Ld, Lq)

  • Ld:d 轴电感(磁场方向)
  • Lq:q 轴电感(垂直磁场方向)

SPM:Ld ≈ Lq(无凸极效应)
IPM:Ld < Lq(凸极效应)

测量方法

  • 静态测量:锁定转子,施加交流电压,测电流
  • L = U / (2πf × I)

典型值

  • 小功率电机:0.1-1 mH
  • 中功率电机:1-10 mH
  • 大功率电机:10-100 mH

永磁体磁链(ψf)

  • 定义:永磁体产生的磁链(Wb)
  • 与反电动势的关系

    • ψf = Ke(反电动势系数)

测量方法

  • 空载旋转 → 测反电动势 → 计算磁链
  • ψf = E / ω

典型值

  • 小功率电机:0.001-0.01 Wb
  • 中功率电机:0.01-0.1 Wb
  • 大功率电机:0.1-1 Wb

5.2 机械参数

转动惯量(J)

  • 定义:转子旋转惯量(kg·m²)
  • 影响

    • J 大 → 加速慢(惯性大)
    • J 小 → 加速快(响应快)

测量方法

  • 自由停机法:测减速曲线
  • J = T × t / Δω

典型值

  • 小电机(无人机):1e-6 ~ 1e-5 kg·m²
  • 中电机(工业伺服):1e-4 ~ 1e-3 kg·m²
  • 大电机(电动汽车):1e-2 ~ 1e-1 kg·m²

粘滞摩擦系数(B)

  • 定义:摩擦阻尼(N·m·s/rad)
  • 影响:空载时转速衰减

典型值:1e-5 ~ 1e-3 N·m·s/rad

5.3 电机参数表(示例)

典型 1kW PMSM 参数

电机型号:XXX-1kW-3000rpm

电气参数:
- Rs = 0.15 Ω
- Ld = 2.5 mH
- Lq = 3.5 mH(IPM)
- ψf = 0.08 Wb
- Ke = 0.08 V·s/rad

机械参数:
- J = 5e-4 kg·m²
- B = 1e-4 N·m·s/rad
- P = 4(8 极)

额定参数:
- 额定电压:48V
- 额定电流:20A
- 额定转速:3000 rpm
- 额定转矩:3.2 N·m
- 额定功率:1 kW

六、STM32 电机参数测量

6.1 电阻测量(静态)

// 使用万用表或 STM32 ADC 测量
float Motor_Measure_Rs(void) {
    // 1. 锁定转子(不转)
    // 2. 施加直流电压 U
    // 3. 测量电流 I
    
    float U = 5.0f;   // 施加 5V
    float I = ADC_Read_Current();
    
    float R_phase_phase = U / I;  // 相间电阻
    float Rs = R_phase_phase / 2; // 单相电阻
    
    return Rs;  // Ω
}

6.2 电感测量(静态)

// 交流注入法
float Motor_Measure_L(void) {
    // 1. 锁定转子
    // 2. 施加交流电压(如 1kHz)
    // 3. 测量电流幅值和相位
    
    float U_ac = 1.0f;      // 1V AC
    float f = 1000.0f;      // 1kHz
    float I_ac = ADC_Read_Current_AC();
    
    // 阻抗 Z = U / I
    float Z = U_ac / I_ac;
    
    // Z² = R² + (ωL)²
    // L = sqrt(Z² - R²) / ω
    float omega = 2.0f * M_PI * f;
    float L = sqrtf(Z*Z - Rs*Rs) / omega;
    
    return L;  // H
}

6.3 磁链测量(动态)

// 空载旋转法
float Motor_Measure_PsiF(float omega) {
    // 1. 空载旋转电机(不接负载)
    // 2. 测量反电动势 E
    // 3. 计算磁链 ψf = E / ω
    
    float E = ADC_Read_BEMF();  // 测反电动势
    float psi_f = E / omega;
    
    return psi_f;  // Wb
}

6.4 惯量测量(自由停机)

// 自由停机法
float Motor_Measure_J(void) {
    // 1. 加速到一定转速
    // 2. 断电,自由减速
    // 3. 记录减速曲线
    
    float omega0 = 3000.0f * 2.0f * M_PI / 60.0f;  // 初始转速
    uint32_t t_start = HAL_GetTick();
    
    // 等待转速降到 0
    while (Encoder_Get_Speed() > 0) {
        HAL_Delay(10);
    }
    
    uint32_t t_stop = HAL_GetTick();
    float t_decay = (t_stop - t_start) / 1000.0f;  // 秒
    
    // J = B × t / ln(ω0/ω)
    // 简化:J ≈ B × t(假设线性衰减)
    float J = B_coeff * t_decay;
    
    return J;  // kg·m²
}

七、常见问题与解决

7.1 电机不转?

可能原因

  1. ❌ 相序错误(A/B/C 接反)
  2. ❌ 编码器零点未校准
  3. ❌ 参数错误(Rs、L 测错)

解决方法

// 1. 检查相序
void Motor_Check_Phase_Sequence(void) {
    // 通直流电,观察转子位置
    // A+ → B+ → C+ → 转子应顺时针旋转
}

// 2. 校准编码器零点
void Motor_Calibrate_Encoder(void) {
    // 通 id > 0,iq = 0
    // 转子对齐到 d 轴
    // 记录此时编码器读数 → 零点
}

7.2 电机抖动?

可能原因

  1. ❌ PID 参数不当
  2. ❌ 死区时间过大
  3. ❌ 电流采样不准

解决方法

// 1. 降低 PID 增益
pid.Kp *= 0.5;
pid.Ki *= 0.5;

// 2. 减小死区时间
TIM1->BDTR = (TIM1->BDTR & ~TIM_BDTR_DTG) | (10 << TIM_BDTR_DTG_Pos);

// 3. 重新校准电流
Current_Calibrate();

7.3 电机过热?

可能原因

  1. ❌ 电流过大(过载)
  2. ❌ PWM 频率太低(纹波大)
  3. ❌ 散热不良

解决方法

// 1. 限制电流
if (fabsf(iq) > 10.0f) {
    iq_ref = 10.0f * sign(iq_ref);
}

// 2. 提高 PWM 频率
// 20kHz → 30kHz
TIM1->PSC = 55;  // 调整预分频

// 3. 增加散热
// 加散热片、风扇

八、总结

8.1 核心要点

  1. PMSM 结构

    • 定子:三相绕组(A/B/C)
    • 转子:永磁体(SPM/IPM)
    • 极对数:决定转速与转矩
  2. 反电动势

    • 转速越快,反电动势越大
    • 限制最高转速
    • 需要弱磁控制
  3. 转矩生成

    • 永磁转矩:ψf × iq
    • 磁阻转矩:(Ld-Lq) × id × iq(IPM)
    • 电流越大,转矩越大
  4. 电机参数

    • Rs、Ld、Lq、ψf:电气参数
    • J、B:机械参数
    • 必须测量准确,否则控制失败

8.2 下一步

下一篇PWM 与三相逆变桥原理

我们将学习:

  • ✅ PWM 调制原理(占空比、频率、死区)
  • ✅ 三相全桥逆变器(6 个 MOSFET)
  • ✅ STM32 定时器配置(寄存器级)
  • ✅ 死区插入与刹车功能

附录:电机参数计算工具

Excel 计算器

  • 输入:反电动势、转速、电流
  • 输出:ψf、L、Rs

MATLAB 脚本

% 电机参数辨识
function [Rs, Ld, Lq, Psi_f] = Identify_Motor_Params(U, I, omega)
    Rs = U / I;  % 静态电阻
    
    % 交流测试
    Z = U_ac / I_ac;
    L = sqrt(Z^2 - Rs^2) / (2*pi*f);
    
    % 空载测试
    Psi_f = E / omega;
end

参考资料

  1. 《现代永磁同步电机控制原理及 MATLAB 仿真》- 袁雷
  2. 《交流电机数学模型及调速系统》- 李永东
  3. TI Application Note: "PMSM Electrical Parameters Measurement"
  4. ST Application Note: "Field Oriented Control (FOC)"

版权声明:本文采用 CC BY-NC-SA 4.0 协议,欢迎转载,但请注明出处。

更新日志

  • 2026-03-13:发布第 1 版
最后修改:2026 年 03 月 14 日
如果觉得我的文章对你有用,请随意赞赏