BetaFlight代码解析(10)— 电池和电源监控

本文档介绍了Betaflight的电池和电源监控系统,该系统负责电压检测、电流测量、电池状态跟踪以及电源相关的安全功能。该系统提供电池健康状况的实时监控、功耗跟踪、低电压保护,并可与飞行控制系统集成,实现节能操作。

系统架构概述

电池和电源监控系统由三个主要子系统组成:电池状态管理、电压监控和电流监控。它们协同工作,为飞行控制器提供全面的电源信息。

电池状态管理

电池管理子系统通过状态机跟踪电池的整体健康状况,该状态机监控电压水平、消耗量和存在检测。

电池状态

该系统定义了五种主要电池状态batteryState_e

状态描述触发条件
BATTERY_INIT启动时的初始状态系统初始化
BATTERY_OK正常运行电压高于警告阈值
BATTERY_WARNING低电量警告电压低于警告阈值
BATTERY_CRITICAL电池电量严重不足电压低于临界阈值
BATTERY_NOT_PRESENT未检测到电池电压低于存在阈值

状态转换逻辑

电池计数检测和电压计算

该系统通过将测量电压除以最大单体电压来自动检测电池单体数量,并具备手动控制功能:

低电压截止(LVC)

当电池电量达到临界水平时,LVC系统会逐渐降低电机输出功率:

电压监测子系统

电压监测子系统支持多种输入源,并具有滤波和稳定性检测功能。

电压源

来源类型执行用例
VOLTAGE_METER_ADCvoltageMeterADCRefresh()传统分压器
VOLTAGE_METER_ESCvoltageMeterESCRefresh()ESC遥测数据
VOLTAGE_METER_NONEvoltageMeterReset()已禁用

ADC电压处理

电压稳定性检测

该系统使用滚动位掩码跟踪电压随时间变化的稳定性,以防止错误检测电池:

当前监测子系统

当前监控子系统支持多种测量方法并跟踪功耗。

电流源和处理


功耗跟踪

该系统会同时计算毫安时 (mAh) 和瓦时 (Wh) 的消耗量:

测量计算来源
毫安时(ADC/虚拟)mAhDrawnF += amperage * timeΔ / (100.0 * 1000 * 3600)current.c128-132
mAh(ESC)来自 ESC 遥测数据的直接数据current.c227
什么wattHours += voltage * mAhΔ / 100000.0电池.c249-255

配置系统

电池和电源监控系统采用参数组进行配置管理。

电池配置结构

默认配置值

范围默认值描述
vbatmaxcellvoltage430 (4.30V)用于检测的最​​大电池电压
vbatmincellvoltage330 (3.30V)临界电压阈值
vbatwarningcellvoltage350 (3.50V)警告电压阈值
lvcPercentage100LVC 默认禁用
vbathysteresis1 (0.01V)电压滞后
batteryCapacity0容量单位为毫安时 (0 = 关闭)

与飞行系统的集成

电池监控系统与多个飞行控制子系统集成:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值