一、先搞懂:我们要从 α、β 电压 / 电流算出转子角度 θ
无感 FOC 里,观测器会算出反电动势的 \\(E_\\alpha、E_\\beta\\) 两个正交分量,这两个值就相当于直角三角形两条直角边。
1. 直接反正切法(最简单粗暴)
公式:
理解:
,直接套数学公式算出这一刻角度。缺点很明显:
- 电流噪声、干扰会让
轻微跳变,算出来的 θ 会剧烈抖动; - 低速时反电动势幅值很小,信噪比差,角度直接算错、电机抖、甚至失步;
- 没有滤波、没有平滑,抗干扰极差,工程几乎不会单用。
二、PLL 锁相环角度跟踪(工程主流)
通俗类比:两个人同步走路
- 你手里有一份目标角度(观测出来的
对应的理想角度) - PLL 内部有一个自身不断累加旋转的虚拟角度(本地 θ)
和「本地预估的电动势」,算出角度偏差简单说: PLL 不是单次算角度,而是不断修正、平滑跟踪转子的旋转趋势。
PLL 核心 3 个优势
三、两者核心区别
四、补充一句话总结
- 反正切:拍照瞬间看位置,容易被干扰看错;
- PLL:盯着目标持续跟着走,不断微调自己的位置,走得又稳又准。
PLL 大白话通俗讲解(结合你无感 FOC 场景)
1、PLL 全称
锁相环 Phase Locked Loop 核心作用:让你内部虚拟出来的转子角度,死死跟着电机真实转子角度同步转动。
2、生活化例子
两个人并排匀速跑步:
- A = 电机真实转子(真实角度一直在匀速往前走)
- B = 程序里自己算出来的虚拟转子角度
3、放到无感 FOC 里干什么?
滑模观测器算出了反电动势 Eα、Eβ,能知道转子大概相位。
- 直接用反正切算角度:噪声一干扰,角度忽快忽慢、疯狂抖动;
- 用 PLL:做成闭环,不断修正角度偏差,输出平滑稳定的转子角度 θ。
简单三步:
4、PLL 两大好处
5、一句话总结
PLL 就是一个角度闭环跟踪器,不断修正程序内部的虚拟转子角度,让它精准、平稳跟上电机真实转子的转动相位。
没错,PLL 最早就是用来调时钟频率的,只是原理通用,被用到了电机角度跟踪上
1. 传统场景:单片机时钟 PLL(你认知里的调时钟)
芯片内部晶振通常只有几 MHz,主频跑不快。 PLL 锁相环把低频输入时钟,倍频成高频稳定时钟。 工作逻辑: 不断对比内部生成时钟相位、输入参考时钟相位,有相位差就微调频率,最终两个时钟频率相同、相位完全对齐,输出稳定高频时钟。
2. 电机无感 FOC 里的 PLL:只是同一个算法原理,用途变了
底层逻辑一模一样,只是锁定的对象从「时钟相位」换成了「转子角度相位」:
- 参考信号:滑模观测器算出的反电动势 Eα、Eβ(代表电机真实转子相位)
- 本地信号:程序里自己积分出来的虚拟转子角度
- 闭环动作:算出两者相位差,用 PI 不断修正虚拟转速,让虚拟角度永远跟着真实转子角度同步转。
两者本质完全一致
3. 为什么不用直接反正切,非要套 PLL?
反正切只是单次采样开环算角度,噪声会让相位疯狂跳动; PLL 是闭环锁相,自带滤波平滑,就算信号有干扰,也能死死咬住真实相位,不会频繁跳变,电机运行平稳不抖、不失步。
极简总结
PLL 是一类相位闭环跟踪算法,不是只能用来倍频调时钟:
- 电子硬件里:用来锁时钟、倍频、射频信号同步
- 电机控制里:用来锁转子角度,精准跟踪电机实时位置



