1、零位校准概述:为什么需要零位校准?

做 SVPWM 调制的朋友都知道,零位校准是个绕不开的坎。我刚开始搞电机控制那会儿,总觉得这步可有可无——反正算法算出来的是电流差值,偏一点应该没事吧?结果呢,电机低速抖得像筛子,高速还时不时来个过流保护。后来才明白,零位误差不干掉,整个 FOC 都是空中楼阁。

说白了,零位校准就是让 ADC 采样到的“零电流”真正对应物理上的 0A。你想想看,如果采样偏了 50mA,在额定电流 10A 的系统里好像不算啥。但到了低速轻载工况,这个偏置可能占到你实际电流的 20% 以上。那转矩脉动、转速波动就全来了。

零位误差的来源分析

零位误差不是单一原因造成的。我习惯把它拆成三个层面来看:硬件偏置、温度漂移、量化误差。下面这张图能帮你快速建立整体认知。

零位误差三大来源 零位误差 电流采样偏置 运放温漂 ADC量化误差 运放输入失调电压 Vos PCB 布局引入的共模干扰 温度每升高 10°C 漂移量 长时间工作后的热积累效应 LSB 量化台阶 ±0.5 LSB 采样时序抖动引入的噪声

电流采样偏置

这是最直接的误差源。运放本身就有输入失调电压 Vos,我见过便宜的运放 Vos 能到 ±5mV。配合采样电阻 0.01Ω,算下来就是 ±0.5A 的偏置。嗯,这个量级在低速段基本没法用。

另外,PCB 布局也会引入偏置。采样走线如果跟大电流回路靠太近,地平面上的压降会直接叠加到采样信号上。我曾经在一个项目里排查了三天,最后发现是采样电阻的 Kelvin 连接焊盘被覆铜拉偏了 0.5mm,硬生生多了 2mV 的偏置。

运放温漂

温度漂移是零位校准最头疼的问题。你可以在 25°C 把偏置校得干干净净,但电机跑半小时,驱动器内部温度升到 60°C,偏置又回来了。

运放的温漂系数通常用 μV/°C 表示。普通运放大概 10~20 μV/°C,好一点的能做到 1 μV/°C 以下。从 25°C 升到 85°C,60°C 温差下,普通运放会漂出 0.6~1.2mV。换算到电流域,就是几十到几百毫安的误差。

注意: 温漂是动态的,不能靠一次校准搞定。我见过有人只在上电时做一次零位校准,结果电机跑热后电流波形明显不对称。解决方案要么用低温漂运放,要么做在线实时校准。

ADC 量化误差

ADC 的量化误差是原理性的。12 位 ADC 参考电压 3.3V,LSB 就是 3.3V / 4096 ≈ 0.8mV。配合采样电阻 0.01Ω,每个 LSB 对应约 80mA 的电流分辨率。

你想想看,如果零电流时 ADC 读数是 2048,但实际物理零电流对应的可能是 2048.3。这个 0.3 的尾数被截断或四舍五入,就产生了 ±0.5 LSB 的量化误差。换算到电流域,就是 ±40mA 的不确定性。

这个量级在高速大电流时无所谓,但在低速轻载时就很要命了。我习惯的做法是:在零位校准时做多次采样取平均,把量化噪声压下去。比如采 64 次求平均,量化误差可以降低到原来的 1/8 左右。

三种误差的对比

误差类型 典型量级 时变特性 校准策略
电流采样偏置 ±0.5A ~ ±2A 基本固定(上电后不变) 上电一次校准
运放温漂 ±0.1A ~ ±0.5A 随温度缓慢变化 在线实时校准
ADC 量化误差 ±0.04A ~ ±0.08A 随机噪声 多次采样平均
我的经验: 做零位校准不要只盯着一种误差。我习惯先做上电静态校准干掉偏置,再用软件滤波压制量化噪声,最后留一个温漂补偿的接口。这样三层下来,零位误差基本能控制在 ±10mA 以内,低速性能就有保障了。