Source code for tessif_examples.plausibility.storage_emissions

# src/tessif_examples/plausbility/mwe.py
"""Tessif storage emissions plausibility check MSC."""
import tessif.frused.namedtuples as nts
from pandas import date_range
from tessif import components, system_model


[docs]def create_storage_emissions(): """Create a storage-emissions plausibility check MSC. Returns ------- :class:`tessif.system_model.AbstractEnergySystem` Storage-Emissions plausibility check MSC. Example ------- .. image:: ../../_static/system_model_graphs/storage_emissions.png :align: center :alt: Image showing the mwe energy system graph """ # 2. Create a simulation time frame of 2 one hour time steps as a # :class:`pandas.DatetimeIndex`: timeframe = date_range("7/13/1990", periods=4, freq="H") global_constraints = { "name": "emissions_constraint", "emissions": 20, } demand = components.Sink( name="Energy Demand Component", inputs=("electricity",), flow_rates={"electricity": nts.MinMax(min=10, max=10)}, ) storage = components.Storage( name="Energy Storage Component", input="electricity", output="electricity", capacity=100, initial_soc=0, flow_emissions={"electricity": 1}, ) source_1 = components.Source( name="Energy Source Component 1", outputs=("electricity",), flow_rates={"electricity": nts.MinMax(min=0, max=100)}, # fixing flow rate to timeseries helps fine parsing mimimum flow timeseries={ "electricity": nts.MinMax( min=[ 110, 0, 0, 0, ], max=[ 110, 0, 0, 0, ], ), }, ) source_2 = components.Source( name="Energy Source Component 2", outputs=("electricity",), flow_rates={"electricity": nts.MinMax(min=0, max=10)}, flow_costs={"electricity": 1}, ) central_bus = components.Bus( name="Central Bus", inputs=( "Energy Source Component 1.electricity", "Energy Source Component 2.electricity", "Energy Storage Component.electricity", ), outputs=( "Energy Storage Component.electricity", "Energy Demand Component.electricity", ), ) # 4. Creating the actual energy system: storage_emissions_msc = system_model.AbstractEnergySystem( uid="Storage Emissions MSC", busses=(central_bus,), sinks=(demand,), sources=( source_1, source_2, ), storages=(storage,), timeframe=timeframe, global_constraints=global_constraints, ) return storage_emissions_msc