☰
低速无感FOC:d轴正弦波高频注入从原理到工程落地
2026/10/27 1:11:40 网站建设 项目流程

1. 为什么低速下必须换一套玩法:从反电动势失效说起

搞过永磁同步电机无感FOC的人都有一个共识:中高速区间靠反电动势估算转子位置,基本是“送分题”。反电动势幅值跟转速成正比,转速越高信号越强,信噪比越好,龙贝格观测器、滑模观测器、扩展卡尔曼滤波这些方法都能跑得不错。但一旦转速掉到额定转速的百分之几,甚至要求带载从零速启动,反电动势就弱到几乎淹没在采样噪声和逆变器非线性里了。这时候你再用观测器去“听”反电动势,就像在嘈杂的菜市场里听蚊子叫,根本听不见。

这就是低速无感FOC最核心的矛盾:转子位置信息在低速时不再由反电动势携带,而是藏在电机的凸极效应里。永磁同步电机(尤其是内置式IPMSM)的d轴和q轴电感不相等,d轴磁路经过永磁体,磁阻大、电感小;q轴磁路经过铁芯,磁阻小、电感大。这个电感差异就是低速下唯一可靠的转子位置“指纹”。高频注入法(HFI,High Frequency Injection)的思路,就是主动往电机里注入一个高频电压信号,然后从高频电流响应里把这个“指纹”解调出来。

我见过不少刚入行的朋友,一上来就想用龙贝格观测器通吃全速域,结果低速段怎么调都抖,最后不得不加个编码器。其实不是观测器不行,是物理规律决定了低速下反电动势这条路走不通。HFI不是可选项,是低速无感绕不过去的坎。而HFI里最经典、工程上最稳的一支,就是d轴正弦波高频注入。为什么是d轴?为什么是正弦波?这两个问题后面会展开,先把整体框架搭起来。

这篇文章我打算把d轴正弦波高频注入从原理推导到工程落地讲透。适合已经懂FOC基本框架、想深入理解HFI数学本质的工程师,也适合正在调低速无感、被噪声和收敛问题折磨的同行。我会把公式推导的每一步为什么这么走讲清楚,也会把实际调试中那些文档里不会写的坑点摊开说。

2. d轴正弦波注入的数学骨架:从电压方程到位置误差信号

2.1 高频下的电机模型简化逻辑

要推导HFI,第一步是建立高频激励下的电机模型。这里有个关键假设:注入频率远高于基波频率,也远高于转子旋转频率。工程上注入频率一般取1kHz到2kHz,而基波频率在低速时可能只有几赫兹到几十赫兹。在这个前提下,可以做几个简化。

定子电压方程在dq坐标系下是这样的:

ud = Rs*id + Ld*d(id)/dt - ωe*Lq*iq uq = Rs*iq + Lq*d(iq)/dt + ωe*Ld*id + ωe*ψf

高频注入时,注入频率ωh远大于ωe,所以含ωe的交叉耦合项和反电动势项ωeψf都可以忽略。同时,高频下感抗ωhL远大于电阻Rs,所以Rs上的压降也可以忽略。于是高频模型简化为纯电感模型:

udh ≈ Ld * d(idh)/dt uqh ≈ Lq * d(iqh)/dt

这个简化是HFI能成立的基础。你可以理解为:在高频信号眼里,电机就是一个纯电感网络,电阻和反电动势都“来不及”响应。这个直觉很重要,后面所有推导都建立在这个纯电感近似上。

2.2 静止坐标系下的电感矩阵与凸极耦合

上面是dq坐标系下的模型,但实际注入和采样通常在αβ静止坐标系下做,因为转子位置未知,没法直接在dq坐标系注入。所以需要把电感模型变换到αβ坐标系。

在αβ坐标系下,电机的电压电流关系可以写成矩阵形式:

[uα] [L0 + L1*cos(2θ) L1*sin(2θ) ] [d(iα)/dt] [uβ] = [L1*sin(2θ) L0 - L1*cos(2θ)] [d(iβ)/dt]

