【SimpleFOC】电流采样基础知识
一、电流采样知识基础
1.1.2、电流采样方式
电流采样主要有三种方式:
- 低侧电流采样
- 高侧电流采样
- 内置电流采样
1.1.2.1、低侧电流采样

低侧电流检测可能是最常见的电流检测技术,主要是因为它既不需要高性能的PWM抑制运放(如内置),也不需要支持高压的运放(如高侧),采样电阻在低侧MOS和GND之间,确保了运放输入端的电压非常低。这种方法的缺点是,必须在下桥臂MOS打开时检测电流,PWM频率通常为20k~50khz,这意味着低侧MOS的开关频率为每秒20k~50k次,因此PWM设置与ADC采集之间的同步非常重要。
1.1.2.2、高侧电流采样

高侧电流检测可能是最不常见的电流检测技术,因为它需要支持高压的运放,采样电阻在高侧MOS和直流电源电压之间,使放大器的输入端始终有高电压。 这种方法的另一个缺点和低侧电流采样一样,需要同步PWM和ADC。
1.1.2.3、内置(相线/线上)电流采样

内置电流检测(InlineCurrentSense)是使用起来最简单但是最精准的技术。 采样电阻串联在电机相线上,检测的电流始终都是电机相电流,因为电感中的电流不会突变,所以无论PWM占空比的状态如何,采样到的电流都是连续稳定的。
这种方法非常适合Arduino,采样程序变得简单了,这应该是考虑到了MEGA328P微弱的性能以及跨平台时程序的适配。内置电流检测的缺点主要在于芯片,需要比常规放大器更好的PWM抑制功能的高精度双向运放,简单的说就是硬件成本高。
二、电流采样相关硬件入门
2.1、INA240介绍
- INA240有四个型号,INA240A1是20倍放大倍数,INA240A2是50倍放大倍数。
- 电机的电流是正弦波,对于采样的差分信号来说,负半周期为负值,为方便处理,需要叠加上偏置电压(芯片内部已经实现)以保证全周期的输出为正值。
![image]()
2.3、SimpleFOC V2.0.3 的参数

- 采样电阻0.01 Ω
- 运放为INA240A2,放大倍数50
- 背面需分别短接A0/A2至输出
- C1_OUT=INA_VCC/2 + 0.01 * I * 50
- 如果INA_VCC=3.3V,C1_OUT=1.65 + 0.01 * I * 50,电流范围(-3.3A,3.3A)
- 如果INA_VCC=5.0V,C1_OUT=2.50 + 0.01 * I * 50,电流范围(-5A,5A)
- B相采样输入在PCB上为走线方便做了反向输入,所以放大倍数需乘以 -1(移植后的代码已经做了处理)。
2.4、PowerShield V0.2 的参数

- 采样电阻0.001 Ω
- 运放为INA240A2,放大倍数50
- C1_OUT=1.65 + 0.001 * I * 50,电流范围(-33A,33A)
三、SimpleFOC 的三种扭矩模式与电流采样的关系
SimpleFOC中有三种扭矩模式:
- Voltage mode - the simplest one
- DC current mode - 1xPID controller + 1xLPF
- FOC current mode - 2xPID controller + 2xLPF filters
3.2.1、电压模式(Voltage mode)
- 电压模式是之前示例中一直使用的模式,
- 因为不用采样电流,所以硬件简洁,程序简单,执行速度快,
- 适合低速电机控制
![image]()
3.2.2、直流模式(DC current mode)
- 检测电流大小,实现电流环控制
- 只控制Iq,设置Vd=0,
- 像控制直流电机一样控制无刷直流电机的电流
![image]()
3.2.3、FOC模式(FOC current mode)
- 控制Iq和Id,使转子中的磁力与永磁场精确偏移90度,从而确保最大转矩,
- 唯一真正的转矩控制方法,
- 保证电机始终工作在高效状态
![image]()
3.2.4、三种模式对比






浙公网安备 33010602011771号