4. 永磁同步电机(PMSM):结构、旋转磁场与 dq 变换

好,咱们今天聊聊永磁同步电机,也就是 PMSM。这东西在工业伺服、新能源汽车、机器人关节里到处都是。我刚开始接触电机控制时,第一反应是「这不就是个带磁铁的电机吗?」——嗯,这么说也没错,但背后的物理和数学,值得好好捋一遍。

4.1 PMSM 的结构:转子上有磁铁,定子上有线圈

PMSM 的结构其实不复杂。定子跟异步电机差不多,三相对称绕组嵌在铁芯槽里。转子呢,关键区别就在这里——转子上嵌入了永磁体。

  • 表贴式(SPM):磁铁贴在转子表面。交直轴电感相等,适合高速、弱磁控制。
  • 内置式(IPM):磁铁埋在转子内部。交直轴电感不等,能产生磁阻转矩,效率更高。
我个人的经验: 做伺服驱动器时,SPM 的电流环调起来更「线性」,因为 Ld ≈ Lq。但 IPM 的 MTPA(最大转矩电流比)控制能榨出更多转矩,代价是算法复杂一些。

你想想看,转子上的永磁体产生了一个恒定的磁场。定子绕组通电后,也会产生一个旋转磁场。这两个磁场之间「较劲」,就产生了转矩。说白了,就是磁铁追着磁场跑。

4.2 旋转磁场理论:三相电流怎么「变」出旋转磁场

三相定子绕组在空间上相差 120° 电角度。通入三相对称正弦电流后,每个绕组都会产生一个脉振磁动势。这三个脉振磁动势叠加在一起,就合成一个幅值恒定、匀速旋转的磁动势波。

为什么会这样?我简单推导一下:

设三相电流:
  i_a = I_m * cos(ωt)
  i_b = I_m * cos(ωt - 120°)
  i_c = I_m * cos(ωt - 240°)

每相绕组在气隙中产生的磁动势:
  F_a = F_m * cos(θ) * cos(ωt)
  F_b = F_m * cos(θ - 120°) * cos(ωt - 120°)
  F_c = F_m * cos(θ - 240°) * cos(ωt - 240°)

合成磁动势:
  F(θ,t) = F_a + F_b + F_c = (3/2) * F_m * cos(θ - ωt)

看到了吗?合成结果是一个幅值恒定为 1.5 倍 F_m、以角速度 ω 旋转的波。这就是旋转磁场。

关键点: 旋转磁场的转速(同步转速)由电源频率和极对数决定:n_s = 60f / p。PMSM 的转子转速就等于这个同步转速——所以叫「同步」电机。

4.3 dq 坐标系变换:把交流变直流,控制就简单了

三相静止坐标系下的电压、电流都是时变的正弦量。直接控制它们?PID 调起来很痛苦,因为跟踪正弦信号总有稳态误差。那怎么办?

换个思路:如果我们站在转子上看,定子磁场是静止的还是旋转的?——答案是静止的。因为转子跟着磁场一起转。那如果我们把坐标系也「绑」在转子上,看到的电压电流就是直流量了。

这就是 dq 变换的核心思想:把三相静止坐标系下的交流量,变换到两相旋转坐标系下的直流量。控制直流量,PID 就能做到无静差。

4.3.1 Clark 变换:三相 → 两相静止

Clark 变换把三相(a,b,c)变成两相(α,β),坐标轴还是静止的。等幅值变换的公式如下:

[ i_α ]   [ 1      -1/2    -1/2   ] [ i_a ]
[ i_β ] = [ 0      √3/2   -√3/2  ] [ i_b ]
[ i_0 ]   [ 1/2     1/2     1/2   ] [ i_c ]

注意那个 i_0 是零序分量。对于三相三线制系统,i_a + i_b + i_c = 0,所以 i_0 恒为 0,可以忽略。

我曾经踩过的坑: 等幅值变换和等功率变换的系数不同。等幅值变换的系数是 2/3,等功率变换是 √(2/3)。如果你从网上抄代码,一定要确认用的是哪种。我见过有人混用,结果电流环增益怎么调都不对。

4.3.2 Park 变换:两相静止 → 两相旋转

Park 变换把 αβ 坐标系下的量,旋转 θ 角度(转子位置角),得到 dq 坐标系下的量:

[ i_d ]   [ cosθ   sinθ ] [ i_α ]
[ i_q ] = [ -sinθ  cosθ ] [ i_β ]

反过来,逆 Park 变换(dq → αβ)就是:

[ i_α ]   [ cosθ  -sinθ ] [ i_d ]
[ i_β ] = [ sinθ   cosθ ] [ i_q ]

θ 从哪里来?从编码器或霍尔传感器来。所以 PMSM 控制必须要有位置传感器,或者用无传感器算法估算。

4.3.3 变换的物理意义

变换之后,d 轴(直轴)与转子磁极方向对齐,q 轴(交轴)超前 d 轴 90° 电角度。这时候:

  • i_d 控制励磁分量。对于表贴式 PMSM,通常让 i_d = 0,因为永磁体已经提供了励磁。
  • i_q 控制转矩分量。转矩与 i_q 成正比(在 i_d = 0 时)。

你想想看,这多方便!控制 i_q 就是控制转矩,控制 i_d 就是控制磁场强弱。两个直流量,各自独立调节,互不干扰——这就是矢量控制(FOC)的基础。

4.4 知识体系总览

下面这张图把 PMSM 控制的核心逻辑串起来了。从物理结构到数学模型,再到变换流程,一目了然。

PMSM 控制知识体系总览 PMSM 物理结构 定子:三相对称绕组 转子:永磁体(SPM/IPM) 旋转磁场理论 三相电流 → 合成磁动势 转速:n = 60f/p 数学模型 电压方程、磁链方程 转矩方程、运动方程 坐标变换核心 Clark 变换 abc → αβ Park 变换 αβ → dq 逆 Park 变换 dq → αβ 电流环控制 d轴:i_d 控制励磁 q轴:i_q 控制转矩 速度环/位置环 外环输出作为 i_q 给定 PI 调节器 + 前馈 SVPWM 调制 αβ 电压 → 占空比 驱动三相逆变器 核心思路:三相交流 → 两相旋转直流 → 独立控制 d/q 轴 → 逆变换回三相驱动

4.5 变换的工程实现要点

在实际代码里,Clark 和 Park 变换通常写成宏或内联函数,放在定时器中断里执行。我建议你注意以下几点:

  1. 角度对齐:编码器零位必须与电机 d 轴对齐。否则变换出来的 dq 分量是错的,转矩控制会乱。
  2. 三角函数计算:用查表法或 CORDIC 算法,避免在中断里调用标准库的 sin/cos,太慢了。
  3. 数值范围:电流采样值通常是 Q12 或 Q15 格式,变换时注意溢出。
避坑指南: 我曾经在一个项目里,Clark 变换的系数写成了 2/3,但 Park 变换的矩阵忘了乘以 √3/2 的归一化因子。结果电流环输出一直偏大,电机嗡嗡响。查了两天才发现是变换不匹配。所以,一定要把变换矩阵写在注释里,方便调试时对照。

4.6 小结

这一章我们聊了 PMSM 的结构、旋转磁场的产生原理,以及 dq 坐标变换的数学和物理意义。Clark 变换把三相变两相,Park 变换把静止变旋转。这两步变换,是矢量控制的基石。你想想看,没有它们,我们怎么把交流电机控制得像直流电机一样简单?