2. 电机模型概述:永磁同步电机(PMSM)数学模型、dq坐标系变换、电压与转矩方程

做电机控制这些年,我最大的体会是:模型是控制的天花板。你算法写得再花哨,如果对电机本身的数学模型理解不到位,调试起来就是两眼一抹黑。这一章,咱们就把永磁同步电机(PMSM)的数学底子彻底捋一遍。

说白了,PMSM 的控制核心就三件事:坐标变换、电压方程、转矩方程。这三件事搞明白了,后面编码器数据怎么融进去,你自然就有思路了。

2.1 为什么非要用 dq 坐标系?

三相电机的原始模型长什么样?Ua、Ub、Uc 三相互差 120°,转子还在那里转。你要是直接在 abc 三相上写方程,那电感参数全是转子角度的函数——时变、耦合、非线性,看着就头疼。

我刚开始做 PMSM 控制时,就试图在 abc 坐标系下直接搭仿真。结果调了三天,电流波形还是抖得跟心电图似的。后来老工程师跟我说:“你先做 Clarke 和 Park 变换,把模型变到 dq 系下再说话。”

为什么要变?因为 dq 坐标系是跟着转子走的。你站在转子上看定子电流,那些时变的电感就全变成了常数。这就是所谓的“去耦合”——把交流电机等效成直流电机来控。

核心思想: dq 变换的本质是把三相静止坐标系下的时变系统,映射到两相旋转坐标系下的定常系统。这样一来,PI 控制器就能直接上场了。

2.2 坐标变换:从 abc 到 dq

变换分两步走:Clarke 变换(abc → αβ)和 Park 变换(αβ → dq)。

2.2.1 Clarke 变换

把三相投影到两相静止坐标系上。等幅值变换的公式长这样:

// Clarke 变换(等幅值)
Iα = Ia
Iβ = (Ia + 2*Ib) / √3

嗯,这里要注意:等幅值变换和等功率变换的系数不一样。我个人习惯用等幅值,因为后面算转矩时系数更直观。你在项目里最好统一用一种,别混着用,否则标定数据全得重来。

2.2.2 Park 变换

这一步把静止的 αβ 坐标系旋转到转子位置上。旋转角就是转子电角度 θe:

// Park 变换
Id = Iα * cos(θe) + Iβ * sin(θe)
Iq = -Iα * sin(θe) + Iβ * cos(θe)

你看,这里出现了 θe——这就是编码器要提供的关键数据。没有准确的转子位置,Park 变换就是错的,整个控制环都会乱套。我在一个项目中遇到过编码器安装偏差 2°,结果 Iq 和 Id 之间串扰严重,电流环带宽怎么提都提不上去。

避坑指南: 我曾经在调试时发现 dq 轴电流有固定偏置,查了两天才发现是 Park 变换里的角度补偿没做。编码器安装的零位偏移,必须在软件里做一次初始角标定。

2.3 PMSM 的电压方程

变换到 dq 坐标系后,电压方程就清爽多了:

Vd = Rs * Id + Ld * dId/dt - ωe * Lq * Iq
Vq = Rs * Iq + Lq * dIq/dt + ωe * (Ld * Id + ψf)

这里:

  • Vd、Vq:d、q 轴电压
  • Id、Iq:d、q 轴电流
  • Ld、Lq:d、q 轴电感(表贴式 PMSM 中 Ld = Lq,内嵌式则不同)
  • Rs:定子电阻
  • ωe:电角速度(ωe = P * ωm,P 是极对数)
  • ψf:永磁体磁链

你仔细看这两个方程,会发现一个有意思的事:d 轴和 q 轴之间有耦合项(-ωeLqIq 和 +ωeLdId)。转速越高,耦合越强。这就是为什么高速时要加前馈解耦——不然你调 d 轴电流,q 轴跟着抖。

注意: 电压方程中的 ωe 来自编码器测速。如果编码器分辨率不够或者采样延迟大,高速时电压前馈会严重失真。我见过一个案例,编码器脉冲数不够,3000rpm 时速度反馈滞后了 3 个控制周期,结果 Vq 前馈直接算反了,电流环振荡。

2.4 转矩方程

PMSM 的电磁转矩方程是:

Te = 1.5 * P * [ ψf * Iq + (Ld - Lq) * Id * Iq ]

这个公式分两部分:

  • ψf * Iq:永磁转矩,主分量
  • (Ld - Lq) * Id * Iq:磁阻转矩,只有内嵌式 PMSM(IPMSM)才有

你想想看,对于表贴式 PMSM(Ld = Lq),磁阻转矩项为零,转矩只和 Iq 成正比。这时候控制策略就是 Id = 0,简单粗暴。

但对于 IPMSM,你可以利用磁阻转矩来提升效率。这就是 MTPA(最大转矩电流比) 控制的基础。我做过一个项目,在 IPMSM 上用了 MTPA,同样转矩下电流有效值降了 12%,温升明显改善。

关键点: 转矩方程中的 ψf 和 Ld、Lq 都不是固定值。ψf 随温度变化(永磁体高温退磁),Ld、Lq 随电流大小变化(磁饱和)。编码器数据虽然不直接参与转矩计算,但 准确的转子位置和速度 是保证转矩估算精度的前提。

2.5 知识体系总览

下面这张图把这一章的核心逻辑串起来了。你对照着看,应该能更清楚每个模块之间的关系:

PMSM 数学模型与 dq 变换知识体系 三相 abc 系统 时变、耦合、非线性 Clarke 变换 abc → αβ(静止两相) Park 变换 αβ → dq(旋转两相) 编码器 → θₑ, ωₑ 转子位置/速度 dq 坐标系电压方程 Vd = Rs·Id + Ld·dId/dt − ωₑ·Lq·Iq Vq = Rs·Iq + Lq·dIq/dt + ωₑ·(Ld·Id + ψf) 转矩方程 Te = 1.5·P·[ ψf·Iq + (Ld−Lq)·Id·Iq ] 永磁转矩 + 磁阻转矩 Id, Iq 💡 核心逻辑: 编码器提供 θₑ 和 ωₑ → Park 变换将 abc 电流映射到 dq 系 → 在 dq 系下设计电压/电流控制器 → 转矩方程用于前馈或估算。 编码器数据的精度直接影响 Park 变换和电压前馈的准确性,进而决定整个控制系统的性能。

2.6 小结:模型与编码器的关系

这一章的内容,说白了就是为编码器数据“铺路”。你想想看:

  • Park 变换需要 θe——来自编码器
  • 电压方程中的反电动势项需要 ωe——来自编码器
  • 转矩估算需要准确的 Iq——而 Iq 的准确性依赖 Park 变换的角度精度

所以,编码器不仅仅是“测个转速”那么简单。它是整个 dq 坐标系变换的基准参考。后面几章我们会深入讲编码器数据怎么采集、怎么滤波、怎么和模型融合,但前提是——你得先把这一章的数学模型吃透。

个人建议: 如果你刚开始接触 PMSM 控制,建议在仿真环境里手动实现一遍 Clarke + Park 变换,然后用示波器看 Id 和 Iq 的波形。当你转动编码器角度时,看着 Id 从交流变成直流,那种感觉——嗯,比看任何公式都直观。