news 2026/10/1 2:57:12

无传感器永磁同步电机零速控制:高频注入估算转子位置全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
无传感器永磁同步电机零速控制:高频注入估算转子位置全解析

无传感器永磁同步电机控制做到低速和零速段,几乎所有人都被同一个问题卡住:反电动势法在这个区间信号太弱,根本看不见转子位置。电机还没装编码器,又要零速带额定转矩,这个时候高频注入就派上用场了。这篇文章把“高频注入到底是怎么估算转子位置的”这条链路完整拆开,从电机内部的凸极性原理、高频信号的注入与解调、位置误差的闭环收敛,到实际台架上怎么选频、怎么调参、怎么避坑,一次讲清楚。适合刚接触无传感器控制的工程师,也适合已经跑通仿真但想在实物上加深理解的人。

1. 零速与低速下的“失明”问题,以及被忽视的凸极性

1.1 反电动势法为什么在零速失效

绝大多数无传感器算法依赖反电动势,永磁同步电机的反电动势大小和转子速度成正比,公式很直接:

e = ω·ψf

转速趋近于零时,反电动势也趋近于零,一个0.1V级别的信号混在逆变器死区、采样噪声和电流纹波里,任何观测器都很难把它分离出来。就算转速到几百转,反电动势也常常只有额定电压的百分之几,信噪比很低。所以传统反电动势法在低速和零速段基本等于“失明”。

这时候必须切换另一种物理量来获取位置信息,而可用的手段就是转子本身对定子电感造成的“不对称”。电机不通电的状态下,我们依然可以用外加高频小信号去“探测”转子的角度,这就是高频注入的出发点。

1.2 凸极性:转子留在定子侧的方向指纹

内置式永磁同步电机(IPMSM)里,转子永磁体在磁路上造成了两个方向明显不同的磁阻:直轴d轴方向上磁路因为永磁体的存在,磁阻较大;交轴q轴方向磁阻较小。反映到定子电感上,就是d轴电感与q轴电感不等,通常Ld < Lq,这个差异用凸极率ρ = Lq/Ld来表示,IPMSM的凸极率可以到2到4。

这个差异和转子位置是硬绑定的,因为d轴就是永磁体磁场方向,转子转了多少度,d轴就跟着转多少度。所以只要定子侧能识别出“哪条路径电感大、哪条路径电感小”,就相当于拿到了转子的方向信息。

哪怕表贴式永磁同步电机(SPM),Ld和Lq在空载时接近相等,但一旦通入负载电流,磁路饱和,d轴和q轴方向饱和程度不同,依然会出现“饱和凸极性”,只是原理稍微绕一点。这也是很多表贴式电机在空载零速下高频注入收敛慢、加载后才稳定下来的原因。

1.3 旋转注入与脉振注入:两种思路的取舍

高频注入在实现上有两大流派。第一类是旋转高频电压注入,在静止αβ坐标系里注入一个高速旋转的电压矢量,由于转子凸极性会对高频电流进行调制,电流响应会分裂成正序和负序两个分量,负序分量的相位里直接带有2倍转子位置信息。第二类是脉振高频电压注入,在估计的转子dq坐标系d轴方向注入高频余弦电压,然后在正交的q轴方向读取误差信号。

旋转注入不需要建立估计坐标系,算法直接工作在静止坐标系,对凸极性要求相对宽松;脉振注入则是建立在闭环估计坐标系上的,更适合低速带载的工况,也更容易叠加饱和补偿。实际产品里,零速大转矩启动、压缩机、电动工具这类应用,脉振注入出现得更多。下文重点拆脉振注入,因为它的误差链路特别能体现原理本质。

2. 高频信号从注入到解调:铁芯电感如何“刻写”位置信息

2.1 高频电压作用下的电流响应为什么是纯电感性的

