跳到主要内容

电池监控

Betaflight 提供电池监控功能。系统可测量主电池电压,并据此触发低电量蜂鸣器警报、板载状态 LED 闪烁以及 LED 灯条显示模式。

低电量警报可以:

  • 为飞行器安全着陆预留时间;
  • 维护 LiPo/LiFe 电池的使用寿命与安全性,避免将其放电至低于制造商建议的电压。

可以设置单体最高和最低电压;首次接入电池时,系统会据此自动识别电池的串数。

由于系统仅使用一个 ADC 读取电池电压,因此不支持逐单体监控。

支持的目标板

除非另有说明,所有目标板均支持电池电压监控。

接线

处理电池时,务必检查极性!

请先测量预期电压,再连接飞控。错误电压或反接极性为飞控供电,很可能会烧毁飞控。请确认飞控的分压器能够测量所用电池的电压。

Naze32

Naze32 带有板载电池分压电路;只需将主电池接至 VBAT 接口。

注意: 安装主电池至 VBAT 接口的连线前,务必先断开主电池与机架/配电板的连接。重新接通电池前,请仔细检查接线。错误接线可立即且彻底损坏飞控及其已连接的外设(ESC、GPS、接收机等)。

CC3D

CC3D 没有电池分压器。若要使用电压监控,必须制作一个分压器,使主电池充满时的输出电压最高为 3.3 V。将分压器输出接至 S5_IN/PA0/RC5。

注意事项:

  • S5_IN/PA0/RC5 是 8 针接口的第 7 针,即倒数第二针;它位于 GND/+5/PPM 信号输入端的另一侧。

  • 在 CC3D 上启用电池监控后,RC5 不再可用作 PWM 输入。

Sparky

请参阅 Sparky 板卡章节

配置

启用 VBAT 功能。

通过以下 CLI 设置配置单体最高/最低电压:

vbat_scale - 调整此值,使系统报告的电池电压(可通过 status 命令查看)与实际测量值一致。

vbat_max_cell_voltage - 单体最高电压,用于自动识别电池串数;单位为 0.01 V,例如 430 = 4.3 V

vbat_min_cell_voltage - 单体最低电压;低于此值会触发电池严重低电量警报;单位为 0.01 V,例如 330 = 3.3 V

vbat_warning_cell_voltage - 单体警告电压;低于此值会触发电池低电量警报;单位为 0.01 V,例如 340 = 3.4 V

vbat_hysteresis - 设置低电量警报的滞回值;单位为 0.01 V,例如 10 = 0.10 V

vbat_duration_for_warning - 电压须持续满足低电量警告条件多长时间,系统才会进入低电量警告状态;单位为 0.1 秒,例如 60 = 6.0 秒

vbat_duration_for_critical - 电压须持续满足严重低电量条件多长时间,系统才会进入严重低电量状态;单位为 0.1 秒,例如 21 = 2.1 秒

例如:

set vbat_scale = 110
set vbat_max_cell_voltage = 430
set vbat_min_cell_voltage = 330
set vbat_warning_cell_voltage = 340
set vbat_hysteresis = 1
set vbat_duration_for_warning = 60
set vbat_duration_for_critical = 20

电流监控

将电流计连接至相应的电流计 ADC 输入,即可使用电流(安培)监控功能;具体接口请参阅所用板卡的文档。

启用后,遥测和 OLED 显示子系统会计算并使用以下数据:

  • 电流(A)
  • 已消耗容量(mAh)
  • 剩余容量

配置

通过以下 CLI 命令启用电流监控:

feature CURRENT_METER

使用 amperage_meter_type 设置电流计类型:

传感器类型
NONE
ADCADC/硬件传感器
VIRTUAL虚拟传感器

使用 bat_capacity 设置电池容量,单位为 mAh。

若所用 OSD 需要 MultiWii 电流计输出值,请将 multiwii_amperage_meter_output 设为 ON;该设置会将发送至 MSP 的电流乘以 10,并截断负值。

ADC 传感器

需要配置电流计,使模数转换器(ADC)输入读取的数值与实际电流消耗相符。正如校准电压读数需要电压表,校准电流传感器也需要电流表。与出厂时通常已较准确的电压检测不同,电流检测会因板卡而有显著差异,应当进行校准。

校准 ADC 电流传感器时,建议将 multiwii_amperage_meter_output 设为 OFF

测量电流时,线性响应器件会将流经自身的电流转换为供飞控 ADC 读取的电压。飞控可读取的最高电压为 3.3 V(3300 mV),这通常限制了可测量的最大电流。大多数传感器使用分流电阻测量电流,少数使用霍尔效应传感器。

飞控使用以下公式将 ADC 测得的电压换算为电流:

Current(Amps) = ADC (mV) / amperage_meter_scale * 10 + amperage_meter_offset / 1000

其中校准参数为:

设置说明
amperage_meter_scale比例系数,单位为 mV/10 A
amperage_meter_offset偏移量,单位为 mA

该公式可写成 y = x/m + b 的数学形式。沿该直线进行若干次测量后,即可将任意传感器与飞控组合校准至较高精度。

使用电流表校准

!!重要:进行任何测试前,务必拆下螺旋桨!!

