Vessim is a versatile co-simulation testbed for carbon-aware applications and systems which connects domain-specific simulators for renewable power generation and energy storage with real software and hardware.
It simulates energy systems that interact with real or simulated computing systems for:
Vessim can simulate large numbers of microgrids in parallel, comes with ready-to-use datasets, can execute simulated experiments faster than real-time, and is easily extendable with new simulators of any platform through Mosaik's TCP interface.
Check out the official documentation!
The scenario below simulates a microgrid consisting of a simulated computing system (which consistently draws 400W), a single producer (a solar power plant who's production is modelled based on a dataset provided by Solcast), and a battery. The Monitor periodically stores the energy system state.
import vessim as vs
environment = vs.Environment(sim_start="2022-06-15")
monitor = vs.Monitor()
environment.add_microgrid(
actors=[
vs.ComputingSystem(nodes=[vs.MockSignal(value=400)]),
vs.Actor(
name="solar_panel",
signal=vs.HistoricalSignal.load("solcast2022_global", column="Berlin")
),
],
controllers=[monitor],
storage=vs.SimpleBattery(capacity=100),
step_size=60,
)
environment.run(until=24 * 3600) # 24h
monitor.to_csv("result.csv")
You can install the latest release of Vessim via pip:
pip install vessim
If you require software-in-the-loop (SiL) capabilities, you should additionally install the sil
extension:
pip install vessim[sil]
For complex scenarios that involve custom co-simulation actors we recommend cloning and editing this depository directly.
Our team at the Distributed and Operating Systems group at TU Berlin is actively working to improve Vessim. We are currently working on the following aspects and features:
Vessim comes with ready-to-user datasets for solar irradiance and average carbon intensity provided by
and
We're working on documentation on how to include custom datasets for your simulations.
If you use Vessim in your research, please cite our paper:
@inproceedings{wiesner2024vessim,
title = {Vessim: A Testbed for Carbon-Aware Applications and Systems},
author = {Wiesner, Philipp and Behnke, Ilja and Kilian, Paul and Steinke, Marvin and Kao, Odej},
booktitle = {3rd Workshop on Sustainable Computer Systems (HotCarbon)},
year = {2024},
}
For details in Vessim's software-in-the-loop simulation methodology, refer to our journal paper:
@article{wiesner2023sil,
author = {Wiesner, Philipp and Steinke, Marvin and Nickel, Henrik and Kitana, Yazan and Kao, Odej},
title = {Software-in-the-loop simulation for developing and testing carbon-aware applications},
journal = {Software: Practice and Experience},
year = {2023},
volume = {53},
number = {12},
pages = {2362-2376},
doi = {https://doi.org/10.1002/spe.3275}
}