PMSM 的 dq 模型
Clarke 与 Park 变换 变换将电流转换到随转子同步旋转的坐标系中。本页描述的是位于这些变换之下的模型:这些电流需要什么样的电压,由哪些参数决定,以及在数据手册缺失或错误时如何测量这些参数。
从电气角度描述电机只需四个参数——、、 和 。本站的所有控制器增益都是基于这四个参数计算得出的,因此其中一个参数出现偏差绝非学术问题。
首先考虑磁链
如果先写磁链,电压方程就更容易记住,因为电压方程就是磁链对时间的导数。
d 轴磁链有两个来源:定子电流产生的磁链,以及永磁体产生的磁链,后者无论是否有电流流过都会产生 。q 轴磁链仅由定子电流产生——永磁体沿 方向排列是其定义使然,这也正是选择该坐标系的意义所在。
是模型中唯一一个在逆变器关闭时仍不为零的项。这就是为什么 PMSM 会在反拖时旋转,为什么短路电机能够制动,以及为什么空转电机的端子上仍有电压。
电压方程
在以 速度旋转的坐标系中,矢量的导数会多出一项——因为坐标系本身正在其下方转动。这就产生了
并代入磁链:
这些 项值得特别说明。它们并非新的物理现象。将方程写在旋转坐标系中并没有给电机增加任何新的内容;它们只是从旋转视角描述静止量时产生的记账成本,也正是它们使得 dq 轴电流在稳态下保持恒定,而不是正弦波形。PMSM 驱动中的每一个棘手特性——交叉耦合、反电动势、电压上限——都早已存在于三相方程之中。旋转坐标系并未创造这些现象,它只是给它们命了名。
令 (并对照动态项),方程中共有四类项:
| 项 | 位置 | 随何量增长 | 物理意义 |
|---|---|---|---|
| d、q 两轴 | 电流 | 铜损,全部转化为热量 | |
| d、q 两轴 | 变化率 | 电流环唯一可以调节的项 | |
| 轴间交叉 | 转速 × 电流 | 各轴相互干扰 | |
| 仅 q 轴 | 转速 | 反电动势 |
为什么
电感衡量的是定子磁场穿过转子的难易程度,而在大多数转子上,这一特性与方向有关。
在表贴式永磁(SPM)转子上,磁钢粘贴在转子外表面。磁钢材料的磁导率接近空气,因此定子磁场无论指向哪个方向,所看到的气隙都大致相同:,电机是非凸极的(隐极电机)。
在内置式永磁(IPM)转子中,磁钢埋设于铁心内部。沿 d 轴方向,磁通路径直接穿过磁钢——相当于一段很长的等效气隙。而沿 q 轴方向,磁通可以经由磁钢之间的铁心流通,路径磁阻小得多。因此在内置式永磁(IPM)电机中,q 轴具有更大的电感:,通常为 d 轴电感的 1.5 至 3 倍。
请注意其方向,因为这与“带磁钢的轴应该是‘强’轴”的直觉相反。正是磁钢的存在使得 d 轴路径变得困难。本网站始终使用的参考电机具有 和 ,凸极比为 1.57。
由此立即产生两个后果,且每个后果都有单独的页面说明:
- 两个轴具有不同的电气时间常数——此处分别为 s 和 s。d、q 两个电流环并不是同一个环路,如果用同一套增益去整定两个轴,其中一个轴必然会因凸极比而失谐。详见电流环页面。
- 电感差异本身就是一个产生转矩的机制,与永磁体无关。这就是转矩和最大转矩电流比(MTPA)。
电压的实际去向
上述方程看起来很容易理解。但它们并未直观体现出:在整个运行范围内,各项之间的相对权重会发生彻底改变——以至于同一台驱动器在 200 rpm 和 5000 rpm 下运行时,虽然执行的是同一套代码,解决的却是截然不同的问题。
在默认工况下——1500 rpm, A,——三个分量分别为 V、 V 和 V,由此得到 V、 V,总电压为 9.08 V。这相当于 48 V 直流母线所能提供的线性输出电压 27.71 V 的 33%。
现在拖动转速滑块,观察各曲线的交越点。
- 静止状态下,电机就是一个纯电阻。 直接消去了三个分量中的两个。此时逆变器所做的只是推动电流流过 0.35 Ω 的电阻,它输出的每一伏电压都转化为热量。
- 电阻压降项根本不随转速增长。 在整个转速扫描范围内它都恒为 3.50 V,因为它只取决于电流。
- 在该电流下,反电动势在 983 rpm 时超过电阻压降,并随转速继续攀升:到 6000 rpm 时反电动势已达 21.4 V,而电阻压降仍为 3.50 V。此时电机已经变成一台发电机,逆变器必须顶着它的反电动势往里推电流。
穿越转速并非仅由电机本身决定——它是,因此会随电流变化而变化。在40 A时,电阻压降为14 V,反电动势要到3932 rpm才超过这一值。重载电机保持电阻主导特性的时间是轻载情况的四倍。 这就是为什么一台在轻载工况下表现完美的驱动器,在重载时可能会出乎意料,反之亦然。
在试验台上 将 提高到 40 A,可以看到总电压曲线在 2662 rpm 处就越过了 限制线。而在 10 A 时,这一交越点要到 6394 rpm 才会出现。基速并不是电机自身固有的参数——它是由电机、负载和直流母线共同决定的数值,脱离转矩单独谈基速毫无意义。达到基速之后的应对策略详见弱磁控制。
在转速扫描中还隐藏着第三种效应。将 设为 40 A,转速推至 3000 rpm:此时交叉耦合项高达 V,而反电动势仅为 10.7 V。在大电流下,两轴之间的交叉耦合项甚至大于反电动势本身。 如果电流环把交叉耦合当成只靠积分器去抑制的小扰动,就等于让积分器去追赶占总电压三分之二的偏差。在这种工况下,前馈解耦绝非锦上添花的细节,而是决定电流环能否跟上指令的关键。
代码中的模型
每个控制周期的完整电气模型:
/* Cross-coupling and back-EMF are known, so subtract them and what remains
is a plain R-L load on each axis — which is what the PI is tuned for. */
const float we = pole_pairs * omega_m;
float vd_ff = -we * Lq * iq;
float vq_ff = we * (Ld * id + flux_m);
vd = pi_update(&pi_d, id_ref - id) + vd_ff;
vq = pi_update(&pi_q, iq_ref - iq) + vq_ff;
关于这四行代码有两点值得注意:第一,前馈项使用的是正交轴上的实测电流,而非参考电流,因为它要补偿的是实际流过绕组的电流;第二, 这一组合是有意写在一起的:括号内就是 d 轴总磁链,将 控制为负值以削减该磁链就是弱磁控制——从一开始它就自然地包含在模型之中。
测量四个数值
模型的精度完全取决于其参数,而数据手册对于这四个参数来说都不可靠。identify.ts 中包含了标准的台架测试流程,网站上的测试会将每个参数与仿真模型进行对比,并验证参数是否能够正确返回——而这正是在真实台架上无法做到的,因为在真实的台架上你没有可供比较的“真值”。
—— 以及 2 倍系数陷阱
对两个端子施加直流电压并进行测量。电流会流经 两个 绕组串联,因此读数是单相值的两倍:参考电机的 0.35 Ω 在仪表上显示为 0.700 Ω。同样的倍率也适用于 LCR 电桥测得的电感值——210 µH 会显示为 420 µH。
这是最常见的一个参数错误,而且没有任何报错提示。两个电流环所使用的电阻值都会变成真实值的两倍,两个积分增益也随之偏差 2 倍,但系统依然能转——只是动态响应与设计预期完全不同。
与 —— 以及不受控的转子角度
锁定转子,施加一个电压阶跃,电流会以时间常数 上升至 。一次阶跃即可同时得到这两个参数。
陷阱在于你测出的究竟是哪一个电感。在转子锁死的情况下,测量结果取决于转子恰好停在什么角度:
与 d 轴对齐时读数为 210 µH;转过四分之一个电周期(90° 电角度)后读数为 330 µH。若恰好停在 45° 电角度,读数则是 270 µH——正好是两者的平均值,既不是 d 轴电感也不是 q 轴电感,但看起来却完全合理。在未知转子角度下做出的单次堵转测量结果绝不是电机参数,它只是介于两个参数之间的某个数。 可靠的做法是让转子步进扫过一个完整的电周期,分别取最小值和最大值。
在试验台上 拟合阶跃响应时,采样率的影响比表面看起来更大。在 20 kHz 采样率下,参考电机 600 µs 的 d 轴时间常数内恰好只有 12 个采样点;如果直接取最接近 63.2% 穿越点的采样点,而不对跨越该点的前后两个采样点进行线性插值,在 12 个采样周期中最多会引入半个采样周期的误差——在计入任何测量噪声之前, 就已经有了约 4% 的偏差。fitStepResponse 采用了线性插值。
转子也必须真正地被固定。任何运动都会产生反电动势,从而 破坏响应的尾部,并使拟合得到的电感值偏低。
—— 步步是单位换算陷阱
用其他装置驱动电机旋转,保持端子开路,并测量电压。由于没有电流流过,因此不存在电阻压降或电感压降,所以端子电压是就是反电动势,而。
从仪表到参数之间存在三个单位换算,而每一个换算因子都容易被忽略:
| 读数 | 乘以 | 原因 |
|---|---|---|
| 线电压(线间) | 需要转换为相电压 | |
| 有效值(RMS) | 需要转换为峰值 | |
| 机械转速 | 需要转换为电角速度 |
如果三个换算系数全都漏掉,结果会相差 4.9 倍。只漏掉其中一个,偏差则大到足以影响控制性能,却又小到不易察觉。参考电机的 8.5 mWb 对应于 4.36 V/krpm 的线电压有效值,这正是数据手册最常给出的反电动势常数形式——在采信任意一个数值之前,最好先做一次双向换算比对。
当电机旋转时,统计每转的电周期数,并确定极对数:4极对、1500转/分时,电频率为100 Hz。如果极对数错误,驱动器将以一个精确的整数倍速运行,这至少是一个明显的特征。
然后一切都会随温度变化
这四个都不是常数。
- 铜的电阻每开尔文增加0.393%。 一个在25 °C下测量并在125 °C下运行的绕组,其电阻增加了39%——0.35 Ω 变为 0.488 Ω。在一个低温状态下调谐的电流环,在工作二十分钟后就会失谐。
- 钕铁硼永磁体的磁链每开尔文约衰减 0.12%,且这一变化是可逆的。温升 100 K 时磁链会减少约 12%:从 8.5 mWb 降至 7.48 mWb。这意味着每安培电流产生的转矩减小,但同时会带来更高的基速——这是热效应反而有利的罕见情形。
- 和 都会随电流增大而减小,因为铁心会逐渐磁饱和。正因如此,注重精度的量产驱动器通常会使用在测功机上实测出的二维查找表(2-D LUT),而不是只用两个常数。
关键不在于对所有细节进行建模,而在于明确哪些结论是精确的,哪些只是名义值,这样意外才会出现在你预料的位置。
在试验台上 一组自洽的参数还应满足功率平衡,这是一个现成的校验方法。在 1500 rpm、10 A 时,模型吸收 W 的电功率,向电机轴输出 80.1 W,绕组损耗为 52.5 W;80.1 + 52.5 恰好等于 132.6。这里的 是幅值不变约定下的功率系数,转矩方程中也有同样的系数,其来源可追溯到空间矢量页的三相绕组合成磁动势。若实测功率不平衡,应先检查这个系数。
要点回顾
- 四个参数——、、、——承载了整个电气模型。下游的所有计算均由此衍生。
- 项代表的是旋转坐标系带来的代价,并非新的物理现象。它们使系统在稳态下能够保持恒定的dq电流。
- 在内置式永磁转子上 ,因为 q 轴磁路避开了永磁体。因此两个轴具有不同的时间常数,需要设置不同的电流环增益。
- 哪个项占主导会随工作点而变化:静止时以纯电阻为主,983 rpm以上且电流为10 A时反电动势占优,而在大电流下交叉耦合效应甚至大于反电动势。一套方程,三种不同的工作状态。
- 交越转速和基速都取决于负载电流,因此它们都不是电机单独具有的固有属性。
- 测量电机参数的关键在于不要漏掉换算系数:线间测量需除以 2,反电动势换算需计入 和 ,电角速度需乘以极对数 ——而在未知转子角度下测出的电感根本不是电机参数。
接下来:这些电压究竟在产生什么——以及为什么在凸极电机上, 并不是最佳答案。