Independent open-source research software ยท 2026

TES Discharge Screen

Techno-economic screening of thermal energy storage for industrial process heat, with discharge constraints informed by dynamic thermal behaviour rather than a constant battery-like power limit.

Research question

When does dynamic discharge physics actually change a storage decision?

Annual storage optimisation often treats thermal storage like a battery with a constant charge/discharge power ceiling. For a sensible-heat packed bed serving a fixed process temperature, outlet temperature and deliverable high-quality heat fall during discharge. This project derives a state-dependent capability curve from a targeted dynamic model, carries it into annual optimisation, and measures whether the added fidelity changes cost, sizing or technology ranking.

What is implemented

Physics, optimisation and verification in one reproducible workflow.

Dynamic thermal models

Packed-bed shadow twin plus Modelica/FMUs; molten-salt and PCM closed-form sub-models under explicitly different physical assumptions.

Annual optimisation

Pyomo/HiGHS dispatch with flat and state-of-charge-dependent discharge limits, matched-duration experiments and optional cycling-prevention logic.

Verification

Analytic-limit checks, discretisation studies, solver-status records and an FMU-vs-Python cross-check. Verification is never labelled experimental validation.

Sensitivity & decision maps

SALib/Morris and targeted sweeps examine storage duration, CAPEX, temperature-quality requirements, heat-exchanger approach and technology selection.

Selected findings

The useful result is mostly about where fidelity matters.

  • Reduced state: scalar state of charge is not sufficient for arbitrary hand-constructed packed-bed states, but realistic forward/backward cycling in the current model stays within the project's 5% reduced-state tolerance.
  • Matched annual comparison: after removing earlier confounds, the isolated cost effect of the state-dependent discharge shape is documented as roughly 0.000% to 0.038% across the tested 2–12 h duration family.
  • FMU cross-check: the committed verification reports 0.23% maximum temperature deviation and 0.0029% relative energy deviation between the Modelica/FMU and Python packed-bed implementations for the declared test.
  • Decision boundary: temperature-quality requirements and heat-exchanger approach can matter far more than the small annual objective delta, including regimes where feasible storage sizing collapses.

Limitations

Verified is not validated.

This is a screening framework, not a design tool or a validated model of a real storage installation. Current cases use synthetic loads and prices; there is no measured-storage validation, materials degradation, corrosion/containment engineering, forecast uncertainty or plant-specific process dynamics. The repository documents these limits alongside the results.

Stack

Tools used.

PythonPyomoHiGHSModelicaFMI / FMPySALibNumPypandaspytestCI