3. PMSM数学模型(二):Clark变换与Park变换,两相旋转坐标系下的数学模型

上一章我们把PMSM在三相静止坐标系下的电压方程、磁链方程和转矩方程都摆出来了。说实话,那堆方程看着就头疼,对吧?

三个相电流 i_a、i_b、i_c,三个相电压,还都是时变的。你要是直接用这玩意儿去写控制算法,CPU得累死,而且效果还不一定好。

所以,我们需要做一件事——简化。

怎么简化?把三相静止坐标系下的物理量,变换到两相旋转坐标系下。这就是Clark变换和Park变换要干的事。

核心思想: 把交流电机等效成直流电机来控制。在旋转坐标系下,原本正弦变化的电流、电压,会变成直流量。这样一来,PID控制器就能像控制直流电机一样去控制PMSM了。

3.1 从三相到两相:Clark变换

Clark变换,也叫3/2变换。它的任务是把三相静止坐标系(ABC轴)下的量,投影到两相静止坐标系(αβ轴)下。

你想想看,三相绕组在空间上相差120°,两相绕组在空间上相差90°。只要保证变换前后产生的磁动势相同,这个变换就是成立的。

我个人习惯用等幅值变换。也就是说,变换前后,电流矢量的幅值不变。公式如下:

// Clark变换(等幅值)
i_α = i_a
i_β = (1/√3) * i_a + (2/√3) * i_b

嗯,这里要注意。有些教材用的是等功率变换,系数会不一样。等幅值变换的好处是,你测到相电流峰值是10A,变换后αβ轴电流的幅值也是10A,调试起来很直观。

我在项目中遇到过一个问题:采样回来的三相电流,理论上 i_a + i_b + i_c = 0。但实际硬件有偏置,导致Clark变换后的αβ轴电流有直流偏置,电机低速运行时抖得厉害。后来我加了一阶高通滤波器,把直流分量滤掉,问题就解决了。

避坑指南: 我曾经在代码里直接用浮点数计算 1/√3,结果发现每次变换都要算一次除法,效率很低。后来我改成查表或者预先计算好系数 0.57735f,速度提升了不少。嵌入式开发,能省则省。

3.2 从静止到旋转:Park变换

Clark变换做完,我们得到了αβ轴下的两相交流量。但交流量还是不好控。怎么办?再变一次。

Park变换的任务,就是把两相静止坐标系(αβ轴)下的量,变换到两相旋转坐标系(dq轴)下。这个旋转坐标系,以电角速度 ω_e 跟着转子一起转。

公式也很简单:

// Park变换
i_d =  i_α * cos(θ_e) + i_β * sin(θ_e)
i_q = -i_α * sin(θ_e) + i_β * cos(θ_e)

其中 θ_e 是转子电角度,由编码器或霍尔传感器提供。

变换之后,i_d 和 i_q 就变成了直流量。你想想看,这多爽!

  • i_d:直轴电流,控制励磁分量。对于表贴式PMSM,通常控制 i_d = 0。
  • i_q:交轴电流,控制转矩分量。你给多大 i_q,电机就出多大转矩。

说白了,控制PMSM,本质上就是控制 i_d 和 i_q。一个负责励磁,一个负责转矩,互不干扰。

重要提醒: Park变换依赖转子位置 θ_e。如果位置传感器有误差,或者初始位置没对准,变换出来的 i_d 和 i_q 就不准,转矩控制会出问题。我见过有人因为编码器安装偏心,导致电机带载时抖动,最后排查了三天才发现是位置信号有谐波。

3.3 两相旋转坐标系下的数学模型

经过Clark和Park变换,PMSM在三相静止坐标系下的复杂方程,就变成了dq坐标系下的简洁形式。

直接上干货,电压方程:

// dq轴电压方程
u_d = R_s * i_d + L_d * (di_d/dt) - ω_e * L_q * i_q
u_q = R_s * i_q + L_q * (di_q/dt) + ω_e * (L_d * i_d + ψ_f)

磁链方程:

// dq轴磁链方程
ψ_d = L_d * i_d + ψ_f
ψ_q = L_q * i_q

转矩方程:

// 电磁转矩方程
T_e = 1.5 * p * [ψ_f * i_q + (L_d - L_q) * i_d * i_q]

其中:

  • R_s:定子电阻
  • L_d、L_q:直轴、交轴电感
  • ψ_f:永磁体磁链
  • p:极对数
  • ω_e:电角速度

你看,方程里没有了正弦、余弦,全是直流量和常数。这就是我们想要的。

对于表贴式PMSM(SPMSM),L_d = L_q,转矩方程进一步简化为:

T_e = 1.5 * p * ψ_f * i_q

转矩只和 i_q 成正比。这不就是直流电机吗?

对于内置式PMSM(IPMSM),L_d < L_q,多了一项磁阻转矩 (L_d - L_q) * i_d * i_q。这时候,我们可以利用负的 i_d 来产生额外的转矩,提高效率。这就是MTPA(最大转矩电流比)控制的基础。

个人经验: 我在调试一个IPMSM项目时,一开始没考虑磁阻转矩,直接按 i_d = 0 控制。结果发现同样的电流下,转矩比理论值小了不少。后来查资料才意识到,IPMSM必须用MTPA,把 i_d 设为负值,才能充分利用磁阻转矩。那之后,我每次做IPMSM项目,都会先算一下 L_d 和 L_q 的差值。

3.4 知识体系总览

为了让你更直观地理解整个变换过程,我画了一张图。从三相电流开始,经过Clark和Park变换,最终得到dq轴下的直流量,然后进行控制。

Clark变换与Park变换流程 PMSM坐标变换流程 三相静止 ABC坐标系 Clark 两相静止 αβ坐标系 Park 两相旋转 dq坐标系 控制 PID 控制 逆Park/逆Clark PMSM电机 说明: Clark:ABC → αβ Park:αβ → dq 位置传感器 → θ_e 用于Park和逆Park变换 θ_e

3.5 关键参数对比

为了让你更清楚不同坐标系下的差异,我整理了一个表格:

坐标系 物理量形式 控制难度 典型应用
三相静止(ABC) 正弦交流 高 直接转矩控制(DTC)
两相静止(αβ) 正弦交流 中 模型预测控制(MPC)
两相旋转(dq) 直流 低 矢量控制(FOC)

你看,dq坐标系下的控制难度最低,因为物理量变成了直流量。这也是为什么目前绝大多数PMSM伺服驱动器,都采用矢量控制(FOC)的原因。

小技巧: 在实际代码中,Clark和Park变换通常写在一起,合成一个函数。因为Clark变换的结果直接喂给Park变换,没必要中间存一次。这样能省一点内存,也省一点CPU时间。

3.6 总结

这一章我们干了三件事:

  • Clark变换:把三相静止ABC,变成两相静止αβ。
  • Park变换:把两相静止αβ,变成两相旋转dq。
  • dq坐标系下的数学模型:电压方程、磁链方程、转矩方程,全部简化成了直流量形式。