1. 电机控制基础回顾:直流电机数学模型、交流电机数学模型、坐标变换原理(Clark/Park变换)

各位同学,咱们这门课叫《电机模型失配与鲁棒控制》,但一上来就讲鲁棒,我怕你直接懵了。所以第一章,咱们先把老本行——电机模型和坐标变换——彻底捋一遍。这些东西你肯定都见过,但说实话,很多工程师用了好几年,细节上还是模棱两可。

我个人习惯是:不管多复杂的控制算法,先把被控对象的数学模型写清楚。模型不准,后面调参就是瞎忙活。咱们今天就从直流电机开始,一步步推到交流电机和坐标变换。

1.1 直流电机数学模型

直流电机虽然现在用得少了,但它是理解所有电机控制的基础。你想想看,交流电机的矢量控制,本质上就是模仿直流电机的控制方式。

直流电机的核心方程就两个:

  • 电压平衡方程:Ua = Ra * Ia + La * dIa/dt + E
  • 反电动势方程:E = Ke * ω
  • 转矩方程:Te = Kt * Ia
  • 机械运动方程:Te - TL = J * dω/dt + B * ω

这里我特别想强调一点:La(电枢电感)这个参数,很多人在做低速控制时直接忽略它。我在项目中遇到过一台直流伺服,低速抖动特别厉害,查了半天发现就是La没建模进去,导致电流环带宽估算偏差了30%。

我的经验: 如果你做电流环PI参数整定,千万别只看电阻Ra。电感La决定了电流环的响应速度。忽略La,你的电流环带宽算出来就是错的。

把上面两个方程拉普拉斯变换一下,就能得到直流电机的传递函数:

G(s) = ω(s) / Ua(s) = Kt / [(Ra + La*s) * (J*s + B) + Kt * Ke]

这个模型看着简单,但它是后面所有复杂模型的基础。说白了,电机控制就是控制这个传递函数的输入输出关系。

1.2 交流电机数学模型

交流电机比直流电机麻烦多了。为什么?因为它的磁场和电流是耦合的,而且转子位置还在变。咱们以永磁同步电机(PMSM)为例,它的数学模型在三相静止坐标系(ABC)下长这样:

电压方程:
[Ua]   [Rs  0   0 ] [Ia]   [Laa Lab Lac] [Ia]   [ψf * cos(θe)]
[Ub] = [0   Rs  0 ] [Ib] + d/dt [Lba Lbb Lbc] [Ib] + d/dt [ψf * cos(θe - 2π/3)]
[Uc]   [0   0   Rs] [Ic]   [Lca Lcb Lcc] [Ic]   [ψf * cos(θe + 2π/3)]

看着就头疼对吧?而且电感矩阵Laa、Lab这些参数都是随转子位置变化的。你想想看,如果直接用这个模型做控制,每个控制周期都要重新计算电感矩阵,计算量太大了。

注意: 三相静止坐标系下的电机模型是时变的、强耦合的。直接用它设计控制器,几乎不可能。这就是为什么我们需要坐标变换。

1.3 坐标变换原理

坐标变换的目的就一个:把时变的、耦合的交流电机模型,变成时不变的、解耦的直流电机模型。说白了,就是换个角度看问题。

1.3.1 Clark变换(3相 → 2相静止)

Clark变换把ABC三相电流投影到αβ两相静止坐标系上。公式很简单:

[Iα]   [1    -1/2   -1/2 ] [Ia]
[Iβ] = [0    √3/2  -√3/2] [Ib]
[I0]   [1/2   1/2    1/2 ] [Ic]

这里I0是零序分量,对于星形连接且无中线的电机,Ia + Ib + Ic = 0,所以I0 = 0。

Clark变换之后,模型从三相变成了两相,但依然是交流量(正弦波)。

1.3.2 Park变换(2相静止 → 2相旋转)

Park变换才是真正的灵魂。它把αβ坐标系旋转到与转子磁场同步的dq坐标系上:

[Id]   [cos(θe)   sin(θe)] [Iα]
[Iq] = [-sin(θe)  cos(θe)] [Iβ]

θe是转子电角度。经过Park变换后,Id和Iq变成了直流量。这时候,交流电机的模型就变成了:

Ud = Rs * Id + Ld * dId/dt - ωe * Lq * Iq
Uq = Rs * Iq + Lq * dIq/dt + ωe * (Ld * Id + ψf)
Te = 1.5 * p * [ψf * Iq + (Ld - Lq) * Id * Iq]

你看,是不是跟直流电机的形式很像了?Ud控制Id(励磁),Uq控制Iq(转矩),两者解耦了。

核心思想: Park变换的本质是频率变换。它把基波频率的交流量,通过旋转坐标系变成了零频率的直流量。这样PI控制器就能实现无静差跟踪。

下面这张图展示了从三相交流到两相旋转坐标系的完整变换流程:

坐标变换流程与电机模型关系图 坐标变换流程与电机模型关系 三相ABC 时变、耦合模型 Clark αβ静止坐标系 两相、仍为交流 Park dq旋转坐标系 直流量、解耦 变换后的好处 • 时变电感 → 恒定电感(Ld、Lq) • 强耦合 → Id、Iq独立控制(类似直流电机) • 交流量 → 直流量(PI可实现无静差) 模型对比 ABC:时变、耦合 αβ:时变、半解耦 dq:时不变、解耦 ← 控制首选 反Park变换 dq → αβ 反Clark变换 αβ → ABC 三相PWM输出 SVPWM调制

1.4 坐标变换在数字控制中的实现

在实际的DSP或MCU代码里,坐标变换就是几个乘加运算。我贴一段我常用的C代码片段,注意看角度处理:

// Clark变换:三相电流 → αβ轴
void clark_transform(float ia, float ib, float ic, float *i_alpha, float *i_beta) {
    *i_alpha = ia;
    *i_beta  = (ia + 2.0f * ib) / 1.7320508f;  // 1/√3 的近似
    // 注意:这里利用了 ia+ib+ic=0 简化了计算
}

// Park变换:αβ轴 → dq轴
void park_transform(float i_alpha, float i_beta, float theta, float *i_d, float *i_q) {
    float sin_t = sinf(theta);
    float cos_t = cosf(theta);
    *i_d =  i_alpha * cos_t + i_beta * sin_t;
    *i_q = -i_alpha * sin_t + i_beta * cos_t;
}

// 反Park变换:dq轴 → αβ轴
void inv_park_transform(float v_d, float v_q, float theta, float *v_alpha, float *v_beta) {
    float sin_t = sinf(theta);
    float cos_t = cosf(theta);
    *v_alpha = v_d * cos_t - v_q * sin_t;
    *v_beta  = v_d * sin_t + v_q * cos_t;
}
避坑指南: 我曾经在反Park变换里把正负号搞反了,结果电机转起来电流波形全是毛刺。后来花了整整两天才定位到问题。记住:正变换和反变换的sin项符号是相反的。正变换是 +sin,反变换就是 -sin。

1.5 本章小结

咱们这一章把电机控制最基础的东西过了一遍:

  • 直流电机:模型简单,Id和Iq天然解耦,是交流电机控制的理想目标
  • 交流电机:三相模型复杂,时变耦合,没法直接用
  • Clark变换:把三相变两相,减少变量
  • Park变换:把交流变直流,实现解耦

这些内容看起来基础,但后面讲模型失配的时候,你会发现——坐标变换中的角度误差、参数偏差,正是模型失配的主要来源之一。所以,别小看这些公式,它们是你理解鲁棒控制的基石。