其中L0 = (Ld+Lq)/2是平均电感,L1 = (Ld-Lq)/2是凸极电感差的一半,θ是转子电角度。这个矩阵就是HFI的“金矿”——转子位置θ以2θ的形式藏在电感矩阵的交叉项和自项里。只要能从电流响应中提取出含2θ的项,就能反解出θ。

注意这里是2θ不是θ,这是凸极效应的固有特性,也意味着位置解算出来后有180度电角度的模糊性,这个后面会专门讲怎么处理。

2.3 正弦波注入下的电流响应推导

现在假设在d轴方向注入一个高频正弦电压。但问题是转子位置未知,怎么在d轴注入?工程上的做法是:先在估算的d轴方向注入,或者直接在α轴注入一个正弦、β轴注入一个余弦,形成一个旋转的高频电压矢量。这里我们按最经典的在估算d轴注入正弦波来推导,因为这是“d轴正弦波注入”这个标题的核心。

假设估算的转子位置为θ_est,位置误差Δθ = θ - θ_est。在估算dq坐标系下注入高频电压:

ud_est = Vh * sin(ωh*t) uq_est = 0

把这个注入电压变换到实际dq坐标系,再变换到αβ坐标系,经过电感矩阵,再变回估算dq坐标系求电流。这一串变换看起来繁琐,但结果很干净。经过推导(中间用到小角度近似sin(2Δθ)≈2Δθ),估算q轴的高频电流幅值近似为:

iqh_est ≈ (Vh * (Ld - Lq) / (2 * ωh * Ld * Lq)) * sin(2Δθ) * cos(ωh*t)

这个式子就是整个HFI的灵魂。它告诉我们:估算q轴高频电流的幅值正比于sin(2Δθ),也就是正比于位置误差。当Δθ趋近于0时,iqh_est也趋近于0。所以只要把iqh_est的幅值解调出来,通过一个锁相环或观测器把它压到零,估算位置就收敛到真实位置了。

这里有个细节值得说:为什么用q轴电流而不是d轴?因为d轴注入时,d轴电流主要反映平均电感,跟位置误差关系不大;而q轴电流的幅值直接携带了sin(2Δθ)的信息。这就是“d轴注入、q轴解调”的经典搭配。

2.4 从高频电流到位置误差:解调与低通滤波

上面得到的iqh_est是一个高频载波cos(ωh*t)乘以一个低频包络sin(2Δθ)。要提取包络,标准做法是同步解调:把iqh_est乘以一个与注入信号同相的载波,再低通滤波。

具体操作:采样得到iqh_est后,乘以sin(ωh*t)(注意相位要对齐),得到:

iqh_est * sin(ωh*t) = 包络 * cos(ωh*t) * sin(ωh*t) = 包络 * 0.5 * sin(2*ωh*t)

这个结果包含一个二倍频分量和一个直流分量。经过低通滤波器(截止频率远低于2ωh)后,二倍频被滤掉,剩下的直流分量正比于sin(2Δθ)。这个直流分量就是位置误差信号,送进锁相环(PLL)或龙贝格观测器,积分后得到估算转速和估算位置。

整个信号链可以概括为:注入→响应→解调→滤波→锁相。每一步都有工程上的讲究,比如解调相位不对齐会导致误差信号里混入cos分量,低通滤波器带宽选大了噪声大、选小了收敛慢。这些后面在调试章节会细说。

3. 位置误差信号的提取质量:滤波器设计与相位补偿的实战取舍

3.1 低通滤波器的带宽不是越窄越好

理论上,低通滤波器截止频率越低,滤除二倍频越干净,位置误差信号越纯。但实际调试中你会发现,带宽压得太低,整个位置环的相位裕度就没了,收敛慢得像蜗牛,负载一变就振荡。

我一般的做法是:低通截止频率取注入频率的十分之一到五分之一。比如注入1kHz,低通取100Hz到200Hz。这样二倍频(2kHz)能被衰减40dB以上,同时位置环还有足够的带宽。如果电机凸极率很低(Ld和Lq差得不多),误差信号幅值小,这时候可以适当放宽低通带宽,但代价是噪声变大,需要配合后面说的幅值补偿。

