2. 永磁同步电机基础:数学模型与坐标变换

好,咱们正式开始聊PMSM的数学模型。说实话,很多搞标定的工程师一上来就调参数,结果调了半天发现根本调不动——为什么?因为你不懂电机肚子里那点事儿。数学模型就是电机的“脾气”,你摸透了它,标定起来才能得心应手。

2.1 为什么需要数学模型?

你想想看,电机里面转来转去,电流、电压、磁链,这些东西都是耦合在一起的。三相交流电,直接去控制它?太复杂了。我刚开始做项目那会儿,就想着直接调三相电流,结果发现根本解耦不了,调一个量,其他两个跟着乱跳。

数学模型的作用,说白了就是“降维打击”。把复杂的、耦合的三相系统,变成简单的、独立的直流系统。这样你就能像控制直流电机一样,去控制永磁同步电机了。

核心思想: 通过坐标变换,将三相静止坐标系下的交流量,变换到两相旋转坐标系下的直流量。这样,控制问题就从“跟踪正弦波”变成了“调节直流分量”。

2.2 三大坐标系,你得搞明白

做PMSM控制,绕不开这三个坐标系。我建议你把它刻在脑子里:

  • ABC 三相静止坐标系: 就是电机那三根线,A、B、C三相。物理上最直观,但数学上最麻烦。
  • αβ 两相静止坐标系: 把ABC三相投影到两个垂直的轴上。相当于把三相变两相,简化了计算。
  • dq 两相旋转坐标系: 这个最关键。d轴(直轴)对准转子磁极方向,q轴(交轴)超前d轴90度。在这个坐标系下,所有交流量都变成了直流量。

嗯,这里要注意:dq坐标系是跟着转子一起转的。所以你在dq轴上看电机,就像坐在旋转木马上看风景——一切都静止了。

2.3 坐标变换:从ABC到dq

变换过程分两步走:

  1. Clark变换(ABC → αβ): 把三相变成两相。
  2. Park变换(αβ → dq): 把静止的两相变成旋转的两相。

我个人习惯把这两个变换写在一起,直接一步到位。但为了讲清楚原理,咱们还是分开看。

2.3.1 Clark变换

公式其实很简单,就是矩阵乘法。等幅值变换下:

// C语言实现,等幅值Clark变换
void clark_transform(float ia, float ib, float ic, float *ialpha, float *ibeta) {
    *ialpha = ia;                          // α轴 = A相
    *ibeta  = (ia + 2.0f * ib) / 1.732f;  // β轴 = (A + 2B) / √3
    // ic = -ia - ib,所以不用单独算
}

我在项目中遇到过一个问题:采样三相电流时,如果某一相传感器坏了,Clark变换就会出错。后来我加了个故障诊断,一旦检测到三相电流之和不为零,就立刻报警。这个坑,你们标定的时候也得注意。

2.3.2 Park变换

这一步需要知道转子位置角θ。θ从哪里来?编码器或者霍尔传感器。

// C语言实现,Park变换
void park_transform(float ialpha, float ibeta, float theta, float *id, float *iq) {
    float sin_theta = sinf(theta);
    float cos_theta = cosf(theta);
    
    *id =  ialpha * cos_theta + ibeta * sin_theta;
    *iq = -ialpha * sin_theta + ibeta * cos_theta;
}

我的小技巧: 实际工程中,sin和cos计算很费时间。我一般用查表法或者CORDIC算法。标定的时候,记得检查角度对齐——如果θ有偏差,id和iq会互相串扰,控制效果直接崩掉。

2.4 数学模型:电压方程与磁链方程

有了dq坐标系,咱们就可以写出PMSM的数学模型了。这是标定的理论基础,我建议你至少能默写出来。

2.4.1 电压方程

在dq坐标系下,电压方程长这样:

ud = Rs * id + Ld * (did/dt) - ωe * Lq * iq
uq = Rs * iq + Lq * (diq/dt) + ωe * (Ld * id + ψf)

