2、电机数学模型:永磁同步电机(PMSM)在dq坐标系下的数学模型

好,咱们接着聊。上一节我们把电机转子的物理结构摸了个大概,这一节要动真格的了——把PMSM的数学模型请出来。

说实话,我刚入行那会儿,看到dq坐标系那一堆公式就头大。心想:搞个电机控制,至于这么折腾吗?后来在项目里被现实狠狠教育了一顿,才明白——没有数学模型,你连PID参数都调不明白,更别说做FOC了。

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

你想想看,三相电机的电压、电流都是随时间正弦变化的。如果你直接在ABC三相坐标系下建模,那方程里全是时变系数,解起来非常痛苦。

dq坐标系的思路很巧妙:把旋转的电机,等效成一个静止的直流电机。说白了,就是跟着转子一起转,从转子的视角看世界。

我个人习惯把这种变换比作「坐过山车」:你坐在过山车上,看旁边的景物是静止的;站在地面上的人看,景物和你都在飞速移动。dq坐标系就是「坐在转子上看电机」。

核心思想:通过坐标变换,把正弦量变成直流量。这样一来,控制问题就从「跟踪正弦波」变成了「调节直流电压」,难度直接降了一个维度。

2.2 从ABC到dq:Clark + Park变换

这个变换分两步走:

  1. Clark变换(3→2):把ABC三相静止坐标系,变换到αβ两相静止坐标系。
  2. Park变换(静止→旋转):把αβ静止坐标系,变换到dq旋转坐标系。

公式长这样(等幅值变换):

// Clark变换
Iα = Ia
Iβ = (Ia + 2*Ib) / √3

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

其中θ是转子电角度。嗯,这里要注意:θ必须实时准确,否则变换出来的dq分量全是错的。我在项目里吃过这个亏——编码器安装偏差0.5度,结果Id、Iq一直有静差,查了两天才找到原因。

2.3 dq坐标系下的电压方程

好,重头戏来了。经过变换后,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轴的电流分量
  • Rs:定子相电阻
  • Ld、Lq:d轴和q轴电感(对表贴式PMSM,Ld ≈ Lq)
  • ωe:电角速度
  • ψf:永磁体磁链

个人经验:你看这个方程,其实可以拆成三部分理解:

  • 电阻压降:Rs * I —— 这个好理解,欧姆定律
  • 电感压降:L * dI/dt —— 电流变化引起的
  • 反电动势:ωe * L * I 和 ωe * ψf —— 转速越高,这部分越大

调试的时候,如果高速下电流跟踪不上,十有八九是反电动势补偿没做好。

2.4 转矩方程:电机到底能出多大力?

转矩方程同样简洁:

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

这里p是极对数。这个公式很有意思,我拆开讲讲:

  • 第一项 ψf * Iq:永磁转矩。说白了,就是永磁体和q轴电流相互作用产生的转矩。这是主要出力部分。
  • 第二项 (Ld - Lq) * Id * Iq:磁阻转矩。对于内嵌式PMSM(Ld ≠ Lq),可以利用这个分量「白嫖」一部分转矩。

避坑指南:我曾经在做一个高速风机项目时,为了省电,把Id设成了负值(弱磁控制)。结果转矩计算时忘了考虑磁阻转矩项,导致实际输出转矩比预期小了15%。后来加上(Ld-Lq)*Id*Iq这一项,才把性能调回来。

所以,如果你用的是内嵌式PMSM,千万别忽略磁阻转矩

2.5 运动方程:电机和负载的「拉锯战」

最后,别忘了电机不是孤立存在的,它要带着负载转:

Te - Tl = J * dωm/dt + B * ωm

其中:

  • Tl:负载转矩
  • J:转动惯量(电机+负载的总和)
  • B:阻尼系数
  • ωm:机械角速度(ωm = ωe / p)

这个方程告诉我们一个很朴素的道理:电机输出的转矩,一部分用来克服负载,一部分用来加速。如果负载突然变大,转速就会掉下来——这时候就需要电流环快速响应,把Iq顶上去。

2.6 小结:数学模型到底有什么用?

说了这么多,你可能想问:这些公式背下来有啥用?

我个人觉得,数学模型的价值在于:

  1. 参数辨识的基础:你要辨识Rs、Ld、Lq,总得知道它们出现在哪个方程里吧?
  2. 控制器设计的依据:PI参数怎么整定?前馈补偿怎么做?都得从方程出发。
  3. 故障诊断的参考:如果实际电流和模型预测的电流对不上,那肯定哪里出问题了。

下一节,我们就拿着这个数学模型,开始动手做参数辨识。准备好了吗?