电机控制专题(四)——Active Flux模型在IPM无感控制中的统一化应用
1. 从“分而治之”到“一统江湖”为什么我们需要Active Flux模型搞电机控制的朋友尤其是做无位置传感器Sensorless这块的肯定都遇到过这个让人头疼的问题手头项目用的电机到底是内置式永磁电机IPM还是表贴式永磁电机SPM这可不是一个简单的选择题它直接决定了你后面一整套算法的走向。我刚开始做无感控制的时候也是从SPM入手的。为啥简单啊就像原始文章里推导的那样SPM在两相静止坐标系α-β轴下的模型非常“干净”。定子电感在各个方向上都一样Ld Lq磁链方程里永磁体产生的转子磁链项ψf直接带着转子位置信息cosθr, sinθr。这样一来我只要通过测量的电压、电流积分算出总磁链再减去电感产生的定子磁链部分剩下的就是转子磁链然后一个简单的反正切或者锁相环PLL角度和转速就出来了。当时觉得无感控制不过如此嘛直到有一天老板扔过来一个IPM的项目。我信心满满地把那套SPM的算法移植过去结果电机要么启动抖动得像筛糠要么高速直接飞车。一查问题根子就出在那个“凸极效应”上。IPM的Ld和Lq不相等这导致了一个要命的结果在α-β坐标系下定子电感矩阵Lα, Lβ, Lαβ不再是简单的对角阵而是变成了一个随转子位置2θr周期性变化的复杂矩阵。这意味着什么意味着转子位置信息不仅藏在永磁体磁链里还深深地耦合进了定子磁链的计算中你想用SPM那套“干净”的减法把转子磁链分离出来门都没有。公式(4)里那个复杂的电感矩阵就像一团乱麻把位置信息缠得死死的。那时候为了搞定IPM就得专门为它设计观测器比如基于扩展反电势EEMF的模型。算法复杂度、参数敏感性一下子就上去了。实验室里就得备着两套甚至多套代码一套给SPM用一套给IPM用万一再来个什么特殊电机还得再开发。维护起来痛苦心里也总觉得别扭明明都是永磁同步电机核心思想都是通过磁链观测位置为啥模型上就非得割裂开来不能有个统一的视角呢Active Flux有功磁链国内也有译作“主动磁链”模型的提出就是为了解决这个“分裂”的问题。它的核心思想非常巧妙通过一个数学上的等价变换把IPM中那个令人讨厌的、随位置变化的凸极电感项从定子侧“转移”到转子侧去从而让定子侧的模型重新变回SPM那样简单的形式。这个被“转移”并叠加到永磁体磁链上的新磁链就是Active Flux。经过这么一番操作无论是IPM还是SPM我们在α-β坐标系下看到的都是一个具有恒定电感Lq的定子和一个包含了所有位置信息的、等效的转子磁链即Active Flux。无感控制的算法从此就可以用一套统一的流程来处理所有类型的永磁同步电机了。这就像给不同类型的电机都配了一个统一的“通信协议”大大简化了系统设计和代码维护的复杂度。2. 庖丁解牛Active Flux模型的理论推导与物理内涵上一节我们说了Active Flux模型“是什么”和“为什么”听起来很美好但它到底是怎么变这个“魔术”的呢咱们不用怕公式我带你一步步拆解保证比看论文推导清晰得多。咱们就从IPM在旋转坐标系d-q轴下的经典电压方程开始也就是原始文章里的公式(5)[ud] [R pLd -ωreLq ] [id] [0 ] [uq] [ωreLd R pLq ] [iq] [ωreψf ]这里ud, uq是d-q轴电压id, iq是电流R是电阻p是微分算子ωre是电角速度ψf是永磁体磁链。这个公式大家都很熟悉它清晰地描述了d轴和q轴的耦合关系。Active Flux模型的关键一步在于对d轴电压方程中的pLd*id这一项进行“移项”和“重组”。我们把Ld拆成Lq (Ld - Lq)。那么d轴电压方程就变成了ud R*id p[Lq*id (Ld-Lq)*id] - ωreLq*iq R*id p(Lq*id) - ωreLq*iq p[(Ld-Lq)*id]注意看前面三项R*id p(Lq*id) - ωreLq*iq它的形式和q轴电压方程uq R*iq p(Lq*iq) ωreLd*id ωreψf如果能统一起来那就完美了。目前d轴方程多了一个p[(Ld-Lq)*id]而q轴方程多了一个ωreLd*id。接下来是神来之笔我们定义一个新的磁链量称为Active Fluxψ_d^aψ_d^a ψf (Ld - Lq) * id请你仔细看这个定义。它由两部分组成第一部分是永磁体本身的磁链ψf第二部分是(Ld-Lq)*id这其实就是由于d轴电流存在在凸极效应下产生的磁阻转矩对应的等效磁链。你可以把它理解为d轴电流“主动”贡献了一部分磁链叠加在了永磁体磁链上共同构成了一个“等效的转子磁链”。这就是“Active有功/主动”一词的由来——它不再是被动的永磁体磁链而是包含了电流主动作用的综合磁链。现在我们把定义好的ψ_d^a代回去。你会发现p[(Ld-Lq)*id]这一项其实就是p(ψ_d^a - ψf)但更直接地我们可以把它看作等效磁链ψ_d^a的微分项的一部分。同时为了模型统一我们需要处理q轴方程里的ωreLd*id。利用Ld Lq (Ld-Lq)我们可以把它写成ωreLq*id ωre(Ld-Lq)*id。而ωre(Ld-Lq)*id正好是ωre * (ψ_d^a - ψf)。经过一系列整理具体过程原始文章公式(6)有体现整个d-q轴方程可以重写为如下统一的形式[ud] [R pLq -ωreLq ] [id] [pψ_d^a ] [uq] [ωreLq R pLq ] [iq] [ωreψ_d^a ]看奇迹发生了变换后的方程其电感矩阵部分变得对称且简单只剩下Lq。所有因凸极效应Ld≠Lq和永磁体产生的复杂项都被吸收并归并到了等式最后那个新增的向量[pψ_d^a, ωreψ_d^a]^T里。这个向量就是由我们定义的Active Flux所产生的“等效反电势”。对这个新的d-q轴方程进行反Park变换回到我们喜爱的α-β静止坐标系就会得到原始文章中的公式(7)和(8)[uα] [R 0] [iα] p [ψα] [uβ] [0 R] [iβ] [ψβ] [ψα] [Lq 0 ] [iα] ψ_d^a [cosθr] [ψβ] [0 Lq] [iβ] [sinθr]这就是Active Flux模型的最终形态也是它最精华的部分。在这个模型下定子模型极大简化电感矩阵变回了简单的、恒定的对角阵Lq不再随转子位置变化。这就像把IPM“伪装”成了一个定子侧参数恒定的电机。所有位置信息被统一封装转子位置信息θr只存在于Active Flux矢量ψ_d^a [cosθr, sinθr]^T中。这个Active Flux对于SPMLdLq它就是ψf对于IPMLd≠Lq它就是ψf (Ld-Lq)*id。它成为了一个适用于所有PMSM的、统一的转子位置信息载体。物理上怎么理解呢你可以想象Active Flux模型为我们观察电机内部世界提供了一个特殊的“滤镜”或“坐标系”。在这个视角下电机的凸极效应被解释为转子不仅仅是一个永磁铁还是一个其“磁铁强度”会随着d轴电流大小而线性变化的“智能磁铁”。这个“智能磁铁”的综合磁链即Active Flux的方向就严格代表了转子的真实位置。这样一来无论电机内部结构是SPM还是IPM在我们观测器看来它们都表现出相同的外部特性从而可以用同一套方法去估算位置。3. 实战指南基于Active Flux的无感控制系统搭建与参数整定理论再漂亮不能跑起来也是白搭。这一部分我就结合自己的实际调试经验详细说说怎么把Active Flux模型落地搭建一个能稳定运行的无感控制系统并分享几个关键的参数整定“坑点”。一个完整的基于Active Flux的无感控制框图其核心流程可以概括为以下几步我结合一个典型的矢量控制FOC框架来说明第一步电流采样与坐标变换这和普通的FOC一样。采样三相电流Ia, Ib, Ic经过Clark变换得到Iα, Iβ。同时我们使用当前估算得到的电角度θ_est对电流进行Park变换得到用于电流环控制的Id, Iq。注意在启动和低速时这个θ_est可能不准所以启动策略很关键后面会讲。第二步电压指令与逆变器模型电流环PI控制器根据Id_ref通常是0或负值用于弱磁和Iq_ref转矩控制与实测Id, Iq的误差输出Ud, Uq电压指令。经过反Park变换使用同样的θ_est得到Uα_ref, Uβ_ref。然后通过SVPWM模块生成PWM波驱动逆变器。 这里有一个非常重要的细节为了在软件中重构出施加在电机端的准确电压我们不能直接使用Uα_ref, Uβ_ref因为逆变器有死区时间、管压降、开关延迟等非线性因素。更准确的做法是采用“电压模型”记录当前PWM的占空比Da, Db, Dc结合测量的直流母线电压Udc来计算实际输出的三相电压Ua, Ub, Uc再Clark变换得到Uα, Uβ。这一步对低速性能提升尤为关键。公式很简单Ua (Da - 0.5) * Udc其他两相类似。第三步Active Flux与磁链观测这是核心算法模块。我们有了实际的Uα, Uβ和采样到的Iα, Iβ以及电机参数R和Lq。首先根据简化后的电压方程上文公式(7)计算总磁链ψα, ψβ。这通常通过一个纯积分器或带补偿的积分器如低通滤波或饱和反馈来实现ψα ∫ (Uα - R*Iα) dt ψβ ∫ (Uβ - R*Iβ) dt注意纯积分器有直流偏置和初值问题实际中必须处理。我常用的是“准积分器”一阶低通滤波器截止频率极低配合高通滤波来消除直流漂移。接着根据公式(8)计算Active Fluxψα_af ψα - Lq * Iα ψβ_af ψβ - Lq * Iβ得到的(ψα_af, ψβ_af)就是包含了位置信息的Active Flux矢量在α-β轴上的分量。第四步位置与速度提取观测器设计得到Active Flux矢量后我们需要从中提取出角度θ和速度ω。最直接的方法是反正切θ_est_raw atan2(ψβ_af, ψα_af)但这样得到的角度噪声大且无法直接得到速度信号。因此几乎一定会配合一个观测器来使用。最常用、最经典的就是锁相环PLL。 你可以把(ψα_af, ψβ_af)想象成一个矢量它的相位就是转子角度。PLL的工作就是让一个内部振荡器输出θ_est去跟踪这个矢量的相位。具体地将估算的θ_est生成单位矢量[cos(θ_est), sin(θ_est)]。计算这个单位矢量与Active Flux矢量[ψα_af, ψβ_af]的叉积或点积的某种形式作为相位误差信号。一个常见且稳定的误差信号是ε ψα_af * sin(θ_est) - ψβ_af * cos(θ_est)当θ_est与真实角度一致时ε为0。将这个误差信号ε送入一个PI调节器这就是PLL的环路滤波器。PI调节器的输出就是估算的电角速度ω_est。对ω_est进行积分就得到了平滑后的估算角度θ_est。 PLL的带宽由PI参数决定需要仔细调节。带宽太高对噪声敏感带宽太低动态响应慢。关键参数整定与调试经验电阻R与电感Lq这是模型的基础。R的误差主要影响极低速和零速附近的性能因为此时反电势很小电阻压降占比大。Lq的误差会影响整个速度范围内的角度观测精度。务必使用离线或在线参数辨识获取相对准确的值。我通常会在电机静止时注入高频信号来辨识Ld和Lq。积分器问题这是磁链观测最大的“坑”。实际代码中我强烈建议不要使用纯积分1/s。可以采用“低通滤波器近似积分”1/(s ω_c)其中ω_c是一个很小的截止频率如0.5~2 Hz用来替代理想积分。同时在积分器后可以串联一个高通滤波器来进一步抑制直流漂移但要注意相位延迟。PLL参数整定PLL的PI参数决定了观测器的动态性能。可以类比一个二阶系统。比例系数Kp_pll影响系统阻尼和响应速度积分系数Ki_pll影响系统型别和稳态精度。我的调试习惯是先设Ki_pll0增大Kp_pll使系统能快速锁定但略有超调或振荡然后加入较小的Ki_pll来消除静差。务必在速度阶跃和负载阶跃下测试观察角度估算误差和速度估算的响应。启动策略Active Flux模型在零速和极低速时因为反电势几乎为零观测器无法工作。因此必须采用开环启动。我的常用方法是在初始阶段强制给一个很小的、缓慢加速的θ_est即I-F控制同时让电流环工作给定一个小的Iq产生转矩。当速度上升到一定值比如额定速度的2%~5%反电势足够大Active Flux观测器输出的信号信噪比足够时再平滑地将角度来源从“开环给定”切换到“观测器输出”。这个切换点的选择和切换过程的平滑处理非常考验功力处理不好就会引起冲击或失步。4. 仿真与实验深潜性能分析、局限性与应对策略纸上得来终觉浅我们直接看仿真和实验中它会表现如何又会遇到哪些真实的问题。原始文章给出了一个IPM的仿真案例参数是Ld3.5mH,Lq8.5mH,ψf0.17Wb这是一个凸极率Lq/Ld约2.43的典型IPM。仿真设置了空载启动、加载、加速等复杂工况。从仿真波形我们可以深入分析Active Flux模型的几个关键特性优势体现统一性验证仿真成功驱动了IPM这本身就验证了Active Flux模型统一处理IPM/SPM的能力。算法完全不需要因为电机是IPM而做特殊改动只需要输入正确的Lq和(Ld-Lq)信息后者已包含在ψ_d^a的定义中。中高速性能优良在电机转速提升起来后例如超过5%额定转速反电势足够大基于电压模型的磁链观测非常准确。此时PLL能够稳定锁定估算角度与真实角度误差极小速度环控制稳定动态响应如加速、加载性能良好。这说明在反电势主导的中高速区该方法是可靠且有效的。局限性及挑战然而仿真和现实总会有些差距以下几个点是实际工程中必须面对的硬骨头低速与零速困境这是所有基于反电势或磁链的无感方法的通病Active Flux也不例外。在低速和零速时反电势幅值很小与测量噪声、逆变器非线性死区压降、导通压降引起的电压误差处于同一量级甚至更小。这导致观测出的Active Flux信号信噪比极低含有大量谐波和直流偏置PLL无法锁定。因此纯Active Flux方法无法实现零速和极低速下的稳定运行必须依赖开环启动或其他辅助手段如高频注入渡过低速区。参数敏感性模型依赖于电机参数R和Lq。R会随温度变化Lq在饱和情况下也会变化。电阻R在低速时影响显著。R的辨识误差会直接导致磁链观测的幅值和相位误差进而影响角度精度。通常需要在线温补或设计鲁棒性更强的观测器如滑模观测器SMO与Active Flux结合。电感LqLq的误差会影响从总磁链中减去定子磁链的准确性。如果Lq取值偏大计算出的Active Flux幅值会偏小并且可能引入额外的位置谐波。在实际项目中我通常会做一个Id从负到正的扫描观察在不同电流下Lq的变化趋势并在观测器中考虑这种饱和效应或者至少使用一个工作点附近的平均值。积分器实践难题如前所述纯积分器的直流偏置和初始值问题在软件中必须妥善解决。除了使用准积分器还有一种流行的方法是采用“级联的广义积分器”或“自适应滤波器”来替代纯积分这些结构本身对直流分量具有无穷大衰减能力。应对策略与混合方案正因为有这些局限性在实际的高性能驱动器中纯Active Flux方案很少单独使用更多的是作为一种中高速区的核心观测器与低速方案结合形成“混合无感控制”。低速区0~5%额定转速采用高频信号注入法。向电机注入高频电压或电流信号利用IPM的凸极效应Ld≠Lq来追踪转子位置。这种方法不依赖反电势在零速下也能工作。Active Flux模型在这里不发挥作用。中高速区5%额定转速切换到Active Flux观测器或滑模观测器。此时反电势足够大基于基波模型的方法精度高、噪声小、效率更高。切换逻辑设计平滑、无扰动的切换算法是关键。需要检测信号的信噪比或观测器的一致性在合适的时机进行切换避免电流或转矩冲击。在我做过的一个风机泵类项目中就采用了这种“高频注入 Active Flux”的混合方案。启动时用高频注入平稳拉起达到100rpm约2%额定时开始并行计算Active Flux并比较两种方法得出的角度差。当角度差连续多个控制周期小于一定阈值且估算速度稳定就逐步加权切换到Active Flux主导。这样既保证了零速启动能力又获得了中高速区优良的性能和效率。5. 超越基础Active Flux的进阶应用与变体把基础的Active Flux模型用熟之后你会发现它的思想可以拓展到更多场景衍生出一些更强大的变体。这里分享两个我研究过且觉得有实用价值的方向。1. 与滑模观测器SMO的结合增强鲁棒性标准的Active Flux模型配合PLL对参数和测量噪声还是比较敏感的。而滑模观测器以其强鲁棒性著称。将两者结合诞生了基于Active Flux的滑模观测器。 其核心思想是不再用积分器去计算磁链而是设计一个滑模观测器来动态估计ψα和ψβ。滑模观测器的输入是电压和电流其内部模型就是简化后的电机方程公式(7)。通过设计一个合适的滑模面比如电流估计误差并利用开关控制律迫使系统状态在滑模面上运动观测器可以快速、鲁棒地收敛到真实的磁链值。 得到估计的磁链后后续的步骤一样减去Lq*Iαβ得到Active Flux再用PLL提取角度。 这种结合的好处是滑模观测器本身对参数扰动和测量噪声有一定的抑制能力尤其是在动态过程中响应更快。但缺点是会引入固有的抖振现象需要采用边界层法或滤波器来平滑控制信号。我在一些对动态响应要求高的伺服场合试过这种方案效果比纯积分PLL要好。2. 用于磁链观测器的初始位置辨识对于需要大力矩启动的应用如压缩机启动前知道转子的初始位置至关重要否则可能启动失败甚至反转。Active Flux模型为初始位置辨识提供了一个新思路。 方法是在电机静止时向定子绕组注入一个短时、幅值受控的电压脉冲矢量。由于电机静止ω0电压方程中的反电势项为0。注入后测量电流响应。根据Active Flux模型此时的磁链变化主要来自脉冲电压的积分和电阻压降。通过分析不同方向电压脉冲下的电流响应差异并结合IPM的凸极信息Ld, Lq可以推算出初始的Active Flux方向即转子位置。 这种方法比传统的高频旋转注入法更快速因为脉冲时间很短。但它需要精确的电机参数和电流采样且电压脉冲幅值需要精心设计既要能产生足够的电流响应以便检测又不能使电机转动或饱和。这属于比较前沿的应用我在实验室条件下验证过但对于量产产品其稳定性和可靠性还需要结合具体应用做大量测试。3. 在磁链闭环控制DTC中的直接应用我们前面讨论的都是基于矢量控制FOC框架Active Flux作为位置观测器。实际上Active Flux概念最早就是在直接转矩控制DTC的论文中被广泛讨论的。 在传统的DTC中需要同时观测定子磁链和转矩。对于IPM由于磁路饱和和交叉耦合准确观测定子磁链本身就很复杂。而Active Flux模型提供了一个统一的磁链观测量。在基于Active Flux的DTC中可以直接以Active Flux幅值和电磁转矩作为控制变量。由于Active Flux矢量直接包含了转子位置信息其幅值和角度的控制逻辑可以设计得更加清晰和统一同时适用于SPM和IPM。这对于追求快速转矩响应的应用来说是一个很有吸引力的方向。