
最近有搞电机驱动的朋友跟我聊起低速无感FOC几乎都会绕不开一个问题转速一掉到100转以下常规的反电动势观测器就失效了这时候还能不能继续无感运行答案通常就落在高频注入这条路上。而在高频注入的家族里脉振高频电压注入法又是工程上最常被拿出来试水的一种方案。这篇文章就把这个技术从原理到落地细节完整拆一遍包括信号链怎么搭、参数怎么选、切入闭环要注意什么以及我实际调试时踩过的坑希望对正在做低速无感、伺服和压缩机控制的朋友有帮助。1. 为什么是脉振高频电压注入无感FOC的方案谱系与选型逻辑1.1 无感控制三条技术路线的适用边界做无感FOC核心问题只有一个转子位置和速度从哪里来。工业上主要就三类办法。第一类是直接基于反电动势的计算法简单粗暴但对噪声极其敏感实际产品里很少有人单独用。第二类是各种观测器模型参考自适应、滑模观测器、扩展卡尔曼滤波都属此类这类方法在转速较高时效果不错但低速和零速下反电动势信号太小观测器的信噪比直接崩掉。第三类就是高频注入法利用的是电机本身的凸极性或者磁饱和效应不依赖转速零速和低速反而正是它的主场。脉振高频电压注入就是第三类里的一个代表性方案。它不靠旋转磁场也不靠反电动势而是主动在绕组里叠加一个高频电压载波通过跟踪高频电流响应里的位置误差信息来估算转子位置。这听起来像一个主动探测的思路和靠电机自身发电信号的做法完全不同。1.2 脉振注入与旋转高频注入怎么选同属高频注入家族还有个旋转高频电压注入法两个方案经常被拿来对比。旋转注入是在静止坐标系下注入旋转着的电压矢量从高频电流的正负序分量来解算位置脉振注入则是在估计的d轴方向注入余弦或正弦电压励磁的是同一个轴系再用q轴高频电流响应来调制出位置误差。从实现角度看脉振注入最大的好处是计算量小因为注入轴系是跟着估计坐标系走的解调路径短代码很容易塞进现有FOC的主循环里。对凸极率要求也不像旋转注入那么苛刻只要Ld和Lq差异明显就行很多智能车驱动、电动工具的电机都满足这个条件。我在实际项目的体会是脉振注入在中低速域的稳态精度和动态响应均衡度更好尤其适合那些需要在零速保持力矩输出的伺服应用。2. 从注入到解算脉振高频电压注入的信号链路拆解2.1 注入信号如何叠加进现有FOC框架脉振高频注入不需要推翻你已有的FOC代码它只是叠加了一个额外的电压分量。假设你已经有一个PI电流环并联的d-q坐标系控制结构高频注入模块会在估算的d轴电压给定上叠加一个余弦信号[ U_d_ref U_d_pi U_dh U_d_pi U_{inj} \cdot \cos(\omega_h t) ]这里的 (U_{inj}) 是注入电压幅值(\omega_h) 是注入角频率。为什么选余弦而不是正弦纯粹是工程习惯问题正弦也可以主要是后续解调时同步检波的参考相位对得上就行。关键点是注入电压必须加在估计的d轴上而不是真实d轴上因为我们一开始不知道真实位置只能用上一步观测器估算出来的位置去构造坐标系位置误差自然就隐藏在这个错位里。2.2 高频电流如何携带位置误差信息这个部分我尽量说得通俗一点。电机转子上有凸极直轴电感和交轴电感不一样。你在估计d轴注入高频电压时如果估计位置和真实位置存在一个角度误差 (\Delta\theta)高频电流在q轴上的投影就不为零而且这个q轴高频电流的幅值几乎和 (\Delta\theta) 是线性关系。做一次数学展开忽略电阻和高次项之后可以整理出一个经典的形式[ i_{qh} \approx \frac{U_{inj}}{2\omega_h L_d L_q}(L_d - L_q)\sin(2\Delta\theta)\cdot \sin(\omega_h t) ]这个式子里 (L_d - L_q) 就是凸极率带来的差分电感项。可以看到当 (\Delta\theta) 很小的时候(\sin(2\Delta\theta) \approx 2\Delta\theta)所以q轴的高频电流分量直接线性地反映了位置误差。这就是整个脉振注入方案的数学根基。也正是因为依赖 (L_d) 与 (L_q) 的差异凸极率不足的电机用这个方案辨识效果就很差这是选型时要先确认的硬件条件。2.3 解调、低通滤波与位置跟踪观测器有了携带误差信息的高频电流接下来要做三件事。第一步是带通滤波把基波低频大电流和高频载波电流分开防止电流环的PI输出淹没办法。第二步是同步解调把q轴高频电流乘上一个与注入信号同相位的正弦参考[ \varepsilon i_{qh} \cdot \sin(\omega_h t) ]乘法之后会产生一个直流分量和一个二倍频交流分量。二倍频分量的角频率是 (2\omega_h)直接扔进低通滤波器就能滤掉剩下的直流分量就是误差信号 (\varepsilon)。这里的低通滤波器带宽不能太低否则会让整个观测器的响应变得很肉也不能太高否则二倍频干扰滤不干净估计位置会抖动。第三步是把误差信号喂给位置跟踪观测器。我习惯用锁相环结构因为它实现简单、参数意义直观。误差信号进PI调节器输出就是电角速度估计值再做一次积分得到电角度估计值。整个环路就是把误差为0当成收敛目标误差收敛了估计角度就跟随真实角度了。这个PI的带宽决定了位置观测的动态响应速度一般设计成注入频率的1/10到1/5之间具体怎么定在后面参数章节细说。3. 参数怎么选注入频率、注入幅值、滤波器与观测器带宽的工程取舍3.1 注入频率和幅值的选择逻辑这一步是工程上最实际也最容易反复改的地方。很多朋友上手第一步就纠结我到底该注入多少频率、多少电压其实这两个参数是互相锁定的。注入频率首先得远高于电流环带宽一般来说要大于电流环带宽的5到10倍避免高频信号和电流环PI的响应发生耦合打架。我常用的参考是先看逆变器的PWM频率。如果PWM是10kHz注入频率通常选1kHz也就是PWM频率的十分之一左右PWM提到16kHz的话注入频率可以相应提到2kHz。为什么不能无脑高注入越高同样电压幅值产生的高频电流越小因为高频阻抗会随频率增大信噪比上不去你后续解调出来的误差信号就很微弱。注入幅值的选择本质是在和噪声做博弈。幅值太小高频电流响应藏进电流采样噪声里了幅值太大会带来明显的电磁噪声和额外的功率损耗。我通常的做法是从额定电压的5%开始试然后看估计角度波形手动往上加到角度波形变得平滑为止。如果发现电机有明显的啸叫优先降幅值而不是降频率因为啸叫来源就是人耳可听范围的电磁振动频率挪出可听区间或者降幅值都能缓解。3.2 滤波器参数设计的完整思路这条信号链里有三个滤波器在协作带通滤波器提取高频电流低通滤波器滤除二倍频另一个低通滤波器平滑误差信号如果观测器前级需要。至少这三个位置要心里有数。带通滤波器的中心频率就设在注入频率上Q值不用太高太高会让信号通过时相位拖延变大给整个环路增加额外延迟。我习惯用的Q值在1到2之间这样能大概提取出以注入频率为中心的频带同时也把基波电流和PWM开关噪声尽量挡在外面。有些实现会用二阶带通滤波够用了。低通滤波器的截止频率选在注入频率的1/20到1/10折中考虑是既要压掉 (2\omega_h) 分量又不能把真正的位置误差动态信息也压没了。比如注入频率是1kHz二倍频干扰在2kHz低通截止取100Hz刚好有差不多20倍以上的衰减对误差信号里的有用直流分量不构成明显损伤。这里有个让我过去反复调的经验点滤波器相位延迟是会叠加的。带通、低通、低通三级一串每个滤波器在自己频点附近都有相位滞后而这些滞后会进入位置观测环路直接影响动态响应。所以调试时如果发现估计角有滞后偏大的现象第一反应不是去提高PI增益而是看看滤波器们的截止频率是不是太低或者是滤波器阶数太高了。3.3 观测器PI参数与整体带宽匹配位置跟踪观测器本质上是一个二阶系统。它的PI参数决定了位置环的跟随带宽和阻尼特性。我整理了一个简单的整定思路先定带宽 (f_{obs})大概是注入频率的1/10到1/5然后按典型的二阶系统参数映射过去[ K_p 2\pi f_{obs} \cdot \xi \cdot 2,\quad K_i (2\pi f_{obs})^2 ]这里 (\xi) 是阻尼系数工程上取0.707到1比较稳妥。为什么观测器带宽必须小于注入频率的1/5因为你整个位置误差链路的信号都是拿高频分量解调出来的如果观测器带宽太高就会把你解调时残留的高频毛刺直接放大角度波形就会抖成一条毛茸茸的曲线速度噪声也会扑面而来。有一个容易被忽略的联系是电流环带宽、注入频率、观测器带宽三者必须拉开层级。电流环带宽比如500Hz注入频率取1kHz观测器带宽取150Hz这样一层层往下剥每一级都有足够的频率隔离度。如果三个数值挤在一起整个系统就会表现出根源不明的振荡。4. 实操过程从初始位置辨识到闭环切入的完整流程4.1 初始位置辨识与N/S极判别脉振高频注入本质测出来的是磁轴方向但无法直接区分N极和S极。你的观测器收敛之后估计角度可能是真实电角度也可能差180度。如果不做处理这个180度的偏差在带载启动时会让电机反转一下甚至直接堵转。所以初始辨识需要两步。第一步用高频注入让观测器收敛到一个磁极方向这时候d轴跑到了真实d轴的附近。第二步利用磁饱和效应判别极性给d轴正方向一个短暂的电压脉冲再给负方向一个同样的电压脉冲对比两次产生的电流变化率。磁路在N极方向更容易饱和所以对应的电流变化率有细微差异通过这种不对称性就能确定真实的N极方向把观测器结果矫正过来。这一步在伺服和压缩机上尤其重要因为这类应用经常面临随机上电、停机位置未知的情况。我实际测试中如果省掉极性判别大概会有接近一半的启动失败概率所以千万别为了省时间跳过去。4.2 启动策略预定位、强拖与无缝切换从静止到低速运行不是简简单单把观测器跑起来就能直接闭环的。一个稳妥的启动流程我觉得应该这么走第一步是预定位如果允许动直接给一个固定的电流矢量把转子强行拉到已知位置。这个方法的代价是不可用于带载设备和有位置保持要求的场合但胜在简单。第二步是纯高频注入闭环启动观测器先辨识出初始位置然后速度环从零开始给斜坡指令电流和位置都跟着走。这个路径比较优雅但对初始辨识和极性判别的可靠性要求高。第三步是低速限速开环强拖切换到闭环压缩机类应用经常这么干先以同步频率旋转一段时间等到位置估算可信之后再做切换切换时要保证速度指令平滑衔接不然电流冲击会很大。我实际用得比较顺的是第二种。调试时重点观察从纯开环切到闭环的瞬间速度反馈是否有跳变电流是否有尖峰。如果切换瞬间电流冲击超过额定电流的50%基本可以判定切换条件太早或者估算角度还在收敛过程中。4.3 调试时的波形检查方法没有示波器这种工作基本没法做。我调试时会同时抓四路信号电机真实位置传感器信号如果实验台上装了编码器观测器估算角度速度估计值还有d轴电流给定。对比真实角度和估算角度之间的误差能看到收敛情况和动态滞后。实际操作中我最常抓的是一个高频电流解调前和解调后的波形。解调前的高频电流幅度在零速附近是很大的比基波电流还明显解调后的误差信号应该是一条平滑收敛的曲线。如果你看到解调后的误差信号还有明显的锯齿或毛刺多半是低通滤波器不够或者采样同步时机有问题。关于采样时机有一个很实用的技巧高频注入下的电流采样建议和PWM周期中点同步也就是在电流纹波最小的自然采样点触发ADC。如果采样点落在了注入电压变化剧烈的时刻高频锯齿噪声就会被采进来解调质量下降明显。这个点我最初调试时没注意后来调整PWM定时器的触发相位后角度波形噪声直接下降了一个量级。4.4 代码实现层面的伪代码结构为了把整个信号链表达得更清楚我写了一个简化的控制主循环结构。实际项目里还有各种状态机、保护逻辑这里只是一个信号链核心# 主循环每个PWM周期执行一次 theta_est 速度积分更新 theta_est_new # 注入信号在估计d轴电压上叠加余弦分量 U_d_ref Id_pi_out U_inj * cos(2*pi*f_inj * t_now) U_q_ref Iq_pi_out # 电流采样并变换到估计坐标系 [id_est, iq_est] park(Clarke(i_abc), theta_est_new) # 带通滤波提取q轴高频分量 iq_hp bandpass(iq_est, centerf_inj) # 同步解调 demod iq_hp * sin(2*pi*f_inj * t_now) # 低通滤波得到误差信号 err lowpass(demod, cutofffc) # 位置跟踪观测器PI omega_est Kp * err Ki * integral(err) theta_est Ts * omega_est这个结构看起来很简单但每一步的滤波器都是需要在调试中精心调整的对象。尤其要注意的是解调用的正弦参考相位如果和注入余弦相位没有对齐解调效率会下降等效于误差信号缩水观测器带宽实际达不到设计值。5. 常见问题与排查技巧实录5.1 典型故障现象速查表我整理了调试过程中比较常见的几类问题按现象、可能原因、排查方向列了个表方便实际对照。现象可能原因排查方向估计角度收敛慢解调相位不对误差信号太弱检查解调参考相位是否与注入信号对齐观测器PI带宽是否太低估计角度抖动明显低通滤波器截止过高电流采样点引起高频污染降低低通截止频率调整PWM采样触发点零速解锁后反转N/S极未正确判别加上极性判别脉冲验证N极方向带载启动失步初始辨识精度差重载下磁路饱和改变凸极性提高注入幅值校准饱和补偿表电机高频啸叫明显注入频率落在可听范围且幅值偏大提高注入频率出可听区降低注入幅值切闭环瞬间电流冲击大速度给定跳变角度还在动态误差阶段延长切换前观测器收敛时间平滑速度给定5.2 几个我亲历的比较刁钻的问题第一个是注入幅值提高后位置误差反而变大。这种情况通常出现在电机磁路进入深度饱和区间时真实的 (L_d - L_q) 不再是常数电感的饱和效应让误差信号出现了非线性畸变此时一味加电压不是解决办法应该反过来降低注入电压让电机勉强不饱和即可。第二个是低频力矩纹波表现为带着负载低速转动时速度有明显的周期性波动。这个往往不是观测器的问题而是注入信号本身在电流环里引起了一个固定频率的扰动和速度环产生了差频拍振。我当时的处理办法是把注入频率稍微挪几个百分点破坏差频关系纹波立刻减轻很多。第三个是位置估算在没有负载波形好好的一加载就开始飘。这类问题大概率出在负载引起的磁链变化反作用于凸极性上。可以试试动态增大注入幅值或者在观测器输出后串联一个针对负载频率的陷波器先把干扰频率点压住。不过这个属于比较靠后的优化手段前期应该先确保基波电流环和速度环的刚性足够。5.3 调试顺序与工具准备老规矩建议按三步走。第一步离线验证用实验台架和真实传感器对比估算角度在没有闭环压力下把解调链路调干净。第二步低速验证转速给定到额定10%以内逐步增加负载记录位置误差的动态行为。第三步综合验证覆盖零速启动、带载启动、正反转切换、负载突变等工况重点盯切换瞬间和负载突变瞬态。工具方面一台支持差分探头隔离的示波器是必需品电流探头也是必配的。很多时候角度抖动是不是电流采样噪声导致的电流波形比角度波形更能说明问题。如果再配上一个小功率的可调负载台来做重复性测试后续优化参数就能有量化的评估依据。6. 方案的适用边界与下一步扩展方向6.1 不是什么电机都能用适用前提梳理脉振高频电压注入有它的物理前提电机必须有可利用的凸极性。永磁同步电机里内置式永磁电机Ld和Lq差异明显天生适合表贴式永磁电机凸极率接近1传统脉振注入会非常吃力很可能需要依赖磁饱和效应制造人为差异或者在结构设计上做微小凸极。也有些场合不适合用高频注入比如转子结构完全对称、磁路线性度极好的电机注入再大也解不出有效信号。这种情况下要么改换方案比如使用基于扩展反电动势的观测器等待转速上来再切换要么从电机设计层面想办法引入不对称结构或饱和效应。6.2 向全速度域延伸高频注入与反电动势观测器的融合高频注入方案在中低速优势明显但它不是万能的。转速升高后反电动势信号变得很强高频电流响应相对变弱继续一味注入高頻信号反而会浪费直流母线利用率和带来额外损耗。成熟的工业方案一般是在低速段用高频注入中高速段切换到反电动势观测器中间做一个加权平滑的过渡。过渡区间的处理是个工程艺术。切换太早估算角度在高速段的收敛性还不够稳切换太晚注入损耗和噪声又拖累性能。我习惯在转速达到额定5%到10%之间开始做加权混合速度环输出做平滑位置估算在两个观测器输出之间线性过渡。如果不能平滑过渡切换瞬间的转矩跳变几乎不可避免负载端就会感觉到一个明显的冲击。6.3 一些偏工程向的后续优化如果想把这套方案再做深入几个方向可以考虑。第一是注入电压幅值的闭环调节在负载较轻时自动减小注入幅值降低噪音和损耗重载时再加大。第二是用自适应滤波器替代固定截止频率的低通这样在不同转速和负载下都能保持稳定输出。第三是补偿电感饱和特性通过离线或在线辨识把 (L_d) 和 (L_q) 的饱和曲线存成表减小饱和带来的位置偏差。这些属于锦上添花的进阶内容但要把产品从能跑到跑得好基本都要走到这一步。我个人做下来的体会是脉振高频电压注入方案的难点并不在于原理的理解而在于把每一个环节的延迟、噪声和匹配关系都调到互相妥协的最佳状态。滤波器级联带来的相位、注入幅值带来的噪声、观测器带宽带来的动态这三者始终在打架最终产品质量就看谁能在取舍之间找到那个平衡点。如果正在做低速无感FOC建议先搭一个带编码器反馈的试验台把估算角度和真实角度的误差波形看得清清楚楚再逐步解开传感器依赖。这条路走通了整套无感方案的地基就算打牢了。