高频注入的“高频”是相对正常驱动频率而言的,一般选500Hz到2kHz之间。在这个频段,定子电阻的阻抗相对感抗可以忽略,高频电压和电流的关系近似变成:

v ≈ j·ωh·L·i

也就是说,在高频激励下,电机定子端看进去基本是一个纯电感,而电感值取决于电流在d轴和q轴之间的方向分布。如果转子位置变了,等效电感方向就变,高频电流的幅值和相位都会跟着变。这就是高频信号能够“读出”转子位置的根本原因。

这也是为什么不能用直流或低频信号的原因:低频段电阻压降不可忽略,而且反电动势、电流环调节器都会和你注入的信号搅在一起,很难分离。

2.2 位置误差如何被电感矩阵“挤”到q轴方向

脉振注入的核心动作是:在估计的d轴上注入高频电压,在估计的q轴上读取电流响应。这里的关键是理解“估计轴”和“真实轴”不一致时会发生什么。

假设估计的转子角度θ̂和真实角度θr之间存在误差Δθ = θ̂ - θr。我们在估计d轴(d̂轴)上施加电压Vhf·cos(ωh·t),这个电压变换到真实的dq坐标系后,在真实d轴和真实q轴上都会出现分量,因为两个坐标系之间夹了一个Δθ。

真实d轴和q轴电感不同,所以这两个方向上的高频电流响应幅值不同。当我们把这些电流再变换回估计dq坐标系时,原本应该在d̂轴上的对称响应会有一部分“漏”到q̂轴上去。这个漏出来的分量经过推导,可写成:

i_q̂ ≈ [Vhf·(Lq - Ld)/(2·ωh·Ld·Lq)]·sin(2Δθ)·sin(ωh·t)

先别急着跳过,这个式子是整个高频注入的命根子,三层意思必须理解透:

第一,这个信号出现在你注入电压的正交方向上。你沿d̂轴给电压,却在q̂轴看到响应,这不是故障,恰恰说明两个坐标系没对齐。

第二,这个响应的幅值正比于sin(2Δθ)而不是sin(Δθ)。因为电磁量在180度旋转下会回到相同的状态,电感是二阶张量,天然带有180度对称性,所以位置误差信号以π为周期。这就引出一个大坑:单纯靠脉振注入只能把转子位置定到0度或180度,后面必须做磁极极性判断,这个第三章节展开。

第三,整个式子前面那个系数,由注入电压幅值、注入频率、d/q轴电感决定。凸极性越明显(Lq-Ld越大),同样的注入电压产生的误差信号越强,辨识能力越好。

2.3 乘积检波:把位置误差信号从高频载波上摘下来

现在高频电流响应里扛着位置信息,但它是叠加在ωh这个高频载波上的,没法直接送给控制器用。工程上采用一种最经典的幅度解调手段:乘积检波。

把i_q̂与本地参考信号sin(ωh·t)相乘:

i_q̂·sin(ωh·t) = A·sin(2Δθ)·sin²(ωh·t) = A·sin(2Δθ)·(1 - cos(2ωh·t))/2

其中A就是前面式子里的系数。乘积之后出现了一个低频项A·sin(2Δθ)/2,以及一个2倍注入频率的谐波项。用一个低通滤波器滤掉2ωh分量,剩下的就是随位置误差缓慢变化的直流信号:

ε = (Vhf/(2·ωh))·((Lq-Ld)/(Ld·Lq))·sin(2Δθ)

到这里,转子位置信息就从高频载波上“卸”下来了。整个过程有点像收音机的检波:先用本地振荡器混频,再用滤波器把高频载波扔掉,只留下调制在载波上的源信号。

这里有个容易被跳过但很关键的实操细节:用来做乘积检波的参考信号sin(ωh·t)必须和注入信号严格同步,并且要考虑数字控制带来的相位延时。如果参考信号的相位偏了,解调出来的误差信号的增益会下降,严重时还会引入一个固定的位置偏置,这个到第四章再细说。

