2. 电机数学模型:永磁同步电机(PMSM)的数学模型与坐标变换(Clark/Park)
做无感启动,绕不开数学模型。说白了,你得先知道电机内部是怎么“想”的,才能去控制它。
我刚开始接触 PMSM 时,看着那一堆微分方程和矩阵变换,头都大了。后来发现,其实核心就两件事:把交流量变成直流量,以及搞清楚电压和电流怎么产生力矩。今天咱们就把这两件事彻底聊透。
2.1 为什么需要数学模型?
三相永磁同步电机的定子绕组里,通的是三相正弦交流电。转子呢?是永磁体。你想想看,如果直接在三相静止坐标系(ABC 坐标系)下分析,电压、电流、磁链都是随时间正弦变化的,耦合关系非常复杂。
我早期做调试时,试过直接在 ABC 坐标系下写控制算法,结果发现 PI 调节器根本调不好——因为被控量是正弦波,PI 对正弦波跟踪天生就有静差。嗯,这里要注意:我们需要的是一套能把交流量“掰直”的数学工具。
核心思想:通过坐标变换,将三相静止坐标系下的正弦量,等效为两相旋转坐标系下的直流量。这样就能用经典的 PI 控制,像控制直流电机一样控制永磁同步电机。
2.2 三相静止坐标系下的 PMSM 模型
先看原始模型。虽然我们最终不会用它直接写控制代码,但它是所有变换的起点。
电压方程(矩阵形式):
[u_a] [R_s 0 0 ] [i_a] [ψ_a]
[u_b] = [0 R_s 0 ] [i_b] + d/dt [ψ_b]
[u_c] [0 0 R_s] [i_c] [ψ_c]
磁链方程:
[ψ_a] [L_aa L_ab L_ac] [i_a] [ψ_f * cos(θ_e) ]
[ψ_b] = [L_ba L_bb L_bc] [i_b] + [ψ_f * cos(θ_e - 2π/3) ]
[ψ_c] [L_ca L_cb L_cc] [i_c] [ψ_f * cos(θ_e + 2π/3) ]
其中:
- u_a, u_b, u_c:三相相电压
- i_a, i_b, i_c:三相相电流
- R_s:定子电阻
- ψ_f:永磁体磁链(转子磁链)
- θ_e:转子电角度
- L_aa, L_bb, L_cc:自感(随转子位置变化)
- L_ab, L_bc, L_ca:互感(也随转子位置变化)
注意:这里的电感和转子位置强相关。如果你直接拿这个模型去算,每个控制周期都要重新计算电感矩阵,计算量非常大。这也是为什么我们必须做坐标变换——把时变参数变成常数。
2.3 Clark 变换:3 相 → 2 相
Clark 变换,也叫 3/2 变换。它的目标是把三相(A, B, C)变成两相(α, β)。
为什么是两相?因为三相系统本质上只有两个自由度(三相电流之和为零)。
我个人习惯使用等幅值变换,因为这样变换后的电流幅值和实际相电流幅值一致,调试时更容易对应。
变换公式:
[i_α] [1 -1/2 -1/2 ] [i_a]
[i_β] = [0 √3/2 -√3/2 ] [i_b]
[i_c]
反变换(逆 Clark):
[i_a] [1 0 ] [i_α]
[i_b] = [-1/2 √3/2 ] [i_β]
[i_c] [-1/2 -√3/2 ]
我在项目中遇到过一个问题:ADC 采样三相电流时,某一相偶尔会跳变。如果直接做 Clark 变换,跳变会直接污染 α-β 轴。后来我加了一相重构逻辑——利用 i_a + i_b + i_c = 0 来校验和修正,效果很好。
小技巧:实际代码中,Clark 变换通常用查表或定点数实现,避免浮点运算。但前期调试阶段,用浮点更直观。
2.4 Park 变换:静止 → 旋转
Clark 变换后,我们得到了 α-β 静止坐标系。但 α-β 轴上的电流仍然是正弦波(频率等于电频率)。
Park 变换的作用,就是把这个静止坐标系“旋转”起来,让它跟着转子一起转。旋转后的坐标系叫 d-q 坐标系。
变换公式:
[i_d] [cos(θ_e) sin(θ_e)] [i_α]
[i_q] = [-sin(θ_e) cos(θ_e)] [i_β]
反变换(逆 Park):
[i_α] [cos(θ_e) -sin(θ_e)] [i_d]
[i_β] = [sin(θ_e) cos(θ_e)] [i_q]
这里 θ_e 就是转子电角度。在无感控制中,这个角度是我们通过观测器估算出来的,不是直接测量的。
为什么要做 Park 变换?因为变换之后,i_d 和 i_q 变成了直流量。你可以把它们理解为:
- i_d:励磁分量(产生磁场,但永磁体已经有了,所以通常控制为 0)
- i_q:转矩分量(产生力矩,你想要的加速、减速全靠它)
我曾经犯过一个低级错误:Park 变换的角度符号搞反了。结果电机一启动就往反方向转,还以为是观测器有问题。排查了半天才发现是变换矩阵里的正负号写错了。嗯,这里提醒你:一定要确认你的角度定义是“d 轴对齐转子磁极”还是“q 轴对齐”,不同文献可能定义不同。
2.5 d-q 坐标系下的 PMSM 模型
经过 Clark + Park 变换后,PMSM 的数学模型变得非常简洁:
电压方程:
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)
电磁转矩方程:
T_e = 1.5 * p * [ψ_f * i_q + (L_d - L_q) * i_d * i_q]
其中:
- L_d, L_q:d 轴和 q 轴电感(现在是常数!)
- ω_e:电角速度
- p:极对数
- T_e:电磁转矩
关键洞察:从转矩方程可以看出,PMSM 的转矩由两部分组成:
- ψ_f * i_q:永磁转矩(主转矩,和 i_q 成正比)
- (L_d - L_q) * i_d * i_q:磁阻转矩(只有凸极电机 L_d ≠ L_q 时才存在)
这也是为什么表贴式 PMSM(L_d ≈ L_q)通常用 i_d = 0 控制,而内置式 PMSM(L_d < L_q)可以用负 i_d 来利用磁阻转矩,提高效率。
2.6 坐标变换的完整流程
把整个变换串起来,就是无感 FOC 的数学基础:
三相电流 (i_a, i_b, i_c)
↓ Clark 变换
两相静止电流 (i_α, i_β)
↓ Park 变换(需要转子角度 θ_e)
两相旋转电流 (i_d, i_q)
↓ PI 调节器(控制 i_d, i_q 到目标值)
两相旋转电压 (u_d_ref, u_q_ref)
↓ 逆 Park 变换
两相静止电压 (u_α_ref, u_β_ref)
↓ 逆 Clark 变换 + SVPWM
三相占空比 (Ta, Tb, Tc) → 驱动逆变器
下面这张图展示了整个坐标变换与 FOC 控制的核心链路:
2.7 参数辨识与模型误差
数学模型再漂亮,如果参数不准,控制效果也会大打折扣。我在实际项目中遇到过几个常见问题:
| 参数 | 常见误差来源 | 影响 |
|---|---|---|
| R_s | 温度变化(铜损发热) | 低速时电压计算偏差,影响启动性能 |
| L_d, L_q | 磁路饱和(大电流时电感下降) | 高速弱磁时电流环震荡 |
| ψ_f | 温度变化(永磁体退磁) | 反电动势估算不准,影响无感观测器 |
避坑指南:我曾经在批量生产时发现,同一批电机测出来的 L_q 差异达到 15%。如果所有电机都用同一套参数,部分电机会出现电流环啸叫。后来我加了一个在线参数辨识的步骤——在电机静止时注入高频信号,实时辨识 L_d 和 L_q,问题才解决。
2.8 小结
这一章的内容,说白了就是三件事:
- Clark 变换:把三相变成两相,减少变量
- Park 变换:把静止变成旋转,把交流变成直流
- d-q 模型:用两个直流量(i_d, i_q)就能完全控制电机
这些变换本身不复杂,但角度精度、参数准确性、采样同步性都会影响最终效果。后面几章我们会基于这个模型,一步步搭建无感启动的完整算法链路。