Files
lingniu-vehicle-ingest/vehicle-data-platform/docs/hydrogen-calculation-v2.md
T

2.7 KiB
Raw Blame History

氢耗可信计算与溯源(V2

结果口径

  • raw_consumption_kg:物理耗氢量,仅由GB/T 32960氢压、氢温、车型储氢容积经NIST实气压缩因子换算后,按有效区间质量下降累计。
  • battery_equivalent_kg:动力电池净放电能量折算氢量。仅使用已确认的车型/VIN电池容量;停车充电区间不参与计算。
  • soc_balanced_consumption_kg:SOC平衡氢耗,用于把不同首尾SOC的运行区间调整到可比较口径,不覆盖物理耗氢量。

压力—质量公式:

Z = 1 + Σ ai × (100 / Tk)^bi × P^ci
m = P × 1000 × 0.00201588 × V / (8.314472 × Tk × Z)

SOC能量守恒公式:

E_battery_discharge = C_battery × (SOC_start - SOC_end) / 100
m_battery_equivalent = E_battery_discharge / 16
m_soc_balanced = m_raw_hydrogen + m_battery_equivalent

电池净放电为车辆提供了额外能量,因此等效总能耗应增加;电池净充电时该项为负。邮件示例中将净放电量从物理耗氢中扣除,不符合能量守恒,V2不采用该符号方向。

区间规则

  1. 上电后等待60秒、下电前提前60秒,端点使用连续5条有效样本的中位质量对应报文。
  2. 停车充电由整车充电状态与车辆状态识别,充电区间切断且不参与SOC修正;充电结束后重新建立基线。
  3. 压力累计上升超过3MPa且保持5分钟识别为加氢;无连续报文时仍保留质量回升阈值作为补充识别。
  4. 纯电状态30分钟内压力下降超过5MPa的样本标记无效。
  5. 数据间隔超过5分钟、质量异常下降、运行模式切换均切断区间。
  6. 每个有效区间至少10条样本;首尾各5条取中位质量以抑制单点波动。

溯源数据

每日结果保留算法版本、参数JSON和区间证据JSON。每个区间包含起止时间、起止原始报文ID、数据源、压力、温度、质量、SOC、里程、分项公式结果、样本数及质量原因。统计页面的“可溯源”入口展示相同信息。

车型/VIN的动力电池容量及氢电换算系数由 vehicle_hydrogen_energy_parameter 维护。未配置或未经确认时,系统仍输出物理耗氢,但不生成SOC平衡结果。

验证

cd vehicle-data-platform/apps/api
go test ./internal/openplatform -run 'TestPressureHydrogenMassNISTValidationGridHasAtLeast100Samples|TestTrustedHydrogenCalculatorProducesTraceableSOCBalancedResultFrom120Samples' -v

cd ../web
NODE_OPTIONS=--localstorage-file=/tmp/codex-vitest-localstorage pnpm exec vitest run src/v2/pages/StatisticsPage.test.tsx

压力—质量测试使用12个压力点与10个温度点,共120个独立样本;日计算测试使用120条连续车辆报文,验证上下电窗口、区间证据和SOC能量守恒。