2.4 关于“高频”二字的真实含义

很多人会问,这个高频到底多高?我自己的理解是三层约束叠出来的区间。

第一,要高于电流环带宽。因为电流环调节器对基波电流进行控制,如果注入频率落在电流环带宽以内,就会被调节器当作干扰强行压掉,注入效果很差。所以注入频率通常选在电流环带宽的2到5倍以上。

第二,要远低于开关频率。PWM逆变器输出电压是通过占空比实现的,注入分量的频率要落在PWM可控范围里,经验值是不超过开关频率的十分之一,开关频率10kHz时,注入频率一般取1kHz左右。

第三,要留出滤波器分离的余量。2ωh这个倍频分量要靠低通滤波器滤除,如果注入频率太低,2ωh离误差信号的带宽太近,滤波器就很难设计,要么动态慢,要么滤不干净。

这个区间一旦想清楚,选频率就有方向了,不是上来就拍一个数字,而是先看电流环带宽、开关频率、噪声要求,再定。

3. 位置误差信号闭环收敛:观测器参数与零速保持

3.1 误差信号为什么不能直接当角度用

解调出来的ε = A·sin(2Δθ),在Δθ比较小的时候可以近似A·2Δθ,看起来像一个线性位置误差。但这里有个现实问题:系数A和电机参数直接挂钩,Ld、Lq一个变化,同样的Δθ对应的ε幅值就变了。而Ld、Lq在工作时会随电流和温度移动,凸极率也不是恒定值。

如果把原始ε直接送进PLL,换一台电机就要重新调增益,同一台电机带载前后增益还会漂。工程上最省心的做法是对ε先做归一化处理:除以一个估计的增益Â,得到一个无量纲的位置误差项:

ε_norm = ε / Â ≈ sin(2Δθ) ≈ 2Δθ

归一化的意思就是不让观测器增益和电机参数绑定。Â的获取有两种常用途径:离线标定,在台架上手动给已知角度偏置,记录ε的幅值波动来拟合;或者在线估计,通过记录最大最小值自适应更新。

3.2 用PLL把位置误差收敛成角度和转速

位置误差信号拿到后,剩下的问题是“怎么让它归零”。最直接的方式是锁相环PLL:把ε_norm当作相位误差,通过PI调节器输出转速估计值,再积分得到角度估计值。

离散化的实现可以写成类似于下面的形式:

// 位置误差输入: eps_norm // 输出: theta_hat, omega_hat double eps_norm = get_normalized_error(); // PI 调节 integral += Ki * eps_norm * Ts; omega_hat = integral; // 角度积分 theta_hat += (omega_hat + Kp * eps_norm) * Ts; // 角度归一化到 [0, 2π) theta_hat = wrap_to_2pi(theta_hat);

当ε_norm为正,说明估计角度超前还是滞后?根据符号约定,误差信号会驱动θ̂向减小的方向调整,最终收敛到θ̂ = θr(或θr + π,这个歧义一会儿说)。整个闭环里没有直接使用任何反电动势信息,所以转速为零时这个观测器照样工作,这就是高频注入能在零速保持角度的核心原因。

3.3 观测器带宽怎么定

PLL在这里的本质是一个二阶观测器,可以用经典的二阶系统方程来设计参数。设闭环阻尼ζ = 0.7,带宽为f_bw,则自然角频率ωn = 2π·f_bw,PI参数直接按以下关系设定:

Kp = 2·ζ·ωn Ki = ωn²

举个例子,50Hz带宽时,ωn = 314rad/s,Kp ≈ 440,Ki ≈ 98600。100Hz带宽时,Kp ≈ 888,Ki ≈ 394784。参数数量级先算出来,再放到台架上微调,比盲目试要快得多。

