AP电池故障保护

来自无人智胜
Root留言 | 贡献2025年12月30日 (二) 22:55的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

ArduPilot电池故障保护(Battery Failsafe)参数设置

电池故障保护是ArduPilot飞控系统的一项重要安全机制。当检测到电池电压或容量低于设定阈值时,飞控可自动执行预设动作(如返航、降落),以提升飞行安全性[1](@ref)。

核心参数详解

以下参数需在Mission Planner的“全部参数表”中进行设置[1](@ref)。

保护动作参数

参数名称 描述 常用取值与含义 BATT_FS_LOW_ACT 定义触发“低电压”故障保护时执行的动作[1](@ref)。 * 0:无动作 (None)
* 1:返航 (RTL)
* 2:降落 (Land)
* 34:尝试使用SmartRTL,若无法启用则分别执行RTL或HOLD[1](@ref)。
BATT_FS_CRT_ACT 定义触发“严重低电压”故障保护时执行的动作[1](@ref)。 * 0:无动作 (None)
* 1:返航 (RTL)
* 2:降落 (Land)
* 34:尝试使用SmartRTL,若无法启用则分别执行RTL或HOLD[1](@ref)。

电压阈值与触发参数

  • BATT_LOW_VOLT:低电压阈值(单位:伏特)。当电池电压低于此值并持续指定时间后,将触发 BATT_FS_LOW_ACT 设定的动作。如果设置为零,基于电压的触发器将被禁用[1](@ref)。
  • BATT_CRT_VOLT:严重低电压阈值(单位:伏特)。此值应低于 BATT_LOW_VOLT,用于触发更高级别的保护动作[1](@ref)。
  • BATT_LOW_TIMER:电压需持续低于阈值的秒数(默认常为10秒),用于防止因瞬时电压波动(如大油门加速)而误触发[1](@ref)。
  • BATT_CAPACITY:设置电池的标称容量(单位:毫安时,mAh)。此参数用于库仑计数(计算消耗电量),是容量监控功能的基础[1,5](@ref)。

配置指南

禁用自动降落/返航

若希望完全依赖手动控制,禁用电池低压时的自动动作,需进行如下设置[1](@ref):

  1. 在Mission Planner的“配置/调试” → “全部参数表”中,找到以下参数:
    • 设置 BATT_FS_LOW_ACT = 0
    • 设置 BATT_FS_CRT_ACT = 0
  2. 务必合理设置 BATT_LOW_VOLTBATT_CRT_VOLT,以便地面站能及时发出警告,为手动干预留出足够时间。

典型配置示例(4S锂电池)

<syntaxhighlight lang="ini">

  1. 监控器与容量设置

BATT_MONITOR = 4 # 启用模拟电压和电流监控 BATT_CAPACITY = 5200 # 电池容量为5200mAh

  1. 电压阈值设置 (基于单片电芯3.5V和3.3V计算)

BATT_LOW_VOLT = 14.0 # 低电压阈值 (14.0V) BATT_CRT_VOLT = 13.2 # 严重低电压阈值 (13.2V)

  1. 保护动作设置 (若需禁用自动动作)

BATT_FS_LOW_ACT = 0 # 低压时无动作 BATT_FS_CRT_ACT = 0 # 严重低压时无动作

  1. 触发延时

BATT_LOW_TIMER = 10 # 低压需持续10秒才触发 </syntaxhighlight>

重要安全提示

  • 禁用自动保护动作(设置为0)意味着飞控在电池电量危急时将不会自动介入。 飞行员将完全负担及时手动接管控制的责任[1](@ref)。
  • 此配置显著增加了因完全耗尽电量而导致失控或坠毁的风险。请仅在绝对安全的环境和具备充分手动操控能力的情况下使用。
  • 禁用自动动作后,务必依据电池规格(如4S锂电池)合理设置电压阈值,并为手动干预预留充足电量/时间余量。

进阶功能与故障排查

  • 电压检测源:参数 BATT_FS_VOLTSRC(或类似参数)可设置电压检测源。设置为 1(压降补偿)可基于估算的“静态电压”判断,避免大电流导致的瞬时电压降误触发,结果更准确[1](@ref)。
  • 容量保护:除了电压,还可设置 BATT_LOW_MAH 参数,当消耗电量达到设定值(例如电池满容量的20%)时触发保护[1](@ref)。
  • 多电池系统:ArduPilot固件版本4.0及更高版本最多支持10个电池/电源监视器。对于配置多个电池的系统,可使用 BATT2_BATT3_ 等参数集进行独立监控和设置。一组电池也可以作为一个单元处理(参见BATTx_MONITOR=10)[1](@ref)。

参见