1. 采样同步问题概述:FOC 的“心跳”乱了吗?
做 FOC 控制,说白了就是跟电流、速度、位置这三个家伙打交道。你想想看,每次控制周期,DSP 或者 MCU 都要先采样电流,然后扔进 Clark/Park 变换,算 PI,再发 SVPWM。这一套流程,就像人的心跳——得有个稳定的节拍。
但问题来了:采样时刻和 PWM 更新时刻,真的能完美对齐吗?
我在项目里遇到过好几次,电机低速时转得好好的,一加速就开始“嗡嗡”叫,电流波形像锯齿。查了半天,不是 PI 参数的问题,是采样点踩在了 PWM 开关噪声上。嗯,这就是典型的采样同步问题。
什么是 FOC 采样同步问题?
简单说,就是 ADC 采样电流的时刻,没有落在 PWM 载波的“干净窗口”里。FOC 依赖电流反馈,如果采到的电流里混入了开关噪声、死区毛刺,那算出来的电压矢量就是错的。
理想情况下,我们希望每次都在 PWM 载波的波峰或波谷——也就是开关管动作结束、电流最平稳的时刻——触发 ADC。但实际工程中,PWM 频率、载波模式、死区时间、甚至代码执行时间,都会让这个“理想时刻”偏移。
为什么它如此重要?
我直接说结论:采样不同步,FOC 就是“盲人摸象”。
- 电流畸变: 采到噪声,电流环 PI 输出抖动,转矩脉动增大。
- 速度波动: 电流环不稳,速度环跟着晃,低速时尤其明显。
- 效率下降: 谐波电流增加铜耗,电机发热。
- 极限工况失效: 弱磁区或重载时,一个错误的采样值可能触发过流保护。
我记得有一次调试 48V 低压伺服,客户要求零速带载 200% 不抖动。我花了三天调 PI,纹波始终降不下来。最后用示波器一看,ADC 触发点正好落在 PWM 死区结束后的振铃上。把采样点往后挪了 1μs,问题直接解决。你看,同步问题不解决,参数调得再好也白搭。
它如何影响电机控制性能?
咱们从三个维度来看:
| 性能维度 | 同步良好 | 同步不良 |
|---|---|---|
| 电流 THD | <3% | 5%~15% |
| 转矩脉动 | <1% 额定转矩 | 3%~8% 额定转矩 |
| 速度环带宽 | 可达 200Hz+ | 通常<100Hz |
| 零速带载能力 | 稳定 | 抖动甚至失控 |
你想想看,电流 THD 从 3% 涨到 15%,电机能不烫吗?转矩脉动大了,位置控制精度直接报废。我见过一个做协作机器人的朋友,他的关节电机空载跑 FOC 没问题,一装上负载就“嘎嘎”响。最后发现是采样窗口没对准,电流反馈里混入了 200kHz 的开关毛刺。滤波器加狠了,相位滞后又太大,速度环振荡。这就是典型的“同步问题引发连锁反应”。
采样同步问题的根源在哪?
我个人习惯把原因归为三类:
- PWM 载波模式选择: 中心对齐还是边沿对齐?对称 PWM 还是不对称 PWM?不同模式下的“干净窗口”位置不同。
- 死区与开关暂态: 死区时间内的续流过程会产生电压尖峰和振铃,如果采样点落在这个区间,噪声直接进入 ADC。
- 代码执行时间抖动: 中断响应延迟、条件分支耗时不同,导致 ADC 触发时刻在每个周期内漂移。
一张图看懂采样同步问题
下面这张图展示了 FOC 控制周期内,PWM 载波、ADC 采样、算法计算、PWM 更新之间的时序关系。红色区域就是“危险区”——开关噪声高发地带;绿色区域是“安全窗口”——理想的采样触发区间。
小结
采样同步问题,是 FOC 工程化的第一道坎。它不复杂,但容易被忽略。很多新手把精力全花在 PI 参数整定上,却不知道反馈信号本身就是脏的。后面的章节,我会带你一步步拆解:如何选择 PWM 模式、如何配置 ADC 触发、如何处理死区影响、如何用硬件和软件方法实现精确同步。
嗯,先把基础打牢,后面才能跑得快。