1、零位校准概述:为什么需要零位校准?
做 SVPWM 调制的朋友都知道,零位校准是个绕不开的坎。我刚开始搞电机控制那会儿,总觉得这步可有可无——反正算法算出来的是电流差值,偏一点应该没事吧?结果呢,电机低速抖得像筛子,高速还时不时来个过流保护。后来才明白,零位误差不干掉,整个 FOC 都是空中楼阁。
说白了,零位校准就是让 ADC 采样到的“零电流”真正对应物理上的 0A。你想想看,如果采样偏了 50mA,在额定电流 10A 的系统里好像不算啥。但到了低速轻载工况,这个偏置可能占到你实际电流的 20% 以上。那转矩脉动、转速波动就全来了。
零位误差的来源分析
零位误差不是单一原因造成的。我习惯把它拆成三个层面来看:硬件偏置、温度漂移、量化误差。下面这张图能帮你快速建立整体认知。
电流采样偏置
这是最直接的误差源。运放本身就有输入失调电压 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 | 随机噪声 | 多次采样平均 |