无感FOC低速高频注入:Ud/Uq与控制频率的硬约束

发布时间:2026/10/7 14:53:47
无感FOC低速高频注入:Ud/Uq与控制频率的硬约束 1. 从一次电机启动失败说起为什么Ud/Uq和注入频率值得单独拎出来讲前阵子帮朋友调一块无感FOC驱动板板子跑的是比较常见的滑模观测器方案低速段一直不太稳。他的现象很典型给一个固定频率的方波做高频注入电机在零速和极低速下能勉强识别出转子位置但一上到中速就抖电流波形毛刺明显Ud/Uq的给定值在示波器上看着像被“锯齿”啃过一样。后来把注入频率从2kHz调到4kHz同时把电流环控制频率从8kHz提到16kHz抖动立刻小了一大截。这件事让我意识到很多做FOC的朋友对Ud/Uq的理解停留在“电压矢量分解”的层面对控制频率和高频注入频率之间的关系更是模糊导致调参全靠试。这篇内容就围绕三个核心问题展开Ud/Uq到底是什么、在FOC里扮演什么角色控制频率怎么选、和PWM频率是什么关系高频注入HFI的注入频率为什么不能随便定它和控制频率之间有什么硬约束。适合正在做PMSM无感FOC、尤其是低速段需要转子初始位置检测的工程师也适合刚接触FOC电流环、想搞明白“带宽”和“频率”到底怎么对应的人。我会尽量用实际调试中遇到的场景来解释不堆公式但关键的计算过程会给出来。2. Ud/Uq的本质不是两个电压而是一个旋转坐标系下的“控制手柄”2.1 从三相到两相Clarke和Park到底做了什么先把这个链条理清楚。三相电流ia、ib、ic经过Clarke变换变成静止坐标系下的iα、iβ再经过Park变换变成旋转坐标系下的id、iq。电压侧同理ud、uq是旋转坐标系下的电压分量。很多人背过公式但没想过为什么要有这一步。打个比方三相绕组就像三个人从不同角度推一个圆盘你要控制圆盘往哪个方向转、转多快直接看三个人的推力很乱。Clarke变换相当于把三个人的推力合成到两个正交方向上Park变换则是把参考系“绑”在转子上跟着转子一起转。这样一来id就代表“沿着转子磁场方向的电流分量”iq代表“垂直于转子磁场方向的电流分量”。对于表贴式PMSMid控制励磁通常给0iq控制转矩。这就是为什么FOC里常说“id0控制”。Ud和Uq则是为了产生这两个电流控制器需要施加的电压。电流环的输出就是Ud和Uq再经过反Park变换变成Uα、Uβ最后通过SVPWM变成六路PWM。2.2 Ud/Uq在电流环里的角色不是给定是输出这里有个容易混淆的点。很多新手以为Ud/Uq是像id/iq那样由上层给定的其实不是。在标准FOC双闭环结构里速度环输出iq的给定值id给定通常为0电流环的PI调节器根据id、iq的给定与反馈之差计算出Ud和Uq。所以Ud/Uq是电流环的输出是“为了达到目标电流逆变器需要施加的电压”。理解这一点很关键因为它决定了你调电流环时的思路。电流环的带宽、PI参数、解耦项都是围绕“如何让Ud/Uq快速准确地跟踪”来设计的。如果Ud/Uq的计算有延迟或者被噪声污染电流环性能直接崩。2.3 交叉耦合与解耦为什么高速时Ud/Uq会互相干扰PMSM的电压方程里有一项交叉耦合ud里含有-ωe·Lq·iquq里含有ωe·Ld·idωe·ψf。低速时ωe小这一项可以忽略高速时ωe大耦合项就不可忽视了。如果不做前馈解耦id和iq会互相拉扯电流环带宽实际被压缩。我实测过一个案例一台额定转速3000rpm的PMSM在2500rpm时如果不加解耦iq阶跃响应会出现明显的交叉振荡id被带偏到0.5A以上。加上解耦项后id波动压到0.1A以内。解耦项的计算需要用到Ld、Lq和磁链ψf这些参数如果辨识不准解耦反而会引入误差所以参数辨识是前提。注意解耦项是前馈量不经过PI调节器直接加到Ud/Uq输出上。调试时先不加解耦把电流环PI调稳再加解耦观察高速段改善情况。3. 控制频率怎么定不是越高越好但低了肯定不行3.1 控制频率、PWM频率、采样频率的三者关系这三个概念经常被混用。PWM频率是逆变器开关频率比如10kHz、20kHz控制频率是FOC算法执行的频率通常等于PWM频率也可以是PWM频率的一半或四分之一采样频率是ADC采集电流的频率一般和控制频率同步。在常见的实现里PWM周期中断触发ADC采样采样完成后执行FOC算法算出新的占空比在下一个PWM周期生效。所以控制频率等于PWM频率是最常见的配置。但有些低成本方案会用PWM频率的一半做控制频率比如PWM 20kHz、控制10kHz这样CPU负载轻但电流环带宽会受限。3.2 电流环带宽与控制频率的硬约束电流环带宽通常取控制频率的1/10到1/20。比如控制频率10kHz电流环带宽设计在500Hz到1kHz比较合理。为什么不能更高因为数字控制有延迟采样延迟、计算延迟、PWM更新延迟加起来大约1.5个控制周期。如果带宽逼近控制频率的1/5相位裕度就不够了阶跃响应会出现明显超调甚至振荡。我一般按这个经验公式估算电流环带宽fc ≈ 控制频率 / (10~15)。10kHz控制频率对应约700Hz到1kHz带宽。如果你想要2kHz带宽控制频率至少要到20kHz以上。3.3 实际选型从CPU负载和开关损耗倒推控制频率不是拍脑袋定的。先看CPU每次FOC中断里要做Clarke、Park、两个PI、反Park、SVPWM还要处理采样和故障保护。用STM32G4系列主频170MHz10kHz控制频率下CPU占用大概15%到20%20kHz下翻倍到30%到40%。如果还要跑观测器、HFI注入负载更高。再看开关损耗PWM频率越高MOSFET开关损耗越大驱动板发热越严重。10kHz到20kHz是常见区间超过20kHz对普通MOSFET驱动就不太友好了。综合下来工业伺服常用10kHz到16kHz家电和风机常用8kHz到10kHz高性能场合才上20kHz以上。我自己的经验是如果低速段要用HFI控制频率最好不要低于10kHz否则注入频率的选择空间太窄。4. 高频注入HFI注入频率不是随便挑的4.1 HFI的基本原理利用凸极效应找转子位置高频注入的核心思路是PMSM有凸极效应Ld≠Lq在估计的d轴方向注入高频电压如果估计角度和真实角度有偏差高频电流响应里会包含位置误差信息。通过解调这个电流就能提取出转子位置。表贴式PMSM的凸极效应很弱但通过注入高频信号仍然可以利用饱和效应产生的微小凸极来识别位置。HFI分旋转电压注入和方波注入两类。旋转电压注入是在估计的d轴和q轴同时注入高频正弦方波注入则是在估计的d轴注入高频方波。方波注入实现简单、对参数不敏感在低速段用得更多。4.2 注入频率与控制频率的关系至少差一个数量级这是本文最想强调的一点。注入频率必须远高于电流环带宽否则电流环会把注入信号当成扰动给“压”掉。一般要求注入频率至少是电流环带宽的5到10倍。如果电流环带宽700Hz注入频率至少3.5kHz以上。同时注入频率必须低于控制频率的一半奈奎斯特频率实际工程中建议不超过控制频率的1/4。比如控制频率10kHz注入频率建议在2kHz到2.5kHz之间控制频率20kHz注入频率可以到5kHz。把两个约束合起来注入频率要大于5倍电流环带宽小于1/4控制频率。以10kHz控制频率、700Hz带宽为例注入频率在3.5kHz到2.5kHz之间——这个区间是空的这就是为什么低速HFI方案往往需要提高控制频率到16kHz甚至20kHz。4.3 注入幅值的选择太小没信号太大影响转矩注入幅值一般取额定电压的10%到20%。太小了高频电流响应太弱信噪比不够太大了会产生额外的转矩脉动和噪声甚至影响电流环稳定。我实测过一台24V供电的PMSM注入幅值从2V加到5V位置估计误差从15度降到5度但电机噪声明显增大。最后折中取3.5V。这个值没有绝对标准需要根据电机参数和实际效果调。注意注入幅值和注入频率要配合调。频率高时同样幅值产生的高频电流更小可能需要适当加大幅值。5. 实操从零搭建一套带HFI的低速FOC方案5.1 硬件与工具准备主控STM32G431或类似带FPU的MCU主频170MHz驱动板三相逆变桥MOSFET开关频率支持20kHz电机表贴式PMSM带编码器用于对比验证电流采样三电阻或单电阻采样率与控制频率同步调试工具示波器、上位机波形观测如串口示波器5.2 参数配置与计算过程假设选定控制频率16kHzPWM频率16kHz电流环带宽设计为1kHz。注入频率选4kHz控制频率的1/4注入幅值选额定电压的15%。电流环PI参数按带宽1kHz、相位裕度60度设计。以d轴为例被控对象近似为1/(LsR)PI零点设在被控对象极点处即Kp/KiL/R。Kp2π·fc·LKi2π·fc·R。具体数值根据电机参数填入。HFI解调部分注入方波后对高频电流响应做同步解调提取出包含位置误差的直流分量经过低通滤波后送入锁相环PLL估计转速和角度。5.3 调试步骤与现场记录第一步先不注入用编码器跑通电流环和速度环确认基本FOC正常。第二步切换到无感滑模观测器中高速段验证。第三步在零速和低速段启用HFI观察位置估计收敛情况。第四步逐步提高注入频率找到位置估计误差最小且噪声可接受的点。我调试时的记录注入频率2kHz时位置误差约20度电机有轻微抖动3kHz时误差降到10度4kHz时误差约5度噪声可接受5kHz时误差反而增大到8度因为接近控制频率的1/3电流环开始压制注入信号。最终选4kHz。6. 常见问题与排查技巧实录6.1 位置估计不收敛或跳变最常见的原因是注入频率和控制频率不匹配。检查注入频率是否在控制频率的1/6到1/4之间且大于5倍电流环带宽。另一个原因是解调低通滤波器截止频率设得太高把高频噪声放进来了。截止频率一般设为注入频率的1/10到1/20。6.2 低速段电流波形毛刺大可能是注入幅值过大导致电流环在注入频率处产生谐振。先减小注入幅值试试。也可能是电流采样与PWM不同步采样时刻落在开关噪声上。确保ADC在PWM中点或谷点触发。6.3 中高速切换时抖动HFI只在低速段有效中高速要切到观测器。切换点一般设在额定转速的5%到10%。切换时要做角度和转速的平滑过渡否则会抖。我一般用渐变加权的方式在切换区间内把HFI估计的角度和观测器角度按比例混合。6.4 常见问题速查表现象可能原因排查方向位置估计不收敛注入频率与控制频率不匹配检查频率比是否在1/6到1/4电流毛刺大注入幅值过大或采样不同步减小幅值检查ADC触发时刻中高速抖动切换策略不当加平滑过渡检查切换点低速转矩脉动注入频率接近电流环带宽提高注入频率或降低带宽噪声明显注入幅值过大在估计精度和噪声间折中7. 几个容易踩的坑和我的个人体会第一个坑把控制频率和PWM频率设成不一样但忘了调整中断优先级和采样时序导致电流采样和PWM错位。我建议新手直接用控制频率等于PWM频率的配置简单可靠。第二个坑HFI注入频率照搬别人的参数。不同电机的凸极率、电感、电阻都不一样注入频率必须根据自己的电流环带宽和控制频率重新算。我见过有人直接抄了4kHz注入但他的控制频率只有8kHz注入频率到了控制频率的一半结果电流环完全失控。第三个坑忽略了解耦项对HFI的影响。高速时解耦项很大如果解耦参数不准Ud/Uq上会叠加错误的电压HFI解调出来的位置信息就被污染了。低速时解耦项小影响不大但中速切换时要注意。第四个坑注入幅值调好后不再动。实际上电机温度变化会导致电阻和磁链变化注入效果会漂。如果应用场景温度变化大建议加一个慢速的幅值自适应根据位置估计的信噪比微调注入幅值。最后分享一个小技巧调试HFI时先把电机堵转手动转动转子观察位置估计能不能跟上。堵转状态下没有反电动势干扰能快速判断HFI本身是否正常工作。确认后再放开堵转做低速运行测试。这个办法帮我省了很多排查时间。