带宽的选择是动态响应和噪声抗性的折中。带宽越高,带载突变时角度收敛越快,但解调链路里的噪声和死区谐波也更容易透进来,反映为电流抖动甚至角度震颤。带宽太低,重载阶跃时可能出现瞬间失步。我的经验是先按100Hz起步,跑通零速带载后再根据阶跃响应微调,一般不超过300Hz。

3.4 磁极极性:为什么必须多做一个脉冲检测

前面强调了误差信号是sin(2Δθ),周期为π。这意味着PLL稳定点既可能是0度,也可能是180度,也就是说,你只能确定转子轴线,却不知道永磁体N极朝哪边。对永磁同步电机来说,这差的就是半个磁极矩,足以让电机起不来甚至反转。

常用的解决方法是脉冲极性检测:待角度收敛后,在估计的d轴方向上先后施加正、负两个短时脉冲电压,分别记录d轴电流峰值。如果正脉冲产生的电流峰值大,说明d̂正方向指向N极;反之则说明θ̂差180度,要把估计角度加π修正。

为什么正反向的电流峰值会不一样?因为磁路饱和的非线性:正向d轴电流会加深永磁体磁路饱和,电感变小,电流峰值变大;反向电流使磁路退出饱和,电感变大,电流峰值变小。这个不对称性正好泄露了磁极极性。

这个步骤在实际工程里必须做在启动时序里,不能省。很多仿真里不体现,一上实物就栽跟头。

4. 注入频率、幅值和滤波器的取舍,一份来自台架的调参记录

4.1 一组实用的初始参数参考表

我调过的一台2.2kW内置式永磁同步电机,具体参数可以作为参考起点:

参数取值说明
开关频率10kHzPWM载波频率
电流环带宽1kHz左右电流环闭环带宽
注入频率1kHz约为电流环带宽的1倍,但低于开关频率1/10
注入幅值0.1倍额定电压折算为调制比约10%
解调低通滤波器二阶巴特沃斯,300Hz保留位置误差信号,滤除2kHz分量
PLL带宽150Hz零速带载稳定,角度噪声可接受
极性检测脉冲0.1倍额定电压,持续0.5ms宽度要避开电流采样纹波区

这个配置跑下来,零速带额定转矩时位置估算误差约±3度电角度,启动阶跃不掉步。如果把注入幅值从10%降到5%,解调出的ε幅值明显缩小,噪声占比变大,带载阶跃时角度开始出现短时失步。幅值的作用是直接提升信噪比,而不是提高“精度”,这一点要分清。

4.2 注入频率的三重限制,实际计算一次

假设开关频率10kHz,电流环带宽实测1kHz,候选注入频率就落在哪里?首先,低于500Hz容易被电流环吃掉;高于2kHz时,一个开关周期内注入信号只有5个调制点,波形畸变严重,而且2ωh成分进入开关附近噪声区。

我实测比较过几个注入频率点:

  • 800Hz:解调信号清晰,但和电流环带宽靠得太近,带载时基波瞬态会明显串入高频链路。
  • 1kHz:分离度和PWM分辨率均衡最好,最终采用。
  • 1.5kHz:电流响应幅值下降,需要额外加大注入电压才能维持同样的ε幅值。

所以我的经验是,注入频率f_inj大体取在开关频率的1/10附近,同时以电流环带宽的1.5到3倍来检验。如果有条件,直接在台架上扫频看等效高频电感的信噪比,那是最准的。

4.3 滤波器延迟:一个容易被忽视的角度偏置源

解调链路里的低通滤波器会给位置误差信号引入相位延迟。直观理解是:位置误差信号本来就是缓慢变化的信息,你用一个低通滤波器去滤除2ωh,滤波器会同时滞后缓慢变化的误差信号,导致误差信号晚到一会儿,观测器输出的估算角度就会滞后真实位置。

这个滞后量随滤波器阶数和截止频率升高而增大。二阶巴特沃斯300Hz低通在100Hz带宽PLL下的滞后,大致可以通过仿真或实测折算成固定角度,然后做一个前向补偿:在角度估算值上加一个固定偏置,或在滤波前对信号做相位补偿。

