ArduPilot之开源代码电压/电流校准
1. 源由
关于inav/betaflight做了电压、电流的校准后,再来看Ardupilot的电流电压校准就比较容易,因为校准的原理都是类似的。
【1】BetaFlight开源代码之电压校准
【2】BetaFlight开源代码之电流校准
校准采用的方法都是一次线性拟合校准。
2. 校准公式
注:当BATT_MONITOR = 4的时候,系统采用ADC采样。其他数字模式(ESC、INA239_SPI等)采样就无需校准了。
2.1 电压校准
_state.voltage = (_volt_pin_analog_source->voltage_average() - _volt_offset) * _volt_multiplier
2.2 电流校准
_state.current_amps = (_curr_pin_analog_source->voltage_average() - _curr_amp_offset) * _curr_amp_per_volt
3. 校准参数
3.1 电压参数
- BATT_VOLT_PIN: Battery Voltage sensing pin
- BATT_VOLT_MULT: Voltage Multiplier
- BATT_VLT_OFFSET: Voltage offset
3.2 电流参数
- BATT_CURR_PIN: Battery Current sensing pin
- BATT_AMP_PERVLT: Amps per volt
- BATT_AMP_OFFSET: AMP offset
4. 实例校准
注:拟合工具,详见Linear regression calculator。
4.1 电压校准
默认配置通常:BATT_VLT_OFFSET = 0
从拟合曲线结果看,其实默认值非常准确。
因此,该目标板配置电压参数如下:
BATT_VOLT_MULT = 11
BATT_VLT_OFFSET = 0
4.2 电流校准
默认配置通常:BATT_AMP_OFFSET = 0
实测值还是有较大偏差的,拟合后会相对偏差小很多。
因此,该目标板和电调板,配置电流参数如下:
BATT_AMP_PERVLT = 55
BATT_AMP_OFFSET = 0
5. 参考资料
【1】BetaFlight开源代码之电压校准
【2】BetaFlight开源代码之电流校准
【3】ArduPilot开源飞控系统之简单介绍
【4】ArduPilot - Aocoda-RC H743Dual