Hello openmod community,
we are happy to announce ReSiE v1.0, as part of our software toolbox QuaSi.
ReSiE is an open-source simulation engine for sector-coupled energy systems at building and district scale, written in Julia. 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: https://quasi-software.readthedocs.io/en/latest/
GitHub: https://github.com/QuaSi-Software/ResieQuasi.jl
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 (and 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. If you are familiar with Julia, you can get started quickly with the following:
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 the complete installation instructions, 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:
https://quasi-software.readthedocs.io/en/latest/resie_overview/
ReSiE can also be installed from the Julia General registry, available as package ResieQuasi.jl, 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: https://github.com/QuaSi-Software/susi
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.
We previously announced GenSim, one of these tools, and with the 1.0 release of ReSiE we feel that QuaSi as a toolbox is ready to be used in full. You can use the tags quasi-software, gensim and resie to talk about the tools on this forum.
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 Research, Technology and Space (BMFTR).
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 can see a use for ReSiE in your work.
If you try ReSiE, feedback, bug reports, discussions, and contributions are very welcome!