工程上还有个偷懒但有效的验证办法:电机堵转,用外部编码器对照估算角度,慢速转动给定参考位置,看估算角度滞后了多少,记录下来直接做成补偿表。这个办法适合产品快速落地。

4.4 调参顺序建议,别一上来就动PLL

我在现场调这类系统的顺序固定是四步:

  1. 电机不闭环,直接给纯高频注入指令,看相电流波形里有没有清晰的高频分量,确认硬件链路导通。
  2. 电机堵转,手动在程序里设置几个不同的初始角度偏置Δθ,读解调出来的ε值,画出ε与Δθ的关系曲线,确认sin(2Δθ)的形态和符号方向符合推导。
  3. 按目标PLL带宽用公式算出Kp、Ki,接入闭环看启动收敛过程。
  4. 逐步加载,观察位置误差噪声和失步边界,再回头调整注入幅值和滤波器截止频率。

直接上来就调PLL增益等于盲人摸象,先看误差信号质量才是正路。

5. 台架实测避坑:交叉饱和、死区与磁极极性的处理

5.1 交叉饱和导致的位置偏移:加载后角度越偏越多

单独靠基本脉振注入的模型做一个零速空载试验,位置估算往往是准的,但一旦施加q轴负载电流,会发现估算位置和真实位置之间出现一个随电流增大的偏置角。这个偏置来自交叉饱和。

磁路里的d轴磁动势和q轴磁动势会互相影响,导致电感矩阵出现非对角项Ldq,这时高频电流响应里除了sin(2Δθ),还会混进一个与负载电流相关的相位偏移。表现在电机端,就是你明明收敛得很好,但实际输出的力矩方向偏了,严重时三相电流不对称,噪声变大。

工业级方案通常是通过离线标定建立补偿表:在不同id、iq网格点下测量位置估算偏差,生成二维表,运行时查表补偿。偷懒一点的方案,至少要在对拖台架上用编码器测一条“位置偏差-负载电流”曲线,做一维补偿。如果不做这一步,高频注入方案在重载工况下就别指望精度。

5.2 死区、电流采样和噪声:高频信号是脆弱信标

高频注入本质上是靠很小的电流响应来推断位置的,响应幅值往往只有额定电流的几个百分点。逆变器死区造成电压畸变在这个尺度上影响非常大,死区引起的谐波会直接淹没解调的误差信号。

实测里我遇到过这样的情况:死区补偿打开后,零速位置的抖动从±5度降到±1.5度,改善非常明显。所以只要做高频注入,死区补偿就不应该当作可选项,而是基本项。

电流采样也建议放在PWM中心点,避开死区边沿和开关瞬态。如果传感器噪声确实大,可以先用一个带通滤波器只保留注入频率附近的高频电流分量,再做变换和混频,这样既能滤掉基波分量,也不会让宽带噪声进入解调链路。

5.3 启动时序:角度收敛、极性修正、再加负载

正确的高频注入启动流程在我这边的实现是:

  1. 检测到启动指令后,先仅发高频注入电压,不加基波电流指令。PLL把角度收敛到转子轴线方向,此时可能是0度或180度。
  2. 执行一次脉冲极性检测,必要时将角度修正π。
  3. 验证角度在预设窗口内稳定后,再切入电流闭环,给定初始电流,让电磁转矩按正确方向建立起来。
  4. 速度抬升到反电动势法可靠区间后,再逐步衰减高频注入分量,切换到常规无传感器算法。

这个时序每一步都不能省,尤其第二步。有的方案会把极性检测融合到高频信号本身,用二次谐波的方向来判断,但实现复杂度高,普通项目用脉冲法就足够稳。

