Ampere 中文文档 下载 App

50 次采样取中值 — 为什么 Ampere 要等 10 秒才显示读数

为什么不直接读一次

直接从 BMS 读取一个电流值然后显示 —— 看起来简单,但实际用起来会出问题:

插上充电器的一瞬间电流会跳变。刚插入 USB 时,充电器会尝试握手协商快充协议,电流会出现一个几十到几百毫安的尖峰。直接读这个值会让你误以为充电器真的能持续输出这么大的电流,但那只是瞬间值,稳定后电流会降到正常水平。

Ampere 的 10 秒等待就是在处理这个问题。

50-10-10 采样公式

Ampere 的采样处理逻辑来自官方描述:

  1. 连续读取 50 次 BMS 电流值
  2. 去掉最高的 10 个(过滤尖峰)
  3. 去掉最低的 10 个(过滤低谷)
  4. 剩下 30 个取算术平均 → 显示值

这个设计相当稳健:既不会被偶发的尖峰骗到,也不会被传感器短暂掉线拉低。

为什么等待时间是"大约"10 秒

等待时间不是精确固定的,取决于:

实测下来大多数设备在 7~12 秒 之间出数。如果等了超过 20 秒还在"正在检测",大概率是兼容性问题,参见 检测卡住怎么办。

读数的稳定性 vs 准确性

Ampere 的读数相对稳定(同一条件下多次测量结果接近),但绝对不准确(和实验室仪器对比可能差 20% 以上)。它的设计目标就是"足够稳定用于对比",而不是"精确到毫安"。

官方原话:"The app is not meant to be mA accurate. It is only good for evaluating which charger / USB cable combo is working the best for you on the same device."

不要把它当作精密仪器用。但在同一台手机上做对比时,它的参考价值非常高 —— 因为误差来源(BMS 精度、系统策略)在对比组之间是相同的,所以对比结果依然可信。

读数会跳变怎么办

如果稳定后电流还在小幅上下波动(例如 1500 mA ↔ 1600 mA 之间来回),这属于正常现象 —— 手机在运行后台任务、屏幕亮度自动调节都会带来电流波动。取平均值即可,不要追求完美的固定数值。

大幅跳变(例如一瞬间从 2000 mA 降到 300 mA 又跳回去)就不正常了,可能是充电器握手问题或线材接触不良,参见 读数跳变不稳。