第1章:电流采样与标定——相电流采样电路原理、偏置校准、增益校准、三相电流重构技术
做电机控制这些年,我踩过最大的坑,就是电流采样。你想想看,FOC控制的核心就是电流环,电流都测不准,后面再好的算法也是白搭。这一章,咱们就把电流采样这件事彻底聊透。
1.1 相电流采样电路原理
先说最基本的。永磁同步电机需要采集两相电流,第三相通过基尔霍夫定律算出来。常用的采样方式有三种:
- 单电阻采样:成本最低,但重构算法复杂,低速性能差
- 双电阻采样:主流方案,两相下桥臂各一个采样电阻
- 三电阻采样:精度最高,但成本也最高
我个人习惯用双电阻方案。为什么?性价比最优。采样电阻一般选毫欧级的,比如5mΩ或10mΩ。太小了信噪比差,太大了发热严重。
关键参数:采样电阻的功率要留够余量。我曾经在一个48V/500W的项目里用了5mΩ/2W的电阻,结果满载运行时电阻烫得能煎鸡蛋。后来换成5mΩ/5W的,问题解决。
运放电路这块,常用的有差分放大和仪表放大两种。差分放大便宜,但共模抑制比差。仪表放大贵,但性能好。我建议对成本不敏感的项目直接用仪表放大器,比如INA240或AD8418,省心很多。
1.2 偏置校准
偏置校准,说白了就是消除零电流时的偏移电压。理想情况下,电机不转时,ADC读到的值应该是0。但实际电路中,运放有输入偏置、电阻有误差、ADC本身也有偏移,导致零电流时读到的不是0。
怎么做?很简单:
- 让电机静止,确保没有电流流过采样电阻
- 连续采样N次(我一般取100次),求平均值
- 把这个平均值作为偏置值存起来
- 后续每次采样都减去这个偏置值
我的经验:偏置校准最好在每次上电时做一次。温度变化会导致偏置漂移,如果环境温度变化大,建议每隔一段时间重新校准。我在一个户外项目中吃过这个亏——早上调好的偏置,中午太阳一晒,电流就偏了。
// 偏置校准示例代码
float offset = 0;
for(int i = 0; i < 100; i++) {
offset += adc_read();
delay_ms(1);
}
offset /= 100; // 得到偏置值
// 后续采样时
float current = (adc_read() - offset) * gain;
1.3 增益校准
偏置校准解决的是零点问题,增益校准解决的是斜率问题。说白了,就是让实际电流值和ADC读数之间建立准确的对应关系。
理想情况下,如果采样电阻是5mΩ,运放增益是50倍,ADC参考电压是3.3V,那么1A电流对应的ADC电压是:1A × 5mΩ × 50 = 0.25V。但实际电阻有误差,运放增益也有误差,所以需要校准。
注意:增益校准需要已知的精确电流源。我见过有人用万用表测电流来校准,但万用表本身也有误差。最好用精密电流源,或者用高精度电阻负载配合电压源。
增益校准的步骤:
- 给电机施加一个已知的直流电流(比如5A)
- 读取ADC值,减去偏置后得到原始值
- 用已知电流除以原始值,得到增益系数
- 多测几个点(比如1A、3A、5A),取平均值
| 实际电流(A) | ADC原始值 | 计算增益 |
|---|---|---|
| 1.0 | 205 | 0.00488 |
| 3.0 | 615 | 0.00488 |
| 5.0 | 1025 | 0.00488 |
你看,如果增益是线性的,三个点算出来的值应该差不多。如果偏差很大,说明电路有问题,需要排查。
1.4 三相电流重构技术
三相电流重构,主要针对单电阻采样方案。因为只有一个采样电阻,需要在一个PWM周期内多次采样,才能重构出三相电流。
基本原理是这样的:
- 在PWM周期的不同时刻,采样电阻上的电流对应不同的相电流
- 比如在A相上管导通、B相下管导通时,采样电阻上的电流就是A相电流
- 通过两次或三次采样,结合PWM占空比信息,可以算出三相电流
核心难点:当PWM占空比接近0%或100%时,采样窗口太短,无法完成采样。这就是所谓的「不可观测区域」。我做过一个项目,低速时电流重构完全失效,电机抖得像筛糠一样。
解决不可观测区域的方法:
- 移相法:在不可观测区域,微调PWM的相位,创造采样窗口
- 预测法:根据上一周期的电流值,预测当前周期的电流
- 混合法:低速用双电阻,高速用单电阻
我个人比较推荐移相法。虽然会增加一点电流纹波,但实现简单,效果也还行。预测法对算法要求高,搞不好会发散。
避坑指南:我曾经在一个项目中用了单电阻采样,结果发现电机在某个转速下电流波形畸变严重。查了两天才发现,是PWM频率和采样频率产生了拍频效应。后来把采样时刻锁定在PWM载波的固定位置,问题就解决了。
小结
电流采样这事,说难不难,说简单也不简单。偏置校准和增益校准是基本功,必须做好。三相电流重构是进阶技巧,用单电阻方案时一定要处理好不可观测区域。
下一章咱们聊电流环PI参数整定,那才是真正考验功力的地方。到时候我会分享几个我压箱底的调试技巧,保证让你少走弯路。