还有一个坑:低通滤波器会引入相位滞后,这个滞后会直接变成位置估算的稳态误差。所以必须做相位补偿。补偿量等于低通滤波器在基波频率处的相移。工程上可以实测:给定一个已知的位置误差,看解调出来的误差信号相位偏了多少,然后在PLL的输入前加一个超前环节补回来。

3.2 解调相位对齐:一个容易被忽略的致命细节

前面推导里,解调用的是sin(ωht),和注入的sin(ωht)同相。但实际系统中,从PWM更新到电流采样再到解调计算,中间有计算延迟和采样延迟。如果解调载波相位和实际注入相位差了一个角度φ,那么解调结果里会混入cos(2Δθ)分量,导致误差信号在Δθ=0附近不再过零,而是有一个偏置。

这个偏置在低速轻载时可能不明显,但一加负载就暴露:位置估算会稳定在一个错误的角度上,电机效率下降、发热增加。我踩过这个坑,当时调一台内置式电机,空载时位置挺准,一加额定负载就偏了十几度电角度,查了半天才发现是解调相位没对齐。

解决办法:在调试阶段,固定转子位置(比如用外力把转子锁在已知角度),然后扫描解调载波的相位偏移,找到使误差信号在Δθ=0处过零的那个相位。这个相位就是系统总延迟对应的补偿角,固化到代码里。

3.3 逆变器非线性对高频响应的影响

逆变器有死区、管压降、开关延迟,这些非线性因素在基波频率下影响不大,但在高频注入下会严重污染电流响应。死区会导致输出电压和指令电压之间有偏差,这个偏差在电流过零附近尤其明显,会在高频电流上叠加一堆低次谐波。

处理办法有几个:一是死区补偿,根据电流极性修正输出电压;二是提高注入频率,让逆变器非线性产生的谐波落在低通滤波器阻带里;三是用电流采样时刻避开开关瞬间。我通常三个一起上,尤其是死区补偿,对HFI的收敛稳定性提升非常明显。

还有一个经验:注入电压幅值不能太小。太小了电流响应信噪比差,解调出来的误差信号被噪声淹没;太大了又会引入额外的转矩脉动和噪声。一般取额定电压的5%到15%,具体看电机凸极率和负载情况。凸极率高的电机可以取小一点,凸极率低的要取大一点。

4. 从误差信号到转子位置:锁相环参数整定与180度模糊处理

4.1 锁相环的结构与参数整定逻辑

位置误差信号ε = K * sin(2Δθ)拿到之后,下一步是把它压到零。最常用的结构是锁相环(PLL),本质是一个PI控制器加一个积分器。PI控制器输出估算转速,积分得到估算位置。

PLL的闭环传递函数可以写成标准二阶系统形式,阻尼比ζ和自然频率ωn由PI参数决定。整定的时候,我一般先定ωn,再定ζ。ωn取位置环期望带宽的1/3到1/5,ζ取0.707到1之间。ωn太大,系统对噪声敏感,容易抖;ωn太小,收敛慢,负载突变时位置跟不上。

这里有个和基波FOC不同的地方:HFI的位置环带宽不能做太高,因为误差信号本身是解调滤波出来的,有延迟。我一般把HFI位置环带宽限制在50Hz以内,再高就容易自激。如果应用需要更快的动态,得靠中高速观测器来补,HFI只负责低速段。

还有一个细节:误差信号里有个增益K,它跟注入电压幅值、电感差、注入频率都有关系。如果K随工况变化(比如电感饱和导致Ld、Lq变化),PLL的等效开环增益就变了,带宽和阻尼也跟着变。所以工程上要么做增益归一化,要么把PLL参数留足裕度。我倾向于做归一化,用误差信号的幅值或者电流幅值去归一,这样不同负载下动态一致。

4.2 180度电角度模糊:不是bug是feature

前面反复提到,凸极效应产生的是2θ的信号,所以解算出来的位置有两个解:θ和θ+180度。这两个解在误差信号上都对应Δθ=0,PLL无法区分。这就是所谓的180度模糊。

