[ANN] ResieQuasi.jl v1.0 — ReSiE: simulation and optimisation of sector-coupled energy systems

Hello Julia community,

we are happy to announce ReSiE v1.0, available as the Julia package ResieQuasi.jl.

ReSiE is an open-source simulation engine for sector-coupled energy systems at building and district scale. If you are modelling systems that combine electricity, heating, cooling, hydrogen, storages and renewable energy sources, and you want to investigate not only their design but also how they actually operate over time, ReSiE may be useful for you.

Documentation: QuaSi - Overview - QuaSi Software
GitHub: GitHub - QuaSi-Software/ResieQuasi.jl: Simulation engine ReSiE for the QuaSi project · GitHub
Website: https://www.quasi-software.org/

What can you model with ReSiE?

You can build energy systems from interconnected components such as:

  • electrical and thermal grids
  • batteries and thermal storages
  • heat pumps
  • CHP units and boilers
  • electrolysers
  • geothermal probes and collectors
  • seasonal thermal energy storage
  • solarthermal collectors
  • energy demands and other sources and sinks

Systems are configured using JSON input files (can be built with SUSI, see details below) and can range from small single-building setups to larger sector-coupled district energy systems. ReSiE performs a time-step simulation and tracks the energy flows between all components, including unmet demands and surplus energy.

Why another energy-system modelling tool?

A central focus of ReSiE is the non-linear operational behaviour of the system.

Many energy-system modelling tools formulate the complete problem as a linear or mixed-integer linear optimisation problem. ReSiE takes a different approach: the system itself is simulated explicitly, including component interactions, operating strategies and the internal behaviour of individual components.
This allows you to represent behaviour such as:

  • rule- and state-based control
  • storage-dependent operation and hysteresis
  • dynamic priorities between energy flows
  • temperature-dependent operation
  • changing operating permissions
  • non-linear component behaviour

The simulation approach also allows component models to contain considerably more physical detail without having to reduce their behaviour to a linear formulation suitable for a MILP solver. For example, heat-pump performance and power can depend on source and sink temperatures as well as part-load behaviour, while selected geothermal and ground-coupled thermal-storage models use finite-volume methods to represent their transient thermal behaviour. More detailed battery models can additionally represent effects such as voltage-capacity characteristics, cycling and temperature dependence. The more complex component models were validated using measurement data and/or other simulation tools.

This makes ReSiE particularly useful when you want to investigate how a concrete system concept behaves under realistic operating conditions and control strategies, or when detailed component behaviour is relevant to the result.
The trade-off is that ReSiE does not provide the very fast global system-sizing optimisation possible with linear or mixed-integer linear models. Instead, optimisation is performed on top of the detailed simulation using black-box methods.

Control logic is kept separate from the physical component models. Control modules can, for example, change whether components may operate or modify energy-flow priorities.

Economic and GHG evaluation

If you want to go beyond energy flows, ReSiE can evaluate simulation results economically and environmentally. The economic evaluation can include investment and replacement costs, maintenance, energy costs and revenues, subsidies, time-dependent prices and penalties for unmet energy demand.
You can also account for energy-related and embodied GHG emissions, including time-dependent emission factors and credits.

Optimisation, parameter study and sensitivity analysis

Although ReSiE itself is simulation-based, you can also use it to optimise system parameters. The parameter-study framework can vary arbitrary parameters of your model and supports:

  • systematic and random parameter studies
  • single- and multi-objective optimisation
  • local and global sensitivity analysis

Optimisation treats the complete ReSiE simulation as a black box. You can therefore optimise detailed component models and control strategies without having to reformulate them as a linear optimisation problem. Several Julia optimisation packages can be used as backends, including Optim.jl, BlackBoxOptim.jl, Metaheuristics.jl, NLopt.jl, and NOMAD.jl. For global sensitivity analysis, ReSiE constructs a surrogate model using polynomial chaos expansion to calculate first- and total-order Sobol indices. Local sensitivity can also be determined following an optimisation result or for any defined parameter set.

Objectives can be based on physical simulation results, costs, greenhouse gas (GHG) emissions or combinations of them.

Looking at the results

Depending on what you are analysing, ReSiE can generate:

  • CSV time-series and summary data
  • interactive HTML time-series plots
  • Sankey diagrams of energy flows
  • economic cash-flow and present-value plots
  • GHG-emission plots
  • optimisation convergence and parameter/objective plots
  • sensitivity-analysis results and visualisations

The repository and documentation contain several example systems, from small introductory models to more complex building- and district-scale systems.

Installation

The recommended way to use ReSiE is to clone the repository and run simulations via the included CLI using Julia 1.10 or newer:

git clone https://github.com/QuaSi-Software/ResieQuasi.jl.git
julia --project=. -e "using Pkg; Pkg.instantiate()"
julia --project=. src/resie-cli.jl run examples/simple_heat_pump.json

The documentation contains a getting-started guide, example systems, and detailed descriptions of the available components, controls, input format, outputs, economic and GHG evaluation and parameter-study framework:

ReSiE can also be installed from the Julia General registry and used directly as a Julia library, although currently the preferred way is the one described above.

Graphical model setup with SUSI

If you prefer not to create ReSiE’s JSON input files manually, SUSI (Simple UI for Simulation Input) provides a web-based graphical editor. You can visually add and connect energy-system components, configure their parameters with guidance on defaults and allowed values and generate the corresponding ReSiE input file.

SUSI is still under development, but a hosted version is available here:
SUSI: https://quasi-susi.dbi-cloud.com/
SUSI on GitHub: GitHub - QuaSi-Software/susi: Simple UI for Simulation Input - written in React · GitHub

About ReSiE

ReSiE is part of the open-source QuaSi project for building- and district-scale energy-system planning. The surrounding QuaSi ecosystem contains additional tools for tasks such as building-demand simulation, photovoltaic simulation and graphical creation and execution of ReSiE projects. ReSiE itself can be used independently as a Julia simulation engine and is released under the MIT license.

The development of QuaSi and ReSiE has been funded in majority by a research initiative of the German government through the German Federal Ministry for Economic Affairs and Energy (BMWE) and the German Federal Ministry of Education and Research (BMBF).

Version 1.0 is an important milestone for us after several years of development and use in research projects. We would be very interested to hear from you if you work on energy-system modelling, building or district simulation, simulation-based optimisation, control strategies, or related applications.
If you try ReSiE, feedback, bug reports, discussions, and contributions are very welcome!

5 Likes