关于“高频注入是低速万能药”这个印象,我也想纠正一下。它对凸极性明确的IPMSM非常有效,对低凸极的表贴式电机则要依赖饱和凸极性,空载工况下信号弱、可靠性差。此外,高频注入在零速和低速区间性能很好,但中高速段它比不过反电动势法,两种方法必须配合切换使用。这是我见过很多新人在方案评估时最容易误判的地方。

调高频注入的这一路,我最深的体会是:它本质上是一门信噪比工程,从注入信号到解调误差,每一级都在跟噪声做斗争。把每级的信号大小算清楚,再决定该加幅值还是该收滤波器带宽,比抱着参数在那里瞎试要快得多。如果你第一次调这类系统,建议先把电机锁在台架上,手动改变位置偏置,亲眼看一下解调出来的ε随Δθ变化的波形,那个波形出来的一瞬间,整个原理才算真正通了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 2:56:58

k8s的弹性伸缩

k8s弹性伸缩 自动扩缩容HPA 要实现扩缩容得先安装Metrics Server服务&#xff0c;因为自动扩缩容是通过监控容器得cpu或者memory得上限来实现弹性伸缩的&#xff0c;在 Kubernetes 集群中&#xff0c;Metrics Server 是一个用于收集和聚合集群内部组件的性能指标数据的服务。它…

作者头像 李华
网站建设 2026/10/1 2:55:45

RoPE 旋转位置编码

RoPE 旋转位置编码RoPE (旋转位置编码)流程step0 计算转速step1 算每个 token 的旋转角step2 求 cos / sinstep3 用 cos / sin 旋转 token&#xff08;作用到 Q 和 K&#xff09;总结RoPE (旋转位置编码) 流程 step0 计算转速 对于每个token xixixi,转速θ为[θ0,&#xff0…

作者头像 李华
网站建设 2026/10/1 2:55:43

Wi-Fi 电表选型的软件开发视角 —— 数据模型、寄存器和 CT 配置

Wi-Fi 电表选型&#xff0c;硬件上看电流接入和安装空间&#xff0c;软件上看数据模型好不好解析、云接口顺不顺、CT 变比怎么配。这一篇从开发者角度把三款产品的软件差异讲清楚。 选型三个问题对应三种数据结构 Wi-Fi 电表选型的三个基础问题 —— 单相还是三相、直连还是 …

作者头像 李华
网站建设 2026/10/1 2:55:28

EasyClick苹果自动化脚本怎么选路线?先看你每天要重复做什么

别先挑技术&#xff0c;先说你每天在做什么 问「苹果自动化脚本该选哪条路线」的人&#xff0c;多半已经看过一圈资料&#xff0c;知道有代理、有 USB HID、有蓝牙 HID&#xff0c;甚至知道各自的系统要求。但看完还是不知道选哪个。 原因是问错了顺序。路线不是选出来的&#…

作者头像 李华
网站建设 2026/10/1 2:55:28

后端0名额AI岗全批,薪资高20%,纯后端标签贬值如何破局?

后端0名额AI岗全批&#xff0c;薪资高20%&#xff0c;纯后端标签贬值如何破局&#xff1f; 近期脉脉上一则用户讨论揭示出强烈反差&#xff1a;Q3盘点中&#xff0c;某团队后端0名额获批&#xff0c;反而全批了2个AI应用工程师岗&#xff0c;且薪资高出后端20%。原帖用户讨论称…

作者头像 李华
网站建设 2026/10/1 2:54:37

开源的 HeyGen 替代方案: 做数字人视频,不用自己备显卡。

HeyGen 的开源答案——MuseTalk、Duix-Avatar、daVinci-MagiHuman——大多是要你自己托管的模型权重&#xff0c;也就是先备一块显卡、再花一天把环境搭起来&#xff0c;才能出第一个片段。Orkas 是 MIT 开源&#xff0c;装起来就是一个普通的桌面应用&#xff0c;但生成走的是…

作者头像 李华