怎么破?靠磁极极性辨识。永磁体的N极和S极对定子电感的影响有细微差别,因为永磁体本身的磁导率和空气接近,而铁芯磁导率高。当d轴电流为正(增磁方向)时,铁芯饱和度增加,d轴电感变小;当d轴电流为负(去磁方向)时,d轴电感变大。利用这个差异,可以判断出哪个是真正的d轴正方向。

具体做法:在估算的d轴正方向注入一个正负交替的低频脉冲,观察d轴电流的响应幅值。幅值大的一侧对应电感小,也就是真正的d轴正方向。或者用高频注入的二次谐波法,更精细但实现复杂。工程上常用的是脉冲注入法,简单可靠,启动前做一次就行。

我见过有人想省掉极性辨识,结果电机启动时有一半概率反转或者堵转。这个步骤不能省,尤其是需要带载启动或者要求启动方向确定的场合。

4.3 低速到中高速的平滑切换

HFI在低速好用,但到了中高速,反电动势起来了,HFI的注入信号反而成了干扰,增加损耗和噪声。所以全速域无感通常需要两套方法:低速HFI,中高速用反电动势观测器,中间做一个平滑切换。

切换的难点在于两套方法估算的位置和转速可能有偏差,直接切会抖。我的做法是:在切换区间内,让两套方法的误差信号按转速加权融合,或者让HFI的注入幅值随转速逐渐减小到零,同时反电动势观测器的权重逐渐增加。切换区间一般选额定转速的5%到15%,太窄了切换太快容易抖,太宽了HFI损耗大。

切换过程中还要注意:HFI的位置环和观测器的位置环不能同时硬切,否则两个积分器会打架。要么共用一个PLL,把两路误差信号融合后送进去;要么做无扰切换,切换瞬间把观测器的积分器状态同步成HFI的状态。我倾向于共用PLL,结构简单,切换平滑。

5. 工程落地中的硬骨头:凸极率、噪声与参数敏感性

5.1 凸极率低的电机怎么办

HFI的根基是凸极效应。如果电机凸极率很低(Lq/Ld接近1),比如表贴式永磁电机(SPM),误差信号幅值就很小,HFI基本没法用。这时候有几个选择:一是改用INFORM法,利用磁饱和产生的凸极;二是注入幅值加大,但转矩脉动和噪声受不了;三是干脆加编码器。

实际项目中,如果客户指定用SPM又要低速无感,我会先测一下电机的凸极率。用LCR表在不同转子位置测电感,或者用驱动器注入不同方向的电压测电流响应。如果Lq/Ld小于1.1,基本可以判定HFI不适用,得换方案。这个前期评估很重要,别等代码都写完了才发现电机不支持。

对于IPMSM,凸极率一般在1.5到3之间,HFI效果很好。凸极率越高,误差信号越大,注入幅值可以越小,噪声和损耗也越小。

5.2 电流采样噪声与注入频率的选择

HFI的误差信号是从高频电流里解调出来的,所以电流采样噪声直接决定了解调质量。低速时基波电流小,采样噪声占比大,这是HFI在极低速下信噪比差的根本原因。

提高注入频率可以改善信噪比,因为高频电流幅值正比于1/ωh,频率越高幅值越小,但解调后的误差信号幅值也越小,所以不是越高越好。而且注入频率受限于PWM频率和采样率,一般取PWM频率的1/10到1/5。比如10kHz PWM,注入取1kHz到2kHz。

另一个改善信噪比的办法是过采样。在PWM周期内多次采样电流,取平均或者做数字滤波。我用过在电流采样后加一个滑动平均滤波器,对HFI的稳定性提升很明显,代价是引入了一点相位滞后,需要在解调相位里补回来。

还有一点:电流采样时刻要避开开关噪声。通常在PWM周期的中点采样,这时候电流纹波最小。如果注入频率和PWM频率有整数倍关系,还要注意避免拍频。

5.3 电感参数随工况变化的影响

HFI的推导里假设Ld、Lq是常数,但实际上电感随电流、温度、磁饱和变化。负载电流大了,铁芯饱和,Ld、Lq都变小,而且变化量不一样,凸极率也会变。这会导致误差信号增益K变化,PLL的等效带宽漂移。

