cronian.explicit_heat

Explicitly built optimization problem of a heat system prosumer.

At the time of implementation (2024-09-01), this prosumer had an unsupported assets (a heat storage tank: its model was not yet available in the DERs directory). This script therefore shows how prosumers with unsupported assets can be added to the simulation: by preparing their explicit configuration and explicit timeseries data files, and explicitly building their model components.

Functions

add_explicit_heat_to_model(→ pyomo.environ.ConcreteModel)

Add an explicitly built heat system to the simulation.

Module Contents

cronian.explicit_heat.add_explicit_heat_to_model(model: pyomo.environ.ConcreteModel, explicit_configuration: dict, explicit_prosumer_timeseries_data: pandas.DataFrame, number_of_timesteps: int | None) pyomo.environ.ConcreteModel

Add an explicitly built heat system to the simulation.

This heat system prosumer agent currently has the following assets: 1. A large scale heat pump that consumes electricity to produce heat. 2. A CHP which consumes methane to produce heat and electricity. 3. A heat storage tank to temporarily buffer heat consumption for later use.

It also has a flexible heat load which is modeled as a store with deadlines on its energy level.

Args:

model: The optimization model to which the heat system will be added. explicit_configuration: Yaml config file of the explicit prosumer. explicit_prosumer_timeseries_data: The csv file containing timeseries

data for the explicit prosumer.

number_of_timesteps: Number of timesteps to run the optimization for.

Returns:

model: The optimization model with the heat system added to it.

Raises:

ValueError: If flex_demand name does not match ‘flex+{n:d}’.