其中:

  • ud, uq: dq轴电压(你要控制的量)
  • id, iq: dq轴电流(你采样的量)
  • Rs: 定子电阻
  • Ld, Lq: dq轴电感(这个很重要,标定就是标它)
  • ωe: 电角速度
  • ψf: 永磁体磁链

你看,这里有个交叉耦合项:-ωe * Lq * iq+ωe * Ld * id。什么意思?就是q轴电流会影响d轴电压,反之亦然。我曾经在标定弱磁区时,忽略了交叉耦合,结果电流环怎么调都振荡。后来加上前馈补偿,问题才解决。

2.4.2 磁链方程

ψd = Ld * id + ψf
ψq = Lq * iq

这个简单。d轴磁链由两部分组成:id产生的和永磁体产生的。q轴磁链只有iq产生。

2.4.3 转矩方程

这是标定的最终目标——你要输出多少转矩?

Te = 1.5 * p * (ψf * iq + (Ld - Lq) * id * iq)

其中p是极对数。注意看,转矩由两部分组成:

  • 永磁转矩: 1.5 * p * ψf * iq(主转矩,跟iq成正比)
  • 磁阻转矩: 1.5 * p * (Ld - Lq) * id * iq(只有Ld≠Lq时才存在)

对于内置式PMSM(IPMSM),Ld < Lq,所以磁阻转矩是正的。你可以利用它来提升效率。我标定MTPA(最大转矩电流比)时,就是靠这个方程找最优id/iq分配。

避坑指南: 我曾经在标定一台大功率电机时,发现转矩输出总比理论值小10%。查了半天,原来是磁链ψf随温度漂移了。永磁体在高温下会退磁,ψf会下降。所以标定一定要考虑温度补偿,否则你的转矩精度根本保证不了。

2.5 知识体系总览

下面这张图,是我自己总结的PMSM数学模型与坐标变换的完整逻辑。你照着这个思路去理解,就不会乱。

PMSM数学模型与坐标变换知识体系 物理电机 三相交流,强耦合 Clark变换 αβ静止坐标系 两相交流,部分解耦 Park变换 dq旋转坐标系 两相直流,完全解耦 dq坐标系下的数学模型 电压方程 ud = Rs·id + Ld·did/dt - ωe·Lq·iq uq = Rs·iq + Lq·diq/dt + ωe·(Ld·id+ψf) 包含交叉耦合项,需前馈补偿 磁链方程 ψd = Ld·id + ψf ψq = Lq·iq ψf随温度变化,需补偿 转矩方程 Te = 1.5·p·[ψf·iq + (Ld-Lq)·id·iq] 永磁转矩 + 磁阻转矩(MTPA基础) 标定核心:辨识Rs, Ld, Lq, ψf四个参数,并建立温度/电流查表

2.6 标定中需要关注的参数

从数学模型可以看出,标定工作其实就是把这几个参数搞准:

参数 符号 标定方法 注意事项
定子电阻 Rs 直流注入法 随温度变化明显,需做温度补偿表
d轴电感 Ld 高频注入/脉冲测试 随id、iq变化,需做3D查表
q轴电感 Lq 高频注入/脉冲测试 随id、iq变化,饱和效应明显
永磁体磁链 ψf 空载反电动势法 随温度升高而降低,高温退磁风险

我的经验: 标定Ld和Lq时,不要只测一个点。我一般会测一个完整的电流网格——id从负到正,iq从零到额定。然后做成3D查表。这样在MTPA和弱磁控制时,查出来的电感值才准。否则,你算出来的前馈电压就是错的,电流环性能直接打折。

好了,数学模型和坐标变换就聊到这儿。这些东西看着枯燥,但它是标定的根基。你把这个搞透了,后面讲MTPA、弱磁、死区补偿,你一听就懂。如果现在觉得有点绕,没关系,画个矢量图,自己推一遍Clark和Park变换,比看十遍文章都管用。