Source code for tessif_examples.plausibility.chp_emissions

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


[docs]def create_chp_emissions(): """Create a chp-emissions plausibility check MSC. Returns ------- :class:`tessif.system_model.AbstractEnergySystem` Chp-Emissions plausibility check MSC. Example ------- .. image:: ../../_static/system_model_graphs/chp_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": 54, } power_demand = components.Sink( name="Power Demand Component", inputs=("electricity",), flow_rates={"electricity": nts.MinMax(min=10, max=10)}, ) heat_demand = components.Sink( name="Heat Demand Component", inputs=("hot_water",), flow_rates={"hot_water": nts.MinMax(min=8, max=8)}, ) chp = components.Transformer( name="CHP", inputs=("gas",), outputs=("electricity", "hot_water"), conversions={ ("gas", "electricity"): 0.5, ("gas", "hot_water"): 0.4, }, flow_rates={ "gas": nts.MinMax(min=0, max=float("+inf")), "electricity": nts.MinMax(min=0, max=10), "hot_water": nts.MinMax(min=0, max=8), }, flow_emissions={"electricity": 1, "hot_water": 1, "gas": 0}, ) gas_source = components.Source( name="Gas Commodity", outputs=("gas",), flow_rates={"gas": nts.MinMax(min=0, max=float("+inf"))}, ) power_source = components.Source( name="Power Source Component", outputs=("electricity",), flow_rates={"electricity": nts.MinMax(min=0, max=10)}, flow_costs={"electricity": 1}, ) heat_source = components.Source( name="Heat Source Component", outputs=("hot_water",), flow_rates={"hot_water": nts.MinMax(min=0, max=8)}, flow_costs={"hot_water": 1}, ) gas_bus = components.Bus( name="Gas Bus", inputs=("Gas Commodity.gas",), outputs=("CHP.gas",), ) power_bus = components.Bus( name="Power Bus", inputs=( "Power Source Component.electricity", "CHP.electricity", ), outputs=("Power Demand Component.electricity",), ) heat_bus = components.Bus( name="Heat Bus", inputs=( "Heat Source Component.hot_water", "CHP.hot_water", ), outputs=("Heat Demand Component.hot_water",), ) # 4. Creating the actual energy system: chp_emissions_msc = system_model.AbstractEnergySystem( uid="Chp Emissions MSC", busses=(gas_bus, power_bus, heat_bus), sinks=(power_demand, heat_demand), sources=(gas_source, power_source, heat_source), chps=(chp,), timeframe=timeframe, global_constraints=global_constraints, ) return chp_emissions_msc