处理办法:一是做电感在线辨识,根据电流查表修正;二是把PLL参数留足裕度,牺牲一点动态换稳定;三是用误差信号幅值做归一化,把增益变化的影响消掉。我一般用第三种,简单有效。具体就是取误差信号的绝对值或者平方,经过低通后作为归一化因子,去除以PLL的输入。这样即使K变了,PLL的开环增益也基本不变。

温度的影响相对慢,可以在软件里做温度补偿,或者干脆在热态下重新标定一次PLL参数。如果应用对温度不敏感,可以忽略。

6. 调试实录:一次低速带载振荡的完整排查链路

6.1 现象描述与初步判断

去年调一台3kW内置式永磁电机,要求零速带额定负载启动,低速段用d轴正弦波HFI。空载时一切正常,位置估算很准,转速也稳。但一加负载,转速就开始低频振荡,频率大概几赫兹,幅值越来越大,最后保护停机。

初步判断:位置估算在负载下失准,导致转矩控制出问题。但为什么空载好、带载坏?可能的原因有:凸极率随负载变化、逆变器非线性在负载下更严重、PLL参数在负载下裕度不够、解调相位在负载下偏移。

6.2 逐项排查过程

第一步,查凸极率。用驱动器注入不同方向的电压,测电流响应,算出不同负载电流下的Ld、Lq。结果发现额定负载下Ld下降了约20%,Lq下降了约10%,凸极率从2.1降到1.8。变化有,但不至于导致振荡。

第二步,查逆变器非线性。在负载下观察相电流波形,发现过零附近有明显畸变,死区效应比空载时严重。但死区补偿已经开了,于是把补偿参数调大,振荡幅度略有减小,但没有根治。

第三步,查解调相位。固定转子,加负载,扫描解调相位,发现最佳相位比空载时偏移了约15度。这说明负载下系统延迟变了,可能是电流采样延迟或者滤波器相位变化。把解调相位按负载电流做补偿后,振荡明显减弱,但还有。

第四步,查PLL参数。把PLL带宽降低,振荡消失,但收敛变慢,启动时间变长。说明PLL在负载下确实裕度不够,但降带宽不是好办法。

6.3 根因定位与最终方案

继续深挖,发现真正的问题是误差信号增益K在负载下变化,导致PLL开环增益漂移。空载时K大,PLL带宽高,稳定;负载时K小,PLL带宽低,但阻尼比也变了,系统进入欠阻尼振荡。

解决方案:加误差信号归一化。取解调后误差信号的绝对值,经过一个低通滤波器(截止频率远低于振荡频率),得到K的估计值,然后用它去除PLL的输入。这样PLL的开环增益就与K无关了。加上归一化后,空载和负载下的动态一致,振荡彻底消失。

同时把解调相位按负载电流做了线性补偿,进一步提升了位置精度。最终这台电机零速带额定负载启动平稳,低速段转速波动小于1%。

这个案例给我的教训是:HFI的调试不能只看空载,负载下的参数漂移往往是振荡的根源。归一化是一个成本很低但效果很好的手段,建议一开始就加上。

7. 写在最后:一些不写在文档里的经验

HFI这东西,理论推导看起来干净漂亮,但工程落地全是细节。我调过的电机里,没有一台是照搬公式就能跑好的,都得根据具体电机和工况微调。

几个我觉得最值得记住的点:注入频率和PWM频率的关系要处理好,避免拍频;解调相位一定要实测标定,不能凭理论算;误差信号归一化是提升负载稳定性的利器;极性辨识不能省,否则启动方向随机;低速到中高速的切换要做平滑,不能硬切。

还有,HFI的注入会带来额外的损耗和噪声,在对噪声敏感的应用里(比如家电、医疗设备),要权衡注入幅值和噪声。有时候为了降噪,宁可牺牲一点低速性能,把注入幅值压到刚好能维持收敛的程度。

最后说一句,HFI不是万能的,它只在凸极率足够的电机上有效。选电机的时候就要考虑这一点,别等硬件定了才发现方案走不通。前期花半小时测一下电感,能省后面几周的调试时间。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询