按以下步骤使用电流表校准飞控:

  1. 创建此 Google 表格的副本;它会完成全部计算。
  2. 将电流表与飞行器及一块已充电电池串联。建议使用剪断一根导线的 XT60 延长线。此时,电流表会显示系统的真实电流消耗。
  3. 通过 Configurator 连接飞控,并检查当前的电流校准值;如有必要,在 Google 表格中修改它们。
  4. 在电机选项卡中提高油门,使电流表读数约为 1 A(无需精确到 1 A)。
  5. 切换回电源与电池选项卡,在“实测电流”列记录电流表读数,在“飞控电流”列记录 Betaflight 报告的电流;两者均以安培为单位,保留两位小数。
  6. 在 0 至 5 A 的不同电流下,重复步骤 4 和 5 至少 3 次(注意不要超过电流表额定电流)。
  7. 完成后,确认图表中的结果呈线性,且回归值显示为绿色。随后即可应用新的校准值,获得准确的电池消耗信息。

霍尔效应传感器和分流电阻均可采用相同方法。分流电阻的偏移量通常小于 +/- 1000 mA,而霍尔效应传感器的偏移量通常大得多。请注意,即使校准正确,最大油门时仍可能超过可测最大电流;即便实际电流更高,飞控记录的电流也会封顶于该数值。因此,报告的已消耗 mAh 可能小于实际消耗量;仍应同时留意电池电压。

若不想使用 Google 表格,只需改用其他可对数据集进行线性回归的工具。将测试时使用的 amperage_meter_scale 乘以斜率,并从 amperage_meter_offset 中减去以 mA 为单位的截距,即可得到校正后的校准值。

虚拟传感器

虚拟传感器根据油门位置计算估算电流。当无法使用真实传感器时,此功能很有用。以下设置用于校准虚拟传感器:

设置说明
amperage_meter_scale油门比例系数[厘安,即 1/100 A]
amperage_meter_offset零油门(未解锁)时的电流[厘安,即 1/100 A]

有两种简单方式可调节这些参数:一种使用电池充电器,另一种依赖实际电流测量。

使用实际电流测量调校

若已知飞行器未解锁时的电流消耗(Imin,单位为 A),以及已解锁、最大油门时的电流消耗(Imax,单位为 A),可按以下方式计算比例参数:

amperage_meter_scale = (Imax - Imin) * 100000 / (Tmax + (Tmax * Tmax / 50))
amperage_meter_offset = Imin * 100

注意:Tmax 是最大油门偏移量;例如 max_throttle = 1850 时,Tmax = 1850 - 1000 = 850

例如,假设最大电流为 34.2 A、最小电流为 2.8 A,且 max_throttle = 1850(Tmax 为 850):

amperage_meter_scale = (Imax - Imin) * 100000 / (Tmax + (Tmax * Tmax / 50))
= (34.2 - 2.8) * 100000 / (850 + (850 * 850 / 50))
= 205
amperage_meter_offset = Imin * 100 = 280

测量 Imax 要求电池和 ESC 在整个测量期间都能够提供并承受最大电流,因此较易产生较大误差。也可在较低油门位置测量电流,并将结果纳入计算。

沿用上述示例,若在 30% 油门时测得 Ibench 电流为 6 A(由于 (0.3\*(max_throttle-1000))+1000,电机选项卡中的数值为 1255):

Tbench = Tmax * bench_throttle = 850 * 0.3 = 255
amperage_meter_scale = (Ibench - Imin) * 100000 / (Tbench + (Tbench * Tbench / 50))
= (6 - 2.8) * 100000 / (255 + (255 * 255 / 50))
= 205
amperage_meter_offset = Imin * 100 = 280

使用电池充电器测量调校

若无法直接测量电流消耗,可通过电池充电器间接估算。
不过,除非能够测量飞行器未解锁时的实际电流消耗,否则该方法可能难以调节 amperage_meter_offset

注意:

  • 此方法依赖电池充电器的准确性,结果可能有所差异。
  • 若添加或更换会改变飞行中电流消耗的设备(例如图传发射器、相机、云台、电机、螺旋桨螺距/尺寸、ESC 等),应重新校准。

通用步骤如下:

  1. 将飞行电池充满。
  2. 飞行并消耗超过电池组标称容量的 50%(估算值)。
  3. 记录系统报告的已消耗 mAh。
  4. 再次将飞行电池充满,并记录回充的 mAh。
  5. 按下方公式调整 amperage_meter_scale
  6. 重复上述过程并测试。

已知 (a) 回充的 mAh 与 (b) 系统报告的已消耗 mAh 后,按以下方式计算新的 amperage_meter_scale

amperage_meter_scale = old_amperage_meter_scale * (reported_mAh_drawn / mAh_recharged)

例如,假设:

  • 回充量为 1500 mAh;
  • 报告的已消耗容量为 2000 mAh;
  • 现有 amperage_meter_scale 值为 400(默认值)。

则更新后的 amperage_meter_scale 为:

amperage_meter_scale = old_amperage_meter_scale * (reported_mAh_drawn / mAh_recharged)
= 400 * (2000 / 1500)
= 533