← 返回目录

电流工况分析第 7 章 — 分电池型号的放电与寿命边界

项 内容
日期 2026-10-13
状态 已跑完。报告在 current-distribution-analyzer/output_v3/battery/index.html
底座 analysis/reports/surfboard_current_distribution_analysis_plan_v3.md 第一至六章
实现时 在 current-distribution-analyzer/analyze_v3.py 的同一套连续航段和点级池上分组,不另写一套筛选
数据 current-distribution-analyzer/data/oss_cache(已与正式库未删除航次对齐,约 3.0 万个文件)

本章不改前六章的工况定义。它做两件事:每一张前六章的表按电池型号拆开;每一款电池单独给出电流分布、功率分布、最大电流和正态电流。


1. 电池怎么认

只认日志头上的 batterySn,取前 6 位。不使用点上的电量百分比来猜型号。

产品名 型号 SN 前缀 归组
长续航电池 BP2400 210AAA 单独一组
高性能电池 BP1700 210AAB、210ABB 先合成一组出边界;表里仍分列两个前缀的航次数
半固态电池 BP1300 210AAC 单独一组
其他或空 SN — 以上都不是 UNKNOWN,不进三款边界,只在覆盖率表里计数

210AAB 与 210ABB 若航次数差一个数量级,或同一速度段的 P95 电流差超过 15%,边界表拆开报,不合成一个 BP1700 数字。

一场日志一个 batterySn。中途换电池而头上只有一个 SN 的,整场算这个 SN,不拆点。


2. 和前六章共用的样本

沿用 v3,不放宽:

v3 点级条件里的 batteryElectricity ≥ 10% 是遥控电量,不是板体电池电量。本章分组不使用它。板体电量若要卡低电,用 boardBattery,且缺键就丢掉该点,不把缺键写成 0。

前六章已经算过的全局 μ、P95、Top 15 保留为「不分电池」对照列。本章的数必须能对回同一批入选航次,只是多一列 battery_model。


3. 两套电流,不能合成一列

前六章的「电流」是电调电流 electricCurrent,功率是 electricCurrent × batteryVoltage。本章为了和前六章可比,分布主表继续用这一套。

电池放电边界另开一套,不能用电调电流冒充:

量 字段 规则
电池放电电流 batteryCurrent 放电在日志里为负。统计用绝对值。缺键的点不进入这套表,禁止填 0
电池放电功率 batteryVoltage × \|batteryCurrent\| 单位 W。没有 batteryCurrent 的航次,这套功率为空
电调电流 / 电调功率 与 v3 相同 主分布表、和第一至六章对齐

batteryCurrent 从 2026-09 新固件才稳定出现。旧日志整场没有这个键。因此每款电池先出覆盖率:入选航次、其中有 batteryCurrent 的航次、有效放电点数。有电池电流的航次少于 30 场,或有效点少于 1 万,该型号的「电池侧」表标注样本不足,只发布电调侧分布。


4. 每款电池要出的表

三款电池各一套,外加一行「全部入选航次」对照。速度段与 v3 总览相同,不另发明箱子。

4.1 覆盖率

battery_coverage.csv

列 含义
battery_model / sn_prefix BP2400、BP1700,以及 AAB/ABB 分列
logs_kept 通过 v3 连续航段后的航次数
logs_with_battery_current 其中至少一个点有 batteryCurrent
points_esc 电调侧入池点数
points_pack 电池侧入池点数

4.2 电调电流与功率的正态表(主表)

battery_esc_distribution.csv

在巡航池(已剔除 1.5 倍高负荷)上,按电池 × 速度段:

列 含义
speed_band 与 v3 总览相同的速度段;另加一行「巡航合计」
n_logs / n_points 样本量
i_mu_a / i_sigma_a 正态拟合的均值和标准差,单位 A
i_p50_a / i_p95_a / i_p99_a 分位数,不依赖拟合好坏
i_max_a 该组最大电调电流,一个点
p_mu_w / p_p50_w / p_p95_w / p_max_w 同一批点的电调功率 I × V,单位 W

正态拟合用 scipy.stats.norm。若直方图明显偏态(高负荷尾巴没剔干净),表里仍给分位数,并在备注写「μ 仅供形状,边界用 P95」。最大电流永远单列,不拿 μ 或 P99 窗口平均值代替。

4.3 高负荷、起飞、峰值(仍按电池拆)

这三张不是正态主表,但边界要用:

文件 内容
battery_high_load_25_35.csv 各电池在 25–35 km/h、≥1.5× 与 ≥2.0× 的点数、电流 P50/P95/最大、功率 P50/P95/最大
battery_takeoff.csv 各电池起飞加速峰值电流的中位、P95、最大,及对应功率
battery_top15_current.csv 每款电池各自的电流 Top 15 航次(不是全局 Top 15 再过滤)。列:trajectory_id、battery_sn、速度、电流、功率、电压

全局 Top 15 若三款电池挤在一起,看不出某一款的模组边界。所以 Top 15 按型号各取 15 条。

4.4 电池侧放电表(仅新固件)

battery_pack_distribution.csv

列与 4.2 相同,电流改为 |batteryCurrent|,功率改为 V × |batteryCurrent|。速度段仍用巡航池。没有电池电流的点不出现在这张表里。

寿命边界不从日志里编循环次数。日志能给的是放电边界,供后面和厂家的寿命曲线对齐:

边界名 取数 给谁用
连续放电 该电池巡航 20–30 km/h 的电调电流 P95,及电池侧 P95(有样本才写) 连续工况、容量
高负荷放电 25–35 km/h 且 ≥1.5× 的 P95 带人 / 大载重
峰值放电 该电池 Top 15 的最大电流,逐条列出,不取这 15 条的平均 模组峰值
起飞 起飞峰值的 P95 短时大电流

厂家寿命曲线上的循环次数、截止电压、温度条件,本章不填。那些不是航行日志里的量。


5. 输出与对照

结果写到 current-distribution-analyzer/output_v3/battery/,不覆盖已经发出的 v3 总表。

跑完后先看三件事,再读分布数字:

  1. 三款电池的入选航次是否都不少于约 100 场。某一款太少,边界表照出,但标题标明样本不足。
  2. 210ABB 是否值得并进 BP1700。
  3. 电池侧表的覆盖率。覆盖率低时,对外只给电调侧的分型号表,并写明「电池包电流尚未覆盖该型号的旧日志」。

前六章的筛选、连续航段、1.5 倍高负荷定义保持不动。本章只加分组和上述四张新表。