2. 电流环数学模型:PMSM 的数学模型与 dq 轴解耦

做 FOC 调参,绕不开数学模型。说白了,你调的是 PI 参数,但 PI 控制的对象是电流环传递函数。如果连模型长什么样都不清楚,调参就是瞎蒙。

我个人习惯,先把 PMSM 的数学模型摆出来,再讲 dq 轴解耦,最后推导出电流环传递函数。这样你调参时心里就有底了。

2.1 永磁同步电机(PMSM)的数学模型

先看电压方程。在 dq 旋转坐标系 下,PMSM 的定子电压方程是这样的:

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

其中:

  • ud、uq —— d 轴和 q 轴电压
  • id、iq —— d 轴和 q 轴电流
  • Rs —— 定子电阻
  • Ld、Lq —— d 轴和 q 轴电感
  • ωe —— 电角速度
  • ψf —— 永磁体磁链

嗯,这里要注意。方程里有个 交叉耦合项:d 轴方程里有 -ωe * Lq * iq,q 轴方程里有 +ωe * Ld * id。这两个东西,就是让电流环互相干扰的元凶。

核心问题: 如果不做解耦,d 轴电流变化会影响 q 轴,q 轴电流变化也会影响 d 轴。你调一个轴,另一个轴跟着抖。

再看转矩方程:

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

对于表贴式 PMSM(Ld = Lq),磁阻转矩项 (Ld - Lq) * id * iq 为零,转矩只跟 iq 有关。对于内置式 PMSM,还能利用磁阻转矩。不过电流环调参,我们主要关心电压方程。

2.2 dq 轴解耦原理

为什么要解耦?我举个例子。你在调 q 轴电流环,突然电机转速上来了,ωe 变大,交叉耦合项 -ωe * Lq * iq 直接窜进 d 轴方程。d 轴电流环一看,哎?电压不对,赶紧调整。结果 q 轴又受影响…… 来回震荡。

解耦的思路很简单:把交叉耦合项补偿掉。

具体做法:

  • 在 d 轴电压指令里,加上 +ωe * Lq * iq(抵消原来的 -ωe * Lq * iq)
  • 在 q 轴电压指令里,加上 -ωe * (Ld * id + ψf)(抵消原来的 +ωe * (Ld * id + ψf))

解耦后的电压方程变成:

ud* = Rs * id + Ld * (did/dt)
uq* = Rs * iq + Lq * (diq/dt)

你看,d 轴和 q 轴完全独立了。每个轴就是一个 一阶 RL 串联电路。调参就变成了调两个独立的 RL 电路。

我的经验: 解耦补偿需要准确的 Ld、Lq 和 ψf 参数。我曾经遇到过电机参数标定不准,解耦补偿反而引入干扰的情况。建议先做参数辨识,再做解耦。

2.3 电流环传递函数推导

解耦之后,d 轴和 q 轴的传递函数完全一样。我们以 q 轴为例推导。

从解耦后的电压方程出发:

uq* = Rs * iq + Lq * (diq/dt)

拉普拉斯变换:

Uq(s) = Rs * Iq(s) + Lq * s * Iq(s)
Uq(s) = (Rs + s * Lq) * Iq(s)

所以,被控对象的传递函数为:

G(s) = Iq(s) / Uq(s) = 1 / (Rs + s * Lq)

写成标准形式:

G(s) = 1 / (Rs * (1 + s * (Lq / Rs)))

令 τ = Lq / Rs(电气时间常数),则:

G(s) = 1 / (Rs * (1 + s * τ))

这就是电流环被控对象的传递函数。一个 一阶惯性环节,增益 1/Rs,时间常数 τ。

注意: 这个推导假设了解耦完全且忽略反电动势扰动。实际系统中,解耦误差、死区效应、采样延迟都会影响模型精度。调参时要在理论值基础上做微调。

2.4 本章知识体系

下面这张图总结了 PMSM 数学模型、dq 解耦和传递函数推导的核心逻辑:

电流环数学模型知识体系 电流环数学模型知识体系 PMSM 数学模型 电压方程(dq 坐标系) 转矩方程 交叉耦合项 dq 轴解耦 独立 RL 一阶模型 G(s) = 1 / (Rs + s·L) 关键结论 解耦后 d/q 轴独立 传递函数为一阶惯性环节 时间常数 τ = L / Rs

2.5 参数对比:表贴式 vs 内置式 PMSM

特性 表贴式 PMSM (SPMSM) 内置式 PMSM (IPMSM)
电感关系 Ld = Lq Ld < Lq
磁阻转矩 无(仅永磁转矩) 有(可利用磁阻转矩)
解耦难度 较低(Ld = Lq,补偿简单) 较高(Ld ≠ Lq,需分别补偿)
电流环模型 d/q 轴对称,传递函数相同 d/q 轴时间常数不同
弱磁控制 需要较大 id 去磁 利用磁阻转矩,弱磁更高效

调参建议: 对于 SPMSM,d/q 轴 PI 参数可以设成一样。对于 IPMSM,建议分别计算 d 轴和 q 轴的时间常数,再分别整定。我习惯先用 τ = L/Rs 算个理论值,然后在此基础上 ±20% 扫参。

2.6 避坑指南

最后分享几个我踩过的坑:

  • 解耦参数不准: 我曾经直接用电机铭牌上的电感值做解耦,结果低速还行,高速时电流震荡。后来做了离线参数辨识才解决。
  • 忽略数字延迟: 传递函数推导是连续的,但实际代码里有采样延迟和 PWM 更新延迟。建议在模型里加一个 1.5 拍延迟环节,更贴近实际。
  • 反电动势补偿: 高速时反电动势很大,如果不做前馈补偿,电流环带宽会受限。我一般在 q 轴输出上加 ωe * ψf 的前馈项。