Fuel-cell innovation · Digital Twin Lab

From measurementsto better experiments

An open digital twin for PEM and solid-oxide fuel cells. It compares frozen predictions with measured data, quantifies what it still cannot tell apart, and plans the next test to separate the alternatives. Every result carries its evidence status.

Fuel-cell digital twin: a test rig turning into its digital model, surrounded by the loop Measure, Model the physics, Quantify uncertainty, Plan the next test, followed by independent validation: freeze model and predictions, test unseen cells or batches, assess agreed acceptance limits.
Concept illustration. The rig shown is illustrative, not a specific hardware set-up.

Fuel-cell explorer

See the system to scale

Cells solid and to scale, balance of plant in grey X-ray. Drag to turn, pinch or scroll to zoom.

Loading the 3D view
  • PEM plates
  • SOFC tubes
  • Balance of plant (placeholder)

Live SOFC calculation

Move the voltage, see the cell

    How the twin works

    A closed loop, not a curve fit

    The twin is built to earn trust step by step. Predictions are frozen before data is opened, residuals are kept even when they are unflattering, and the next experiment is chosen for the information it buys.

    The twin loop with current figures: Measure, 12,184 PEM samples and a 33-point SOFC impedance record; Model the physics, 36 of 36 balances close and 4 of 4 convergence checks pass; Quantify uncertainty, fixture inductance 0.578 µH; Plan the next test, 3 tests in 78 minutes, proposed.
    Figures come from the frozen outputs listed under Evidence. Diagram made with DesignCraft.

    Evidence

    What has been shown, and what has not

    Each card reads straight from a frozen output in the repository. Numerical checks show the code solves its own equations. They do not show the physics is right. Measured comparisons are reported even when the model loses.

    Numerically verifiedMeasured gapOpen questionBlocked / withheldProposed

    PEM · proton-exchange membrane

    Benefits

    • Starts in under a minute and follows load, including transients [nasa]
    • More power per area: Mirai-class cells give 0.78 W/cm² at 1 A/cm², against 0.60 W/cm² for the reference SOFC cell at 0.8 V [twin] [mirai]
    • Far more power per kilogram today: stacks about 2.0 kW/kg (Mirai Gen1) against 0.1–0.5 kW/kg for planar SOFC stacks [toyota-mirai] [bauhaus]
    • Published flight roadmap: FlyZero 2.0–2.5 kW/kg stack + BoP by 2030 [flyzero]
    • Flown in commuter demonstrators; FlyZero TRL 6 by 2026 [flyzero] [review]

    Assumptions in this twin

    • Mirai-class calibration: membrane resistance refitted to one public Toyota Mirai point (0.67 V at 1.9 A/cm²); other coefficients from the lab anchor
    • 80 °C, 2.53 bar, RH 0.6, cathode stoichiometry 2; sized at 1.0 A/cm² (0.784 V, 63 % LHV)
    • Mass, today’s hardware (default): stack 2.0 kW/kg (Mirai Gen1); system 1.4 kW/kg (ZeroAvia claim, equipment boundary not reconciled; DOE 2015 integrated system 0.659). FlyZero targets appear only under “Development targets”
    • The frozen lab anchor still loses to a fixed 0.7 V baseline on measured lab data (120.6 vs 34.2 mV error)

    SOFC · solid oxide

    Benefits

    • Higher efficiency: 64 % against 63 % (LHV), so 2 % less hydrogen for the same power [twin]
    • Less heat to reject, and at 600–1,000 °C it is high-grade: usable by a turbine or heat exchanger [twin] [review]
    • Fuel flexible and tolerant of CO and other contaminants [nasa] [review]
    • Steady duty suits APU, ground power and turbine-hybrid roles [nasa] [review]

    Assumptions in this twin

    • Reference cell (default): 0.6 W/cm² at 0.8 V, a screening assumption inside the published 0.5–1 W/cm² range; linear cell, open circuit 1.10 V assumed, drawn as 2 mm micro-tubes
    • High-performance lab cell (switch): 1.0 W/cm² at 0.8 V, matching advanced laboratory cells (a metal-foam cell peaked at 1.01 W/cm², 650 °C); not demonstrated stack performance
    • Lab rig cell (switch): the twin’s frozen 7 mm tubular cell at 800 °C, 50 mL/min fuel, 0.24 W/cm² at 0.8 V; fuel-limited below about 0.6 V
    • Sized at 0.8 V (0.75 A/cm² in the selected default)
    • Stack mass 0.3 kW/kg today (planar stacks 0.1–0.5); HYLENA’s about 3 kW/kg is a target, shown only under “Development targets”. No published SOFC system mass, so none is invented
    • Cell W/cm² is never converted to kW/kg: stack mass depends on interconnects, seals, insulation and packaging
    • Start-up (tens of minutes to hours), thermal cycling and altitude not modelled; acceptance gate blocked
    Numerically verified

    PEM balances close

    36 of 36 casescharge, reaction energy, electrical and coolant balances

    Maximum residuals: charge 1.4e-17 mol/s, storage 8.3e-10 J. Water, gas inventory and whole-system energy are not implemented, so no full-system conservation pass is claimed.

    Source: output/verification/conservation.json

    Numerically verified

    Time-step convergence

    4 of 4 step caseswithin 1 mV/cell and 0.01 K at the finest step

    Production Euler integrator against an independently transcribed reference (DOP853) for load, humidity, pressure and coolant steps. A numerical budget, not an experimental acceptance limit.

    Source: output/verification/convergence.json

    Measured gap

    Measured PEM challenge: the model loses

    120.6 mV vs 34.2 mVmodel RMSE vs a fixed 0.7 V guess, 12,184 samples

    Mean residual +92 mV; 0 parameters updated; data previously inspected, so this is a diagnostic, not a blind test. Temperature and humidity are proxies; membrane water is assumed.

    Source: output/real/challenge.json

    Open question

    Recalibrated to a Mirai-class stack

    0.152 → 0.049 Ω cm²membrane resistance refitted to 0.67 V at 1.9 A/cm² (public Toyota Mirai data)

    One coefficient from one published point, so this is a calibration, not a validation. Sensitivity: ~0.6 V at rated power gives 0.081 Ω cm². Without a crossover term the model over-predicts near open circuit (0.85 V measured per cell). The aviation pages use this calibration; the lab anchor stays frozen.

    Source: output/calibration/pem-mirai-class.json · archee/pem_calibration.py

    Open question

    Bayesian model, new stacks held out

    34 mV vs 71 mVpredicting 30 public points from stacks it never saw, vs a fixed 0.7 V guess (lab anchor 153 mV)

    Hierarchical posterior over 13 public automotive stacks and MEAs, with the activation loss rewritten as a Tafel term with fitted exchange current (1.0e-06 A/cm² at 80 °C) and crossover current (6.6 mA/cm²), no discrepancy terms. 90 % bands cover 90 %. Worst case: the Mirai's open-circuit point. See docs/BAYESIAN_PEM.md.

    Source: output/bayes/pem-posterior.json · datasets/public/pem-automotive.json

    Open question

    Two parameter aliases remain

    2 aliasesfit the same low-load data within 3 mV

    Different concentration-loss and limiting-current pairs reproduce the same low-load voltages. The planner was challenged to separate them; until measured, the twin reports both.

    Source: output/verification/identifiability.json

    Numerically verified

    SOFC conservation and solver checks

    8 of 8 checkselement, energy, mesh and cross-solver

    Largest energy residual 4.2e-08 J. Mesh study covers the 8/16/32-node baseline only, not domain-wide convergence.

    Source: output/sofc-v1/verification.json

    Open question

    SOFC ohmic resistance vs published

    -67% to -58%model vs reported cell resistance

    Not a like-for-like comparison: the published value is an open-circuit impedance series resistance that includes electrode losses. Marked not comparable; no parameters were fitted.

    Source: output/sofc-v1/public-benchmark.json

    Blocked / withheld

    Holdout validation gate

    Withheld8 reasons, validated = false

    The gate stays shut until the hold-out is blind, the hardware is independent, lineage is verified and sensor uncertainty is known.

    Source: output/audit/holdout-gate.json

    Blocked / withheld

    SOFC acceptance gate

    Blockedcandidate frozen development not validated

    Native processing and units unresolved; No independent fixture calibration; No characterized electrode dynamics or hardware covariance; No approved quantitative hardware-specific acceptance limits or unseen cell/batch custody.

    Source: output/sofc-observation-v3/candidate.json

    Independent validation · next stage

    What it takes to call it validated

    1. Freeze model and predictionsPhysics, adapters, coefficients, covariance and predictions locked and hashed before any new data is opened.
    2. Test unseen cells or batchesWhole cells or batches held by an independent custodian, never rows split from development runs.
    3. Assess agreed acceptance limitsVoltage, transient, settling, temperature-gradient, fuel-utilisation and thermal-cycle limits declared in advance.
    Proposed

    Next test batch, chosen by information

    3 tests · 78 min0.12 kg H₂; best 1.06 nats expected information

    Ranked 32 candidate conditions on a 10-cell, 280 cm² stack by expected information gain per rig minute. Status: proposed, not executed.

    Source: output/audit/matched-bayesian-plan.json

    Why the holdout gate is currently withheld (8 reasons)
    • Development model not ready
    • Acceptance protocol not frozen
    • Measurement audit open
    • Holdout not blind
    • Hardware not independent
    • Lineage not verified
    • Missing or overlapping raw data
    • Sensor uncertainty unverified

    Tools

    Work with the twin

    Data and licences

    Where the measurements come from

    SourceUsed forLicenceStatus
    Schneider et al. 2024, PEM characterisation, 12 cm² cellsDevelopment data: limiting current, EIS, HFR, double-layer capacitanceCC BY 4.0Development only
    RealHyFC / Fensterle; BiselloMeasured steady-state challengeCC BY 4.0Inspected, not blind
    Nowicki, Wang & Irvine, St Andrews tubular SOFCSOFC impedance record and historyCC BYDevelopment only
    Cornet / LEPMINot usedEtalab 2.0Quarantined

    This is an independent implementation inspired by published ARCHEE work. It is not code from the University of Bath or ZeroAvia, and it does not describe their hardware. Full attributions are in THIRD_PARTY_DATA.md in the repository.