From 4485f3f528eeafe9e579ad5a4b96b8bf1566d0f2 Mon Sep 17 00:00:00 2001 From: mena138 Date: Thu, 26 Feb 2026 11:01:27 +0100 Subject: [PATCH 01/33] Make simple heat storage works with uniform temperature (FluidMixMapping) --- src/pandaprosumer/create.py | 21 ++++++++++++++++++++- src/pandaprosumer/create_controlled.py | 21 ++++++++++++++++----- src/pandaprosumer/element/heat_storage.py | 13 +++++++++++-- 3 files changed, 47 insertions(+), 8 deletions(-) diff --git a/src/pandaprosumer/create.py b/src/pandaprosumer/create.py index 9ead65b..8f6df38 100644 --- a/src/pandaprosumer/create.py +++ b/src/pandaprosumer/create.py @@ -667,12 +667,31 @@ def create_heat_storage(prosumer, in_service=True, index=None, name=None, + capacity_kg=np.nan, + init_temperature_c=np.nan, + min_temp_c=np.nan, + max_temp_c=np.nan, + u_w_per_m2k=np.nan, + area_wall_m2=np.nan, + t_ext_c=np.nan, **kwargs): + """ + Creates a heat storage element. Use with GenericMapping (power only) or + FluidMixMapping (uniform tank; set capacity_kg and optionally init_temperature_c, + min_temp_c, max_temp_c for SOC from temperature). + """ add_new_element(prosumer, HeatStorageElementData) index = _get_index_with_check(prosumer, "heat_storage", index) - entries = dict(zip(['name', 'q_capacity_kwh', 'in_service'], [name, q_capacity_kwh, in_service])) + entries = dict(zip( + ['name', 'q_capacity_kwh', 'in_service', + 'capacity_kg', 'init_temperature_c', 'min_temp_c', 'max_temp_c', + 'u_w_per_m2k', 'area_wall_m2', 't_ext_c'], + [name, q_capacity_kwh, in_service, + capacity_kg, init_temperature_c, min_temp_c, max_temp_c, + u_w_per_m2k, area_wall_m2, t_ext_c] + )) _set_entries(prosumer, "heat_storage", index, **entries, **kwargs) return int(index) diff --git a/src/pandaprosumer/create_controlled.py b/src/pandaprosumer/create_controlled.py index e5f0f6e..58b1449 100644 --- a/src/pandaprosumer/create_controlled.py +++ b/src/pandaprosumer/create_controlled.py @@ -820,20 +820,24 @@ def create_controlled_heat_storage(prosumer, level=0, order=0, init_soc=0., + init_temperature=None, period=0, **kwargs): """ Creates a heat storage element in the prosumer and a heat storage controller. + The controller supports GenericMapping (power only) or FluidMixMapping (uniform + tank with temperature and mass flows). Optional min_temp_c, max_temp_c on the + element enable SOC from tank temperature in FluidMix mode. INPUT: **prosumer** - The prosumer within which this heat storage should be created. - **q_capacity_kwh** (float) - The thermal energy capacity of the heat storage [kWh]. + **q_capacity_kwh** (float) - The thermal energy capacity [kWh] (power-only mode). OPTIONAL: **name** (string, default None) - The name for this heat storage controller. - **index** (int, default None) - Force a specified ID if it is available. If None, the index one higher than the highest already existing index is selected. + **index** (int, default None) - Force a specified ID if it is available. **in_service** (boolean, default True) - True for in_service or False for out of service. @@ -841,11 +845,17 @@ def create_controlled_heat_storage(prosumer, **order** (int, default 0) - The order of the controller. - **init_soc** (float, default 0.) - The initial state of charge of the heat storage. + **init_soc** (float, default 0.) - The initial state of charge (power-only or fallback). + + **init_temperature** (float, default None) - Initial tank temperature [°C] for FluidMix mode (from element if None). **period** (int, default 0) - Index of the period, default is 0. - **kwargs** - Additional keyword arguments. + **capacity_kg** (float) - Tank fluid mass [kg]; if set, enables FluidMix / uniform tank mode. + + **min_temp_c**, **max_temp_c**, **u_w_per_m2k**, **area_wall_m2**, **t_ext_c** - Passed to the element for FluidMix mode. **init_temperature_c**, + + **kwargs** - Additional keyword arguments passed to the element. OUTPUT: **index** (int) - The unique ID of the created heat storage controller. @@ -856,7 +866,7 @@ def create_controlled_heat_storage(prosumer, heat_storage_index = create_heat_storage( prosumer, - **{k: v for k, v in locals().items() if k not in {"prosumer", "period", "order", 'level', 'init_soc', 'kwargs'}}, + **{k: v for k, v in locals().items() if k not in {"prosumer", "period", "order", "level", "init_soc", "init_temperature", "kwargs"}}, **kwargs ) heat_storage_controller_data = HeatStorageControllerData( @@ -870,6 +880,7 @@ def create_controlled_heat_storage(prosumer, order=order, level=level, init_soc=init_soc, + init_temperature=init_temperature, name=name ) return hs.index diff --git a/src/pandaprosumer/element/heat_storage.py b/src/pandaprosumer/element/heat_storage.py index 6feb656..c5eda7c 100644 --- a/src/pandaprosumer/element/heat_storage.py +++ b/src/pandaprosumer/element/heat_storage.py @@ -23,6 +23,15 @@ class HeatStorageElementData: ('name', dtype(object)), ('in_service', bool), - # Instance properties - ('q_capacity_kwh', 'f8') + # Power-only mode (GenericMapping) + ('q_capacity_kwh', 'f8'), + + # Optional: FluidMix / uniform tank mode + ('capacity_kg', 'f8'), # Tank fluid mass [kg]; if set, enables FluidMixMapping + ('init_temperature_c', 'f8'), # Initial uniform tank temperature [°C] + ('min_temp_c', 'f8'), # Min temperature for SOC from T (optional) + ('max_temp_c', 'f8'), # Max temperature for SOC from T (optional) + ('u_w_per_m2k', 'f8'), # Wall U-value [W/(m²·K)] + ('area_wall_m2', 'f8'), # Wall area [m²] + ('t_ext_c', 'f8'), # Ambient temperature for losses [°C] ]) From 80bd3cc4a7ebc0cc5c0189ff26447715f265f5a9 Mon Sep 17 00:00:00 2001 From: mena138 Date: Thu, 26 Feb 2026 12:50:10 +0100 Subject: [PATCH 02/33] heat storage and tutorial --- doc/source/elements/simple_heat_storage.rst | 16 +- .../controller/models/heat_demand.py | 21 +- .../controller/models/heat_storage.py | 288 +++++++++++++--- src/pandaprosumer/run_control.py | 1 + src/pandaprosumer/run_time_series.py | 8 +- tests/models/test_simple_heat_storage.py | 67 +++- tutorials/heat_storage_tutorial.ipynb | 308 ++++++++++++++++++ 7 files changed, 647 insertions(+), 62 deletions(-) create mode 100644 tutorials/heat_storage_tutorial.ipynb diff --git a/doc/source/elements/simple_heat_storage.rst b/doc/source/elements/simple_heat_storage.rst index 5ed519a..30f7638 100644 --- a/doc/source/elements/simple_heat_storage.rst +++ b/doc/source/elements/simple_heat_storage.rst @@ -43,7 +43,14 @@ Input Static Data "name", "Custom name for the Storage", "N/A" "in_service", "Indicates if the Storage is in service", "N/A" - "q_capacity_kwh", "Capacity in kilowatt-hours", "kWh" + "q_capacity_kwh", "Capacity in kilowatt-hours (power-only mode)", "kWh" + "capacity_kg", "Tank fluid mass; if set, enables FluidMix / uniform tank mode", "kg" + "init_temperature_c", "Initial uniform tank temperature (FluidMix mode)", "°C" + "min_temp_c", "Minimum temperature for SOC from T (optional, FluidMix)", "°C" + "max_temp_c", "Maximum temperature for SOC from T (optional, FluidMix)", "°C" + "u_w_per_m2k", "Wall U-value for heat losses (FluidMix)", "W/(m²·K)" + "area_wall_m2", "Wall area for heat losses (FluidMix)", "m²" + "t_ext_c", "Ambient temperature for heat losses (FluidMix)", "°C" Input Time Series @@ -71,7 +78,10 @@ Output Time Series Mapping ---------- -The Simple Storage model model can be mapped using :ref:`GenericMapping `. +The heat storage controller can be connected with: + +- **GenericMapping**: power only (input ``q_received_kw``; output ``soc``, ``q_delivered_kw``). +- **FluidMixMapping**: temperature and mass flows (uniform tank). Set ``capacity_kg`` on the element to enable; optionally set ``init_temperature_c``, ``min_temp_c``, and ``max_temp_c`` to derive SOC from tank temperature. @@ -82,7 +92,7 @@ Model :members: -The heat storage model computes the heat received and delivered by the storage element, and updates the state of charge (SOC) accordingly. +The heat storage model supports two modes. With **GenericMapping** (power only), it computes the heat received and delivered and updates SOC from the energy balance. With **FluidMixMapping** (element ``capacity_kg`` set), it uses a uniform tank with temperature and mass flows; if ``min_temp_c`` and ``max_temp_c`` are set, SOC is computed from the tank temperature as :math:`\mathrm{SOC} = (T - T_{\min}) / (T_{\max} - T_{\min})` (clipped to [0, 1]). .. math:: :nowrap: diff --git a/src/pandaprosumer/controller/models/heat_demand.py b/src/pandaprosumer/controller/models/heat_demand.py index 0846352..bc6fda8 100644 --- a/src/pandaprosumer/controller/models/heat_demand.py +++ b/src/pandaprosumer/controller/models/heat_demand.py @@ -220,30 +220,37 @@ def control_step(self, prosumer): # ToDo: If t_in < t_out, return t_in, not t_out - assert not np.isnan(self._t_in_c), f"Heat Demand {self.name} t_in_c is NaN for timestep {self.time} in prosumer {prosumer.name}" + # When upstream (e.g. storage) sends no flow, t_in_c may be NaN; use feed temp as fallback for math + no_flow = np.isnan(self._mdot_received_kg_per_s) or self._mdot_received_kg_per_s == 0 + effective_t_in_c = self._t_in_c if not np.isnan(self._t_in_c) else (t_feed_demand_c if no_flow else np.nan) + assert not np.isnan(effective_t_in_c), f"Heat Demand {self.name} t_in_c is NaN for timestep {self.time} in prosumer {prosumer.name}" assert not np.isnan(t_feed_demand_c), f"Heat Demand {self.name} t_feed_demand_c is NaN for timestep {self.time} in prosumer {prosumer.name}" assert not np.isnan(t_return_demand_c), f"Heat Demand {self.name} t_return_demand_c is NaN for timestep {self.time} in prosumer {prosumer.name}" assert not np.isnan(q_demand_kw), f"Heat Demand {self.name} q_demand_kw is NaN for timestep {self.time} in prosumer {prosumer.name}" assert not np.isnan(mdot_demand_kg_per_s), f"Heat Demand {self.name} mdot_demand_kg_per_s is NaN for timestep {self.time} in prosumer {prosumer.name}" - t_mean_c = (self._t_in_c + t_return_demand_c) / 2 + t_mean_c = (effective_t_in_c + t_return_demand_c) / 2 cp_kj_per_kgk = float(prosumer.fluid.get_heat_capacity(CELSIUS_TO_K + t_mean_c)) / 1000 if np.isnan(self._mdot_received_kg_per_s): - q_received_kw = q_demand_kw - mdot_received_kg_per_s = q_demand_kw / (cp_kj_per_kgk * (self._t_in_c - t_return_demand_c)) + if no_flow: + q_received_kw = 0.0 + mdot_received_kg_per_s = 0.0 + else: + q_received_kw = q_demand_kw + mdot_received_kg_per_s = q_demand_kw / (cp_kj_per_kgk * (effective_t_in_c - t_return_demand_c)) else: mdot_received_kg_per_s = self._mdot_received_kg_per_s - q_received_kw = cp_kj_per_kgk * mdot_received_kg_per_s * (self._t_in_c - t_return_demand_c) + q_received_kw = cp_kj_per_kgk * mdot_received_kg_per_s * (effective_t_in_c - t_return_demand_c) t_out_c = t_return_demand_c # Calculate the difference between the received and the required power, wo considering the temperature level # FixMe: Consider the temperature level in the output q_uncovered_kw = q_demand_kw - q_received_kw - result = np.array([[q_received_kw, q_uncovered_kw, mdot_received_kg_per_s, self._t_in_c, t_out_c]]) + result = np.array([[q_received_kw, q_uncovered_kw, mdot_received_kg_per_s, effective_t_in_c, t_out_c]]) self.last_result = { "q_received_kw": q_received_kw, "q_uncovered_kw": q_uncovered_kw, "mdot_received_kg_per_s": mdot_received_kg_per_s, - "t_in_c": self._t_in_c, + "t_in_c": effective_t_in_c, "t_out_c": t_out_c } if np.isnan(result).any(): diff --git a/src/pandaprosumer/controller/models/heat_storage.py b/src/pandaprosumer/controller/models/heat_storage.py index f0c6b6d..0d6cb65 100644 --- a/src/pandaprosumer/controller/models/heat_storage.py +++ b/src/pandaprosumer/controller/models/heat_storage.py @@ -1,22 +1,34 @@ """ Module containing the HeatStorageController class. + +The heat storage controller supports two connection modes: +- **GenericMapping**: power-only interface (q_received_kw input; soc, q_delivered_kw output). +- **FluidMixMapping**: temperature and mass-flow interface (uniform tank model; optional + min_temp_c / max_temp_c to derive SOC from tank temperature). """ import numpy as np import pandas as pd +from pandaprosumer import CELSIUS_TO_K, TEMPERATURE_CONVERGENCE_THRESHOLD_C from pandaprosumer.controller.base import BasicProsumerController +from pandaprosumer.mapping.fluid_mix import FluidMixMapping class HeatStorageController(BasicProsumerController): """ Controller for heat storage systems. + + Can be used with GenericMapping (power only) or FluidMixMapping (temperature and + mass flows, uniform tank model). Optional min_temp_c and max_temp_c allow + computing SOC from tank temperature when using FluidMixMapping. """ def name_class(self): return "heat_storage_controller" - def __init__(self, prosumer, heat_storage_object, order, level, init_soc=0., in_service=True, index=None, **kwargs): + def __init__(self, prosumer, heat_storage_object, order, level, init_soc=0., + init_temperature=None, in_service=True, index=None, **kwargs): """ Initializes the HeatStorageController. @@ -24,65 +36,152 @@ def __init__(self, prosumer, heat_storage_object, order, level, init_soc=0., in_ :param heat_storage_object: The heat storage object :param order: The order of the controller :param level: The level of the controller - :param init_soc: Initial state of charge + :param init_soc: Initial state of charge (power-only mode or fallback) + :param init_temperature: Initial uniform tank temperature [°C] for FluidMix mode (from element if None) :param in_service: The in-service status of the controller :param index: The index of the controller :param kwargs: Additional keyword arguments """ - super().__init__(prosumer, heat_storage_object, order=order, level=level, in_service=in_service, index=index, **kwargs) + super().__init__(prosumer, heat_storage_object, order=order, level=level, + in_service=in_service, index=index, **kwargs) self._soc = float(init_soc) self.last_soc = float(init_soc) + # Fluid mode: uniform tank state (set from element in control_step if used) + self._temperature = float(init_temperature) if init_temperature is not None else None + self.t_previous_out_c = np.nan + self.t_previous_in_c = np.nan + self.mdot_previous_in_kg_per_s = np.nan - def q_to_receive_kw(self, prosumer): - """ - Calculates the heat to receive in kW. + def _use_fluid_mix_mode(self, prosumer): + """True if tank has capacity_kg (and thus supports FluidMix / uniform tank).""" + cap = self._get_element_param(prosumer, "capacity_kg") + return cap is not None and not (isinstance(cap, float) and np.isnan(cap)) and cap > 0 - :param prosumer: The prosumer object - :return: Heat to receive in kW + def _init_fluid_state_from_element(self, prosumer): + """Initialize uniform tank temperature from element or keep existing.""" + init_t = self._get_element_param(prosumer, "init_temperature_c") + if init_t is not None and not (isinstance(init_t, float) and np.isnan(init_t)): + self._temperature = float(init_t) + if self._temperature is None: + self._temperature = 40.0 # default fallback + + @property + def _t_received_in_c(self): + if not np.isnan(self.input_mass_flow_with_temp[FluidMixMapping.TEMPERATURE_KEY]): + return self.input_mass_flow_with_temp[FluidMixMapping.TEMPERATURE_KEY] + return np.nan + + @property + def _mdot_received_kg_per_s(self): + if not np.isnan(self.input_mass_flow_with_temp[FluidMixMapping.MASS_FLOW_KEY]): + return self.input_mass_flow_with_temp[FluidMixMapping.MASS_FLOW_KEY] + return np.nan + + def _soc_from_temperature(self, prosumer): + """Compute SOC from tank temperature using element min_temp_c / max_temp_c if set.""" + if self._temperature is None or (isinstance(self._temperature, float) and np.isnan(self._temperature)): + return None + min_t = self._get_element_param(prosumer, "min_temp_c") + max_t = self._get_element_param(prosumer, "max_temp_c") + if min_t is None or (isinstance(min_t, float) and np.isnan(min_t)): + return None + if max_t is None or (isinstance(max_t, float) and np.isnan(max_t)): + return None + delta = float(max_t) - float(min_t) + if delta <= 0: + return None + soc = (self._temperature - float(min_t)) / delta + return float(np.clip(soc, 0.0, 1.0)) + + def _calculate_heat_losses(self, prosumer): + """Update internal temperature for wall heat losses.""" + u = self._get_element_param(prosumer, "u_w_per_m2k") or 0 + area = self._get_element_param(prosumer, "area_wall_m2") or 0 + t_ext = self._get_element_param(prosumer, "t_ext_c") + if t_ext is None or (isinstance(t_ext, float) and np.isnan(t_ext)): + t_ext = 25.0 + t_ext = float(t_ext) + capacity_kg = float(self._get_element_param(prosumer, "capacity_kg")) + q_loss_w = u * area * (self._temperature - t_ext) + fluid = getattr(prosumer, "fluid", None) + if fluid is not None and hasattr(fluid, "get_heat_capacity"): + cp_j_per_kgk = fluid.get_heat_capacity(CELSIUS_TO_K + self._temperature) + else: + cp_j_per_kgk = 4180.0 # default water [J/(kg·K)] + if np.isnan(cp_j_per_kgk) or cp_j_per_kgk <= 0: + cp_j_per_kgk = 4180.0 + loss_w_per_k = cp_j_per_kgk * self.resol * capacity_kg + if loss_w_per_k > 0: + t_loss_c = q_loss_w / loss_w_per_k + self._temperature -= t_loss_c + + def _calculate_uniform_tank_step(self, prosumer, mdot_kg_per_s, t_in_c): """ + One timestep of uniform tank: heat losses then mixing. + Returns (q_delivered_kw, mdot_delivered_kg_per_s, t_out_c, new_temperature). + """ + self._calculate_heat_losses(prosumer) + t_out_c = self._temperature + capacity_kg = float(self._get_element_param(prosumer, "capacity_kg")) + m_received_kg = mdot_kg_per_s * self.resol + self._temperature = ( + (capacity_kg - m_received_kg) * self._temperature + m_received_kg * t_in_c + ) / capacity_kg + fluid = getattr(prosumer, "fluid", None) + if fluid is not None and hasattr(fluid, "get_heat_capacity"): + cp_kj_per_kgk = fluid.get_heat_capacity(CELSIUS_TO_K + self._temperature) / 1000 + else: + cp_kj_per_kgk = 4.18 # default water [kJ/(kg·K)] + if np.isnan(cp_kj_per_kgk) or cp_kj_per_kgk <= 0: + cp_kj_per_kgk = 4.18 + q_delivered_kw = mdot_kg_per_s * (t_out_c - t_in_c) * cp_kj_per_kgk + return q_delivered_kw, mdot_kg_per_s, t_out_c, self._temperature - # self.applied = False + def q_to_receive_kw(self, prosumer): + """ + Heat to receive in kW (used in GenericMapping / power-only mode). + """ _q_capacity_kwh = self._get_element_param(prosumer, "q_capacity_kwh") fill_level_kwh = min(self._soc, 1) * _q_capacity_kwh q_to_receive_kw = (_q_capacity_kwh - fill_level_kwh) * 3600 / self.resol q_to_receive_kw += self.q_to_deliver_kw(prosumer) - if not np.isnan(self._get_input('q_received_kw')): - # If there is already some power in the input, don't require it again - q_received_kw = self._get_input('q_received_kw') + if not np.isnan(self._get_input("q_received_kw")): + q_received_kw = self._get_input("q_received_kw") q_to_receive_kw -= q_received_kw - q_to_receive_kw = max(0., q_to_receive_kw) + q_to_receive_kw = max(0.0, q_to_receive_kw) return q_to_receive_kw def q_to_deliver_kw(self, prosumer): - """ - Calculates the heat to deliver in kW. - - :param prosumer: The prosumer object - :return: Heat to deliver in kW - """ - q_to_deliver_kw = 0. + """Heat to deliver in kW (sum of generic-mapped responders' demand).""" + q_to_deliver_kw = 0.0 for responder in self._get_generic_mapped_responders(prosumer): q_to_deliver_kw += responder.q_to_receive_kw(prosumer) return q_to_deliver_kw def _save_state(self): - """Backup states before Run""" - self._backup_state = { - "soc": self._soc, - } + """Backup states before run.""" + self._backup_state = {"soc": self._soc} + if self._temperature is not None: + self._backup_state["temperature"] = self._temperature + self._backup_state["t_previous_out_c"] = self.t_previous_out_c + self._backup_state["t_previous_in_c"] = self.t_previous_in_c + self._backup_state["mdot_previous_in_kg_per_s"] = self.mdot_previous_in_kg_per_s def _restore_state(self): - """Restore states before Rerun""" + """Restore states before rerun.""" if hasattr(self, "_backup_state"): self._soc = self._backup_state["soc"] - - + if "temperature" in self._backup_state: + self._temperature = self._backup_state["temperature"] + self.t_previous_out_c = self._backup_state["t_previous_out_c"] + self.t_previous_in_c = self._backup_state["t_previous_in_c"] + self.mdot_previous_in_kg_per_s = self._backup_state["mdot_previous_in_kg_per_s"] def control_step(self, prosumer): """ - Executes the control step for the controller. - - :param prosumer: The prosumer object + Executes the control step. + Uses power-only balance when only GenericMapping is used; uses uniform tank + (temperature and mass flows) when FluidMixMapping is used and capacity_kg is set. """ if not prosumer.rerun: self._save_state() @@ -90,35 +189,140 @@ def control_step(self, prosumer): self._restore_state() if not (self.in_service and getattr(prosumer, self.obj.element_name).iloc[self.obj.element_index[0]].in_service): + if self._use_fluid_mix_mode(prosumer): + self._init_fluid_state_from_element(prosumer) + self._calculate_heat_losses(prosumer) + soc_fluid = self._soc_from_temperature(prosumer) + soc = soc_fluid if soc_fluid is not None else self._soc + result = np.array([[soc, 0.0]]) + result_fluid = [{FluidMixMapping.TEMPERATURE_KEY: self._temperature, + FluidMixMapping.MASS_FLOW_KEY: 0.0}] + self.finalize(prosumer, result, result_fluid_mix=result_fluid) + else: + self.finalize(prosumer, np.array([[self._soc, 0.0]])) self.applied = True return super().control_step(prosumer) + # FluidMix mode: uniform tank with temperature and mass flows + if self._use_fluid_mix_mode(prosumer): + self._run_control_step_fluid_mix(prosumer) + return + + # Power-only mode (GenericMapping) + self._run_control_step_power_only(prosumer) + + def _run_control_step_power_only(self, prosumer): + """Power-only balance (q_received_kw -> soc, q_delivered_kw).""" q_to_deliver_kw = self.q_to_deliver_kw(prosumer) _q_capacity_kwh = self._get_element_param(prosumer, "q_capacity_kwh") e_received_kwh = self._get_input("q_received_kw") * self.resol / 3600 potential_kwh = self._soc * _q_capacity_kwh + e_received_kwh demand_kwh = q_to_deliver_kw * self.resol / 3600 if demand_kwh > potential_kwh: - # Cannot meet the demand demand_kwh = potential_kwh if not isinstance(demand_kwh, np.ndarray) and demand_kwh == 0: - demand_kwh = np.array([0.]) / self.resol / 3600 + demand_kwh = np.array([0.0]) / self.resol / 3600 fill_level_kwh = potential_kwh - demand_kwh excess_energy_kwh = max(0, fill_level_kwh - _q_capacity_kwh) if excess_energy_kwh > 0: - raise ValueError(f"Excess energy detected: {excess_energy_kwh} kWh exceeds the maximum capacity.") + raise ValueError( + f"Excess energy detected: {excess_energy_kwh} kWh exceeds the maximum capacity." + ) + + self._soc = float(np.asarray(fill_level_kwh).flat[0]) / _q_capacity_kwh + demand_kw = float(np.asarray(demand_kwh).flat[0]) / (self.resol / 3600) + assert 0 <= self._soc <= 1, ( + f"SOC = {self._soc} invalid for controller {self.name} in prosumer {prosumer.name} " + f"at timestep {self.time}" + ) + result = np.array([[float(self._soc), demand_kw]]) + self.last_result = {"soc": self._soc, "demand_kw": demand_kw} + self.finalize(prosumer, result) + self.applied = True + + def _run_control_step_fluid_mix(self, prosumer): + """Uniform tank step with FluidMix input/output; optional SOC from temperature.""" + self._init_fluid_state_from_element(prosumer) + + if not self._are_initiators_converged(prosumer): + self._unapply_initiators(prosumer) + self.input_mass_flow_with_temp = { + FluidMixMapping.TEMPERATURE_KEY: np.nan, + FluidMixMapping.MASS_FLOW_KEY: np.nan, + } + # Still finalize with no delivery so downstream (e.g. heat demand) get valid input + self._calculate_heat_losses(prosumer) + t_out = self._temperature if (self._temperature is not None and not np.isnan(self._temperature)) else 40.0 + result_fluid = [{FluidMixMapping.TEMPERATURE_KEY: float(t_out), FluidMixMapping.MASS_FLOW_KEY: 0.0}] + soc_fluid = self._soc_from_temperature(prosumer) + soc = soc_fluid if soc_fluid is not None else self._soc + soc = float(soc) if not np.isnan(soc) else 0.0 + self.finalize(prosumer, np.array([[soc, 0.0]]), result_fluid_mix=result_fluid) + self.applied = True + return + + mdot = self._mdot_received_kg_per_s + t_in = self._t_received_in_c + if np.isnan(mdot) or np.isnan(t_in): + self._calculate_heat_losses(prosumer) + q_delivered_kw = 0.0 + t_out = self._temperature if (self._temperature is not None and not np.isnan(self._temperature)) else 40.0 + result_fluid = [{FluidMixMapping.TEMPERATURE_KEY: float(t_out), + FluidMixMapping.MASS_FLOW_KEY: 0.0}] + soc_fluid = self._soc_from_temperature(prosumer) + soc = soc_fluid if soc_fluid is not None else self._soc + soc = float(soc) if not np.isnan(soc) else 0.0 + result = np.array([[soc, q_delivered_kw]]) + self.finalize(prosumer, result, result_fluid_mix=result_fluid) + self.applied = True + return + + q_delivered_kw, mdot_delivered, t_out_c, new_t = self._calculate_uniform_tank_step( + prosumer, mdot, t_in + ) + self._temperature = new_t - self._soc = fill_level_kwh / _q_capacity_kwh - demand_kw = demand_kwh / (self.resol / 3600) - assert 0 <= self._soc <= 1, (f"SOC = {self._soc} invalid for controller {self.name} in prosumer {prosumer.name}" - f"at timestep {self.time}") - result = np.array([pd.Series(self._soc), pd.Series(demand_kw)]) + soc_fluid = self._soc_from_temperature(prosumer) + if soc_fluid is not None and not np.isnan(soc_fluid): + self._soc = soc_fluid + soc_out = float(self._soc) if not np.isnan(self._soc) else 0.0 + q_delivered_kw = float(np.asarray(q_delivered_kw).flat[0]) + if np.isnan(q_delivered_kw): + q_delivered_kw = 0.0 self.last_result = { - "soc": self._soc, - "demand_kw": demand_kw + "soc": soc_out, + "demand_kw": q_delivered_kw, + "temperature": self._temperature, + "mdot_kg_per_s": mdot_delivered, } - self.finalize(prosumer, result.T) - self.applied = True + result = np.array([[soc_out, q_delivered_kw]]) + result_fluid = [{FluidMixMapping.TEMPERATURE_KEY: float(t_out_c), + FluidMixMapping.MASS_FLOW_KEY: float(mdot_delivered)}] + + if np.isnan(result).any(): + self.input_mass_flow_with_temp = { + FluidMixMapping.TEMPERATURE_KEY: np.nan, + FluidMixMapping.MASS_FLOW_KEY: np.nan, + } + return + + if (np.isnan(self.t_keep_return_c) or mdot_delivered == 0 or + abs(t_out_c - self.t_keep_return_c) < TEMPERATURE_CONVERGENCE_THRESHOLD_C or + len(self._get_mapped_initiators_on_same_level(prosumer)) == 0): + self.finalize(prosumer, result, result_fluid_mix=result_fluid) + self.applied = True + self.t_previous_out_c = np.nan + self.t_previous_in_c = np.nan + self.mdot_previous_in_kg_per_s = np.nan + else: + self._unapply_initiators(prosumer) + self.t_previous_out_c = t_out_c + self.t_previous_in_c = t_in + self.mdot_previous_in_kg_per_s = mdot_delivered + self.input_mass_flow_with_temp = { + FluidMixMapping.TEMPERATURE_KEY: np.nan, + FluidMixMapping.MASS_FLOW_KEY: np.nan, + } diff --git a/src/pandaprosumer/run_control.py b/src/pandaprosumer/run_control.py index f320489..78ba85f 100644 --- a/src/pandaprosumer/run_control.py +++ b/src/pandaprosumer/run_control.py @@ -43,6 +43,7 @@ def run_control(prosumer, ctrl_variables=None, max_iter=30, **kwargs): ctrl_variables = prepare_run_ctrl(prosumer, ctrl_variables) controller_order = ctrl_variables["controller_order"] + max_iter = ctrl_variables.get("max_iter", max_iter) # initialize each controller prior to the first power flow control_initialization(controller_order) diff --git a/src/pandaprosumer/run_time_series.py b/src/pandaprosumer/run_time_series.py index 3849d7d..3ef52d7 100644 --- a/src/pandaprosumer/run_time_series.py +++ b/src/pandaprosumer/run_time_series.py @@ -53,7 +53,8 @@ def run_loop(net, ts_variables, run_control_fct=run_control, output_writer_fct=_ run_time_step(net, time_step, ts_variables, run_control_fct, output_writer_fct, **kwargs) -def run_timeseries(prosumer, period_index=0, verbose=True, check_results_fct=None): +def run_timeseries(prosumer, period_index=0, verbose=True, check_results_fct=None, max_iter=30, + continue_on_divergence=False): start = prosumer.period.at[period_index, 'start'] end = prosumer.period.at[period_index, 'end'] @@ -61,7 +62,8 @@ def run_timeseries(prosumer, period_index=0, verbose=True, check_results_fct=Non dur = pd.date_range(start, end, freq='%ss' % resol, tz=prosumer.period.at[period_index, 'timezone']) #control_diagnostic_pandaprosumer(prosumer, start, end, resol) - ts_variables = init_time_series(prosumer, dur, verbose) + ts_variables = init_time_series(prosumer, dur, verbose, max_iter=max_iter, + continue_on_divergence=continue_on_divergence) time_series_initialization(ts_variables['controller_order']) run_loop(prosumer, ts_variables, output_writer_fct=output_writer_fct, evaluate_net_fct=evaluate_prosumer_fct, run_control_fct=run_control, check_results_fct=check_results_fct) @@ -178,6 +180,8 @@ def init_time_series(prosumer, time_steps, verbose=True, **kwargs): ts_variables = prepare_run_ctrl(prosumer, **kwargs) ts_variables['time_steps'] = time_steps ts_variables['verbose'] = verbose + ts_variables['max_iter'] = kwargs.get('max_iter', 30) + ts_variables['continue_on_divergence'] = kwargs.get('continue_on_divergence', False) if logger.level != 10 and verbose: # simple progress bar diff --git a/tests/models/test_simple_heat_storage.py b/tests/models/test_simple_heat_storage.py index e074dcd..d1821b9 100644 --- a/tests/models/test_simple_heat_storage.py +++ b/tests/models/test_simple_heat_storage.py @@ -1,5 +1,8 @@ import pytest +import numpy as np +import pandas as pd from pandaprosumer import * +from pandaprosumer.mapping.fluid_mix import FluidMixMapping def _default_argument(): @@ -32,11 +35,19 @@ def test_define_element(self): assert hasattr(prosumer, "heat_storage") assert len(prosumer.heat_storage) == 1 - expected_columns = ['name', 'q_capacity_kwh', 'in_service'] - expected_values = [None, True, 0] - + expected_columns = [ + 'name', 'q_capacity_kwh', 'in_service', + 'capacity_kg', 'init_temperature_c', 'min_temp_c', 'max_temp_c', + 'u_w_per_m2k', 'area_wall_m2', 't_ext_c' + ] assert sorted(prosumer.heat_storage.columns) == sorted(expected_columns) - assert prosumer.heat_storage.iloc[0].values == pytest.approx(expected_values, nan_ok=True) + row = prosumer.heat_storage.iloc[0] + assert row['name'] is None + assert row['in_service'] == True or row['in_service'] is True + assert row['q_capacity_kwh'] == 0 or (isinstance(row['q_capacity_kwh'], (int, float)) and np.isclose(row['q_capacity_kwh'], 0)) + for col in ['capacity_kg', 'init_temperature_c', 'min_temp_c', 'max_temp_c', + 'u_w_per_m2k', 'area_wall_m2', 't_ext_c']: + assert col in row.index and (pd.isna(row[col]) or row[col] is None) def test_define_element_param(self): """ @@ -53,11 +64,14 @@ def test_define_element_param(self): assert shs_idx == 4 assert prosumer.heat_storage.index[0] == shs_idx - expected_columns = ['name', 'q_capacity_kwh', 'in_service', 'custom'] - expected_values = ['foo', False, 100, 'test'] - + expected_columns = [ + 'name', 'q_capacity_kwh', 'in_service', 'custom', + 'capacity_kg', 'init_temperature_c', 'min_temp_c', 'max_temp_c', + 'u_w_per_m2k', 'area_wall_m2', 't_ext_c' + ] assert sorted(prosumer.heat_storage.columns) == sorted(expected_columns) - assert prosumer.heat_storage.iloc[0].values == pytest.approx(expected_values) + row = prosumer.heat_storage.iloc[0] + assert row['name'] == 'foo' and row['in_service'] == False and row['q_capacity_kwh'] == 100 and row['custom'] == 'test' def test_define_controller(self): """ @@ -210,3 +224,40 @@ def test_controller_t_m_to_receive(self): shs_controller.inputs = np.array([[q_in_kw]]) assert shs_controller.q_to_receive_kw(prosumer) == pytest.approx(q_to_fill_kwh * 3600/shs_controller.resol + q_out_kw - q_in_kw) + + def test_fluid_mix_mode_step(self): + """Test FluidMix mode: uniform tank with input T and mdot; check step_results and optional result_mass_flow_with_temp.""" + prosumer = create_empty_prosumer_container(fluid="water") + period = create_period(prosumer, 1, name="foo", + start="2020-01-01 00:00:00", end="2020-01-01 00:00:09", timezone="utc") + idx = create_controlled_heat_storage(prosumer, q_capacity_kwh=10, capacity_kg=1000.0, + init_temperature_c=50.0, period=period) + ctrl = prosumer.controller.iloc[idx].object + ctrl.time_step(prosumer, "2020-01-01 00:00:00") + ctrl.input_mass_flow_with_temp = {FluidMixMapping.TEMPERATURE_KEY: 70.0, FluidMixMapping.MASS_FLOW_KEY: 0.5} + ctrl.control_step(prosumer) + # Step ran; step_results must be (1, 2) + assert ctrl.step_results.shape == (1, 2) + soc = ctrl.step_results[0, 0] + if not np.isnan(soc): + assert 0 <= soc <= 1 + # When finalized (e.g. no FluidMix initiators), result_mass_flow_with_temp is set + if len(ctrl.result_mass_flow_with_temp) == 1: + assert ctrl.result_mass_flow_with_temp[0][FluidMixMapping.MASS_FLOW_KEY] == 0.5 + assert not np.isnan(ctrl.step_results[0, 0]) + assert ctrl.applied is True + + def test_soc_from_temperature(self): + """Test SOC from tank temperature when min_temp_c and max_temp_c are set.""" + prosumer = create_empty_prosumer_container() + period = create_period(prosumer, 1, name="foo", + start="2020-01-01 00:00:00", end="2020-01-01 00:00:09", timezone="utc") + create_controlled_heat_storage(prosumer, q_capacity_kwh=10, capacity_kg=1000.0, + init_temperature_c=50.0, min_temp_c=20.0, max_temp_c=80.0, period=period) + ctrl = prosumer.controller.iloc[0].object + ctrl._temperature = 50.0 + assert ctrl._soc_from_temperature(prosumer) == pytest.approx((50.0 - 20.0) / 60.0) + ctrl._temperature = 80.0 + assert ctrl._soc_from_temperature(prosumer) == pytest.approx(1.0) + ctrl._temperature = 20.0 + assert ctrl._soc_from_temperature(prosumer) == pytest.approx(0.0) diff --git a/tutorials/heat_storage_tutorial.ipynb b/tutorials/heat_storage_tutorial.ipynb new file mode 100644 index 0000000..5ede0e7 --- /dev/null +++ b/tutorials/heat_storage_tutorial.ipynb @@ -0,0 +1,308 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# PANDAPROSUMER EXAMPLE: SIMPLE HEAT STORAGE (TWO MODES)\n", + "\n", + "## DESCRIPTION\n", + "This tutorial illustrates the **Simple Heat Storage** controller, which can be used in two ways:\n", + "\n", + "1. **GenericMapping (power-only)**: The storage receives and delivers power only (`q_received_kw` in; `soc`, `q_delivered_kw` out). Suitable when upstream/downstream elements work with power only.\n", + "\n", + "2. **FluidMixMapping (uniform tank)**: The storage is modelled as a uniform-temperature tank with temperature and mass-flow in/out. Use when connecting to fluid-based elements (e.g. heat pump, heat demand with fluid). Optional `min_temp_c` and `max_temp_c` on the element allow SOC to be derived from tank temperature.\n", + "\n", + "Time series data is defined in the notebook (no external files). After each part we run the timeseries and plot SOC and delivered power." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Glossary\n", + "- **Network**: A configuration of connected energy generators and consumers.\n", + "- **Element**: A single generator or consumer.\n", + "- **Controller**: The logic that defines an element's behaviour.\n", + "- **Prosumer**: Container holding elements and their controllers.\n", + "- **Const Profile Controller**: Distributes time-dependent input data to element controllers.\n", + "- **Mapping**: Connection between two controllers (GenericMapping for power/data; FluidMixMapping for temperature and mass flow)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "# Part 1: Power-only mode (GenericMapping)\n", + "\n", + "Chain: **Const profile (supply power)** → **Heat storage** → **Heat demand**.\n", + "\n", + "The const profile provides a supply power and demand data; the storage receives power and delivers to the demand." + ] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "import sys\n", + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from pandapower.timeseries.data_sources.frame_data import DFData\n", + "\n", + "current_directory = os.getcwd()\n", + "parent_directory = os.path.dirname(current_directory)\n", + "sys.path.insert(0, parent_directory)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "# Time range and resolution\n", + "start = '2020-01-01 00:00:00'\n", + "end = '2020-01-01 23:59:59'\n", + "time_resolution_s = 900\n", + "dur = pd.date_range(start=start, end=end, freq=f'{time_resolution_s}s', tz='utc')\n", + "n_steps = len(dur)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "# Part 1 input: supply power (to storage) and demand (for heat demand element)\n", + "supply_kw = np.zeros(n_steps)\n", + "supply_kw[0:8] = 25.0 # charge 25 kW for first 2 h\n", + "supply_kw[20:24] = 20.0 # charge again later\n", + "demand_kw = np.zeros(n_steps)\n", + "demand_kw[4:8] = 60.0 # demand spike 60 kW for 4 steps\n", + "demand_kw[12:16] = 25.0\n", + "df1 = pd.DataFrame({\n", + " 'supply_power': supply_kw,\n", + " 'demand_power': demand_kw,\n", + " 't_feed_demand_c': 80.0,\n", + " 't_return_demand_c': 20.0\n", + "}, index=dur)\n", + "profile1 = DFData(df1)\n", + "df1.head(10)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "from pandaprosumer.create import create_empty_prosumer_container, create_period\n", + "from pandaprosumer.create_controlled import (\n", + " create_controlled_const_profile,\n", + " create_controlled_heat_storage,\n", + " create_controlled_heat_demand\n", + ")\n", + "\n", + "prosumer1 = create_empty_prosumer_container()\n", + "period_id = create_period(prosumer1, time_resolution_s, start, end, 'utc', 'default')\n", + "\n", + "cp_input = ['supply_power', 'demand_power', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_result = ['supply_power', 'qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_idx = create_controlled_const_profile(prosumer1, cp_input, cp_result, profile1, period_id, 0, 0)\n", + "\n", + "hs_idx = create_controlled_heat_storage(prosumer1, q_capacity_kwh=100.0, name='tank_power_only',\n", + " period=period_id, level=1, order=0)\n", + "hd_idx = create_controlled_heat_demand(prosumer1, period=period_id, level=1, order=1, name='heat_consumer')" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "from pandaprosumer.mapping import GenericMapping\n", + "\n", + "# Const profile -> Heat storage: supply power as q_received_kw\n", + "GenericMapping(prosumer1, initiator_id=cp_idx, initiator_column='supply_power',\n", + " responder_id=hs_idx, responder_column='q_received_kw', order=0)\n", + "# Const profile -> Heat demand: demand request and temperatures\n", + "GenericMapping(prosumer1, initiator_id=cp_idx,\n", + " initiator_column=['qdemand_kw', 't_feed_demand_c', 't_return_demand_c'],\n", + " responder_id=hd_idx, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=1)\n", + "# Heat storage -> Heat demand: delivered power as q_received_kw\n", + "GenericMapping(prosumer1, initiator_id=hs_idx, initiator_column='q_delivered_kw',\n", + " responder_id=hd_idx, responder_column='q_received_kw', order=0)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "from pandaprosumer.run_time_series import run_timeseries\n", + "\n", + "run_timeseries(prosumer1, period_id, verbose=False)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "res1 = prosumer1.time_series.copy()\n", + "# time_series rows are indexed by integer; use name column to get the storage results\n", + "res1_idx = res1[res1['name'] == 'tank_power_only'].index[0]\n", + "df_hs1 = res1.data_source.loc[res1_idx].df\n", + "\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "df_hs1.soc.plot(ax=axes[0], color='C0')\n", + "axes[0].set_ylabel('SOC (-)')\n", + "axes[0].set_title('Part 1 (GenericMapping): Heat storage SOC')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hs1.q_delivered_kw.plot(ax=axes[1], color='C1')\n", + "axes[1].set_ylabel('Power (kW)')\n", + "axes[1].set_title('Delivered power')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "# Part 2: FluidMixMapping (uniform tank)\n", + "\n", + "Chain: **Const profile** → **Electric boiler** → **Heat storage (uniform tank)** → **Heat demand**.\n", + "\n", + "The electric boiler supplies the storage with fluid (temperature + mass flow); the storage is configured with `capacity_kg`, optional `init_temperature_c`, `min_temp_c`, `max_temp_c` for SOC from temperature. The run uses `continue_on_divergence=True` so that if the control loop does not converge in some timesteps, the time series still completes (you may see gaps or zeros in results for those steps)." + ] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "# Part 2 input: demand power and feed/return temperatures for the heat demand (same time range as Part 1)\n", + "demand_kw2 = np.zeros(n_steps)\n", + "demand_kw2[6:10] = 60.0\n", + "demand_kw2[14:18] = 30.0\n", + "df2 = pd.DataFrame({\n", + " 'demand_power': demand_kw2,\n", + " 't_feed_demand_c': 55.0,\n", + " 't_return_demand_c': 25.0\n", + "}, index=dur)\n", + "profile2 = DFData(df2)\n", + "df2.head(10)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "from pandaprosumer.create_controlled import create_controlled_electric_boiler\n", + "\n", + "prosumer2 = create_empty_prosumer_container()\n", + "period_id2 = create_period(prosumer2, time_resolution_s, start, end, 'utc', 'default')\n", + "\n", + "cp_input2 = ['demand_power', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_result2 = ['qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_idx2 = create_controlled_const_profile(prosumer2, cp_input2, cp_result2, profile2, period_id2, 0, 0)\n", + "\n", + "eb_idx = create_controlled_electric_boiler(prosumer2, max_p_kw=150.0, name='electric_boiler',\n", + " period=period_id2, level=1, order=0)\n", + "\n", + "capacity_kg = 2000.0\n", + "init_t = 45.0\n", + "min_t, max_t = 30.0, 70.0\n", + "hs_idx2 = create_controlled_heat_storage(prosumer2, q_capacity_kwh=50.0, name='tank_fluid_mix',\n", + " capacity_kg=capacity_kg, init_temperature_c=init_t,\n", + " init_temperature=init_t, min_temp_c=min_t, max_temp_c=max_t,\n", + " period=period_id2, level=1, order=1)\n", + "hd_idx2 = create_controlled_heat_demand(prosumer2, period=period_id2, level=1, order=2, name='heat_consumer')" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "from pandaprosumer.mapping import GenericMapping, FluidMixMapping\n", + "\n", + "GenericMapping(prosumer2, initiator_id=cp_idx2,\n", + " initiator_column=['qdemand_kw', 't_feed_demand_c', 't_return_demand_c'],\n", + " responder_id=hd_idx2, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=0)\n", + "FluidMixMapping(prosumer2, initiator_id=eb_idx, responder_id=hs_idx2, order=0)\n", + "FluidMixMapping(prosumer2, initiator_id=hs_idx2, responder_id=hd_idx2, order=0)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "run_timeseries(prosumer2, period_id2, verbose=False, max_iter=15, continue_on_divergence=True)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": {}, + "source": [ + "res2 = prosumer2.time_series.copy()\n", + "res2_idx = res2[res2['name'] == 'tank_fluid_mix'].index[0]\n", + "df_hs2 = res2.data_source.loc[res2_idx].df\n", + "\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "df_hs2.soc.plot(ax=axes[0], color='C0')\n", + "axes[0].set_ylabel('SOC (-)')\n", + "axes[0].set_title('Part 2 (FluidMixMapping): Heat storage SOC (from tank temperature)')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hs2.q_delivered_kw.plot(ax=axes[1], color='C1')\n", + "axes[1].set_ylabel('Power (kW)')\n", + "axes[1].set_title('Delivered power')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary\n", + "- **Part 1**: Power-only chain with GenericMapping; storage input is `q_received_kw`, output is `soc` and `q_delivered_kw`. Fully convergent.\n", + "- **Part 2**: Fluid chain (Electric boiler → Uniform heat storage → Heat demand) with FluidMixMapping; storage uses uniform tank and optional SOC from temperature (`min_temp_c`, `max_temp_c`). Run uses `continue_on_divergence=True` so the time series completes even if the control loop does not converge in some steps; same result columns `soc`, `q_delivered_kw`." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.10.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file From 34bee8a824e040db0eceb1084e70f65ee115b770 Mon Sep 17 00:00:00 2001 From: mena138 Date: Wed, 4 Mar 2026 08:08:50 +0100 Subject: [PATCH 03/33] fix test: freq is 'h', not 'H' --- tests/integrations/test_default_period.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integrations/test_default_period.py b/tests/integrations/test_default_period.py index 366075a..7e98895 100644 --- a/tests/integrations/test_default_period.py +++ b/tests/integrations/test_default_period.py @@ -7,7 +7,7 @@ def _define_and_get_data_source(): data = pd.read_excel(FROM_CLAUDIA) start_time = pd.Timestamp("2020-01-01 00:00:00", tz="UTC") - data["period"] = pd.date_range(start=start_time, periods=len(data), freq="H") + data["period"] = pd.date_range(start=start_time, periods=len(data), freq="h") data_source = DFData(data) return data_source From f294ff1f1999136389114f9d367ec3ed8b5f842a Mon Sep 17 00:00:00 2001 From: mena138 Date: Wed, 4 Mar 2026 08:32:59 +0100 Subject: [PATCH 04/33] fix test test_ice_chp_input_type --- tests/models/test_ice_chp.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tests/models/test_ice_chp.py b/tests/models/test_ice_chp.py index 3eb9cfb..4e79ed6 100644 --- a/tests/models/test_ice_chp.py +++ b/tests/models/test_ice_chp.py @@ -339,12 +339,8 @@ def test_ice_chp_input_type(self): fuel_val = 10 - ice_chp_controller_idx = create_controlled_ice_chp(prosumer, order=0, period=_default_period(prosumer), fuel=fuel_val, **params) - ice_chp_controller = prosumer.controller.iloc[ice_chp_controller_idx].object - - stored_fuel = ice_chp_controller._get_element_param(prosumer, "fuel") - - assert not isinstance(stored_fuel, str) + with pytest.raises(TypeError): + create_controlled_ice_chp(prosumer, order=0, period=_default_period(prosumer), fuel=fuel_val, **params) # TEST 13 From a50f98c863f607e65d23d0f2b9ecdb2adbaaeae8 Mon Sep 17 00:00:00 2001 From: mena138 Date: Wed, 4 Mar 2026 08:33:30 +0100 Subject: [PATCH 05/33] fix test: freq is 'h', not 'H' --- tests/integrations/test_default_period.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integrations/test_default_period.py b/tests/integrations/test_default_period.py index 366075a..7e98895 100644 --- a/tests/integrations/test_default_period.py +++ b/tests/integrations/test_default_period.py @@ -7,7 +7,7 @@ def _define_and_get_data_source(): data = pd.read_excel(FROM_CLAUDIA) start_time = pd.Timestamp("2020-01-01 00:00:00", tz="UTC") - data["period"] = pd.date_range(start=start_time, periods=len(data), freq="H") + data["period"] = pd.date_range(start=start_time, periods=len(data), freq="h") data_source = DFData(data) return data_source From aec3076ec0446596eded8de77d7b0ca221676e68 Mon Sep 17 00:00:00 2001 From: mena138 Date: Wed, 4 Mar 2026 08:34:08 +0100 Subject: [PATCH 06/33] update gitignore --- .gitignore | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 26ee65b..a18aed1 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,12 @@ build/ dist/ .cache/ +.venv +.env .idea -.cache +.vscode +poetry.lock +.pytest_cache *__pycache__* *.pyproj *.user @@ -14,4 +18,4 @@ dist/ doc/.build/* doc/_build/* doc/build/* - +tmp/ From 5107dda3abb3129105aa9c868f0831a564e0cb93 Mon Sep 17 00:00:00 2001 From: mena138 Date: Wed, 4 Mar 2026 11:35:20 +0100 Subject: [PATCH 07/33] fix version of pandapipes and pandas --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8d7faa3..95414ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,9 +33,9 @@ dependencies = [ "converter==1.0.0", "matplotlib>=3.9.0", "numpy>=1.25.0", - "pandapipes>=0.12.0", + "pandapipes==0.12.0", "pandapower>=2.14.11", - "pandas>=1.5.3", + "pandas~=2.3", "savReaderWriter==3.4.2", "scipy>=1.11.0", "seaborn==0.12.2", From 4cce26a7579f00640476e28da47826aac82d2a99 Mon Sep 17 00:00:00 2001 From: mena138 Date: Wed, 4 Mar 2026 11:35:58 +0100 Subject: [PATCH 08/33] remove tests network_balance (replaced by energy_system) --- .../controller/models/heat_exchanger.py | 73 +++-- tests/network_balance/__init__.py | 0 tests/network_balance/create_networks.py | 79 ----- tests/network_balance/create_prosumers.py | 66 ----- tests/network_balance/test_balance_net.py | 277 ------------------ tests/network_balance_2_dmd/__init__.py | 0 .../network_balance_2_dmd/create_networks.py | 91 ------ .../network_balance_2_dmd/create_prosumers.py | 67 ----- .../network_balance_2_dmd/test_balance_net.py | 273 ----------------- 9 files changed, 56 insertions(+), 870 deletions(-) delete mode 100644 tests/network_balance/__init__.py delete mode 100644 tests/network_balance/create_networks.py delete mode 100644 tests/network_balance/create_prosumers.py delete mode 100644 tests/network_balance/test_balance_net.py delete mode 100644 tests/network_balance_2_dmd/__init__.py delete mode 100644 tests/network_balance_2_dmd/create_networks.py delete mode 100644 tests/network_balance_2_dmd/create_prosumers.py delete mode 100644 tests/network_balance_2_dmd/test_balance_net.py diff --git a/src/pandaprosumer/controller/models/heat_exchanger.py b/src/pandaprosumer/controller/models/heat_exchanger.py index 316b003..cd96c64 100644 --- a/src/pandaprosumer/controller/models/heat_exchanger.py +++ b/src/pandaprosumer/controller/models/heat_exchanger.py @@ -7,7 +7,7 @@ from pandapipes import call_lib from pandaprosumer.controller.base import BasicProsumerController -from pandaprosumer.constants import CELSIUS_TO_K, TEMPERATURE_CONVERGENCE_THRESHOLD_C +from pandaprosumer.constants import CELSIUS_TO_K, TEMPERATURE_CONVERGENCE_THRESHOLD_C, MAX_RERUN from pandaprosumer.mapping import FluidMixMapping from pandaprosumer.library.heat_exchanger_utils import compute_temp @@ -106,6 +106,7 @@ def t_m_to_receive_for_t(self, prosumer, t_feed_c): :param t_feed_c: The feed temperature :return: A Tuple (Feed temperature, return temperature and mass flow) """ + print("Calculating t_m_to_receive_for_t with t_feed_c:", t_feed_c) t_out_2_required_c, t_in_2_required_c, mdot_tab_required_kg_per_s = self.t_m_to_deliver(prosumer) mdot_2_required_kg_per_s = sum(mdot_tab_required_kg_per_s) @@ -116,6 +117,7 @@ def t_m_to_receive_for_t(self, prosumer, t_feed_c): t_1_out_c = t_1_in_c mdot_1_kg_per_s = 0 else: + print("Calculating heat exchanger for t_feed_c:", t_feed_c) (mdot_1_kg_per_s, t_1_in_c, t_1_out_c, mdot_2_kg_per_s, t_2_in_c, t_2_out_c) = self.calculate_heat_exchanger(prosumer, t_out_2_required_c, @@ -147,6 +149,7 @@ def calculate_heat_exchanger(self, prosumer, t_2_out_c, t_2_in_c, mdot_2_kg_per_ :param mdot_2_kg_per_s: The secondary mass flow :param t_1_in_c: The primary input (hot feed pipe) temperature """ + print(f"calculating heat exchanger with t_2_out_c: {t_2_out_c}, t_2_in_c: {t_2_in_c}, mdot_2_kg_per_s: {mdot_2_kg_per_s}, t_1_in_c: {t_1_in_c}") t_1_hot_nom_c = self._get_element_param(prosumer, 't_1_in_nom_c') t_1_cold_nom_c = self._get_element_param(prosumer, 't_1_out_nom_c') t_2_cold_nom_c = self._get_element_param(prosumer, 't_2_in_nom_c') @@ -183,23 +186,43 @@ def calculate_heat_exchanger(self, prosumer, t_2_out_c, t_2_in_c, mdot_2_kg_per_ max_t_1_out_c = t_1_in_c - min_delta_t_1_c min_x = 1 - (max_t_1_out_c - t_2_in_c) / delta_t_hot_c - min_a = -np.log(1 - min_x) / min_x if min_x != 0 else 1 # FixMe: case where min_x == 1 or >= 1 ? - - if a < min_a: - # If 'a' is too low, q_exchanged_w is too big so reduce mdot_2_kg_per_s - # else t_1_out_c would be hotter than t_1_in_c - a = min_a - q_ratio = delta_t_hot_c / (min_a * lmtd_nom) - q_exchanged_w = q_ratio * q_exchanged_nom_w + if min_x >= 1 : + # If t_2_in_c >= max_t_1_out, ignore min_delta_t_1_c but calculate which q_exchanged will give + # a higher t_1_out_c + # ToDo: create test for this case + min_delta_t_cold_c = 3 # ToDo: constant + print(self.time, 'delta_t_hot_c', delta_t_hot_c) + t_1_out_c = t_2_in_c + min_delta_t_cold_c + assert t_1_out_c <= t_1_in_c, f"Heat Exchanger {self.name}: t_1_out_c ({t_1_out_c}) is greater than t_1_in_c ({t_1_in_c})" + x = 1 - min_delta_t_cold_c / delta_t_hot_c + if x > 0 and x < 1: + a = -np.log(1 - x) / x + else: + raise ValueError(f"In prosumer {prosumer.name} a timestep {self.time}: Heat Exchanger {self.name}: Invalid value of x ({x}) calculated from min_delta_t_cold_c ({min_delta_t_cold_c}) and delta_t_hot_c ({delta_t_hot_c})") + q_exchanged_w = (delta_t_hot_c * q_exchanged_nom_w) / (a * lmtd_nom) mdot_2_kg_per_s = q_exchanged_w / (cp_2_j_per_kgk * delta_t_2_c) - # delta_t_cold = _calculate_cold_temperature_difference(a, delta_t_hot_c) - t_1_out_c = max_t_1_out_c t_mean_1_c = CELSIUS_TO_K + (t_1_in_c + t_1_out_c) / 2 - mdot_1_kg_per_s = q_exchanged_w / (self.primary_fluid.get_heat_capacity(t_mean_1_c) * (t_1_in_c - t_1_out_c)) + cp_1_j_per_kgk = self.primary_fluid.get_heat_capacity(t_mean_1_c) + mdot_1_kg_per_s = q_exchanged_w / (cp_1_j_per_kgk * (t_1_in_c - t_1_out_c)) + else: - t_1_out_c, mdot_1_kg_per_s = compute_temp(q_ratio, q_exchanged_w, t_1_in_c, t_2_in_c, t_2_out_c, - delta_t_hot_nom_c, delta_t_cold_nom_c, cp_1_j_per_kgk, - heat_consumer=False) + min_a = -np.log(1 - min_x) / min_x if min_x != 0 else 1 + + if a < min_a: + # If 'a' is too low, q_exchanged_w is too big so reduce mdot_2_kg_per_s + # else t_1_out_c would be hotter than t_1_in_c + a = min_a + q_ratio = delta_t_hot_c / (min_a * lmtd_nom) + q_exchanged_w = q_ratio * q_exchanged_nom_w + mdot_2_kg_per_s = q_exchanged_w / (cp_2_j_per_kgk * delta_t_2_c) + # delta_t_cold = _calculate_cold_temperature_difference(a, delta_t_hot_c) + t_1_out_c = max_t_1_out_c + t_mean_1_c = CELSIUS_TO_K + (t_1_in_c + t_1_out_c) / 2 + mdot_1_kg_per_s = q_exchanged_w / (self.primary_fluid.get_heat_capacity(t_mean_1_c) * (t_1_in_c - t_1_out_c)) + else: + t_1_out_c, mdot_1_kg_per_s = compute_temp(q_ratio, q_exchanged_w, t_1_in_c, t_2_in_c, t_2_out_c, + delta_t_hot_nom_c, delta_t_cold_nom_c, cp_1_j_per_kgk, + heat_consumer=False) # If the primary mass flow is too low, no heat is exchanged to the secondary side # if mdot_1_kg_per_s < 1e-6: @@ -274,6 +297,7 @@ def control_step(self, prosumer): :param prosumer: The prosumer object """ + print(self.time, "Heat Exchanger control step for prosumer", prosumer.name) if not prosumer.rerun: self._save_state() else: @@ -297,6 +321,8 @@ def control_step(self, prosumer): mdot_2_required_kg_per_s = sum(mdot_tab_required_kg_per_s) t_1_in_c = self._t_feed_in_c + + print(t_out_2_required_c, t_in_2_required_c, mdot_tab_required_kg_per_s, t_1_in_c) assert not np.isnan(t_1_in_c), f"Heat Exchanger {self.name} t_1_in_c is NaN for timestep {self.time} in prosumer {prosumer.name}" assert not np.isnan(t_out_2_required_c), f"Heat Exchanger {self.name} t_out_2_required_c is NaN for timestep {self.time} in prosumer {prosumer.name}" @@ -310,8 +336,19 @@ def control_step(self, prosumer): mdot_2_kg_per_s = mdot_2_required_kg_per_s t_2_in_c = t_in_2_required_c t_2_out_c = t_out_2_required_c + print("No exchanged") result_mdot_tab_kg_per_s = self._merit_order_mass_flow(prosumer, mdot_2_kg_per_s, mdot_tab_required_kg_per_s) + print(result_mdot_tab_kg_per_s) + + + # Handle case where primary mass flow is provided but no heat exchange occurs (full bypass) + if not np.isnan(self._mdot_1_provided_kg_per_s): + print("Full bypass with provided primary mass flow") + mdot_1_kg_per_s = self._mdot_1_provided_kg_per_s + # Temperature remains the same (bypass) + t_1_out_c = t_1_in_c + else: # FixMe: case where t_out_2_required_c == t_in_2_required_c t_out_2_required_c_init = t_out_2_required_c @@ -327,8 +364,8 @@ def control_step(self, prosumer): nb_runs = 0 while rerun: nb_runs += 1 - if nb_runs > 20: - raise Exception("Heat Exchanger calculation did not converge after 100 iterations", self.name, self.time, prosumer.name) + if nb_runs > MAX_RERUN: + raise Exception(f"Heat Exchanger calculation did not converge after {MAX_RERUN} iterations", self.name, self.time, prosumer.name) (mdot_1_kg_per_s, t_1_in_c, t_1_out_c, mdot_2_kg_per_s, t_2_in_c, t_2_out_c) = self.calculate_heat_exchanger(prosumer, t_out_2_required_c, @@ -402,6 +439,7 @@ def control_step(self, prosumer): # If the actual output mass flow is higher than the one required, redistribute the extra mass flow # to the other downstream elements, # so the through the secondary side mass flow is the same as the total distributed mass flow + print(f"Heat Exchanger {self.name} delivered more mass flow ({mdot_2_kg_per_s} kg/s) than required ({mdot_2_required_kg_per_s} kg/s), redistributing the extra mass flow to the downstream elements") for i in range(len(result_mdot_tab_kg_per_s)): result_mdot_tab_kg_per_s[i] = result_mdot_tab_kg_per_s[i] + (mdot_2_kg_per_s - mdot_2_required_kg_per_s) / len(result_mdot_tab_kg_per_s) @@ -415,6 +453,7 @@ def control_step(self, prosumer): result = np.array( [[q_exchanged_kw, mdot_1_kg_per_s, t_1_in_c, t_1_out_c, mdot_2_kg_per_s, t_2_in_c, t_2_out_c]] ) + print('results:', result) self.last_result = { "q_exchanged_kw": q_exchanged_kw, diff --git a/tests/network_balance/__init__.py b/tests/network_balance/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/network_balance/create_networks.py b/tests/network_balance/create_networks.py deleted file mode 100644 index 8906bd5..0000000 --- a/tests/network_balance/create_networks.py +++ /dev/null @@ -1,79 +0,0 @@ -import pandapipes -import pandapower -from pandapower.timeseries.output_writer import OutputWriter - - -def create_pandapipes_net_loop(ow_time_steps, mdot_dmd_kg_per_s, t_feed_prod_k, p_feed_prod_bar, p_return_prod_bar): - t_amb_k = 293 # ToDo: make this depend on const profile ? - net = pandapipes.create_empty_network(fluid="water", name='net_pipes') - - # Create output writer - OutputWriter(net, ow_time_steps, output_path='./tmp', output_file_type='.csv', - log_variables=[ - ('res_junction', 'p_bar'), - ('res_junction', 't_k'), - ('res_pipe', 'mdot_from_kg_per_s'), - ('res_heat_consumer', 'mdot_from_kg_per_s'), - ('res_circ_pump_pressure', 'mdot_from_kg_per_s') # pandapipes 0.11 - ]) - - pandapipes.set_user_pf_options(net, ambient_temperature=t_amb_k, mode='all') - - # create junctions - j0 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(0, 2)) - j1 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(0, 3)) - j2 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(1, 3)) - j3 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(1, 2)) - j4 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(1, 1)) - j5 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(1, 0)) - j6 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(0, 0)) - j7 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(0, 1)) - - # create branch elements - # alpha_w_per_m2k -> u_w_per_m2k = pandapipes 0.11 - pandapipes.create_pipes_from_parameters(net, from_junctions=[j0, j1, j2], to_junctions=[j1, j2, j3], length_km=0.1, - diameter_m=0.05, alpha_w_per_m2k=10, u_w_per_m2k=10, text_k=t_amb_k) - pandapipes.create_pipes_from_parameters(net, from_junctions=[j4, j5, j6], to_junctions=[j5, j6, j7], length_km=0.1, - diameter_m=0.05, alpha_w_per_m2k=10, u_w_per_m2k=10, text_k=t_amb_k) - - pandapipes.create_circ_pump_const_pressure(net, - j7, - j0, - p_flow_bar=p_feed_prod_bar[0], - plift_bar=p_feed_prod_bar[0] - p_return_prod_bar[0], - t_flow_k=t_feed_prod_k[0], - _pandaprosumer_max_t_pump_feed_k=100 + 273.15, - _pandaprosumer_min_t_pump_feed_k=20 + 273.15, - _pandaprosumer_max_mdot_pump_kg_per_s=100) - - pandapipes.create_heat_consumer(net, from_junction=j3, to_junction=j4, - qext_w=100e3, controlled_mdot_kg_per_s=mdot_dmd_kg_per_s[0], - _pandaprosumer_max_mdot_dmd_kg_per_s=10000, - _pandaprosumer_min_mdot_dmd_kg_per_s=0.05, - _pandaprosumer_min_t_dmd_return_k=10 + 273.15) - - pandapipes.create_flow_control(net, from_junction=j3, to_junction=j4, controlled_mdot_kg_per_s=0.1, - role="demander_bypass") - - return net - - -def create_pandapower_net(ow_time_steps): - net = pandapower.create_empty_network(name='net_power') - - # Create output writer - OutputWriter(net, ow_time_steps, output_path='./tmp', output_file_type='.csv', - log_variables=[ - ('res_bus', 'vm_pu'), - ('res_line', 'loading_percent'), - ('res_load', 'p_mw'), - ('res_ext_grid', 'p_mw') - ]) - - b0 = pandapower.create_bus(net, vn_kv=20.) - b1 = pandapower.create_bus(net, vn_kv=20.) - pandapower.create_line(net, from_bus=b0, to_bus=b1, length_km=2.5, std_type="NAYY 4x50 SE") - pandapower.create_ext_grid(net, bus=b0) - pandapower.create_load(net, bus=b1, p_mw=1.) - - return net diff --git a/tests/network_balance/create_prosumers.py b/tests/network_balance/create_prosumers.py deleted file mode 100644 index 2177da8..0000000 --- a/tests/network_balance/create_prosumers.py +++ /dev/null @@ -1,66 +0,0 @@ -from pandaprosumer.mapping import GenericMapping -from pandaprosumer import * -from tests.data_sources.define_period import define_and_get_period_and_data_source - -def create_prosumer_prod(hp_level): - prosumer = create_empty_prosumer_container(name='prosumer_prod',check_order=False) - period, data_source = define_and_get_period_and_data_source(prosumer) - - cp_input_columns = ["Tin,evap"] - cp_result_columns = ["Tin,evap"] - - hp_params = {'carnot_efficiency': 0.5, - 'pinch_c': 5, - 'delta_t_evap_c': 8, - 'max_p_comp_kw': 1000e3} - - cp_controller_index = create_controlled_const_profile(prosumer, cp_input_columns, cp_result_columns, - data_source, period, 0, 0) - - - hp_controller_index = create_controlled_heat_pump(prosumer,period =period,level=hp_level,order = 0,**hp_params) - GenericMapping(container=prosumer, - initiator_id=cp_controller_index, - initiator_column="Tin,evap", - responder_id=hp_controller_index, - responder_column="t_evap_in_c", - order=0) - - return prosumer - - -def create_prosumer_dmd_hx(level): - prosumer = create_empty_prosumer_container(check_order=False) - period, data_source = define_and_get_period_and_data_source(prosumer) - - cp_input_columns = ["demand_1"] # demand_4 is 10 times lower than demand_1, doesn't work with demand_1 ? - cp_result_columns = ["demand_kw"] - - hx_params = {'t_1_in_nom_c': 45, # HX will return nan if 50°C is used - 't_1_out_nom_c': 30, - 't_2_in_nom_c': 20, - 't_2_out_nom_c': 40, - 'mdot_2_nom_kg_per_s': 3.58} - - hd_params = {'t_in_set_c': 40, - 't_out_set_c': 20} - - cp_controller_index = create_controlled_const_profile(prosumer, cp_input_columns, cp_result_columns, - data_source, period, 0, 0) - - hx_controller_index = create_controlled_heat_exchanger(prosumer, period =period,level=level,order = 0,**hx_params) - hd_controller_index = create_controlled_heat_demand(prosumer, period =period,level=level,order = 1,**hd_params) - - GenericMapping(container=prosumer, - initiator_id=cp_controller_index, - initiator_column="demand_kw", - responder_id=hd_controller_index, - responder_column="q_demand_kw", - order=0) - - FluidMixMapping(container=prosumer, - initiator_id=hx_controller_index, - responder_id=hd_controller_index, - order=0) - - return prosumer diff --git a/tests/network_balance/test_balance_net.py b/tests/network_balance/test_balance_net.py deleted file mode 100644 index 2cec58a..0000000 --- a/tests/network_balance/test_balance_net.py +++ /dev/null @@ -1,277 +0,0 @@ -import pytest -from pandas._testing import assert_series_equal - -from pandaprosumer.energy_system.control.controller import NetControllerData -from pandaprosumer.energy_system.control.controller.coupling.heat_demand_energy_system import \ - HeatDemandEnergySystemController -from pandaprosumer.energy_system.control.controller.coupling.pandapipes_connector import \ - PandapipesConnectorController -from pandaprosumer.energy_system.control.controller.coupling.pandapipes_balance import PandapipesBalanceControl -from pandaprosumer.energy_system.control.controller.coupling.pandapipes_interface import ReadPipeProdControl -from pandaprosumer.energy_system.control.controller.coupling.pandapower_interface import LoadControl -from pandaprosumer.energy_system.control.controller.data_model.pandapipes_connector import \ - PandapipesConnectorControllerData -from pandaprosumer.energy_system.create_energy_system import create_empty_energy_system, add_net_to_energy_system, \ - add_pandaprosumer_to_energy_system -from pandaprosumer.energy_system.timeseries.run_time_series_energy_system import \ - run_timeseries as run_timeseries_system -from pandaprosumer.mapping import FluidMixEnergySystemMapping, GenericEnergySystemMapping - -from .create_networks import * -from .create_prosumers import * - - -class TestBalanceNet: - """ - In this example, a more complex energy system is created with multiple prosumers and networks. - """ - - def test_balance_net(self): - """ - Create 2 prosumers (1 producer and 1 heat consumer) connected to a district heating network - - # ToDo: What if HP cant provide required - # ToDo: Managing many Heat demands - # ToDo: Managing multiple Heat Production units - # ToDo: Make it easier for the user of the library to create the energy system - # ToDo: Define/use mdot_max_kg_per_s in the pandapipes network - """ - - # These values have to be set to run the pandapipes net for each demander and producer - # ToDo: Read from a ConstProfile or define a strategy to read from the demanders' and producers' capacities - tfeed_prod_k = [390] - pfeed_prod_bar = [10] - preturn_prod_bar = [5] - # These are just for the initialisation of the network but will be overwritten on level 1 - mdot_dmd_kg_per_s = [5] - - level_balance_net = 1 - order_balance_net = -2 # To be sure it is executed before user defined - level_pp_connector = 1 - order_pp_connector = -1 # To be sure it is executed before user defined - level_dmd = 1 - level_read_pipe_to_prod = 2 - level_prod = 3 - level_prod_fake_dmd = 3 - order_prod_fake_dmd = 100 # To be sure it is executed after user defined - load_level = 4 - - # Create prosumers - prosumer_prod1 = create_prosumer_prod(level_prod) - prosumer_dmd1 = create_prosumer_dmd_hx(level_dmd) - - # Create Output writer time steps for networks - ow_time_steps = pd.date_range(prosumer_prod1.period.iloc[0]["start"], prosumer_prod1.period.iloc[0]["end"], - freq='%ss' % int(prosumer_prod1.period.iloc[0]["resolution_s"]), - tz=prosumer_prod1.period.iloc[0]["timezone"]) - - # Create pandapipes/power networks - net_pipes = create_pandapipes_net_loop(ow_time_steps, mdot_dmd_kg_per_s, tfeed_prod_k, pfeed_prod_bar, preturn_prod_bar) - net_power = create_pandapower_net(ow_time_steps) - - # Create an energy system and add the prosumers and networks to it - energy_system = create_empty_energy_system() - create_period(energy_system, prosumer_prod1.period.iloc[0]["resolution_s"], - prosumer_prod1.period.iloc[0]["start"], - prosumer_prod1.period.iloc[0]["end"], - timezone=prosumer_prod1.period.iloc[0]["timezone"], - name=prosumer_prod1.period.iloc[0]["name"]) - add_net_to_energy_system(energy_system, net_pipes, net_name='hydro') - add_net_to_energy_system(energy_system, net_power, net_name='el') - add_pandaprosumer_to_energy_system(energy_system, prosumer_prod1, pandaprosumer_name='prosumer_prod1') - add_pandaprosumer_to_energy_system(energy_system, prosumer_dmd1, pandaprosumer_name='prosumer_dmd1') - - # Run the net once so the res_ tables are created - # ToDo: Check the "initial run" parameter of the controllers - pandapipes.pipeflow(net_pipes) - - # Create a new coupling controller in the demander prosumers - connector_controllerids = [] # Keeps the list of coupling controller - for prosumer_dmd in [prosumer_dmd1]: - pipes_connector_controller_data = PandapipesConnectorControllerData(period_index=0) - PandapipesConnectorController(prosumer_dmd, - pipes_connector_controller_data, - order=order_pp_connector, - level=level_pp_connector, - name='pandapipes_connector_controller') - connector_controllerid = prosumer_dmd.controller.index[-1] - connector_controllerids.append(connector_controllerid) - - pandapipes_connector_controllers = [prosumer_dmd.controller.loc[connector_controllerid].object for connector_controllerid in connector_controllerids] - hc_element_indexes = [0] - connector_prosumer = prosumer_dmd1 - pp_balance_obj = ConstProfileControllerData(input_columns=[], - result_columns=[]) - ppies_balance_ctrl = PandapipesBalanceControl(net=net_pipes, - pandapipes_connector_controllers=pandapipes_connector_controllers, - hc_element_indexes=hc_element_indexes, - connector_prosumers=[connector_prosumer], - basic_prosumer_object=pp_balance_obj, - pump_id=0, - tol=.1, - level=level_balance_net, - name='net_temp_control', - order=order_balance_net) - - # Create some DataClass controller data to refer to elements in the pandapipes networks - heat_consumer_data = NetControllerData(input_columns=[], - result_columns=[], - element_name='heat_consumer', - element_index=[0]) - - circ_pump_pressure_data = NetControllerData(input_columns=[], - result_columns=['t_c', 'tfeed_c', 'mdot_kg_per_s'], - element_name='circ_pump_pressure', - element_index=[0]) - - # On level 0, execute the Const profile controllers in all the prosumers - - # Create a mapping between the pandapipes_balance_controller and the coupling controller of every prosumer - for connector_controllerid in connector_controllerids: - FluidMixEnergySystemMapping(container=net_pipes, - initiator_id=ppies_balance_ctrl.index, - responder_net=prosumer_dmd, - responder_id=connector_controllerid, - order=0, - no_chain=False) - - # Read the results from the feed pandapipes network - # For each demander, create a mapping between this controller and - # the Heat Exchanger controller in the corresponding prosumer - for prosumer_dmd, heat_consumer, connector_controllerid in zip([prosumer_dmd1], - [heat_consumer_data], - connector_controllerids): - hx_index = 1 # index of the HX controller that is connected to the DHN (in this case 1 in every prosumer) - # Create mapping inside the prosumer between this connector controller and the (each) heat exchanger(s) - FluidMixMapping(container=prosumer_dmd, - initiator_id=connector_controllerid, - responder_id=hx_index, - order=0) - - # For each producer prosumer, create a 'FakeDemand' controller - # and map the t_feed, t_return and mdot read from the res_circ_pump_pressure - for prosumer_prod, pump_data, load_id in zip([prosumer_prod1], - [circ_pump_pressure_data], - - [0]): - # Create a demand without period that act as a network connector controller in the prosumer - hd_param_default = { - 't_in_set_c': 76.85, - 't_out_set_c': 30 - } - heat_demand_index = create_heat_demand(prosumer_prod, **hd_param_default) - heat_demand_controller_data = HeatDemandControllerData(element_name='heat_demand', - element_index=[heat_demand_index], - period_index=0) # FixMe: Adding a period to the controller is convenient for debuging - heat_demand_controller = HeatDemandEnergySystemController(prosumer_prod, - heat_demand_controller_data, - order=order_prod_fake_dmd, - level=level_prod_fake_dmd, - name='heat_demand_connector_controller') - hd_controller_index = heat_demand_controller.index - - hp_index = 1 # index of the HP controller that is connected to the DHN - # Create a mapping between the HP and the HD that connect to the DHN - FluidMixMapping(container=prosumer_prod, - initiator_id=hp_index, - responder_id=hd_controller_index, - order=0) - - # Map the t_feed, t_return and mdot read from the res_circ_pump_pressure to the 'FakeDemand' controller - prod_read_return_control = ReadPipeProdControl(net_pipes, pump_data, level=level_read_pipe_to_prod) - prod_read_return_control_index = prod_read_return_control.index - GenericEnergySystemMapping(container=net_pipes, - initiator_id=prod_read_return_control_index, - initiator_column="t_c", - responder_net=prosumer_prod, - responder_id=hd_controller_index, - responder_column="t_return_demand_c", - order=0) - GenericEnergySystemMapping(container=net_pipes, - initiator_id=prod_read_return_control_index, - initiator_column="tfeed_c", - responder_net=prosumer_prod, - responder_id=hd_controller_index, - responder_column="t_feed_demand_c", - order=0) - GenericEnergySystemMapping(container=net_pipes, - initiator_id=prod_read_return_control_index, - initiator_column="mdot_kg_per_s", - responder_net=prosumer_prod, - responder_id=hd_controller_index, - responder_column="mdot_demand_kg_per_s", - order=0) - - # Map the HP el consumption to the Pandapower net - load_data = NetControllerData(element_index=[load_id], - element_name='load', - input_columns=['p_in_kw'], - result_columns=[]) - load_control = LoadControl(net_power, load_data, level=load_level, name='load_control') - load_control_index = load_control.index - GenericEnergySystemMapping(container=prosumer_prod, - initiator_id=hp_index, - initiator_column="p_comp_kw", # Power consumption of the Heat Pump - responder_net=net_power, - responder_id=load_control_index, - responder_column="p_in_kw", # Power consumption of the Load - order=1) - - run_timeseries_system(energy_system, 0) - - print(prosumer_prod1.time_series.loc[0, 'data_source'].df) - print(prosumer_dmd1.time_series.loc[0, 'data_source'].df) - print(prosumer_dmd1.time_series.loc[1, 'data_source'].df) - print(net_pipes.res_junction) - print(net_pipes.res_junction.t_k - 273.15) - print(net_pipes.res_pipe) - print(net_power.res_bus) - print(net_power.res_line) - print(net_power.res_load) - print(net_power.res_ext_grid) - - # Read the results of the timeseries writen by the output_writer and do some checks - - hp_res_df = prosumer_prod1.time_series.loc[0].data_source.df - prod_hd_res_df = prosumer_prod1.time_series.loc[1].data_source.df - hx_res_df = prosumer_dmd1.time_series.loc[0].data_source.df - hd_res_df = prosumer_dmd1.time_series.loc[1].data_source.df - fcc_ctrl = prosumer_dmd1.controller.loc[3].object - fcc_ctrl_res = fcc_ctrl.time_series_finalization(prosumer_dmd1) - fcc_res_df = [DFData(pd.DataFrame(entry, columns=fcc_ctrl.result_columns, index=fcc_ctrl.time_index)) for entry in fcc_ctrl_res][0].df - jct_t_k_res_df = pd.read_csv('./tmp/res_junction/t_k.csv', sep=';').set_index("Unnamed: 0") - pipes_mdot_kg_per_s_res_df = pd.read_csv('./tmp/res_pipe/mdot_from_kg_per_s.csv', sep=';').set_index("Unnamed: 0") - hc_mdot_kg_per_s_res_df = pd.read_csv('./tmp/res_heat_consumer/mdot_from_kg_per_s.csv', sep=';').set_index("Unnamed: 0") - pump_mdot_kg_per_s_res_df = pd.read_csv('./tmp/res_circ_pump_pressure/mdot_from_kg_per_s.csv', sep=';').set_index("Unnamed: 0") - load_p_mw_res_df = pd.read_csv('./tmp/res_load/p_mw.csv', sep=';').set_index("Unnamed: 0") - cp = prosumer_dmd1.fluid.get_heat_capacity((hx_res_df.t_2_out_c + hx_res_df.t_2_in_c)/2) / 1e3 - hx_q_2_kw = hx_res_df.mdot_2_kg_per_s * cp * (hx_res_df.t_2_out_c - hx_res_df.t_2_in_c) - - assert_series_equal(hx_q_2_kw, hd_res_df.q_received_kw, check_dtype=False, atol=.1, rtol=.1, check_names=False) - assert_series_equal(hx_res_df.mdot_2_kg_per_s, hd_res_df.mdot_kg_per_s, check_dtype=False, atol=.01, rtol=.01, check_names=False) - assert_series_equal(hx_res_df.t_2_out_c, hd_res_df.t_in_c, check_dtype=False, atol=.01, rtol=.01, check_names=False) - assert_series_equal(hx_res_df.t_2_in_c, hd_res_df.t_out_c, check_dtype=False, atol=.01, rtol=.01, check_names=False) - assert_series_equal(fcc_res_df.t_received_in_c, jct_t_k_res_df["3"]-CELSIUS_TO_K, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(fcc_res_df.t_received_in_c, hx_res_df.t_1_in_c, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(fcc_res_df.mdot_delivered_kg_per_s, hx_res_df.mdot_1_kg_per_s, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(fcc_res_df.mdot_delivered_kg_per_s + fcc_res_df.mdot_bypass_kg_per_s, hc_mdot_kg_per_s_res_df["0"], check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(hp_res_df.t_cond_out_c, prod_hd_res_df.t_in_c, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(hp_res_df.t_cond_in_c, prod_hd_res_df.t_out_c, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(hp_res_df.mdot_cond_kg_per_s, prod_hd_res_df.mdot_kg_per_s, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(prod_hd_res_df.t_in_c, jct_t_k_res_df["0"]-CELSIUS_TO_K, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - - assert_series_equal(prod_hd_res_df.mdot_kg_per_s, hc_mdot_kg_per_s_res_df.sum(axis=1), check_dtype=False, atol=.11, check_names=False, check_index=False, check_freq=False) - - assert_series_equal(prod_hd_res_df.t_out_c, jct_t_k_res_df["7"]-CELSIUS_TO_K, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - - assert_series_equal(hp_res_df.p_comp_kw/1e3, load_p_mw_res_df["0"], check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - - # FixMe: These tests are not passing in some cases because the return network is not balanced, - # need to reexecute prosumers - - assert_series_equal(prod_hd_res_df.mdot_kg_per_s, pump_mdot_kg_per_s_res_df["0"], check_dtype=False, atol=.01, rtol=.01, check_names=False, check_index=False, check_freq=False) - fcc_t_return_out_c = (fcc_res_df.t_received_in_c * fcc_res_df.mdot_bypass_kg_per_s + hx_res_df.t_1_out_c * hx_res_df.mdot_1_kg_per_s) / ( - fcc_res_df.mdot_bypass_kg_per_s + hx_res_df.mdot_1_kg_per_s) - assert_series_equal(fcc_res_df.t_return_out_c, fcc_t_return_out_c, check_dtype=False, atol=.01, rtol=.01, check_names=False, check_index=False, check_freq=False) - print(fcc_res_df.t_return_out_c, jct_t_k_res_df["4"]-273.15) - assert_series_equal(fcc_res_df.t_return_out_c, jct_t_k_res_df["4"]-273.15, check_dtype=False, atol=3, rtol=.01, check_names=False, check_index=False, check_freq=False) diff --git a/tests/network_balance_2_dmd/__init__.py b/tests/network_balance_2_dmd/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/network_balance_2_dmd/create_networks.py b/tests/network_balance_2_dmd/create_networks.py deleted file mode 100644 index 2ae2f58..0000000 --- a/tests/network_balance_2_dmd/create_networks.py +++ /dev/null @@ -1,91 +0,0 @@ -import pandapipes -import pandapower -from pandapower.timeseries.output_writer import OutputWriter - - -def create_pandapipes_net_loop(ow_time_steps, mdot_dmd_kg_per_s, t_feed_prod_k, p_feed_prod_bar, p_return_prod_bar): - t_amb_k = 293 # ToDo: make this depend on const profile ? - net = pandapipes.create_empty_network(fluid="water", name='net_pipes') - - # Create output writer - OutputWriter(net, ow_time_steps, output_path='./tmp', output_file_type='.csv', - log_variables=[ - ('res_junction', 'p_bar'), - ('res_junction', 't_k'), - ('res_pipe', 'mdot_from_kg_per_s'), - ('res_heat_consumer', 'mdot_from_kg_per_s'), - ('res_circ_pump_pressure', 'mdot_from_kg_per_s') # pandapipes 0.11 - ]) - - pandapipes.set_user_pf_options(net, ambient_temperature=t_amb_k, mode='all') - - # create junctions - j0 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(0, 2)) - j1 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(0, 3)) - j2 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(1, 3)) - j3 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(1, 2)) - j4 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(1, 1)) - j5 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(1, 0)) - j6 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(0, 0)) - j7 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(0, 1)) - j8 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(2, 3)) - j9 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(2, 2)) - j10 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(2, 1)) - j11 = pandapipes.create_junction(net, pn_bar=10, tfluid_k=350, geodata=(2, 0)) - # create branch elements - # alpha_w_per_m2k -> u_w_per_m2k = pandapipes 0.11 - pandapipes.create_pipes_from_parameters(net, from_junctions=[j0, j1, j2, j2, j8], to_junctions=[j1, j2, j3, j8, j9], - length_km=0.1, - diameter_m=0.05, alpha_w_per_m2k=10, u_w_per_m2k=10, text_k=t_amb_k) - pandapipes.create_pipes_from_parameters(net, from_junctions=[j4, j5, j6, j10, j11], to_junctions=[j5, j6, j7, j11, j5], - length_km=0.1, - diameter_m=0.05, alpha_w_per_m2k=10, u_w_per_m2k=10, text_k=t_amb_k) - - pandapipes.create_circ_pump_const_pressure(net, - j7, - j0, - p_flow_bar=p_feed_prod_bar[0], - plift_bar=p_feed_prod_bar[0] - p_return_prod_bar[0], - t_flow_k=t_feed_prod_k[0], - _pandaprosumer_max_t_pump_feed_k=100 + 273.15, - _pandaprosumer_min_t_pump_feed_k=20 + 273.15, - _pandaprosumer_max_mdot_pump_kg_per_s=100) - - pandapipes.create_heat_consumer(net, from_junction=j3, to_junction=j4, - qext_w=100e3, controlled_mdot_kg_per_s=mdot_dmd_kg_per_s[0], - _pandaprosumer_max_mdot_dmd_kg_per_s=10000, - _pandaprosumer_min_mdot_dmd_kg_per_s=0.05, - _pandaprosumer_min_t_dmd_return_k=10 + 273.15) - pandapipes.create_flow_control(net, from_junction=j3, to_junction=j4, controlled_mdot_kg_per_s=0.1, - role="demander_bypass") - - pandapipes.create_heat_consumer(net, from_junction=j9, to_junction=j10, - qext_w=100e3, controlled_mdot_kg_per_s=mdot_dmd_kg_per_s[0], - _pandaprosumer_max_mdot_dmd_kg_per_s=10000, - _pandaprosumer_min_mdot_dmd_kg_per_s=0.05, - _pandaprosumer_min_t_dmd_return_k=10 + 273.15) - pandapipes.create_flow_control(net, from_junction=j9, to_junction=j10, controlled_mdot_kg_per_s=0.1, - role="demander_bypass") - - return net - - -def create_pandapower_net(ow_time_steps): - net = pandapower.create_empty_network(name='net_power') - - # Create output writer - OutputWriter(net, ow_time_steps, output_path='./tmp', output_file_type='.csv', - log_variables=[ - ('res_bus', 'vm_pu'), - ('res_line', 'loading_percent'), - ('res_load', 'p_mw'), - ('res_ext_grid', 'p_mw') - ]) - - b0 = pandapower.create_bus(net, vn_kv=20.) - b1 = pandapower.create_bus(net, vn_kv=20.) - pandapower.create_line(net, from_bus=b0, to_bus=b1, length_km=2.5, std_type="NAYY 4x50 SE") - pandapower.create_ext_grid(net, bus=b0) - pandapower.create_load(net, bus=b1, p_mw=1.) - - return net diff --git a/tests/network_balance_2_dmd/create_prosumers.py b/tests/network_balance_2_dmd/create_prosumers.py deleted file mode 100644 index 2787e21..0000000 --- a/tests/network_balance_2_dmd/create_prosumers.py +++ /dev/null @@ -1,67 +0,0 @@ -from pandaprosumer.mapping import GenericMapping -from pandaprosumer import * -from tests.data_sources.define_period import * - - -def create_prosumer_prod(hp_level): - prosumer = create_empty_prosumer_container(name='prosumer_prod',check_order=False) - period, data_source = define_and_get_period_and_data_source(prosumer) - - cp_input_columns = ["Tin,evap"] - cp_result_columns = ["Tin,evap"] - - hp_params = {'carnot_efficiency': 0.5, - 'pinch_c': 5, - 'delta_t_evap_c': 8, - 'max_p_comp_kw': 1000e3} - - cp_controller_index = create_controlled_const_profile(prosumer, cp_input_columns, cp_result_columns, - data_source, period, 0) - - hp_controller_index = create_controlled_heat_pump(prosumer, period=period, level=hp_level, **hp_params) - - GenericMapping(container=prosumer, - initiator_id=cp_controller_index, - initiator_column="Tin,evap", - responder_id=hp_controller_index, - responder_column="t_evap_in_c", - order=0) - - return prosumer - - -def create_prosumer_dmd_hx(level): - prosumer = create_empty_prosumer_container(check_order=False) - period, data_source = define_and_get_period_and_data_source(prosumer) - - cp_input_columns = ["demand_1"] # demand_4 is 10 times lower than demand_1, doesn't work with demand_1 ? - cp_result_columns = ["demand_kw"] - - hx_params = {'t_1_in_nom_c': 45, # HX will return nan if 50°C is used - 't_1_out_nom_c': 30, - 't_2_in_nom_c': 20, - 't_2_out_nom_c': 40, - 'mdot_2_nom_kg_per_s': 3.58} - - hd_params = {'t_in_set_c': 40, - 't_out_set_c': 20} - - cp_controller_index = create_controlled_const_profile(prosumer, cp_input_columns, cp_result_columns, - data_source, period, 0) - - hx_controller_index = create_controlled_heat_exchanger(prosumer, period=period, level=level, order=0, **hx_params) - hd_controller_index = create_controlled_heat_demand(prosumer, period=period, level=level, order=1, **hd_params) - - GenericMapping(container=prosumer, - initiator_id=cp_controller_index, - initiator_column="demand_kw", - responder_id=hd_controller_index, - responder_column="q_demand_kw", - order=0) - - FluidMixMapping(container=prosumer, - initiator_id=hx_controller_index, - responder_id=hd_controller_index, - order=0) - - return prosumer diff --git a/tests/network_balance_2_dmd/test_balance_net.py b/tests/network_balance_2_dmd/test_balance_net.py deleted file mode 100644 index df29c52..0000000 --- a/tests/network_balance_2_dmd/test_balance_net.py +++ /dev/null @@ -1,273 +0,0 @@ -import pytest -from pandas._testing import assert_series_equal -from pandaprosumer import * -from pandaprosumer.energy_system.control.controller import NetControllerData -from pandaprosumer.energy_system.control.controller.coupling.heat_demand_energy_system import \ - HeatDemandEnergySystemController -from pandaprosumer.energy_system.control.controller.coupling.pandapipes_connector import \ - PandapipesConnectorController -from pandaprosumer.energy_system.control.controller.coupling.pandapipes_balance import PandapipesBalanceControl -from pandaprosumer.energy_system.control.controller.coupling.pandapipes_interface import ReadPipeProdControl -from pandaprosumer.energy_system.control.controller.coupling.pandapower_interface import LoadControl -from pandaprosumer.energy_system.control.controller.data_model.pandapipes_connector import \ - PandapipesConnectorControllerData -from pandaprosumer.energy_system.create_energy_system import create_empty_energy_system, add_net_to_energy_system, \ - add_pandaprosumer_to_energy_system -from pandaprosumer.energy_system.timeseries.run_time_series_energy_system import \ - run_timeseries as run_timeseries_system -from pandaprosumer.mapping import FluidMixEnergySystemMapping, GenericEnergySystemMapping - -from .create_networks import * -from .create_prosumers import * - - -class TestBalanceNet: - """ - In this example, a more complex energy system is created with multiple prosumers and networks. - """ - - def test_balance_net(self): - """ - Create 2 prosumers (1 producer and 1 heat consumer) connected to a district heating network - - # ToDo: What if HP cant provide required - # ToDo: Managing many Heat demands - # ToDo: Managing multiple Heat Production units - # ToDo: Make it easier for the user of the library to create the energy system - # ToDo: Define/use mdot_max_kg_per_s in the pandapipes network - """ - - # These values have to be set to run the pandapipes net for each demander and producer - # ToDo: Read from a ConstProfile or define a strategy to read from the demanders' and producers' capacities - tfeed_prod_k = [390] - pfeed_prod_bar = [10] - preturn_prod_bar = [5] - # These are just for the initialisation of the network but will be overwritten on level 1 - mdot_dmd_kg_per_s = [5] - # treturn_dmd_k = [10 + 273.15, 10 + 273.15] - - t_dmd_feed_target_c = [90] - - level_balance_net = 1 - order_balance_net = -2 # To be sure it is executed before user defined - level_pp_connector = 1 - order_pp_connector = -1 # To be sure it is executed before user defined - level_dmd = 1 - level_read_pipe_to_prod = 2 - level_prod = 3 - level_prod_fake_dmd = 3 - order_prod_fake_dmd = 100 # To be sure it is executed after user defined - load_level = 4 - - # Create prosumers - prosumer_prod1 = create_prosumer_prod(level_prod) - prosumer_dmd1 = create_prosumer_dmd_hx(level_dmd) - prosumer_dmd2 = create_prosumer_dmd_hx(level_dmd) - - # Create Output writer time steps for networks - ow_time_steps = pd.date_range(prosumer_prod1.period.iloc[0]["start"], prosumer_prod1.period.iloc[0]["end"], - freq='%ss' % int(prosumer_prod1.period.iloc[0]["resolution_s"]), - tz=prosumer_prod1.period.iloc[0]["timezone"]) - - # Create pandapipes/power networks - net_pipes = create_pandapipes_net_loop(ow_time_steps, mdot_dmd_kg_per_s, tfeed_prod_k, pfeed_prod_bar, preturn_prod_bar) - net_power = create_pandapower_net(ow_time_steps) - - # Create an energy system and add the prosumers and networks to it - energy_system = create_empty_energy_system() - create_period(energy_system, prosumer_prod1.period.iloc[0]["resolution_s"], - prosumer_prod1.period.iloc[0]["start"], - prosumer_prod1.period.iloc[0]["end"], - timezone=prosumer_prod1.period.iloc[0]["timezone"], - name=prosumer_prod1.period.iloc[0]["name"]) - add_net_to_energy_system(energy_system, net_pipes, net_name='hydro') - add_net_to_energy_system(energy_system, net_power, net_name='el') - add_pandaprosumer_to_energy_system(energy_system, prosumer_prod1, pandaprosumer_name='prosumer_prod1') - add_pandaprosumer_to_energy_system(energy_system, prosumer_dmd1, pandaprosumer_name='prosumer_dmd1') - add_pandaprosumer_to_energy_system(energy_system, prosumer_dmd2, pandaprosumer_name='prosumer_dmd2') - - # Run the net once so the res_ tables are created - # ToDo: Check the "initial run" parameter of the controllers - pandapipes.pipeflow(net_pipes) - - # Create a new coupling controller in the demanders prosumer - dmd_prosumers = [prosumer_dmd1, prosumer_dmd2] - connector_controllerids = [] - pandapipes_connector_controllers = [] - for prosumer_dmd in dmd_prosumers: - pipes_connector_controller_data = PandapipesConnectorControllerData(period_index=0) - PandapipesConnectorController(prosumer_dmd, - pipes_connector_controller_data, - order=order_pp_connector, - level=level_pp_connector, - name='pandapipes_connector_controller') - connector_controllerid = prosumer_dmd.controller.index[-1] - connector_controllerids.append(connector_controllerid) - pandapipes_connector_controllers.append(prosumer_dmd.controller.loc[connector_controllerid].object) - - # pandapipes_connector_controllers = [prosumer_dmd.controller.loc[connector_controllerid].object for connector_controllerid in connector_controllerids] - hc_element_indexes = [0, 1] - connector_prosumers = dmd_prosumers - pp_balance_obj = ConstProfileControllerData(input_columns=[], - result_columns=[]) - ppies_balance_ctrl = PandapipesBalanceControl(net=net_pipes, - pandapipes_connector_controllers=pandapipes_connector_controllers, - hc_element_indexes=hc_element_indexes, - connector_prosumers=connector_prosumers, - basic_prosumer_object=pp_balance_obj, - pump_id=0, - tol=.1, - level=level_balance_net, - name='net_temp_control', - order=order_balance_net) - - # Create some DataClass controller data to refer to elements in the pandapipes networks - heat_consumer_data = NetControllerData(input_columns=[], - result_columns=[], - element_name='heat_consumer', - element_index=[0]) - - circ_pump_pressure_data = NetControllerData(input_columns=[], - result_columns=['t_c', 'tfeed_c', 'mdot_kg_per_s'], - element_name='circ_pump_pressure', - element_index=[0]) - - # On level 0, execute the Const profile controllers in all the prosumers - - for prosumer_dmd, connector_controllerid in zip(dmd_prosumers, connector_controllerids): - FluidMixEnergySystemMapping(container=net_pipes, - initiator_id=ppies_balance_ctrl.index, - responder_net=prosumer_dmd, - responder_id=connector_controllerid, - order=0, - no_chain=False) - - for prosumer_dmd, heat_consumer, connector_controllerid in zip(dmd_prosumers, - [heat_consumer_data, heat_consumer_data], - connector_controllerids): - hx_index = 1 # index of the HX controller that is connected to the DHN - # Create mapping inside the prosumer between this connector controller and the (each) heat exchanger(s) - FluidMixMapping(container=prosumer_dmd, - initiator_id=connector_controllerid, - responder_id=hx_index, - order=0) - - hd_params = {'t_in_set_c': 76.85, - 't_out_set_c': 30} - for prosumer_prod, pump_data, load_id in zip([prosumer_prod1], - [circ_pump_pressure_data], - [0]): - # Create a demand without period that act as a network connector controller in the prosumer - heat_demand_index = create_heat_demand(prosumer_prod,**hd_params) - heat_demand_controller_data = HeatDemandControllerData(element_name='heat_demand', - element_index=[heat_demand_index], - period_index=0) # FixMe: Adding a period to the controller is convenient for debuging - heat_demand_controller = HeatDemandEnergySystemController(prosumer_prod, - heat_demand_controller_data, - order=order_prod_fake_dmd, - level=level_prod_fake_dmd, - name='heat_demand_connector_controller') - hd_controller_index = heat_demand_controller.index - - hp_index = 1 # index of the HP controller that is connected to the DHN - # Create a mapping between the HP and the HD that connect to the DHN - FluidMixMapping(container=prosumer_prod, - initiator_id=hp_index, - responder_id=hd_controller_index, - order=0) - - prod_read_return_control = ReadPipeProdControl(net_pipes, pump_data, level=level_read_pipe_to_prod) - prod_read_return_control_index = prod_read_return_control.index - GenericEnergySystemMapping(container=net_pipes, - initiator_id=prod_read_return_control_index, - initiator_column="t_c", - responder_net=prosumer_prod, - responder_id=hd_controller_index, - responder_column="t_return_demand_c", - order=0) - GenericEnergySystemMapping(container=net_pipes, - initiator_id=prod_read_return_control_index, - initiator_column="tfeed_c", - responder_net=prosumer_prod, - responder_id=hd_controller_index, - responder_column="t_feed_demand_c", - order=0) - GenericEnergySystemMapping(container=net_pipes, - initiator_id=prod_read_return_control_index, - initiator_column="mdot_kg_per_s", - responder_net=prosumer_prod, - responder_id=hd_controller_index, - responder_column="mdot_demand_kg_per_s", - order=0) - - # Map the HP el consumption to the Pandapower net - load_data = NetControllerData(element_index=[load_id], - element_name='load', - input_columns=['p_in_kw'], - result_columns=[]) - load_control = LoadControl(net_power, load_data, level=load_level, name='load_control') - load_control_index = load_control.index - GenericEnergySystemMapping(container=prosumer_prod, - initiator_id=hp_index, - initiator_column="p_comp_kw", - responder_net=net_power, - responder_id=load_control_index, - responder_column="p_in_kw", - order=1) - - run_timeseries_system(energy_system, 0) - - print(prosumer_prod1.time_series.loc[0, 'data_source'].df) - print(prosumer_dmd1.time_series.loc[0, 'data_source'].df) - print(prosumer_dmd1.time_series.loc[1, 'data_source'].df) - print(net_pipes.res_junction) - print(net_pipes.res_junction.t_k - 273.15) - print(net_pipes.res_pipe) - print(net_power.res_bus) - print(net_power.res_line) - print(net_power.res_load) - print(net_power.res_ext_grid) - - # Read the results of the timeseries writen by the output_writer and do some checks - - hp_res_df = prosumer_prod1.time_series.loc[0].data_source.df - prod_hd_res_df = prosumer_prod1.time_series.loc[1].data_source.df - hx_res_df = prosumer_dmd1.time_series.loc[0].data_source.df - hd_res_df = prosumer_dmd1.time_series.loc[1].data_source.df - fcc_ctrl = prosumer_dmd1.controller.loc[3].object - fcc_ctrl_res = fcc_ctrl.time_series_finalization(prosumer_dmd1) - fcc_res_df = [DFData(pd.DataFrame(entry, columns=fcc_ctrl.result_columns, index=fcc_ctrl.time_index)) for entry in fcc_ctrl_res][0].df - jct_t_k_res_df = pd.read_csv('./tmp/res_junction/t_k.csv', sep=';').set_index("Unnamed: 0") - pipes_mdot_kg_per_s_res_df = pd.read_csv('./tmp/res_pipe/mdot_from_kg_per_s.csv', sep=';').set_index("Unnamed: 0") - hc_mdot_kg_per_s_res_df = pd.read_csv('./tmp/res_heat_consumer/mdot_from_kg_per_s.csv', sep=';').set_index("Unnamed: 0") - pump_mdot_kg_per_s_res_df = pd.read_csv('./tmp/res_circ_pump_pressure/mdot_from_kg_per_s.csv', sep=';').set_index("Unnamed: 0") - load_p_mw_res_df = pd.read_csv('./tmp/res_load/p_mw.csv', sep=';').set_index("Unnamed: 0") - cp = prosumer_dmd1.fluid.get_heat_capacity((hx_res_df.t_2_out_c + hx_res_df.t_2_in_c)/2) / 1e3 - hx_q_2_kw = hx_res_df.mdot_2_kg_per_s * cp * (hx_res_df.t_2_out_c - hx_res_df.t_2_in_c) - - assert_series_equal(hx_q_2_kw, hd_res_df.q_received_kw, check_dtype=False, atol=.1, rtol=.1, check_names=False) - assert_series_equal(hx_res_df.mdot_2_kg_per_s, hd_res_df.mdot_kg_per_s, check_dtype=False, atol=.01, rtol=.01, check_names=False) - assert_series_equal(hx_res_df.t_2_out_c, hd_res_df.t_in_c, check_dtype=False, atol=.01, rtol=.01, check_names=False) - assert_series_equal(hx_res_df.t_2_in_c, hd_res_df.t_out_c, check_dtype=False, atol=.01, rtol=.01, check_names=False) - assert_series_equal(fcc_res_df.t_received_in_c, jct_t_k_res_df["3"]-CELSIUS_TO_K, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(fcc_res_df.t_received_in_c, hx_res_df.t_1_in_c, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(fcc_res_df.mdot_delivered_kg_per_s, hx_res_df.mdot_1_kg_per_s, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(fcc_res_df.mdot_delivered_kg_per_s + fcc_res_df.mdot_bypass_kg_per_s, hc_mdot_kg_per_s_res_df["0"], check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(hp_res_df.t_cond_out_c, prod_hd_res_df.t_in_c, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(hp_res_df.t_cond_in_c, prod_hd_res_df.t_out_c, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(hp_res_df.mdot_cond_kg_per_s, prod_hd_res_df.mdot_kg_per_s, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(prod_hd_res_df.t_in_c, jct_t_k_res_df["0"]-CELSIUS_TO_K, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - assert_series_equal(prod_hd_res_df.mdot_kg_per_s, hc_mdot_kg_per_s_res_df.sum(axis=1), check_dtype=False, atol=1.5, check_names=False, check_index=False, check_freq=False) - assert_series_equal(prod_hd_res_df.t_out_c, jct_t_k_res_df["7"]-CELSIUS_TO_K, check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - - assert_series_equal(hp_res_df.p_comp_kw/1e3, load_p_mw_res_df["0"], check_dtype=False, atol=.01, check_names=False, check_index=False, check_freq=False) - - # FixMe: These tests are not passing in some cases because the return network is not balanced, - # need to reexecute prosumers - assert_series_equal(prod_hd_res_df.mdot_kg_per_s, pump_mdot_kg_per_s_res_df["0"], check_dtype=False, atol=.01, rtol=.01, check_names=False, check_index=False, check_freq=False) - fcc_t_return_out_c = (fcc_res_df.t_received_in_c * fcc_res_df.mdot_bypass_kg_per_s + hx_res_df.t_1_out_c * hx_res_df.mdot_1_kg_per_s) / ( - fcc_res_df.mdot_bypass_kg_per_s + hx_res_df.mdot_1_kg_per_s) - assert_series_equal(fcc_res_df.t_return_out_c, fcc_t_return_out_c, check_dtype=False, atol=.5, rtol=.01, check_names=False, check_index=False, check_freq=False) - - # FixMe: need a high absolute tolerance to pass the test because there is not matching temperatures - assert_series_equal(fcc_res_df.t_return_out_c, jct_t_k_res_df["4"]-273.15, check_dtype=False, atol=3, check_names=False, check_index=False, check_freq=False) From baf52e2d8d42037f13f439cf9f36e24889c8f111 Mon Sep 17 00:00:00 2001 From: mena138 Date: Wed, 4 Mar 2026 11:36:36 +0100 Subject: [PATCH 09/33] fix ice_chp test for pandas version --- tests/models/test_ice_chp.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/models/test_ice_chp.py b/tests/models/test_ice_chp.py index 4e79ed6..e73d034 100644 --- a/tests/models/test_ice_chp.py +++ b/tests/models/test_ice_chp.py @@ -337,10 +337,17 @@ def test_ice_chp_input_type(self): 'altitude': 0, 'name': 'example_ice_chp'} - fuel_val = 10 + fuel_val = 10 # this should be a string (e.g., 'ng') + + # Note: with pandas 2, this doesn't raise an error. + # However if pandas is upgraded to pandas 3, this will raise a TypeError. + # In this case the test should become: with pytest.raises(TypeError): ... + ice_chp_controller_idx = create_controlled_ice_chp(prosumer, order=0, period=_default_period(prosumer), fuel=fuel_val, **params) + ice_chp_controller = prosumer.controller.iloc[ice_chp_controller_idx].object + + stored_fuel = ice_chp_controller._get_element_param(prosumer, "fuel") - with pytest.raises(TypeError): - create_controlled_ice_chp(prosumer, order=0, period=_default_period(prosumer), fuel=fuel_val, **params) + assert not isinstance(stored_fuel, str) # TEST 13 From 13b3d5ce12dcc15a20c0c16bc0f4c06f7d9c0509 Mon Sep 17 00:00:00 2001 From: mena138 Date: Wed, 4 Mar 2026 11:37:16 +0100 Subject: [PATCH 10/33] fix edge case in shs --- .../controller/models/stratified_heat_storage.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pandaprosumer/controller/models/stratified_heat_storage.py b/src/pandaprosumer/controller/models/stratified_heat_storage.py index 52a1117..4e45a55 100644 --- a/src/pandaprosumer/controller/models/stratified_heat_storage.py +++ b/src/pandaprosumer/controller/models/stratified_heat_storage.py @@ -270,7 +270,10 @@ def __init__(self, prosumer, stratified_heat_storage_object, order, level, init_ h_ext_w_per_m2k = self._get_element_param(prosumer, 'h_ext_w_per_m2k') # natural convection # Heat transfer coefficient with the environment (diffusion through insulation + convection with ambient air) - self.U_w_per_m2k = 1 / ((1 / h_ext_w_per_m2k) + (d_insu_m / k_insu_w_per_mk)) # see eq. 6 + if h_ext_w_per_m2k == 0: + self.U_w_per_m2k = k_insu_w_per_mk / d_insu_m + else: + self.U_w_per_m2k = 1 / ((1 / h_ext_w_per_m2k) + (d_insu_m / k_insu_w_per_mk)) # see eq. 6 # We assume that the tank fluid to overall heat transfer coefficient for the top and bottom layers is the same # as the overall heat transfer coefficient self.U1_w_per_m2k = self.UN_w_per_m2k = self.U_w_per_m2k From d526512bb316f6ea43e3d031b5b9b464c8e59b5f Mon Sep 17 00:00:00 2001 From: mena138 Date: Wed, 4 Mar 2026 11:37:37 +0100 Subject: [PATCH 11/33] fixing edge case in hx --- src/pandaprosumer/constants.py | 1 + tests/energy_system/test_network_coupling.py | 1 + ...test_1heatexchanger_1heatdemand_mapping.py | 29 +++++++++++++++---- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/pandaprosumer/constants.py b/src/pandaprosumer/constants.py index 20c6c46..216248b 100644 --- a/src/pandaprosumer/constants.py +++ b/src/pandaprosumer/constants.py @@ -2,6 +2,7 @@ CELSIUS_TO_K = NORMAL_TEMPERATURE TEMPERATURE_CONVERGENCE_THRESHOLD_C = 1 +MAX_RERUN = 20 class HeatExchangerControl: diff --git a/tests/energy_system/test_network_coupling.py b/tests/energy_system/test_network_coupling.py index 27eff11..da89178 100644 --- a/tests/energy_system/test_network_coupling.py +++ b/tests/energy_system/test_network_coupling.py @@ -1,4 +1,5 @@ import pandapower +import pandapipes from pandapower.timeseries import OutputWriter from pandaprosumer.create_controlled import * diff --git a/tests/integrations/test_1heatexchanger_1heatdemand_mapping.py b/tests/integrations/test_1heatexchanger_1heatdemand_mapping.py index 275ff77..d14f6d9 100644 --- a/tests/integrations/test_1heatexchanger_1heatdemand_mapping.py +++ b/tests/integrations/test_1heatexchanger_1heatdemand_mapping.py @@ -1,7 +1,13 @@ +import numpy as np import pytest -from pandaprosumer import * +import pandas as pd from pandas.testing import assert_frame_equal, assert_series_equal +from pandapower.timeseries.data_sources.frame_data import DFData + +from pandaprosumer import create_controlled_const_profile, create_controlled_heat_exchanger, create_controlled_heat_demand +from pandaprosumer.mapping import FluidMixMapping from pandaprosumer.run_time_series import run_timeseries +from pandaprosumer.create import create_empty_prosumer_container, create_period from pandaprosumer.mapping import GenericMapping @@ -9,11 +15,9 @@ class Test1HeatExchanger1HeatDemandMapping: """ In this example, a single ConstProsumer is mapped to a HX, then to a Heat Demand """ - - def test_mapping(self): + + def _define_prosumer_cp_hx_hd(self, data): prosumer = create_empty_prosumer_container() - data = pd.DataFrame({"Tin_1": [80, 95, 95, 95], - "demand_1": [50, 200, 1000, 0]}) start = '2020-01-01 00:00:00' resol = 3600 @@ -63,6 +67,13 @@ def test_mapping(self): initiator_id=hx_controller_index, responder_id=hd_controller_index, order=0) + + return prosumer, period, hd_controller_index, hx_controller_index + + def test_mapping(self): + data = pd.DataFrame({"Tin_1": [80, 95, 95, 95], + "demand_1": [50, 200, 1000, 0]}) + prosumer, period, hd_controller_index, hx_controller_index = self._define_prosumer_cp_hx_hd(data) run_timeseries(prosumer, period, True) @@ -103,6 +114,14 @@ def test_mapping(self): # assert hp_t_2_out_c == pytest.approx([76.85]*len(hp_t_2_out_c)) # assert hp_t_2_in_c == pytest.approx([30]*len(hp_t_2_in_c)) + def test_low_temperature_feed(self): + """Test the heat exchanger with a feed temperature < demand temperature""" + data = pd.DataFrame({"Tin_1": [80, 95, 95, 95], + "demand_1": [50, 200, 1000, 0]}) + prosumer, period, hd_controller_index, hx_controller_index = self._define_prosumer_cp_hx_hd(data) + + + # Test with a feed temperature 69.9°C < demand temperature (76.85°C) prosumer.controller.loc[hd_controller_index].object.t_m_to_receive = lambda p: (76.85, 30, 1.530896781) assert (prosumer.controller.loc[hx_controller_index].object.t_m_to_receive_for_t(prosumer, 69.9) == pytest.approx((69.9, 64.13644444505121, 12.426411451969358), .001)) From eece40afa962f08c5411bf475ec24150b4b061cb Mon Sep 17 00:00:00 2001 From: mena138 Date: Wed, 4 Mar 2026 11:46:03 +0100 Subject: [PATCH 12/33] fixing hx edge case --- src/pandaprosumer/controller/models/heat_exchanger.py | 7 +++++++ src/pandaprosumer/library/heat_exchanger_utils.py | 8 ++++---- .../test_1heatexchanger_1heatdemand_mapping.py | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/pandaprosumer/controller/models/heat_exchanger.py b/src/pandaprosumer/controller/models/heat_exchanger.py index cd96c64..2c00a82 100644 --- a/src/pandaprosumer/controller/models/heat_exchanger.py +++ b/src/pandaprosumer/controller/models/heat_exchanger.py @@ -175,6 +175,13 @@ def calculate_heat_exchanger(self, prosumer, t_2_out_c, t_2_in_c, mdot_2_kg_per_ delta_t_hot_nom_c = t_1_hot_nom_c - t_2_hot_nom_c delta_t_cold_nom_c = t_1_cold_nom_c - t_2_cold_nom_c delta_t_hot_c = t_1_in_c - t_2_out_c + + if delta_t_hot_c <= 0: + t_1_out_c, mdot_1_kg_per_s = compute_temp(q_ratio, q_exchanged_w, t_1_in_c, t_2_in_c, t_2_out_c, + delta_t_hot_nom_c, delta_t_cold_nom_c, cp_1_j_per_kgk, + heat_consumer=False) + return mdot_1_kg_per_s, t_1_in_c, t_1_out_c, mdot_2_kg_per_s, t_2_in_c, t_2_out_c + # Logarithmic mean temperature difference (LMTD) at nominal conditions if delta_t_hot_nom_c == delta_t_cold_nom_c: lmtd_nom = delta_t_hot_nom_c diff --git a/src/pandaprosumer/library/heat_exchanger_utils.py b/src/pandaprosumer/library/heat_exchanger_utils.py index 573b584..563ab54 100644 --- a/src/pandaprosumer/library/heat_exchanger_utils.py +++ b/src/pandaprosumer/library/heat_exchanger_utils.py @@ -45,10 +45,10 @@ def calculate_temperature_difference(a, delta_t, is_cold=True): :return: The temperature difference between the primary and secondary temperatures. """ if is_cold: - dichotomy_fun = lambda x: a * x + np.log(1 - x) # if (1 - x) > 0 else float('inf') + dichotomy_fun = lambda x: a * x + np.log(1 - x) if (1 - x) > 1e-10 else float('inf') if a > 1: # dichotomy_fun is strictly decreasing on [x_min, x_max], 0 < x < 1 - x_max = 1 + x_max = 1 - 1e-10 x_min = (a - 1) / (a - 0.001) else: # dichotomy_fun is strictly increasing on [x_max, x_min], x < 0 @@ -58,10 +58,10 @@ def calculate_temperature_difference(a, delta_t, is_cold=True): x_mean = solve_dichotomy(dichotomy_fun, x_min, x_max, is_increasing=False) return (1 - x_mean) * delta_t else: - dichotomy_fun = lambda x: a * x - np.log(1 + x) if (1 + x) > 0 else float('inf') + dichotomy_fun = lambda x: a * x - np.log(1 + x) if (1 + x) > 1e-10 else float('inf') if a > 1: # dichotomy_fun is strictly decreasing on [x_max, x_min], -1 < x < 0 - x_max = -1 + x_max = -1 + 1e-10 x_min = (1 - a) / (a - 0.001) else: # dichotomy_fun is strictly increasing on [x_min, x_max], x > 0 diff --git a/tests/integrations/test_1heatexchanger_1heatdemand_mapping.py b/tests/integrations/test_1heatexchanger_1heatdemand_mapping.py index d14f6d9..db6453e 100644 --- a/tests/integrations/test_1heatexchanger_1heatdemand_mapping.py +++ b/tests/integrations/test_1heatexchanger_1heatdemand_mapping.py @@ -124,4 +124,4 @@ def test_low_temperature_feed(self): # Test with a feed temperature 69.9°C < demand temperature (76.85°C) prosumer.controller.loc[hd_controller_index].object.t_m_to_receive = lambda p: (76.85, 30, 1.530896781) assert (prosumer.controller.loc[hx_controller_index].object.t_m_to_receive_for_t(prosumer, 69.9) == - pytest.approx((69.9, 64.13644444505121, 12.426411451969358), .001)) + pytest.approx((69.9, 43.59322222253029, 2.7215440864139606), .001)) From 4e527301e8922dfcdb99bb9ffdaaf3c82ba98ac9 Mon Sep 17 00:00:00 2001 From: mena138 Date: Thu, 5 Mar 2026 11:35:43 +0100 Subject: [PATCH 13/33] wip simple heat storage --- tests/models/test_simple_heat_storage.py | 33 +- tutorials/heat_storage_tutorial.ipynb | 865 +++++++++++++++++++++-- 2 files changed, 848 insertions(+), 50 deletions(-) diff --git a/tests/models/test_simple_heat_storage.py b/tests/models/test_simple_heat_storage.py index d1821b9..985dcb3 100644 --- a/tests/models/test_simple_heat_storage.py +++ b/tests/models/test_simple_heat_storage.py @@ -1,7 +1,7 @@ import pytest import numpy as np import pandas as pd -from pandaprosumer import * +from pandaprosumer import create_empty_prosumer_container, create_period, create_controlled_heat_storage, create_heat_storage from pandaprosumer.mapping.fluid_mix import FluidMixMapping @@ -228,24 +228,39 @@ def test_controller_t_m_to_receive(self): def test_fluid_mix_mode_step(self): """Test FluidMix mode: uniform tank with input T and mdot; check step_results and optional result_mass_flow_with_temp.""" prosumer = create_empty_prosumer_container(fluid="water") - period = create_period(prosumer, 1, name="foo", + resol_s = 60 * 5 + period = create_period(prosumer, resol_s, name="foo", start="2020-01-01 00:00:00", end="2020-01-01 00:00:09", timezone="utc") - idx = create_controlled_heat_storage(prosumer, q_capacity_kwh=10, capacity_kg=1000.0, - init_temperature_c=50.0, period=period) + q_capacity_kwh = 10 + low_temp_c = 50.0 + high_temp_c = 70.0 + mdot_charge_kg_per_s = 0.5 + idx = create_controlled_heat_storage(prosumer, q_capacity_kwh=q_capacity_kwh, capacity_kg=1000.0, + init_temperature_c=low_temp_c, min_temp_c=low_temp_c, max_temp_c=high_temp_c, period=period) ctrl = prosumer.controller.iloc[idx].object ctrl.time_step(prosumer, "2020-01-01 00:00:00") - ctrl.input_mass_flow_with_temp = {FluidMixMapping.TEMPERATURE_KEY: 70.0, FluidMixMapping.MASS_FLOW_KEY: 0.5} + ctrl.input_mass_flow_with_temp = {FluidMixMapping.TEMPERATURE_KEY: high_temp_c, FluidMixMapping.MASS_FLOW_KEY: mdot_charge_kg_per_s} ctrl.control_step(prosumer) # Step ran; step_results must be (1, 2) assert ctrl.step_results.shape == (1, 2) + + energy_charged = mdot_charge_kg_per_s * (high_temp_c - low_temp_c) * 4.186 * ctrl.resol / 3600 # kWh + t_tank_expected_c = low_temp_c + energy_charged / (mdot_charge_kg_per_s * ctrl.resol / 3600 * 4.186) + soc_expected = energy_charged / q_capacity_kwh + q_delivered_expected_kw = 0.0 # No discharge in this test + + assert not np.isnan(ctrl.step_results[0, 0]) soc = ctrl.step_results[0, 0] if not np.isnan(soc): assert 0 <= soc <= 1 + assert soc == pytest.approx(soc_expected) + assert ctrl.step_results[0, 1] == pytest.approx(q_delivered_expected_kw) + # When finalized (e.g. no FluidMix initiators), result_mass_flow_with_temp is set - if len(ctrl.result_mass_flow_with_temp) == 1: - assert ctrl.result_mass_flow_with_temp[0][FluidMixMapping.MASS_FLOW_KEY] == 0.5 - assert not np.isnan(ctrl.step_results[0, 0]) - assert ctrl.applied is True + assert len(ctrl.result_mass_flow_with_temp) == 1 + assert ctrl.result_mass_flow_with_temp[0][FluidMixMapping.MASS_FLOW_KEY] == mdot_charge_kg_per_s + assert ctrl.result_mass_flow_with_temp[0][FluidMixMapping.TEMPERATURE_KEY] == t_tank_expected_c + assert ctrl.applied is True def test_soc_from_temperature(self): """Test SOC from tank temperature when min_temp_c and max_temp_c are set.""" diff --git a/tutorials/heat_storage_tutorial.ipynb b/tutorials/heat_storage_tutorial.ipynb index 5ede0e7..2a7c72d 100644 --- a/tutorials/heat_storage_tutorial.ipynb +++ b/tutorials/heat_storage_tutorial.ipynb @@ -43,7 +43,9 @@ }, { "cell_type": "code", + "execution_count": 1, "metadata": {}, + "outputs": [], "source": [ "import sys\n", "import os\n", @@ -55,13 +57,13 @@ "current_directory = os.getcwd()\n", "parent_directory = os.path.dirname(current_directory)\n", "sys.path.insert(0, parent_directory)" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": 2, "metadata": {}, + "outputs": [], "source": [ "# Time range and resolution\n", "start = '2020-01-01 00:00:00'\n", @@ -69,13 +71,252 @@ "time_resolution_s = 900\n", "dur = pd.date_range(start=start, end=end, freq=f'{time_resolution_s}s', tz='utc')\n", "n_steps = len(dur)" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": 3, "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ + { + "name": "index", + "rawType": "datetime64[ns, UTC]", + "type": "unknown" + }, + { + "name": "supply_power", + "rawType": "float64", + "type": "float" + }, + { + "name": "demand_power", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_feed_demand_c", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_return_demand_c", + "rawType": "float64", + "type": "float" + } + ], + "ref": "8b63f34d-906c-405b-8cb4-374404b8a3d7", + "rows": [ + [ + "2020-01-01 00:00:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 00:15:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 00:30:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 00:45:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:00:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:15:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:30:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:45:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 02:00:00+00:00", + "0.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 02:15:00+00:00", + "0.0", + "0.0", + "80.0", + "20.0" + ] + ], + "shape": { + "columns": 4, + "rows": 10 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
supply_powerdemand_powert_feed_demand_ct_return_demand_c
2020-01-01 00:00:00+00:0025.00.080.020.0
2020-01-01 00:15:00+00:0025.00.080.020.0
2020-01-01 00:30:00+00:0025.00.080.020.0
2020-01-01 00:45:00+00:0025.00.080.020.0
2020-01-01 01:00:00+00:0025.060.080.020.0
2020-01-01 01:15:00+00:0025.060.080.020.0
2020-01-01 01:30:00+00:0025.060.080.020.0
2020-01-01 01:45:00+00:0025.060.080.020.0
2020-01-01 02:00:00+00:000.00.080.020.0
2020-01-01 02:15:00+00:000.00.080.020.0
\n", + "
" + ], + "text/plain": [ + " supply_power demand_power t_feed_demand_c \\\n", + "2020-01-01 00:00:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 00:15:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 00:30:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 00:45:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 01:00:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 01:15:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 01:30:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 01:45:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 02:00:00+00:00 0.0 0.0 80.0 \n", + "2020-01-01 02:15:00+00:00 0.0 0.0 80.0 \n", + "\n", + " t_return_demand_c \n", + "2020-01-01 00:00:00+00:00 20.0 \n", + "2020-01-01 00:15:00+00:00 20.0 \n", + "2020-01-01 00:30:00+00:00 20.0 \n", + "2020-01-01 00:45:00+00:00 20.0 \n", + "2020-01-01 01:00:00+00:00 20.0 \n", + "2020-01-01 01:15:00+00:00 20.0 \n", + "2020-01-01 01:30:00+00:00 20.0 \n", + "2020-01-01 01:45:00+00:00 20.0 \n", + "2020-01-01 02:00:00+00:00 20.0 \n", + "2020-01-01 02:15:00+00:00 20.0 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Part 1 input: supply power (to storage) and demand (for heat demand element)\n", "supply_kw = np.zeros(n_steps)\n", @@ -92,13 +333,43 @@ "}, index=dur)\n", "profile1 = DFData(df1)\n", "df1.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([, , , ], dtype=object)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0MAAAIaCAYAAADiNpZkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdMVJREFUeJzt3XlcVmX+//H3DbKvoqwKrmlquZvZopYmOo1le9av1BybCiszK51yywprymwxq5nUNrNs0hb9OhkJToaWa5k7aVayqAkIKCCc3x94H70TkRu4F7hfz8fjfsh9zrmvcx0uTN5d1/kci2EYhgAAAADAw3i5ugMAAAAA4AqEIQAAAAAeiTAEAAAAwCMRhgAAAAB4JMIQAAAAAI9EGAIAAADgkQhDAAAAADwSYQgAAACAR2rk6g7UhfLych04cEAhISGyWCyu7g4AAAAAFzEMQ0ePHlVcXJy8vKqe+2kQYejAgQOKj493dTcAAAAAuIlff/1VzZs3r/KYBhGGQkJCJFVccGhoqIt7AwAAAMBV8vPzFR8fb2aEqjSIMGRdGhcaGkoYAgAAAFCt22caRBiymvbZT/ILDHZ1NxzGr5GX7rq0lRKaBLq6KwAAAEC916DC0McbfpOXX8MOCsUnypR8fWdXdwMAAACo9xpUGBp7RVsFBDXMmaHtWfla/mOWDuQed3VXAAAAgAahQYWhe/q3abD3DK3akaPlP2bpUEGxq7sCAABQZ8rKylRaWurqbqCe8fHxkbe3d63baVBhqCFrGuwnSYQhAADQIBiGoaysLOXm5rq6K6inwsPDFRMTU6vnjBKG6ommIb6SpMMFJSovN+TlxcNlAQBA/WUNQlFRUQoMDKzVL7TwLIZhqKioSDk5OZKk2NjYGrdFGKonmgRVzAydKDeUd6xUjYN8XdwjAACAmikrKzODUJMmTVzdHdRDAQEBkqScnBxFRUXVeMmcV112Co7j28hLYQE+klgqBwAA6jfrPUKBgQ27CjAcy/rzU5t7zghD9UjT4IrZoEMFJS7uCQAAQO2xNA61URc/P4SheoQiCgAAAEDdIQzVI4QhAAAAz7Zv3z5ZLBZt3rzZ1V1pEAhD9cipZXKEIQAAAKC2CEP1iDkzdJR7hgAAAOAZSkoc97svYageaRrCMjkAAABX+vjjj3XhhRcqICBATZo00cCBA1VYWKj+/ftr3LhxNscOGzZMI0eONN+3bNlSM2bM0PDhwxUUFKRmzZppzpw5Np+xWCyaO3euhgwZooCAALVu3Voff/xxpX0xDENt27bV888/b7N98+bNslgs2rNnzzmvpzrn+/HHH3XllVea13z33XeroKBAkrR161Z5eXnp4MGDkqQ//vhDXl5euvXWW83PP/XUU7rsssvM91u3btWQIUMUHBys6Oho3XHHHTp06JC5v3///ho7dqzGjRunpk2bKjEx8ZzXUVOEoXqEe4YAAEBDZBiGikpOuORlGEa1+5mZmanhw4frrrvu0vbt25Wamqrrr7/erjb++c9/qkuXLtq0aZMmTpyoBx98UCtXrrQ5ZvLkybrhhhu0ZcsW3X777br11lu1ffv2M9qyWCy66667NH/+fJvt8+fPV9++fdW2bdtq9amq8xUWFioxMVGNGzfW999/r8WLF+urr77S2LFjJUmdOnVSkyZNlJaWJkn63//+Z/NektLS0tS/f39JUm5urq688kp169ZN69ev14oVK5Sdna2bb77Zpk9vv/22fH19tWbNGr3++uvVuo6acPhDV5OTk/XJJ59ox44dCggI0CWXXKJnn31W7du3N485fvy4Hn74YS1atEjFxcVKTEzUa6+9pujoaEd3r16htDYAAGiIjpWWqeOU/7rk3NueTFSgb/V+Jc7MzNSJEyd0/fXXq0WLFpKkCy+80K7zXXrppZo4caIkqV27dlqzZo1efPFFXXXVVeYxN910k/72t79JkmbMmKGVK1fqlVde0WuvvXZGeyNHjtSUKVP03Xff6aKLLlJpaakWLlx4xmxRVao638KFC3X8+HG98847CgoKkiS9+uqrGjp0qJ599llFR0erb9++Sk1N1Y033qjU1FSNGjVK//73v7Vjxw61adNG3377rR599FHzs926ddMzzzxjnn/evHmKj4/Xrl271K5dO0nSeeedp+eee86eb22NOHxmKC0tTUlJSVq7dq1Wrlyp0tJSDRo0SIWFheYxDz30kD7//HMtXrxYaWlpOnDggK6//npHd63eOX1myJ7/AwEAAIDa69KliwYMGKALL7xQN910k/71r3/pyJEjdrXRp0+fM97/edanOsdYxcXF6eqrr9a8efMkSZ9//rmKi4t100031Umftm/fri5duphBSKoIdOXl5dq5c6ckqV+/fkpNTZVU8bv/lVdeaQak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atu2rV3fz2effVb//ve/9dNPPykqyjGTDk556GqjRo0UExNzxva8vDy99dZbWrhwoa688kpJ0vz589WhQwetXbtWF198sTO6VzvWJWt+YY5/EKp1GR7PGQIAAO6utEh6Js415/7HAck3qFqHFhQU6K233tJ7772nAQMGSJLefvttNW/eXJK0f/9+zZ8/X/v371dcXMX1TJgwQStWrND8+fP1zDPPSKoINnPnzlWbNm0kSTfeeKPeffddZWdnKzg4WB07dtQVV1yhVatW6ZZbbpEkm1DTunVrvfzyy+rVq5cKCgoUHBxs7nv66afVr18/SdLEiRN19dVX6/jx4/L399fs2bM1evRojR49WpL01FNP6auvvrJrdsjX11fz5s1TYGCgOnXqpCeffFKPPPKIZsyYoWPHjmnu3LlasGCBhgwZIkn617/+pZUrV+qtt97SI488ov79++utt95SWVmZtm7dKl9fX91yyy1KTU3V4MGDlZqaavbfnu/na6+9pi5dulT7OmrCKTNDu3fvVlxcnFq3bq3bb7/dnObasGGDSktLNXDgQPPY888/XwkJCUpPTz9re8XFxcrPz7d5uYz5wFUHzwpJzAwBAADUsYyMDJWUlKh3797mtoiICLVv316S9OOPP6qsrEzt2rVTcHCw+UpLS1NGRob5mcDAQDMISVJ0dLRatmxpE2qio6NtlsFt2LBBQ4cOVUJCgkJCQmwCw+k6d+5sfh0bGytJZjvbt2+36bsk9enTx67vQZcuXWwemNunTx8VFBTo119/VUZGhkpLS3XppZea+318fHTRRRdp+/btkqTLL79cR48e1aZNm5SWlqZ+/fqpf//+5mxRWlqa+vfvL6n6309fX1+b63YUh88M9e7dWwsWLFD79u2VmZmp6dOn6/LLL9fWrVuVlZUlX19fhYeH23wmOjpaWVlZZ20zOTnZZurOpcz7hZwQhqz3DB37Qyo7IXk7ZWIPAADAfj6BFTM0rjp3HSkoKJC3t7c2bNggb29vm32nBx0fHx+bfRaLpdJt1kIAhYWFSkxMVGJiot5//31FRkZq//79SkxMtLlf589tWx806qiCAjURHh6uLl26KDU1Venp6brqqqvUt29f3XLLLdq1a5d2795tBr3qfj8DAgKc8hBfh/82bZ1OkypSbe/evdWiRQt99NFHCggIqFGbkyZN0vjx4833+fn5io+Pr3Vfa6TAiWEooLFk8ZKMcqnokBRy5tJDAAAAt2CxVHupmiu1adNGPj4+WrdunRISEiRJR44c0a5du9SvXz9169ZNZWVlysnJ0eWXX15n592xY4cOHz6smTNnmr/Hrl+/3u52OnTooHXr1unOO+80t61du9auNrZs2aJjx46Zv5uvXbtWwcHBio+PV9OmTeXr66s1a9aoRYsWkiqWsH3//fc2z2Hq16+fVq1ape+++05PP/20IiIi1KFDBz399NOKjY1Vu3btJMlh38+acnpp7fDwcLVr10579uxRTEyMSkpKlJuba3NMdnZ2pfcYWfn5+Sk0NNTm5TLmMjkHV5KTJC9vKbBpxdcslQMAAKi14OBgjR49Wo888oi+/vprbd26VSNHjpSXV8Wvye3atdPtt9+uO++8U5988on27t2r7777TsnJyVq2bFmNz5uQkCBfX1+98sor+vnnn/XZZ59pxowZdrfz4IMPat68eZo/f7527dqlqVOn6qeffrKrjZKSEo0ePVrbtm3T8uXLNXXqVI0dO1ZeXl4KCgrSvffeq0ceeUQrVqzQtm3bNGbMGBUVFZn3KUkVD6n973//q0aNGpmVo/v376/333/fnBWSHPf9rCmnh6GCggJlZGQoNjZWPXr0kI+Pj1JSUsz9O3fu1P79++1e6+gyznrgqhXltQEAAOrUP//5T11++eUaOnSoBg4cqMsuu0w9evQw98+fP1933nmnHn74YbVv317Dhg3T999/b84k1URkZKQWLFigxYsXq2PHjpo5c6ZNeerquuWWWzR58mQ9+uij6tGjh3755Rfde++9drUxYMAAnXfeeebStmuuuUbTpk0z98+cOVM33HCD7rjjDnXv3l179uzRf//7XzVu3Ng85vLLL1d5eblN8Onfv7/KysrM+4WsHPH9rCmLYdhZe9BOEyZM0NChQ9WiRQsdOHBAU6dO1ebNm7Vt2zZFRkbq3nvv1fLly7VgwQKFhobq/vvvlyR9++231T5Hfn6+wsLClJeX5/xZog+GSzuXS399Uep517mPr613hkk/r5KGvS51He748wEAAJzD8ePHtXfvXrVq1Ur+/g6uros6NXLkSOXm5mrp0qWu7ordzvZzZ082cPg9Q7/99puGDx+uw4cPKzIyUpdddpnWrl2ryMiKe2xefPFFeXl56YYbblBxcbESExPt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wak6tm/fruuuu+6Mz58ehrZs2aI1a9bo6aefNreVlZXp+PHjKioqMh9C2rlzZ3N/dHS0JOnCCy+02Xb8+HHl5+crNDRUBQUFmjZtmpYtW6bMzEydOHFCx44d0/79+236c3q7FotFMTExysnJMfvfuXNn+fv71+j6N2/erMsvv9wMQs5iVxi65JJL9Oabb2rXrl1q166dtmzZom+++UazZs0662fy8vJksVjOeXPa7t27FRcXJ39/f/Xp00fJyclVhicAAAA4VkCjAK27bZ3Lzu0sBQUFGjp0aKWzOLGxsdq6daskadmyZWrWrJnNfj8/P6f0Uaro5/Tp03X99defse/0EHJ6oLA+mLSybeXl5ZKkCRMmaOXKlXr++efVtm1bBQQE6MYbb1RJSYnNOf4cVCwWi9lGbQUEOG+8T2dXGJo4caLy8/N1/vnny9vbW2VlZXr66ad1++23V3r88ePH9dhjj2n48OEKDQ09a7u9e/fWggUL1L59e2VmZmr69Om6/PLLtXXrVoWEhJxxfHFxsYqLi833+fn59lwGAAAAqsFisVRrqZqr+fr6qqysrMaf7969u/7zn/+oZcuWld6q0bFjR/n5+Wn//v3q169fpW106NBBn332mc22tWvXVrsPHTp00Lp1tsHzz5/v3r27du7cqbZt21a73epYs2aNRo4cac5MFRQU2F38oUOHDnr33Xd1/PhxM5jZc/2dO3fW22+/rdLSUqfODtlVTe6jjz7S+++/r4ULF2rjxo16++239fzzz+vtt98+49jS0lLdfPPNMgxDc+fOrbLdIUOG6KabblLnzp2VmJio5cuXKzc3Vx999FGlxycnJyssLMx8xcfH23MZAAAAaEBatmypdevWad++fTp06JDdsxVJSUn6448/NHz4cH3//ffKyMjQf//7X40aNUplZWUKCQnRhAkT9NBDD+ntt99WRkaGNm7cqFdeecX8Pfiee+7R7t279cgjj2jnzp1auHChXc8weuCBB7RixQo9//zz2r17t1599VWbJXKSNGXKFL3zzjuaPn26fvrpJ23fvl2LFi3SE088Ydf1/tl5552nTz75RJs3b9aWLVt022232f09vO2222SxWDRmzBht27ZNy5cv1/PPP1/tz48dO1b5+fm69dZbtX79eu3evVvvvvuudu7cae/l2MWuMPTII49o4sSJuvXWW3XhhRfqjjvu0EMPPaTk5GSb46xB6JdfftHKlSurnBWqTHh4uNq1a6c9e/ZUun/SpEnKy8szX7/++qtd7QMAAKDhmDBhgry9vdWxY0dFRkaeca/LucTFxWnNmjUqKyvToEGDdOGFF2rcuHEKDw+Xl1fFr8szZszQ5MmTlZycrA4dOmjw4MFatmyZWrVqJUlKSEjQf/7zHy1dulRdunTR66+/blOQ4Vwuvvhi/etf/9JLL72kLl266Msvvzwj5CQmJuqLL77Ql19+qV69euniiy/Wiy++qBYtWth1vX82a9YsNW7cWJdccomGDh2qxMREde/e3a42goOD9fnnn+vHH39Ut27d9Pjjj1e7eIQkNWnSRF9//bUKCgrUr18/9ejRQ//6178cPktkOVmCr1qaNGmip556yqYqRHJysubPn69du3ZJOhWEdu/erVWrVikyMtLuThUUFCghIUHTpk3TAw88cM7j8/PzFRYWpry8PLuDFwAAACpub9i7d69atWplc/8J4K7O9jNrTzawa2Zo6NChevrpp7Vs2TLt27dPS5Ys0axZs8z1haWlpbrxxhu1fv16vf/++yorK1NWVpaysrJsbsAaMGCAXn31VfP9hAkTlJaWpn379unbb7/VddddJ29vbw0fPtye7gEAAABAtdkVhl555RXdeOONuu+++9ShQwdNmDBBf//73zVjxgxJ0u+//67PPvtMv/32m7p27arY2Fjz9e2335rtZGRk2DzR97ffftPw4cPVvn173XzzzWrSpInWrl1bo1klAAAAeK577rlHwcHBlb7uuecel/VryJAhZ+2XPcvp6it3HRe7lsm5K5bJAQAA1E5DWSaXk5Nz1krDoaGhioqKcnKPKvz+++86duxYpfsiIiIUERHh5B45lyPGpS6WydlVWhsAAABwZ1FRUS4LPFX58/OJPI27jotdy+QAAADQsDWARUPwEHXxs0oYAgAAgFnCuKioyMU9AarH+rNam/LbLJMDAACAvL29FR4erpycHElSYGCgLBaLi3sFnMkwDBUVFSknJ0fh4eHy9vaucVuEIQAAAEiSYmJiJMkMRIA7Cw8PN39ma4owBAAAAEmSxWJRbGysoqKiVFpa6uruAGfl4+NTqxkhK8IQAAAAbHh7e9fJL5qAu6OAAgAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADw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+uKLL7R69epzlrg7Fz8/P/n5+dVRzwAAABouwzCUlZWl3NxcV3cFqFPh4eGKiYmp1XNGHR6GDMPQ/fffryVLlig1NVWtWrVy9CkBAABwkjUIRUVFKTAwkAfUo94zDENFRUXKycmRJMXGxta4LYeHoaSkJC1cuFCffvqpQkJClJWVJUkKCwtTQECApIq/pFlZWdqzZ48k6ccff1RISIgSEhJqVWgBAADAk5WVlZlBqEmTJq7uDlBnrDkiJydHUVFRNV4y5/ACCnPnzlVeXp769++v2NhY8/Xhhx+ax7z++uvq1q2bxowZI0nq27evunXrps8++8zR3QMAAGiwrPcIBQYGurgnQN2z/lzX5l44pyyTO5dp06Zp2rRpju4KAACAR2JpHBqiuvi5dmppbQAAAABwF4QhAAAAwE31799f48aNc3U3amzatGnq2rWrq7txVoQhAAAAuB1nhIDU1FRZLBbKjnswwhAAAAAaFMMwdOLECaeekwfa1k+EIQAAALiVkSNHKi0tTS+99JIsFossFov27dt31uOtMzz/93//px49esjPz0/ffPONysvLlZycrFatWikgIEBdunTRxx9/LEnat2+frrjiCklS48aNZbFYNHLkSElSy5YtNXv2bJtzdO3a1abgl8Vi0dy5c3XNNdcoKChITz/9tLkk7N1331XLli0VFhamW2+9VUePHq3WdRcWFurOO+9UcHCwYmNj9cILL5xxTHFxsSZMmKBmzZopKChIvXv3Vmpqqrl/wYIFCg8P1xdffKH27dsrMDBQN954o4qKivT222+rZcuWaty4sR544AGVlZWZn3v33XfVs2dPhYSEKCYmRrfddpv5HJ/Tv8cpKSnq2bOnAgMDdckll2jnzp02/Zs5c6aio6MVEhKi0aNH6/jx49W6dqt58+apU6dO8vPzU2xsrMaOHWvX5+1FGAIAAPAQhmGovKjIJa/qVBi2eumll9SnTx+NGTNGmZmZyszMVHx8/Dk/N3HiRM2cOVPbt29X586dlZycrHfeeUevv/66fvrpJz300EP6f//v/yktLU3x8fH6z3/+I0nauXOnMjMz9dJLL9n1/Zw2bZquu+46/fjjj7rrrrskSRkZGVq6dKm++OILffHFF0pLS9PMmTOr1d4jjzyitLQ0ffrpp/ryyy+VmpqqjRs32hwzduxYpaena9GiRfrhhx90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KYqNjVVAQIAGDhyo3bt31/m11SdVjYMkpaen68orr1RQUJBCQ0PVt29fHTt2rMo2U1NT1b17d/n5+alt27ZasGCB3ef1NFV9PzIyMnTdddcpMjJSoaGhuvnmm5WdnX3ONhkH+6xevVpDhw5VXFycLBaLli5dau4rLS3VY489pgsvvFBBQUGKi4vTnXfeqQMHDpyzXcbBPlWNgySNHDlSFovF5jV48OBztss4VN+5xqCgoEBjx45V8+bNFRAQoI4dO+r1118/Z7s//PCDLr/8cvn7+ys+Pl7PPffcGcec699xT5KcnKxevXopJCREUVFRGjZsmHbu3GlzzJtvvqn+/fsrNDRUFotFubm51Wqbvw8udM7HssIjLFq0yPD19TXmzZtn/PTTT8aYMWOM8PBwIzs72zAMw3jjjTeMtLQ0Y+/evcaGDRuMoUOHGvHx8caJEyfO2uaaNWsMb29v47nnnjO2bdtmPPHEE4aPj4/x448/msfMnDnTCAsLM5YuXWps2bLFuOaaa4xWrVoZx44dc/g1u6NzjcO3335rhIaGGsnJycbWrVuNHTt2GB9++KFx/Pjxs7b5888/G4GBgcb48eONbdu2Ga+88orh7e1trFixotrn9TRVfT8KCgqM1q1bG9ddd53xww8/GD/88INx7bXXGr169TLKysrO2ibjYL/ly5cbjz/+uPHJJ58YkowlS5aY+3Jzc42BAwcaH374obFjxw4jPT3duOiii4wePXpU2SbjYL+qxsEwDGPEiBHG4MGDjczMTPP1xx9/VNkm42Cfc43BmDFjjDZt2hirVq0y9u7da7zxxhuGt7e38emnn561zby8PCM6Otq4/fbbja1btxoffPCBERAQYLzxxhvmMdX5d9yTJCYmGvPnzze2bt1qbN682fjLX/5iJCQkGAUFBeYxL774opGcnGwkJycbkowjR46cs13+PriW24ShV1991WjRooXh5+dnXHTRRca6devMfceOHTPuu+8+IyIiwggKCjKuv/56Iysr65xtfvTRR0b79u0NPz8/44ILLjCWLVtms7+8vNyYPHmyERMTY/j7+xsDBgwwdu3aVefXVh9cdNFFRlJSkvm+rKzMiIuLM5KTkys9fsuWLYYkY8+ePWdt8+abbzauvvpqm229e/c2/v73vxuGUfH9j4mJMf75z3+a+3Nzcw0/Pz/jgw8+qM3l1FvnGofevXsbTzzxhF1tPvroo0anTp1stt1yyy1GYmJitc/raar6fvz3v/81vLy8jLy8PHN/bm6uYbFYjJUrV561Tcahdir7BfDPvvvuO0OS8csvv5z1GMahds4Whq699lq72mEcaq6yMejUqZPx5JNP2mzr3r278fjjj5+1nddee81o3LixUVxcbG577LHHjPbt25vvz/XvuKfLyckxJBlpaWln7Fu1alW1wxB/H1zLLZbJffjhhxo/frymTp2qjRs3qkuXLkpMTFROTo4k6aGHHtLnn3+uxYsXKy0tTQcOHND1119fZZvffvuthg8frtGjR2vTpk0aNmyYhg0bpq1bt5rHPPfcc3r55Zf1+uuva926dQoKClJiYqKOHz/u0Ot1NyUlJdqwYYMGDhxobvPy8tLAgQOVnp5+xvGFhYWaP3++WrVqpfj4eHN7y5YtNW3aNPN9enq6TZuSlJiYaLa5d+9eZWVl2RwTFham3r17V3rehu5c45CTk6N169YpKipKl1xyiaKjo9WvXz998803Nu30799fI0eONN+faxzsHf+G7lzfj+LiYlksFptynf7+/vLy8rIZC8bB+fLy8mSxWBQeHm5uYxycIzU1VVFRUWrfvr3uvfdeHT582GY/4+BYl1xyiT777DP9/vvvMgxDq1at0q5duzRo0CDzmJEjR6p///7m+/T0dPXt21e+vr7mtsTERO3cuVNHjhwxj6lqnDxdXl6eJCkiIsKuz/H3wb24RRiaNWuWxowZo1GjRpnrXAMDAzVv3jzl5eXprbfe0qxZs3TllVeqR48emj9/vr799lutXbv2rG2+9NJLGjx4sB555BF16NBBM2bMUPfu3fXqq69KqrhXZfbs2XriiSd07bXXqnPnznrnnXd04MCBM9biNnSHDh1SWVmZoqOjbbZHR0crKyvLfP/aa68pODhYwcHB+r//+z+tXLnS5j+ibdq0UdOmTc33WVlZVbZp/fNc5/UU5xqHn3/+WZI0bdo0jRkzRitWrFD37t01YMAAm/usEhISFBsba74/2zjk5+fr2LFj1R5/T3Gu78fFF1+soKAgPfbYYyoqKlJhYaEmTJigsrIyZWZmmsczDs51/PhxPfbYYxo+fLjNA/YYB8cbPHiw3nnnHaWkpOjZZ59VWlqahgwZorKyMvMYxsGxXnnlFXXs2FHNmzeXr6+vBg8erDlz5qhv377mMbGxsUpISDDfn20MrPuqOoYxkMrLyzVu3DhdeumluuCCC+z6LH8f3EsjV3fAmnYnTZpkbjs97V500UUqLS21ScPnn3++EhISlJ6erosvvlhSxazEyJEjzZmJ9PR0jR8/3uZciYmJZtA516zErbfe6qArrr9uv/12XXXVVcrMzNTzzz+vm2++WWvWrJG/v78kKSUlxcU9bNjKy8slVRSzGDVqlCSpW7duSklJ0bx585ScnCxJeuedd1zWR08QGRmpxYsX695779XLL78sLy8vDR8+XN27d5eX16n/v8Q4OE9paaluvvlmGYahuXPn2uxjHBzv9H8vL7zwQnXu3Flt2rRRamqqBgwYIIlxcLRXXnlFa9eu1WeffaYWLVpo9erVSkpKUlxcnPl7jvXfCNSNpKQkbd269YzVGdXB3wf34vIwVFXa3bFjh7KysuTr62uz7MG6//Q0zKxEzTVt2lTe3t5nVMPKzs5WTEyM+T4sLExhYWE677zzdPHFF6tx48ZasmSJhg8fXmm7MTExVbZp/TM7O9vm/5BkZ2era9eudXFp9cq5xsH6PerYsaPN/g4dOmj//v1nbfds4xAaGqqAgAB5e3tXa/w9RXX+PgwaNEgZGRk6dOiQGjVqpPDwcMXExKh169ZnbZdxcAxrEPrll1/09ddf28wKVYZxcLzWrVuradOm2rNnjxmG/oxxqDvHjh3TP/7xDy1ZskRXX321JKlz587avHmznn/++TOWX1mdbQys+6o6xtPHYOzYsfriiy+0evVqNW/evNbt8ffBtdximVxdSElJ0dixY13djXrJ19dXPXr0sJnZKS8vV0pKivr06VPpZ4yK4hsqLi4+a7t9+vQ5Y7Zo5cqVZputWrVSTEyMzTH5+flat27dWc/bkJ1rHFq2bKm4uLgzynju2rVLLVq0OGu75xqHmox/Q2bP96Np06YKDw/X119/rZycHF1zzTVnbZdxqHvWILR792599dVXatKkyTk/wzg43m+//abDhw/b/E+uP2Mc6k5paalKS0ttZqYlydvb21xRUJk+ffpo9erVKi0tNbetXLlS7du3V+PGjc1jqhonT2MYhsaOHaslS5bo66+/VqtWreqkXf4+uJgrqzcYhmEUFxcb3t7eZ1RGufPOO41rrrnGSElJqbQaR0JCgjFr1qyzthsfH2+8+OKLNtumTJlidO7c2TAMw8jIyDAkGZs2bbI5pm/fvsYDDzxQ08uptxYtWmT4+fkZCxYsMLZt22bcfffdRnh4uJGVlWVkZGQYzzzzjLF+/Xrjl19+MdasWWMMHTrUiIiIsCnpeOWVVxqvvPKK+X7NmjVGo0aNjOeff97Yvn27MXXq1EpLa4eHhxuffvqpWaLY00trn20cDKOiZGdoaKixePFiY/fu3cYTTzxh+Pv721T1u+OOO4yJEyea760lOx955BFj+/btxpw5cyot2VnVeT3Nub4f8+bNM9LT0409e/YY7777rhEREWGMHz/epg3GofaOHj1qbNq0ydi0aZMhyZg1a5axadMm45dffjFKSkqMa665xmjevLmxefNmm7LOp1fHYhxqr6pxOHr0qDFhwgQjPT3d2Lt3r/HVV18Z3bt3N8477zybkv+MQ+1UNQaGYRj9+vUzOnXqZKxatcr4+eefjfnz5xv+/v7Ga6+9ZrYxceJE44477jDf5+bmGtHR0cYdd9xhbN261Vi0aJERGBh4Rmntc/077knuvfdeIywszEhNTbX5b05RUZF5TGZmprFp0ybjX//6lyHJWL16tbFp0ybj8OHD5jH8fXAvLg9DhlFRLnDs2LHm+7KyMqNZs2ZGcnKykZuba/j4+Bgff/yxuX/Hjh2GJCM9Pf2sbd58883GX//6V5ttffr0OaOs8/PPP2/uz8vL8+iyzq+88oqRkJBg+Pr6GhdddJGxdu1awzAM4/fffzeGDBliREVFGT4+Pkbz5s2N2267zdixY4fN51u0aGFMnTrVZttHH31ktGvXzvD19TU6dep01vLm0dHRhp+fnzFgwABj586dDr1Od3e2cbBKTk42mjdvbgQGBhp9+vQx/ve//9ns79evnzFixAibbatWrTK6du1q+Pr6Gq1btzbmz59v93k9TVXfj8cee8yIjo42fHx8jPPOO8944YUXjPLycpvPMw61Zy1N++fXiBEjjL1791a6T5KxatUqsw3GofaqGoeioiJj0KBBRmRkpOHj42O0aNHCGDNmzBm/oDEOtVPVGBhGxS/gI0eONOLi4gx/f3+jffv2Z/x3acSIEUa/fv1s2t2yZYtx2WWXGX5+fkazZs2MmTNnnnHuc/077knO9t+c0392p06des5j+PvgXiyGYRgOnHiqlg8//FAjRozQG2+8oYsuukizZ8/WRx99pB07dig6Olr33nuvli9frgULFig0NFT333+/pIry2VYDBgzQddddZy6V+/bbb9WvXz/NnDlTV199tRYtWqRnnnlGGzduNKt+PPvss5o5c6befvtttWrVSpMnT9YPP/ygbdu2mUUBAAAAADRMLi+gIEm33HKLDh48qClTpigrK0tdu3bVihUrzOIGL774ory8vHTDDTeouLhYiYmJeu2112zasN7MbHXJJZdo4cKFeuKJJ/SPf/xD5513npYuXWpT/vDRRx9VYWGh7r77buXm5uqyyy7TihUrCEIAAACAB3CLmSEAAAAAcLYGU00OAAAAAOxBGAIAAADgkQhDAAAAADwSYQgAAACARyIMAQAAAPBILg1Dc+bMUcuWLeXv76/evXvru+++M/e9+eab6t+/v0JDQ2WxWJSbm1utNhcsWKDw8HDHdBgAAABAg+GyMPThhx9q/Pjxmjp1qjZu3KguXbooMTFROTk5kqSioiINHjxY//jHP1zVRQAAAAANmMvC0KxZszRmzBiNGjVKHTt21Ouvv67AwEDNmzdPkjRu3DhNnDhRF198ca3Ok5GRoWuvvVbR0dEKDg5Wr1699NVXX9kc07JlSz3zzDO66667FBISooSEBL355pu1Oi8AAAAA9+aSMFRSUqINGzZo4MCBpzri5aWBAwcqPT29Ts9VUFCgv/zlL0pJSdGmTZs0ePBgDR06VPv377c57oUXXlDPnj21adMm3Xfffbr33nu1c+fOOu0LAAAAAPfhkjB06NAhlZWVKTo62mZ7dHS0srKy6vRcXbp00d///nddcMEFOu+88zRjxgy1adNGn332mc1xf/nLX3Tfffepbdu2euyxx9S0aVOtWrWqTvsCAAAAwH3U22pyQ4YMUXBwsIKDg9WpU6ezHldQUKAJEyaoQ4cOCg8PV3BwsLZv337GzFDnzp3Nry0Wi2JiYsz7lwAAAAA0PI1ccdKmTZvK29tb2dnZNtuzs7MVExNTrTb+/e9/69ixY5IkHx+fsx43YcIErVy5Us8//7zatm2rgIAA3XjjjSopKbE57s9tWCwWlZeXV6svAAAAAOofl4QhX19f9ejRQykpKRo2bJgkqby8XCkpKRo7dmy12mjWrFm1jluzZo1Gjhyp6667TlLFTNG+fftq0m0AAAAADYhLwpAkjR8/XiNGjFDPnj110UUXafbs2SosLNSoUaMkSVlZWcrKytKePXskST/++KNZ6S0iIqLa5znvvPP0ySefaOjQobJYLJo8eTIzPgAAAABcF4ZuueUWHTx4UFOmTFFWVpa6du2qFStWmEUVXn/9dU2fPt08vm/fvpKk+fPna+TIkWdtt7y8XI0anbqsWbNm6a677tIll1yipk2b6rHHHlN+fr5jLgoAAABAvWExDMNwdSfq0syZM/Xee+9p69atru4KAAAAADfmspmhulZUVKQdO3Zo/vz5GjJkiKu7AwAAAMDN1dvS2n/25ptvauDAgerSpYumTJni6u4AAAAAcHMNbpkcAAAAAFRHg5kZAgAAAAB7EIYAAAAAeCS3CUPJycnq1auXQkJCFBUVpWHDhmnnzp02xxw/flxJSUlq0qSJgoODdcMNNyg7O9vcv2XLFg0fPlzx8fEKCAhQhw4d9NJLL51xrtTUVHXv3l1+fn5q27atFixY4OjLAwAAAOBm3CYMpaWlKSkpSWvXrtXKlStVWlqqQYMGqbCw0DzmoYce0ueff67FixcrLS1NBw4c0PXXX2/u37Bhg6KiovTee+/pp59+0uOPP65Jkybp1VdfNY/Zu3evrr76al1xxRXavHmzxo0bp7/97W/673//69TrBQAAAOBabltA4eDBg4qKilJaWpr69u2rvLw8RUZGauHChbrxxhslSTt27FCHDh2Unp6uiy++uNJ2kpKStH37dn399deSpMcee0zLli2zeQ7RrbfeqtzcXK1YscLxFwYAAADALbjNzNCf5eXlSZIiIiIkVcz6lJaWauDAgeYx559/vhISEpSenl5lO9Y2JCk9Pd2mDUlKTEyssg0AAAAADY9bPnS1vLxc48aN06WXXqoLLrhAkpSVlSVfX1+Fh4fbHBsdHa2srKxK2/n222/14YcfatmyZea2rKwsRUdHn9FGfn6+jh07poCAgLq9GAAAAABuyS3DUFJSkrZu3apvvvmmxm1s3bpV1157raZOnapBgwbVYe8AAAAANARut0xu7Nix+uKLL7Rq1So1b97c3B4TE6OSkhLl5ubaHJ+dna2YmBibbdu2bdOAAQN0991364knnrDZFxMTY1OBztpGaGgos0IAAACAB3GbMGQYhsaOHaslS5bo66+/VqtWrWz29+jRQz4+PkpJSTG37dy5U/v371efPn3MbT/99JOuuOIKjRgxQk8//fQZ5+nTp49NG5K0cuVKmzYAAAAANHxuU03uvvvu08KFC/Xpp5+qffv25vawsDBzxubee+/V8uXLtWDBAoWGhur++++XVHFvkFSxNO7KK69UYmKi/vnPf5pteHt7KzIyUlJFae0LLrhASUlJuuuuu/T111/rgQce0LJly5SYmOisywUAAADgYm4ThiwWS6Xb58+fr5EjR0qqeOjqww8/rA8++EDFxcVKTEzUa6+9Zi6TmzZtmqZPn35GGy1atNC+ffvM96mpqXrooYe0bds2NW/eXJMnTzbPAQAAAMAzuE0YAgAAAABncpt7hgAAAADAmQhDAAAAADwSYQgAAACARyIMAQAAAPBIhCEAAAAAHokwBAAAAMAjEYYAAAAAeCTCEAAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADwSP8f6iwC3DOSfS8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } ], - "execution_count": null, - "outputs": [] + "source": [ + "df1.plot(subplots=True, figsize=(10, 6))" + ] }, { "cell_type": "code", + "execution_count": 4, "metadata": {}, + "outputs": [], "source": [ "from pandaprosumer.create import create_empty_prosumer_container, create_period\n", "from pandaprosumer.create_controlled import (\n", @@ -117,13 +388,24 @@ "hs_idx = create_controlled_heat_storage(prosumer1, q_capacity_kwh=100.0, name='tank_power_only',\n", " period=period_id, level=1, order=0)\n", "hd_idx = create_controlled_heat_demand(prosumer1, period=period_id, level=1, order=1, name='heat_consumer')" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": 5, "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from pandaprosumer.mapping import GenericMapping\n", "\n", @@ -137,26 +419,45 @@ "# Heat storage -> Heat demand: delivered power as q_received_kw\n", "GenericMapping(prosumer1, initiator_id=hs_idx, initiator_column='q_delivered_kw',\n", " responder_id=hd_idx, responder_column='q_received_kw', order=0)" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": 6, "metadata": {}, + "outputs": [], "source": [ "from pandaprosumer.run_time_series import run_timeseries\n", "\n", "run_timeseries(prosumer1, period_id, verbose=False)" - ], + ] + }, + { + "cell_type": "code", "execution_count": null, - "outputs": [] + "metadata": {}, + "outputs": [], + "source": [ + "res1 = prosumer1.time_series.copy()" + ] }, { "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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PMeqHE/K0nl8OZVJNxERERERUX1h9jndI0aMQHp6OubNm4eUlBR06tQJu3fv1i6uduvWLZ1u+3Xr1kGlUuH555/XaSc6Ohrz58+HjY0Nzp49i88//xzZ2dkIDAzE448/joULF1Y4hNzcjiVlAgBc5bZQFJXgUmqemSMiIiIiIiIiQzH7Pt2WyJT7dA9ZdQgX7yowoU8oPjucBH9XOX6fU37eOREREREREVkOfffpNvvw8oYsp6AYiSlle4KPDm8CAEhRFCGnoNicYREREREREZGBMOk2oxM370EIIMzbCWE+zmjk7gAAuJzGed1ERERERET1AZNuMzqWdA8A0D3EEwDQ0t8FAFcwJyIiIiIiqi+YdJvRsRtlSXeP0LKku4VfWdLNFcyJiIiIiIjqBybdZlKgKsGft3MAPEi6W/o7AwAS2dNNRERERERULzDpNpPTt7JRohYIdJOjsUfZXO6He7q5qDwREREREZH1Y9JtJkeTHgwtl0gkAICmPs6QSoDsgmKk5yrNGR4REREREREZAJNuMzmWlAkA6H5/aDkAyO1sEOLtBAC4xHndREREREREVo9JtxmoStQ4fSsbABD+UNINAC39uII5ERERERFRfcGk2wz+TM6GskQNTyd7NPVx1jnGFcyJiIiIiIjqDybdZqCdzx3yYD63RivNXt2peSaPi4iIiIiIiAyLSbcZHLufdHf/29ByAGhxP+m+kpoLtZormBMREREREVkzJt0mVqoWOHkjC0D5+dwAEOzpCHtbKQpUpbidVWjq8IiIiIiIiMiAmHSb2MW7CuQqS+Ass0XrANdyx21tpGh2f543VzAnIiIiIiKybky6TUwztLxbiAdspJIK67T052JqRERERERE9QGTbhPTzucOKT+0XKMFtw0jIiIiIiKqF5h0m5AQAsdvlCXdFc3n1mjpXza8nD3dRERERERE1o1JtwldS89HZr4KMlsp2jd2q7Sepqf7WnoeikvVpgqPiIiIiIiIDIxJtwlphpZ3buIOma1NpfUauTvAWWaL4lKBGxn5pgqPiIiIiIiIDIxJtwkdS8oEAPSoYj43AEgkErTw4wrmRERERERE1o5Jtwkdv78/d49Qr2rralcw52JqREREREREVssiku61a9ciJCQEcrkc4eHhOHbsWKV1N27ciL59+8LDwwMeHh6IiIgoV18IgXnz5iEgIAAO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x6tXrwZQtie65joAdFZOB6DtmX7yySe1ZaGhoWjUqBFWrFiB4uJi9O7dG0BZMn7t2jV8/fXXeOSRR2Br+6C/oa6vGRERkT7Y001ERKSHX3/9FYmJiSgpKUFqair279+PvXv3Ijg4GD/88APkcrm27tq1a9GnTx+0b98eEydORFhYGFJTU5GQkIDbt2/jzJkzNb7+iBEjsHr1akRHR6N9+/Y6Pb9A2dZlO3bswGuvvYa4uDj07t0bpaWlSExMxI4dO7Bnzx5069atymssXrwYcXFxCA8Px8SJE9GmTRvcu3cPp06dwr59+3Dv3j0AwMSJE7FmzRqMGTMGJ0+eREBAAL788ks4OjrW6DklJSVh6NChGDx4MBISEvCf//wHL774onbYfMeOHTF27Fhs2LAB2dnZ6N+/P44dO4bPP/8cw4YNw6OPPqrTXt++fbFt2za0b98eHh4eAIAuXbrAyckJly9f1pnPbajXjIiIqDpMuomIiPQwb948AIC9vT08PT3Rvn17rFy5EuPHj4eLi4tO3TZt2uDEiRNYsGABtmzZgszMTPj6+qJz587admqqV69eCAoKwl9//VXhHtJSqRS7du3CihUr8MUXX+C7776Do6MjwsLC8NZbb6FFixbVXsPPzw/Hjh3D+++/j2+//RaffPIJvLy80LZtW3z44Yfaeo6OjoiNjcUbb7yB1atXw9HREaNHj8aQIUMwePBgvZ/T9u3bMW/ePLzzzjuwtbXF1KlTsXTpUp06//d//4ewsDBs2bIF3333Hfz9/TF79mxER0eXa0+TdPfp00dbZmtri549e2Lfvn0687kN9ZoRERFVRyKEEOYOgoiIiBqO+fPnY8GCBUhPT4e3t7e5wyEiIjIqzukmIiIiIiIiMhIm3URERERERERGwqSbiIiIiIiIyEg4p5uIiIiIiIjISNjTTURERERERGQkTLqJiIiIiIiIjIT7dFdArVbjzp07cHFxgUQiMXc4REREREREZGGEEMjNzUVgYCCk0sr7s5l0V+DOnTsICgoydxhERERERERk4f766y80bty40uNMuivg4uICALh58ybc3d3NGwwRERERERFZnOzsbAQHB2vzx8ow6a6AZki5q6srXF1dzRwNERERERERWRq1Wg0A1U5J5kJqREREREREREZilUl3cnIyXnrpJXh5ecHBwQHt27fHiRMntMeFEJg3bx4CAgLg4OCAiIgIXLlyxYwRExERERERUUNkdUl3VlYWevfuDTs7O/z666+4cOECPvroI3h4eGjrLFmyBB9//DHWr1+Po0ePwsnJCZGRkSgqKjJj5ERERERERNTQSIQQwtxB1MQ777yDI0eO4NChQxUeF0IgMDAQ//rXvzB9+nQAQE5ODvz8/LBlyxaMHDmy2msoFAq4ubkhKyuLC6kRERERERFROdnZ2fDw8EBOTk6Va4FZ3UJqP/zwAyIjI/GPf/wDBw4cQKNGjfD6669j4sSJAICkpCSkpKQgIiJCe46bmxvCw8ORkJBQYdKtVCqhVCq1jxUKBYCyifGayfEW4dzXkMQuAEpLqq8b2g9i2DpAYnWDGYiIiIiIiCyevrmi1SXd169fx7p16xAVFYU5c+bg+PHjePPNN2Fvb4+xY8ciJSUFAODn56dznp+fn/bY38XExGDBggXlytPT06FSqQz/JGrJ49gWyHJu61f5zx3IcwxCfudJxg2KiIiIiIioAcrJydGrntUl3Wq1Gt26dcMHH3wAAOjcuTPOnTuH9evXY+zYsbVqc/bs2YiKitI+VigUCAoKgo+Pj0UNL5eoCwEA6sjFQHCvyiveOATp/+bC+fgqOLUbAjTqaqIIiYiIiIiIGgZ7e3u96lld0h0QEIA2bdrolLVu3RrffPMNAMDf3x8AkJqaioCAAG2d1NRUdOrUqcI2ZTIZZDJZuXKpVAqp1IKGZyvLhr1LAzoAgR0rrxfQAUg+Acn57yD59hXg1UOAnPuNExERERERGYq+uaIFZZT66d27Ny5duqRTdvnyZQQHBwMAQkND4e/vj9jYWO1xhUKBo0ePomfPniaN1eCK7g9fqC6BlkiAp1YCbk2ArBvAL9ONHRkRERERERFVwOqS7rfffhu///47PvjgA1y9ehVbt27Fhg0bMGXKFACARCLBtGnTsGjRIvzwww/4888/MWbMGAQGBmLYsGHmDb6uisp6uiHTo9fawR0YvrFsIbWz24Ez24waGhEREREREZVndUl39+7d8d133+Grr75Cu3btsHDhQqxcuRKjR4/W1pk5cybeeOMNTJo0Cd27d0deXh52794NuVxuxsjrqLgIKL2/wrrcTb9zmjwCDJhd9v3P/wIyrxknNiIiIiIiIqqQ1e3TbQoWuU93XhqwrHnZ9/PuAVIb/c5TlwKfPw3cPAIEdgH+uQew1W/CPxEREREREVVM3326ra6nu8F6eGi5vgk3UFb3uQ2A3B24cwqI+7dRwiMiIiIiIqLymHRbC80iavrM5/47t8bA0NVl3x9ZCVyLM1hYREREREREVDkm3dZCqVm5XM/53H/XZijQdVzZ99+9CuRnGCQsIiIiIiIiqhyTbmuh73ZhVYmMAbxbAnmpwK7XAU7nJyIiIiIiMiom3dZCM6e7tj3dAGDvCDy/CbCRAVf2AMc2GCY2IiIiIiIiqhCTbmtRlzndD/NvBzy+sOz7/70LpJ6vW3tERERERERUKSbd1kKp6emuY9INAD0mAc0igFIVcPo/dW+PiIiIiIiIKsSk21oYYni5hkQCtBhc9n3Wzbq3R0RERERERBVi0m0tDDW8XMMtqOzfnL8M0x4RERERERGVw6TbWigN2NMNlO3dDTDpJiIiIiIiMiIm3dbCEFuGPcz9fk93YRagzDNMm0RERERERKSDSbe1MOScbk07svttsbebiIiIiIjIKJh0WwvtnG4DJd3Ag97ubCbdRERERERExsCk21ooNcPLDZh0axdTu2W4NomIiIiIiEiLSbc1UKsfGl5uoDndAHu6iYiIiIiIjIxJtzVQ5QEQZd8basswgNuGERERERERGRmTbmug2S5MagfYORiuXU1Pd85tw7VJREREREREWky6rcHD24VJJIZr161J2b8cXk5ERERERGQUTLqtgaG3C9Nwa1z2b+5doERl2LaJiIiIiIiISbdV0G4XZsD53ADg5APYyAAIQJFs2LaJiIiIiIiISbdVUBqpp1sqfdDbzcXUiIiIiIiIDI5JtzV4eE63oXHbMCIiIiIiIqNh0m0NtMPLDdzTDXDbMCIiIiIiIiNi0m0NtD3dRki63bmCORERERERkbEw6bYG2jndRhhezp5uIiIiIiIio2HSbQ2MtWUY8GBON5NuIiIiIiIig2PSbQ2MtWUY8FBP921ArTZ8+0RERERERA0Yk25rYKwtwwDANRCQSIFSFZCfZvj2iYiIiIiIGjAm3dbAmFuG2dgBLgFl33MxNSIiIiIiIoNi0m0NjDmnG3hoiPkt47RPRERERETUQDHptgbGnNMNPFhMjT3dREREREREBsWk29KVqICSwrLvjd7TzaSbiIiIiIjIkJh0WzrNImqA8Xu6c24bp30iIiIiIqIGikm3pdMMLbdzAmxsjXMNtyZl/3J4ORERERERkUEx6bZ0xtwuTMOdw8uJiIiIiIiMwUhdp7ouXryIbdu24dChQ7h58yYKCgrg4+ODzp07IzIyEsOHD4dMJjNFKNbHmNuFabg1LvtXqQAKswEHd+Ndi4iIiIiIqAExak/3qVOnEBERgc6dO+Pw4cMIDw/HtGnTsHDhQrz00ksQQmDu3LkIDAzEhx9+CKVSacxwrJOxtwsDAHsnwNGr7Hv2dhMRERERERmMUXu6hw8fjunTp+Prr7+Gu7t7pfUSEhKwatUqfPTRR5gzZ44xQ7I+xt4uTMOtMVCQWTav27+9ca9FRERERETUQBg16b58+TLs7OyqrdezZ0/07NkTxcXFxgzHOpliTjdQtm3Y3TPs6SYiIiIiIjIgow4vt7OzQ1JSUo3q09+YYk43ALhrVjC/ZdzrEBERERERNSBGX728adOmCA0NxT//+U98+eWXuH2be0HXiGZOt9GHl3OvbiIiIiIiIkMz+url+/fvR3x8POLj4/HVV19BpVIhLCwMAwcOxKOPPopHH30Ufn5+xg7Deml7uo08vJzbhhERERERERmc0Xu6BwwYgPnz5yM+Ph5ZWVnYu3cvRo0ahYsXL2LcuHEIDAxE27Zta9X24sWLIZFIMG3aNG1ZUVERpkyZAi8vLzg7O2P48OFITU010LMxA+2cbhP1dGcz6SYiIiIiIjIUoyfdD5PL5Rg4cCDeffddLFiwAG+++SacnZ2RmJhY47aOHz+OTz/9FB06dNApf/vtt/Hjjz9i586dOHDgAO7cuYPnnnvOUE/B9LQ93e7GvY5mTnd+GlBcZNxrERERERERNRAmSbpVKhUOHjyIBQsW4NFHH4W7uztee+01ZGVlYc2aNTVabA0A8vLyMHr0aGzcuBEeHh7a8pycHHz22WdYvnw5Bg4ciK5du2Lz5s347bff8Pvvvxv6aZmGqbYMc/AA7JzKvue8biIiIiIiIoMw+pzugQMH4ujRowgNDUX//v3x6quvYuvWrQgICKh1m1OmTMGTTz6JiIgILFq0SFt+8uRJFBcXIyIiQlvWqlUrNGnSBAkJCXjkkUcqbE+pVEKpVGofKxRlQ7rVajXUanWt4zQEiVIBCQC1zAUwciwS9yBI0hOhzroJeIYZ9VpERERERETWTN9c0ehJ96FDhxAQEICBAwdiwIAB6N+/P7y8vGrd3rZt23Dq1CkcP3683LGUlBTY29vD3d1dp9zPzw8pKSmVthkTE4MFCxaUK09PT4dKpap1rIbgW5ANCYB7+SUoSUsz6rU85L6QIRG5ty+g0KV28+yJiIiIiIgagpycHL3qGT3pzs7OxqFDhxAfH48PP/wQo0aNQosWLdC/f39tEu7j46NXW3/99Rfeeust7N27F3K53GAxzp49G1FRUdrHCoUCQUFB8PHxKZfAm5QQkKhyAQCegaGAq69RLyfxDQP+OghXdQ5cfI17LSIiIiIiImtmb2+vVz2jJ91OTk4YPHgwBg8eDADIzc3F4cOHERcXhyVLlmD06NFo3rw5zp07V21bJ0+eRFpaGrp06aItKy0txcGDB7FmzRrs2bMHKpUK2dnZOslyamoq/P39K21XJpNBJpOVK5dKpZBKTbrWnC5lHiBKy2JxcAeMHcv9xdQkituQmPN5ExERERERWTh9c0WjJ91/5+TkBE9PT3h6esLDwwO2tra4ePGiXucOGjQIf/75p07Z+PHj0apVK8yaNQtBQUGws7NDbGwshg8fDgC4dOkSbt26hZ49exr8uRidZrswiQ1g72T867ndX8Gc24YREREREREZhNGTbrVajRMnTiA+Ph5xcXE4cuQI8vPz0ahRIzz66KNYu3YtHn30Ub3acnFxQbt27XTKnJyc4OXlpS2fMGECoqKi4OnpCVdXV7zxxhvo2bNnpYuoWbSih/bolkiMfz33+3t159wy/rWIiIiIiIgaAKMn3e7u7sjPz4e/vz8effRRrFixAgMGDEDTpk2Ncr0VK1ZAKpVi+PDhUCqViIyMxCeffGKUaxmdqbYL03C7n3Qr7gDqUkBqY5rrEhERERER1VNGT7qXLl2KRx99FC1atDBK+/Hx8TqP5XI51q5di7Vr1xrleialGV4udzPN9Vz8AaktoC4Bcu8Cbo1Nc10iIiIiIqJ6yuirZb366qto0aIF4uLiKq1TLxJkY9D0dJsq6ZbaAK6Nyr7nvG4iIiIiIqI6M9kS1c899xxOnjxZrnzVqlWYPXu2qcKwLqZOugHtCubIYdJNRERERERUVyZLupcuXYohQ4YgMTFRW/bRRx9h3rx5+Pnnn00VhnUx9Zxu4MG8bibdREREREREdWayLcNeeeUV3Lt3DxERETh8+DC2b9+ODz74AL/88gt69+5tqjCsi6nndAMP5nFzeDkREREREVGdmXSf7pkzZyIzMxPdunVDaWkp9uzZY51beZmKdni5CXu63dnTTUREREREZChGTbo//vjjcmWNGjWCo6Mj+vXrh2PHjuHYsWMAgDfffNOYoVgnzT7d5hhezp5uIiIiIiKiOjNq0r1ixYoKy21sbHDkyBEcOXIEACCRSJh0V8Qcw8sfXkhNCEAiMd21iYiIiIiI6hmjJt1JSUnGbL7+M8fwcs2WYcUFQME9wMnLdNcmIiIiIiKqZ0y2ejnVQpEZerrt5ICzX9n3ObdMd10iIiIiIqJ6yKhJ9+LFi1FQUKBX3aNHj3LrsL8zx5ZhAOd1ExERERERGYhRk+4LFy4gODgYr7/+On799Vekp6drj5WUlODs2bP45JNP0KtXL4wYMQIuLi7GDMf6mGNON/DQCua3TXtdIiIiIiKiesaoc7q/+OILnDlzBmvWrMGLL74IhUIBGxsbyGQybQ94586d8corr2DcuHGQy+XGDMe6lJYAqryy702ddLtx2zAiIiIiIiJDMPo+3R07dsTGjRvx6aef4uzZs7h58yYKCwvh7e2NTp06wdvb29ghWCdNLzdgxuHlnNNNRERERERUF0ZPujWkUik6deqETp06meqS1k0zn9vWAbC1N+213dnTTUREREREZAhcvdxSaedzm7iXG+BCakRERERERAbCpNtSmWO7MA1NT3fhPUCVb/rrExERERER1RNMui2VubYLA8oSfdn9ZJ+93URERERERLXGpNtSmWu7MA3O6yYiIiIiIqozkyTdxcXFsLW1xblz50xxufpB09NtjjndALcNIyIiIiIiMgCTJN12dnZo0qQJSktLTXG5+sGcc7qBBz3dHF5ORERERERUayYbXj537lzMmTMH9+7dM9UlrZs553QD7OkmIiIiIiIyAJPt071mzRpcvXoVgYGBCA4OhpOTk87xU6dOmSoU66A08/By9nQTERERERHVmcmS7mHDhpnqUvWDdk63u3muz55uIiIiIiKiOjNZ0h0dHW2qS9UPmjnd5h5ennsXKC0GbOzMEwcREREREZEVM+mWYdnZ2fi///s/zJ49Wzu3+9SpU0hOTjZlGNbB3FuGOfkANjJAqAEF7w8REREREVFtmKyn++zZs4iIiICbmxtu3LiBiRMnwtPTE99++y1u3bqFL774wlShWAdzbxkmlQJujYF718rmdXuE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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "res1 = prosumer1.time_series.copy()\n", "# time_series rows are indexed by integer; use name column to get the storage results\n", "res1_idx = res1[res1['name'] == 'tank_power_only'].index[0]\n", "df_hs1 = res1.data_source.loc[res1_idx].df\n", @@ -172,9 +473,74 @@ "axes[1].grid(True, alpha=0.3)\n", "plt.tight_layout()\n", "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", + "2020-01-01 00:00:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:15:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:30:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:45:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 01:00:00+00:00 60.0 0.0 0.0 \n", + "... ... ... ... \n", + "2020-01-01 22:45:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:00:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:15:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:30:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:45:00+00:00 0.0 0.0 0.0 \n", + "\n", + " t_in_c t_out_c \n", + "2020-01-01 00:00:00+00:00 0.0 0.0 \n", + "2020-01-01 00:15:00+00:00 0.0 0.0 \n", + "2020-01-01 00:30:00+00:00 0.0 0.0 \n", + "2020-01-01 00:45:00+00:00 0.0 0.0 \n", + "2020-01-01 01:00:00+00:00 0.0 0.0 \n", + "... ... ... \n", + "2020-01-01 22:45:00+00:00 0.0 0.0 \n", + "2020-01-01 23:00:00+00:00 0.0 0.0 \n", + "2020-01-01 23:15:00+00:00 0.0 0.0 \n", + "2020-01-01 23:30:00+00:00 0.0 0.0 \n", + "2020-01-01 23:45:00+00:00 0.0 0.0 \n", + "\n", + "[96 rows x 5 columns]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmA1JREFUeJzs3Xd8U+X+B/BPkrZpmzYd0AltWcoU2chexbIFuRdRkIJcXKBARcZPBBGkiIpwkSFXBEGRJS4UkFFAFJElQwQVCkXoADrSQUeS5/dHyYHQlua0STP4vF+vvm7z5OScb3NSL99+n+f7KIQQAkRERERERERkdUp7B0BERERERETkqph0ExEREREREdkIk24iIiIiIiIiG2HSTURERERERGQjTLqJiIiIiIiIbIRJNxEREREREZGNMOkmIiIiIiIishEm3UREREREREQ2wqSbiIiIiIiIyEaYdBMRUZWYP38+GjRoAKPRaO9QrG7v3r1QKBTYu3evvUOpEgqFAm+88YZNr7F8+XJERkaioKDAptdxFqtXr4ZCocDFixftHYpNde3aFV27drV3GEREVsWkm4jIQZj+UW368vT0xIMPPohx48YhNTXVatfJy8vDG2+8IStBfOuttzBgwACEhIRUKOHS6XR4++23MWXKFCiV5v/XU1BQgMWLF6Njx44ICAiAh4cHwsPDMWDAAHz++ecwGAyyruVM3njjDSgUCiiVSly+fLnE8zqdDl5eXlAoFBg3bpwdIrSfkSNHorCwEB9++GGlzlOrVi3069ev1OdMfyzZvHlzpa5xLxX5fSMiItfiZu8AiIjI3JtvvonatWsjPz8fBw4cwLJly/D999/j9OnT8Pb2rvT58/LyMGvWLACwuKI0ffp0hIaGonnz5tixY4fsa3788cfQ6/V48sknzcavXbuG3r174+jRo4iJicH06dMRGBiIlJQU7Nq1C0899RT+/vtvvP7667KvWZU6d+6MmzdvwsPDo0KvV6vV+PzzzzF58mSz8S1btlgjPKu7efMm3Nxs+08IT09PxMbGYsGCBXjppZegUChsej1bqcjvGxERuRYm3UREDqZ3795o1aoVAOA///kPqlWrhgULFuDrr78ukbTKYTQaUVhYWKHXJiYmolatWrh+/TqCgoJkv37VqlUYMGAAPD09zcaffvppHD9+HF988QUef/xxs+em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iKhyZO3TDQAvvvgi4uLicPnyZbRs2RIajfn06KZNm1otOFelK9QBAHw8fKx2TlPSfSXnitXOSURERERERJUjO+keOnQoAODll1+WxhQKBYQQUCgUMBjYyKs8Uudyd+tVusM0YQCA5FxWuomIiIiIiByF7KQ7MTHRFnHcV2w5vfxqzlWrnZOIiIiIiIgqR3bSHRUVZYs47iu2SLpr+NQAAKTkpsBgNFilQRsRERERERFVToX26V67di06dOiA8PBwXLp0CQCwcOFCfP3111YNzlVlF1k/6Q7yCoKbwg16oce1m9esdl4iIiIiIiKqONlJ97JlyxAXF4c+ffogMzNTWsPt7++PhQsXWjs+l2SqdPu4W6+RmkqpQogmBADXdRMRERERETkK2Un34sWL8b///Q+vvfYaVKrbU5hbtWqFU6dOWTU4V2VKurUeWque19RMjR3MiYiIiIiIHIPspDsxMRHNmzcvMa5Wq5Gbm2uVoFyd1L3citPLAe7VTURERERE5GhkJ921a9fGb7/9VmJ8+/btaNiwoTVicnm22KcbuKODeS47mBMRERERETkC2d3L4+LiMHbsWOTn50MIgV9//RWff/454uPj8dFHH9kiRpdji0ZqABCu4bZhREREREREjkR20v2f//wHXl5emD59OvLy8vDUU08hPDwcixYtwtChQ20Ro8sxTS+39ppu7tVNRERERETkWGQn3QAwbNgwDBs2DHl5ecjJyUFwcLC143JptuheDtyudCfnJkMIAYVCYdXzExERERERkTyy13R//PHHSExMBAB4e3sz4ZbJYDQgp8g2jdRCNaFQQIECQwFu5N+w6rmJiIiIiIhIPtlJd3x8POrVq4fIyEg8/fTT+Oijj/D333/bIjaXlKu/3eHd2km3u8odQd5BANjBnIiIiIiIyBHITrr/+usvJCUlIT4+Ht7e3nj33XdRv3591KxZE8OHD7dFjC7FNLVcrVLDQ+Vh9fNLzdTYwZyIiIiIiMjuZCfdAFCjRg0MGzYM77//PhYtWoSnn34aqampWL9+vbXjczmmpNvaVW6TMJ8wAGymRkRERERE5AhkN1L74YcfsHfvXuzduxfHjx9Hw4YN0aVLF2zevBmdO3e2RYwuxdZJdw2fGgCYdBMRERERETkC2Ul3r169EBQUhFdeeQXff/89/P39bRCW65KSbncbVbo1xZXu5Fyu6SYiIiIiIrI32dPLFyxYgA4dOmD+/Plo3LgxnnrqKaxYsQJ//vmnLeJzObaudJv26r6Sc8Um5yciIiIiIiLLyU66J0yYgC1btuD69evYvn072rdvj+3bt6NJkyaoWbOmLWJ0KbbaLszElHSb9uomIiIiIiIi+5E9vRwAhBA4fvw49u7di4SEBBw4cABGoxFBQUHWjs/l6Ap1AAAfDx+bnN80vTy3KBe6Qh381H42uQ4RERERERGVT3alu3///qhWrRratGmDzz77DA8++CA++eQTXL9+HcePH7dFjC7F1tPLvdy8EOgZCIDruomIiIiIiOxNdqW7QYMGeO6559CpUyf4+bGKKldOYfH0cq2H1mbXCNeEIz0/HVdyrqBBYAObXYeIiIiIiIjuTXbS/c4779gijvuGqdLt426b6eVA8V7dp2+cRnIOK91ERERERET2JHt6OQDs27cP/fv3R7169VCvXj0MGDAAP/74o7Vjc0m2nl4OFFe6AeBqLvfqJiIiIiIisifZSfenn36K6OhoeHt74+WXX8bLL78MLy8v9OjRA+vWrbNFjC4lu6gKku5bHcyv5jDpJiIiIiIisifZ08vfeustzJ8/HxMnTpTGXn75ZSxYsACzZ8/GU089ZdUAXU2VVLqZdBMRERERETkE2ZXuCxcuoH///iXGBwwYgMTERKsE5cqkpNvddkm3adswdi8nIiIiIiKyL9lJd0REBHbv3l1ifNeuXYiIiLBKUK5KCCF1L6+KSndmQSbyivJsdh0iIiIiIiK6N9nTy1955RW8/PLL+O2339C+fXsAwE8//YTVq1dj0aJFVg/QldzU34Re6AHYNun29fCFr4cvsguzcTXnKuoF1LPZtYiIiIiIiKhsspPuF154AaGhoXjvvfewceNGAEDDhg2xYcMGPPbYY1YP0JWYpparFCp4uXnZ9FrhmnCcKzyHq7lMuomIiIiIiOxFdtINAIMGDcKgQYOsHYvLyym6PbVcoVDY9FrhPuE4l3GOzdSIiIiIiIjsqEJJNwAcOXIEf/zxBwCgUaNGaNmypdWCclWmSrePu4/NryV1MOde3URERERERHYju5HaP//8g06dOqFNmzYYP348xo8fj9atW6Njx474559/KhzIvHnzoFAoMGHCBGksPz8fY8eORbVq1eDj44PBgwcjNTW1wtewN12hDoBt13Ob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ERHZmuzu5SNGjEBeXh4efvhheHh4wMvLy+z59PR0qwXn7Exrun3dHbPSHekbCYBJNxERERERka3ITroXLlxogzBckyN3LweAWn61ADDpJiIiIiIishXZSXdsbKwt4nBJpunljpp0m6aXJ+cmI1+fD083TztHRERERERE5Fpkr+kmyzl60h2gDpCmvl/OvmznaIiIiIiIiFwPk24byi5y7KRboVCwmRoREREREZENMem2IanS7aCN1AAgUstmakRERERERLbCpNuGHH16OQDU0tYCwKSbiIiIiIjIFph025Cjdy8HuFc3ERERERGRLVnUvfzxxx+3+IRbtmypcDCuxCiMyCkqTrp9PHzsHE3ZmHQTERERERHZjkWVbj8/P+lLq9Vi9+7dOHLkiPT80aNHsXv3bvj5+dksUGeTW5QLAQHAsSvdpjXdN/JvSJV5IiIiIiIisg6LKt2rVq2Svp8yZQqGDBmC5cuXQ6VSAQAMBgNefPFFaLVa20TphEzrudUqNdQqtZ2jKZuvhy8CPQORnp+OS9mX0LhaY3uHRERERERE5DJkr+n++OOPMWnSJCnhBgCVSoW4uDh8/PHHVg3OmZmSbh93x51abiI1U8viFHMiIiIiIiJrkp106/V6nD17tsT42bNnYTQarRKUK3CGzuUmXNdNRERERERkGxZNL7/TqFGjMHr0aJw/fx5t2rQBABw6dAjz5s3DqFGjrB6gs3KmpFvaqzubSTcREREREZE1yU663333XYSGhuK9995DcnIyACAsLAyvvvoqXnnlFasH6Kyyi5wn6eb0ciIiIiIiItuQnXQrlUpMnjwZkydPhk6nAwA2UCuFs1a6hRBQKBR2joiIiIiIiMg1yF7TfSetVsuEuwzO1Egt0rc46c4uzEZGQYadoyEiIiIiInIdspPu1NRUPP300wgPD4ebmxtUKpXZFxUzJd1aD8f/o4SnmyfCNGEA2EyNiIiIiIjImmRPLx85ciSSkpLw+uuvIywsjFORy5BTlAPAOaaXA8VTzJNzk3FJdwnNg5vbOxwiIiIiIiKXIDvpPnDgAH788Uc0a9bMBuG4Dml6uYfjTy8HipupHUo+xEo3ERERERGRFcmeXh4REQEhhC1icSm6wuImc05T6b61rptJNxERERERkfXITroXLlyIqVOn4uLFizYIx3XkFBZPL3eGNd0AUMuvFgAm3URERERERNYke3r5E088gby8PNStWxfe3t5wd3c3ez49Pd1qwTkzZ+peDgBR2igAQJIuCUZhhFJRqcb2REREREREhAok3QsXLrRBGK7HmfbpBoBwn3CoFCrkG/KRlpeGUE2ovUMiIiIiIiJyerKT7tjYWFvE4VKEEMgucq6k213pjpq+NXFJdwmXdJeYdBMREREREVlBpeYQ5+fnQ6fTmX0RkG/Ih96oB+A8STfAZmpERERERETWJjvpzs3Nxbhx4xAcHAyNRoOAgACzL7o9tVypUMLbzdvO0VjOtK6bSTcREREREZF1yE66J0+ejD179mDZsmVQq9X46KOPMGvWLISHh2PNmjW2iNHpmDqX+3r4QqFQ2Dkay9XS1gLApJuIiIiIiMhaZK/p/vbbb7FmzRp07doVo0aNQqdOnVCvXj1ERUXhs88+w7Bhw2wRp1Mx7dHtLJ3LTSK1nF5ORERERERkTbIr3enp6ahTpw4AQKvVSluEdezYEfv377dudE7KNL3cWfboNjFVuv/J/kdak05EREREREQVJzvprlOnDhITEwEADRo0wMaNGwEUV8D9/f2tGpyzyim6Pb3cmYRoQqBWqaEXeiTnJNs7HCIiIiIiIqcnO+keNWoUTpw4AQCYOnUqlixZAk9PT0ycOBGvvvqq1QN0RqZKt7NNL1cqlIjwjQAAXNRdtG8wRERERERELkD2mu6JEydK30dHR+Ps2bM4evQo6tWrh6ZNm1o1OGdlWtPtbJVuoHiK+d+Zf+OS7hI6oZO9wyEiIiIiInJqspPuu0VFRSEqKsoasbiMO7uXOxs2UyMiIiIiIrKeCiXdhw8fRkJCAtLS0mA0Gs2eW7BggVUCc2am6eXOmHRz2zAiIiIiIiLrkZ10z507F9OnT0f9+vUREhJitg+1M+1JbUvOnHSbKt1J2Ul2joSIiIiIiMj5yU66Fy1ahI8//hgjR460QTiuIbvIeZPuKG3xUoGrOVdRYCiAWqW2c0RERERERETOS3b3cqVSiQ4dOtgiljItWbIEtWrVgqenJ9q2bYtff/21Sq8vl1Tpdne+pLuaZzVo3DUQELisu2zvcIiIiIiIiJya7KR74sSJWLJkiS1iKdWGDRsQFxeHmTNn4tixY3j44YcRExODtLS0KotBLmeeXq5QKKRq96VsrusmIiIiIiKqDNnTyydNmoS+ffuibt26aNSoEdzd3c2e37Jli9WCA4obs40ZMwajRo0CACxfvhzfffcdPv74Y0ydOtWq17IWZ+5eDhRPMT9z4wybqREREREREVWS7KT75ZdfRkJCArp164Zq1arZtHlaYWEhjh49imnTpkljSqUS0dHROHjwYKmvKSgoQEFBgfRYpyveM7vLxi5QealsFuudioxFAACNm6ZEd3dnEOlb3Ext0bFF+OD4B3aOhoiIiIiIyPEYbhosOk520v3JJ5/giy++QN++fWUHJdf169dhMBgQEhJiNh4SEoKzZ8+W+pr4+HjMmjWrxHiRsahKE+BQr1AochVIu+m40+DL0sCzAVQKFQzCAKNwvj8aEBERERER2ZrBaKOkOzAwEHXr1pUdUFWZNm0a4uLipMc6nQ4RERHY0m8L/Pz8qiyOQM9AuKvcyz/QAXUP7o59tfchryjP3qEQERERERE5pKysLDR8oWG5x8lOut944w3MnDkTq1atgre3d4WCs1T16tWhUqmQmppqNp6amorQ0NBSX6NWq6FWl9zmKtQnFP6+/rYI0yX5efrBz7Pq/khBRERERETkTLwMXhYdJzvp/u9//4vz588jJCQEtWrVKtFI7dixY3JPWSYPDw+0bNkSu3fvxsCBAwEARqMRu3fvxrhx46x2HSIiIiIiIiJbkJ10m5LfqhIXF4fY2Fi0atUKbdq0wcKFC5Gbmyt1MyciIiIiIiJyVLKT7pkzZ9oijjI98cQTuHbtGmbMmIGUlBQ0a9YM27dvL9FcjYiIiIiIiMjRKIQQQu6LMjMzsXnzZpw/fx6vvvoqAgMDcezYMYSEhKBGjRq2iLPCdDod/Pz8kJGRAX9/f3uHQ0RERERERC4gMzMTAQEByMrKglarLfM42ZXukydPIjo6Gn5+frh48SLGjBmDwMBAbNmyBUlJSVizZk2lArc2098UdDodlEqlnaMhIiIiIiIiV6DT6QDczjnLIjvpjouLw8iRIzF//nz4+vpK43369MFTTz0l93Q2d+PGDQBAVFSUnSMhIiIiIiIiV3Pjxo17bk8tO+k+fPgwPvzwwxLjNWrUQEpKitzT2VxgYCAAICkpqUr36Sbbat26NQ4fPmzvMMhKeD9dD++pa+H9dD28p66H99S18H46h6ysLERGRko5Z1lkJ91qtVoqo9/pzz//RFBQkNzT2ZxpSrmfn98959mTc1GpVLyfLoT30/XwnroW3k/Xw3vqenhPXQvvp3Mpbxmz7EXOAwYMwJtvvomioiIAgEKhQFJSEqZMmYLBgwdXLEoimcaOHWvvEMiKeD9dD++pa+H9dD28p66H99S18H66Ftndy7OysvCvf/0LR44cQXZ2NsLDw5GSkoJ27drh+++/h0ajsVWsFWLqXl5eRzkiIiIiIiIiS1maa8qeXu7n54edO3fiwIEDOHnyJHJyctCiRQtER0dXKmBbUavVmDlzJtRqtb1DISIiIiIiIhdhaa5ZoX26iYiIiIiIiKh8sirdRqMRq1evxpYtW3Dx4kUoFArUrl0b//rXv/D0009DoVDYKk4iIiIiIiIip2NxpVsIgf79++P777/Hww8/jAYNGkAIgT/++AOnTp3CgAED8NVXX9k4XCIiIiIiIiLnYXGle/Xq1di/fz92796Nbt26mT23Z88eDBw4EGvWrMGIESOsHiQRERERERGRM7K40v3oo4+ie/fumDp1aqnPz507F/v27cOOHTusGiARERERERGRs7J4n+6TJ0+iV69eZT7fu3dvnDhxwipBEREREREREbkCi5Pu9PR0hISElPl8SEgIMjIyrBIUERERERERkSuwOOk2GAxwcyt7CbhKpYJer7dKUERERERERESuwOJGakIIjBw5ssyNvwsKCqwWFBEREREREZErsDjpjo2NLfcYdi4nIiIiIiIius3i7uVEREREREREJI/Fa7qJiIiIiIiISB4m3UREREREREQ2wqSbiIiIiIiIyEaYdBMREdE9jRw5ErVq1arw62vVqoWRI0daLR5HtHfvXigUCuzdu9feoRARkYNh0k1ERC7ljTfegEKhwPXr10t9vkmTJujatWvVBkVERET3LSbdRERERERERDbCpJuIiMhF5ebm2jsEIiKi+x6TbiIiuq+Z1uJu3LgRb731FmrWrAlPT0/06NEDf//9d4njDx06hD59+iAgIAAajQZNmzbFokWLzI7Zs2cPOnXqBI1GA39/fzz22GP4448/pOc3b94MhUKBffv2lTj/hx9+CIVCgdOnT0tjZ8+exb/+9S8EBgbC09MTrVq1wjfffGP2utWrV0vnfPHFFxEcHIyaNWtKz2/btk2KydfXF3379sXvv/9e4vpfffUVmjRpAk9PTzRp0gRffvmlxe+lEAJz5sxBzZo14e3tjW7dupV6DQDIzMzEhAkTEBERAbVajXr16uHtt9+G0WiUjrl48SIUCgXeffddLFmyBHXq1IG3tzceffRRXL58GUIIzJ49GzVr1oSXlxcee+wxpKenm13n66+/Rt++fREeHg61Wo26deti9uzZMBgMZsd17doVTZo0wZkzZ9CtWzd4e3ujRo0amD9/fonY//nnHwwcOBAajQbBwcGYOHEiCgoKLH6fiIjo/uJm7wCIiIgcwbx586BUKjFp0iRkZWVh/vz5GDZsGA4dOiQds3PnTvTr1w9hYWEYP348QkND8ccff2Dr1q0YP348AGDXrl3o3bs36tSpgzfeeAM3b97E4sWL0aFDBxw7dgy1atVC37594ePjg40bN6JLly5mcWzYsAGNGzdGkyZNAAC///47OnTogBo1amDq1KnQaDTYuHEjBg4ciC+++AKDBg0ye/2LL76IoKAgzJgxQ6p0r127FrGxsYiJicHbb7+NvLw8LFu2DB07dsTx48elJmk//PADBg8ejEaNGiE+Ph43btzAqFGjzJL3e5kxYwbmzJmDPn36oE+fPjh27BgeffRRFBYWmh2Xl5eHLl264MqVK3juuecQGRmJn3/+GdOmTUNycjIWLlxodvxnn32GwsJCvPTSS0hPT8f8+fMxZMgQdO/eHXv37sWUKVPw999/Y/HixZg0aRI+/vhj6bWrV6+Gj48P4uLi4OPjgz179mDGjBnQ6XR45513zK6TkZGBXr164fHHH8eQIUOwefNmTJkyBQ899BB69+4NALh58yZ69OiBpKQkvPzyywgPD8fatWuxZ88ei94jIiK6DwkiIiIXMnPmTAFAXLt2rdTnGzduLLp06SI9TkhIEABEw4YNRUFBgTS+aNEiAUCcOnVKCCGEXq8XtWvXFlFRUSIjI8PsnEajUfq+WbNmIjg4WNy4cUMaO3HihFAqlWLEiBHS2JNPPimCg4OFXq+XxpKTk4VSqRRvvvmmNNajRw/x0EMPifz8fLPrtW/fXjzwwAPS2KpVqwQA0bFjR7NzZmdnC39/fzFmzBizmFNSUoSfn5/ZeLNmzURYWJjIzMyUxn744QcBQERFRZV8M++QlpYmPDw8RN++fc3ej//7v/8TAERsbKw0Nnv2bKHRaMSff/5pdo6pU6cKlUolkpKShBBCJCYmCgAiKCjILKZp06YJAOLhhx8WRUVF0viTTz4pPDw8zN6rvLy8ErE+99xzwtvb2+y4Ll26CABizZo10lhBQYEIDQ0VgwcPlsYWLlwoAIiNGzdKY7m5uaJevXoCgEhISLjn+0RERPcfTi8nIiICMGrUKHh4eEiPO3XqBAC4cOECAOD48eNITEzEhAkT4O/vb/ZahUIBAEhOTsZvv/2GkSNHIjAwUHq+adOm6NmzJ77//ntp7IknnkBaWprZFlObN2+G0WjEE088AQBIT0/Hnj17MGTIEGRnZ+P69eu4fv06bty4gZiYGPz111+4cuWKWSxjxoyBSqWSHu/cuROZmZl48sknpddfv34dKpUKbdu2RUJCglnssbGx8PPzk17fs2dPNGrUqNz3b9euXVI12vR+AMCECRNKHLtp0yZ06tQJAQEBZjFFR0fDYDBg//79Zsf/+9//Noupbdu2AIDhw4fDzc3NbLywsNDsPfHy8pK+N72HnTp1Ql5eHs6ePWt2HR8fHwwfPlx67OHhgTZt2kifAQD4/vvvERYWhn/961/SmLe3N5599tly3yMiIro/cXo5ERHdd+5MCk0iIyPNHgcEBAAonnIMAOfPnwcAadp3aS5dugQAqF+/fonnGjZsiB07diA3NxcajQa9evWCn58fNmzYgB49egAonlrerFkzPPjggwCAv//+G0IIvP7663j99ddLvWZaWhpq1KghPa5du7bZ83/99RcAoHv37qW+XqvVmsX+wAMPlDimfv36OHbsWJk/971eHxQUJL2Xd8Z08uRJBAUFlXqutLQ0s8d33xtTAh4REVHquOmeAcXT86dPn449e/ZAp9OZHZ+VlWX2uGbNmiU+GwEBATh58qT0+NKlS6hXr16J40q750RERACTbiIicjGenp4AitfeliYvL0865k53VofvJISwXnB3UKvVGDhwIL788kssXboUqamp+OmnnzB37lzpGFNTsUmTJiEmJqbU89SrV8/s8Z2V3TvPsXbtWoSGhpZ4/Z2V4qpiNBrRs2dPTJ48udTnTX90MCnr3pR3zzIzM9GlSxdotVq8+eabqFu3Ljw9PXHs2DFMmTLFrGmbJecjIiKqCCbdRETkUqKiogAA586dK1EJzcvLw+XLl/Hoo4/KPm/dunUBAKdPn0Z0dHS5177b2bNnUb16dWg0GmnsiSeewCeffILdu3fjjz/+gBBCmloOAHXq1AEAuLu7l3lNS+MODg6+5zlMsZsq43cq7ee51+tNcQPAtWvXzCrPpphycnIq/DNZau/evbhx4wa2bNmCzp07S+OJiYkVPmdUVBROnz4NIYRZtduS94iIiO5PXNNNREQupUePHvDw8MCyZctKVDJXrFgBvV4vdaKWo0WLFqhduzYWLlyIzMxMs+dMldCwsDA0a9YMn3zyidkxp0+fxg8//IA+ffqYvS46OhqBgYHYsGEDNmzYgDZt2phNDw8ODkbXrl3x4YcfIjk5uURM165dKzfumJgYaLVazJ07F0VFRWWe487Y75x2vXPnTpw5c6bc60RHR8Pd3R2LFy82qwzf3YkcAIYMGYKDBw9ix44dJZ7LzMyEXq8v93qWMFWu74ynsLAQS5curfA5+/Tpg6tXr2Lz5s3SWF5eHlasWFHxQImIyKWx0k1ERC4lODgYM2bMwPTp09G5c2cMGDAA3t7e+Pnnn/H555/j0UcfRf/+/WWfV6lUYtmyZejfvz+aNWuGUaNGISwsDGfPnsXvv/8uJZDvvPMOevfujXbt2mH06NHSlmF+fn544403zM7p7u6Oxx9/HOvXr0dubi7efffdEtddsmQJOnbsiIceeghjxoxBnTp1kJqaioMHD+Kff/7BiRMn7hm3VqvFsmXL8PTTT6NFixYYOnQogoKCkJSUhO+++w4dOnTABx98AACIj49H37590bFjRzzzzDNIT0/H4sWL0bhxY+Tk5NzzOkFBQZg0aRLi4+PRr18/9OnTB8ePH8e2bdtQvXp1s2NfffVVfPPNN+jXrx9GjhyJli1bIjc3F6dOncLmzZtx8eLFEq+piPbt2yMgIACxsbF4+eWXoVAosHbt2kpNFx8zZgw++OADjBgxAkePHkVYWBjWrl0Lb2/vSsdLREQuyl5t04mIiGzp008/FY888ojQaDRCrVaLBg0aiFmzZpltEyXE7S3DNm3aZDZu2q5q1apVZuMHDhwQPXv2FL6+vkKj0YimTZuKxYsXmx2za9cu0aFDB+Hl5SW0Wq3o37+/OHPmTKlx7ty5UwAQCoVCXL58udRjzp8/L0aMGCFCQ0OFu7u7qFGjhujXr5/YvHmzdIxpy7DDhw+Xeo6EhAQRExMj/Pz8hKenp6hbt64YOXKkOHLkiNlxX3zxhWjYsKFQq9WiUaNGYsuWLSI2NrbcLcOEEMJgMIhZs2aJsLAw4eXlJbp27SpOnz4toqKizLYME6J4K7Np06aJevXqCQ8PD1G9enXRvn178e6774rCwkIhxO178M4775T4WUq7Z6W9Bz/99JN45JFHhJeXlwgPDxeTJ08WO3bsKLG9V5cuXUTjxo1L/Eyl/eyXLl0SAwYMEN7e3qJ69epi/PjxYvv27dwyjIiISqUQgt1BiIiIiIiIiGyBa7qJiIiIiIiIbIRJNxEREREREZGNMOkmIiIiIiIishEm3UREREREREQ2wqSbiIiIiIiIyEaYdBMRERERERHZiJu9A7A1o9GIq1evwtfXFwqFwt7hEBERERERkQsQQiA7Oxvh4eFQKsuuZ7t80n316lVERETYOwwiIiIiIiJyQZcvX0bNmjXLfN7lk25fX18AwKVLl+Dv72/fYIiIiIiIiMglZGZmIioqSso5y1KppLugoABqtboyp7A505RyrVYLrVZr52iIiIiIiIjIFRiNRgAodxmzrEZq27ZtQ2xsLOrUqQN3d3d4e3tDq9WiS5cueOutt3D16tWKR0xERERERETkYixKur/88ks8+OCDeOaZZ+Dm5oYpU6Zgy5Yt2LFjBz766CN06dIFu3btQp06dfD888/j2rVrto6biIiIiIiIyOEphBCivIPatWuH6dOno3fv3vfsynblyhUsXrwYISEhmDhxolUDrSidTgc/Pz9kZGRwTTcRERERERFZRWZmJgICApCVlXXPpcwWJd3OjEk3ERERERERWZulSbfFa7oTEhJQWFholeDIPoTBgMsvvIiUuXPtHQoREREREdF9weKku0ePHvD390f37t0xe/ZsHDhwAHq93paxkZUVJiUhJyEBGZ+tg4tPcCAiIiIiInIIFifdiYmJWLJkCSIjI7Fy5Up07twZ/v7+iImJwbx583Do0CGpZTo5JkNm5q1vDBB5eXaNhYiIiIiI6H5Q4TXdFy5cwN69e7F3717s27cP//zzD3x9fZFpSuwcBNd035a9dy/+ef4FAEC9vQlwDw21c0RERERERETOydI13W4VvUCdOnWgUqmgUCigUCjw1Vdfcc23gzNmZd3+PjsbYNJNRERERERkU7KS7qSkJOzduxcJCQnYu3cvrl+/jvbt26NTp07YunUr2rZta6s4yQoMd8xCMGRn2y8QIiIiIiKi+4TFSXedOnWQkZGBDh06oHPnznjuuefQqlUruLlVuFhOVcxwR6XboNPZMRIiIiIiIqL7g8WN1G7evFn8AqUSbm5ucHd3h0qlsllgZH2GzDunl+fYMRIiIiIiIqL7g8VJd3JyMg4ePIg+ffrg0KFD6Nu3LwICAtCvXz+8++67OHz4MLuXOzizSnc2K91ERERERES2JmtueIMGDdCgQQM8//zzAIA//vhDWt89Z84cAHC47uV0251ruo06rukmIiIiIiKyNYsr3XdLTU3FyZMncfLkSZw4cQI6nQ4FBQXWjI2s7M5KtzGHSTcREREREZGtWVzpTktLk/blTkhIwJ9//gl3d3e0adMGQ4cORbdu3dCuXTtbxkqVZN5IjUk3ERERERGRrVmcdIeGhsLd3R2tWrXC4MGD0a1bN7Rv3x5eXl62jI+syHzLMK7pJiIiIiIisjWLk+5t27ahY8eO0Gg0toyHbETo9TDesTc3u5cTERERERHZnsVrumNiYqDRaPD555+Xecyrr75qlaDI+gzZ2Xc9ZqWbiIiIiIjI1mQ3UnvhhRewbdu2EuMTJ07Ep59+apWgyPoMd3WVZ/dyIiIiIiIi25OddH/22Wd48sknceDAAWnspZdewsaNG5GQkGDV4Mh67k66DexeTkREREREZHOyk+6+ffti6dKlGDBgAI4ePYoXX3wRW7ZsQUJCAho0aGCLGMkKTJ3LVf7+AFjpJiIiIiIiqgoWN1K701NPPYXMzEx06NABQUFB2LdvH+rVq2ft2MiKjLeSbvfISBgyMyEKCmAsLITSw8POkREREREREbkui5LuuLi4UseDgoLQokULLF26VBpbsGCBxRdftmwZli1bhosXLwIAGjdujBkzZqB3794AgPz8fLzyyitYv349CgoKEBMTg6VLlyIkJMTia1Ax0/Ry9/Bw5J88CQAwZmdDWa2aHaMiIiIiIiJybRYl3cePHy91vF69etDpdNLzCoVC1sVr1qyJefPm4YEHHoAQAp988gkee+wxHD9+HI0bN8bEiRPx3XffYdOmTfDz88O4cePw+OOP46effpJ1Hbo9vdwtMABKHx8Yc3Jg0OngxqSbiIiIiIjIZixKum3VIK1///5mj9966y0sW7YMv/zyC2rWrImVK1di3bp16N69OwBg1apVaNiwIX755Rc88sgjNonJVRkyb6/pVmp9YczJMdu3m4iIiIiIiKxPdiM1WzEYDFi/fj1yc3PRrl07HD16FEVFRYiOjpaOadCgASIjI3Hw4EE7RuqcpEZqfn5Q+fgWjzHpJiIiIiIisimLKt3PP/88pk+fjpo1a5Z77IYNG6DX6zFs2DCLAjh16hTatWuH/Px8+Pj44Msvv0SjRo3w22+/wcPDA/63um2bhISEICUlpczzFRQUoKCgQHqs0+kAAEajEUaj0aKYXJE+MwMAoNBqofS9lXRn6e7r94SIiIiIiKiiLM2lLEq6g4KC0LhxY3To0AH9+/dHq1atEB4eDk9PT2RkZODMmTM4cOAA1q9fj/DwcKxYscLiQOvXr4/ffvsNWVlZ2Lx5M2JjY7Fv3z6LX3+3+Ph4zJo1q8T4tWvXUFhYWOHzOruC6zcAANkC0KvVAIDMq1dwMy3NnmERERERERE5paxbs4nLY1HSPXv2bIwbNw4fffQRli5dijNnzpg97+vri+joaKxYsQK9evWSFaiHh4e03VjLli1x+PBhLFq0CE888QQKCwuRmZlpVu1OTU1FaGhomeebNm2aWbd1nU6HiIgIBAUFlaia309y8vJgAFCtVhQyq1VDEQANFAgMDrZ3aERERERERE7Hw8Ltly3epzskJASvvfYaXnvtNWRkZCApKQk3b95E9erVUbduXdmdy8tiNBpRUFCAli1bwt3dHbt378bgwYMBAOfOnUNSUhLatWtX5uvVajXUtyq5d1IqlVAqHWYJe5UzbRnm5h8AlVYLADDmZN/X7wkREREREVFFWZpLWZx03ykgIAABAQEVeamZadOmoXfv3oiMjER2djbWrVuHvXv3YseOHfDz88Po0aMRFxeHwMBAaLVavPTSS2jXrh07l8sk9HqpU7nK3w9KbfGabqOOjdSIiIiIiIhsqUJJt7WkpaVhxIgRSE5Ohp+fH5o2bYodO3agZ8+eAID3338fSqUSgwcPRkFBAWJiYrB06VJ7huyU7uxSrtJqb3cvz2HSTUREREREZEt2TbpXrlx5z+c9PT2xZMkSLFmypIoick2mqeVKX18o3NxY6SYiIiIiIqoiXNB7HzAl3So/v+L/9S1e0819uomIiIiIiGyLSfd9wHCrlb0p6Vb6+gCAtM6biIiIiIiIbINJ933AaEq6b22ZZupezko3ERERERGRbVm0prt58+YWbwl27NixSgVE1nd3pVvla1rTrbNbTERERERERPcDi5LugQMHSt/n5+dj6dKlaNSokbRf9i+//ILff/8dL774ok2CpMqR1nT7m6aX30q6c3MhDAYoVCp7hUZEREREROTSLEq6Z86cKX3/n//8By+//DJmz55d4pjLly9bNzqyCkNmcaVb6WeedAOAMSdHqoATERERERGRdcle071p0yaMGDGixPjw4cPxxRdfWCUosi7T9HK3W2u6lR4eUHh6Fj/Hdd1EREREREQ2Izvp9vLywk8//VRi/KeffoLnrUSOHIu0T/cdFW12MCciIiIiIrI9i6aX32nChAl44YUXcOzYMbRp0wYAcOjQIXz88cd4/fXXrR4gVd7djdSA4r26Ddeuw6Bj0k1ERERERGQrspPuqVOnok6dOli0aBE+/fRTAEDDhg2xatUqDBkyxOoBUuUZ7toyDLijg3kOk24iIiIiIiJbkZ10A8CQIUOYYDuR25Vuf2nM1EyNlW4iIiIiIiLbqVDSDQCFhYVIS0uD0Wg0G4+MjKx0UGQ9Qq+X9uM2bRkGACrtrUp3NvfqJiIiIiIishXZSfdff/2FZ555Bj///LPZuBACCoUCBoPBasFR5d3ZnVyl1UrfK321JZ4nIiIiIiIi65KddI8cORJubm7YunUrwsLCoFAobBEXWYnUudzXFwq327dbZepezunlRERERERENiM76f7tt99w9OhRNGjQwBbxkJWZku47O5cDrHQTERERERFVBdlJd6NGjXD9+nVbxEI2UNp2YcCda7qdK+nWZ2Qgc8MGGHPzqvS6Cnc3+A0aBI+IiCq9LhEREREROTfZSffbb7+NyZMnY+7cuXjooYfg7u5u9rz2jnXDZH/GMpJupc+t7uVOlnRnrF2L60uX2eXaBRcSUXPh+3a5NhEREREROSfZSXd0dDQAoEePHmbjbKTmmErboxu4o9Ktc67u5UVXrgIAvFu1gmfjxlVyzcIr/yBn124UJV+tkusREREREZHrkJ10JyQk2CIOshFpTbd/GWu6c3KqOqRK0aenAwD8Bg2C/+DHq+SaecePI2fXbhhupFfJ9YiIiIiIyHXITrq7dOliizjIRgyZxZVu5d1ruqXu5c5V6TbcuAEAUFULrLJrulWrBuB2wk9ERERERGQp2Um3SV5eHpKSklBYWGg23rRp00oHRdZjml7udtf0cqX2dvdy09IAZ2BKfE2JcFVQBRZfS+TlwZiXB6W3d5Vdm4iIiIiInJvspPvatWsYNWoUtm3bVurzXNPtWKR9uktUun1vHWCAuHkTCidIJIUQUqXbLbDqKt1KjTcUajVEQQH06RnwcIL3ioiIiIiIHINS7gsmTJiAzMxMHDp0CF5eXti+fTs++eQTPPDAA/jmm29sESNVQllbhim8vACVqvgYJ+lgbszJgSgqAgCoqjDpVigU0nR2Q/qNKrsuERERERE5P9mV7j179uDrr79Gq1atoFQqERUVhZ49e0Kr1SI+Ph59+/a1RZxUQbeTbn+zcYVCAZWvLwyZmcXrukNC7BCdPKYqt9LbG0ovryq9tltgNeivJkN/g0k3ERERERFZTnalOzc3F8HBwQCAgIAAXLt2DQDw0EMP4dixY9aNjiqtrC3DgDvXdTtHB3PTem5VFa7nNrld6WYzNSIiIiIispzspLt+/fo4d+4cAODhhx/Ghx9+iCtXrmD58uUICwuzeoBUcUKvl7qT371lGACofG51MM92jg7mejus5zZxu9VMTc9tw4iIiIiISAbZ08vHjx+P5ORkAMDMmTPRq1cvfPbZZ/Dw8MDq1autHR9Vwp1rtVW3qtp3kirdOudY023aJ9selW43U6Wb08uJiIiIiEgG2Un38OHDpe9btmyJS5cu4ezZs4iMjET16tWtGhxVjtS53NcXCreSt9rUwdyY4yRJd4Zpu7Cqr3Sbtg3jXt1ERERERCRHhffpNvH29kaLFi2sEQtZmSnpvrtzuYnyVtLtLJVu09RuUwJclVSBAQC4ppuIiIiIiOSRnXQLIbB582YkJCQgLS0NRqPR7PktW7ZYLTiqnLK2CzORKt1OsqbbtF2X260EuCq5VWOlm4iIiIiI5JOddE+YMAEffvghunXrhpCQECgUClvERVZgLCfpVmpvVbqdpXu5XSvdXNNNRERERETyyU66165diy1btqBPnz62iIes6F7bhQFOXOm2w5ruOyvdQgj+sYmIiIiIiCwie8swPz8/1KlTxxaxkJVJa7pL2S4MAJS+ztW9XG/H7uWmSjfu2IaNiIiIiIioPLKT7jfeeAOzZs3CzZs3bREPWZEhs7jSrSxrTbfWVOl2/KRbGAwwZGQAsM8+3UoPD6nxHPfqJiIiIiIiS8meXj5kyBB8/vnnCA4ORq1ateDu7m72/LFjx6wWHFVOeY3UlD6mNd2On3QbMjMBIQAAqoCqb6QGFCf7hdnZxdPc69S2SwxERERERORcZCfdsbGxOHr0KIYPH17pRmrx8fHYsmULzp49Cy8vL7Rv3x5vv/026tevLx2Tn5+PV155BevXr0dBQQFiYmKwdOlShISEVPi694ty13RLjdQcf7q0/lYDM5W/f6l7jlcFVbVqwKVLrHQTEREREZHFZGcv3333HXbs2IGOHTtW+uL79u3D2LFj0bp1a+j1evzf//0fHn30UZw5cwYajQYAMHHiRHz33XfYtGkT/Pz8MG7cODz++OP46aefKn19V1f+Pt3Fa7qNTtC93LQ/tj3Wc5uYGriZGroRERERERGVR3bSHRERAa1Wa5WLb9++3ezx6tWrERwcjKNHj6Jz587IysrCypUrsW7dOnTv3h0AsGrVKjRs2BC//PILHnnkEavE4apuTy/3L/V5la8PAEDk58NYWAilh0dVhSabqdJtj/XcJqatyljpJiIiIiIiS8lOut977z1MnjwZy5cvR61atawaTNatJDHwVmJ19OhRFBUVITo6WjqmQYMGiIyMxMGDB0tNugsKClBQUCA91t3qNG00GmE0Gq0ar6MzJd1KP23pP7u3t/StPitL2hbLEemv35peHhhot/uoCixeS66/cf2++ywREREREZE5S3MC2Un38OHDkZeXh7p168Lb27tEI7X09IpVAY1GIyZMmIAOHTqgSZMmAICUlBR4eHjA/641ySEhIUhJSSn1PPHx8Zg1a1aJ8WvXrqGwsLBCsTkjoTdIW1ulFxVBmZZW+oEaDZCbi2uXLkFlMFRhhPLcvHwZAFDo5YW0sn4WG8t3L54JkHs12W4xEBERERGRYzAVjcsjO+leuHCh3JdYZOzYsTh9+jQOHDhQqfNMmzYNcXFx0mOdToeIiAgEBQWVSN5dmT4jA5m3vg+pU6fM5mPZvr7Q5+bC390dXsHBVRafXCkFBcgH4FOzBqrbKU5dVBRuAnDLzUWwA79XRERERERkex4WLs+tUPdyaxs3bhy2bt2K/fv3o2bNmtJ4aGgoCgsLkZmZaZYwp6amIjQ0tNRzqdVqqNXqEuNKpRJKpextyZ2WuFXlVvr4QHWPD4NKq4U+JQUiJ8eh3x9DRvEMCvfq1e0Wp/ut6feG9HSHfq+IiIiIiMj2LM0JKpQ5nD9/HtOnT8eTTz4pTbPdtm0bfv/9d1nnEUJg3Lhx+PLLL7Fnzx7Urm2+93HLli3h7u6O3bt3S2Pnzp1DUlIS2rVrV5HQ7xvGcrYLM1He2jbM0TuYG241L1PZsZGa1L38BruXExERERGRZWQn3fv27cNDDz2EQ4cOYcuWLcjJKU7WTpw4gZkzZ8o619ixY/Hpp59i3bp18PX1RUpKClJSUnDz5k0AgJ+fH0aPHo24uDgkJCTg6NGjGDVqFNq1a8fO5eXQl7NdmInKxzn26tbf2qbLns3eTNuVGbKyIPR6u8VBRERERETOQ3bSPXXqVMyZMwc7d+40m8PevXt3/PLLL7LOtWzZMmRlZaFr164ICwuTvjZs2CAd8/7776Nfv34YPHgwOnfujNDQUGzZskVu2PcdqdJdTtItVbp12TaPqTKkSneAHbcM8/MDbk0hMWRk2C0OIiIiIiJyHrLXdJ86dQrr1q0rMR4cHIzr16/LOpcQotxjPD09sWTJEixZskTWue930h7d/uVUun2L91w35Dhu0m0sKIDx1owK0xRve1CoVFAFBMBw4wb06elwCwqyWyxEREREROQcZFe6/f39kZycXGL8+PHjqFGjhlWCosozmKaXl7em29cHgGNXug2mbejc3KDUau0ai1sg13UTEREREZHlZCfdQ4cOxZQpU5CSkgKFQgGj0YiffvoJkyZNwogRI2wRI1WAIbO40q0sb023qdLtwGu69bemlrsFBkKhUNg1FtO6blNMRERERERE9yI76Z47dy4aNGiAiIgI5OTkoFGjRujcuTPat2+P6dOn2yJGqgCD3DXdDty93HCriZrKjk3UTKRKdzor3UREREREVD7Za7o9PDzwv//9D6+//jpOnz6NnJwcNG/eHA888IAt4qMKMli4ZZjK1/G7l99Z6bY3VrqJiIiIiEgO2Um3SWRkJCIjI60ZC1mRwcItw5S+jt+9/Hal2/5Jt6mRm56VbiIiIiIisoBFSXdcXJzFJ1ywYEGFgyHruT293P+ex6m0jt+9/Hal2/7Ty1VSIzVWuomIiIiIqHwWJd3Hjx83e3zs2DHo9XrUr18fAPDnn39CpVKhZcuW1o+QKsTSLcOUPk7QvfyGI1W6b00vZ6WbiIiIiIgsYFHSnZCQIH2/YMEC+Pr64pNPPkFAQAAAICMjA6NGjUKnTp1sEyXJIvR6GHXFa7TLXdN9q9JtzMmBMBigUKlsHZ5s+gxWuomIiIiIyDnJ7l7+3nvvIT4+Xkq4ASAgIABz5szBe++9Z9XgqGIM2ber1qpy9rU2rekGAGNurs1iqgxTgutYlW4m3UREREREVD7ZSbdOp8O1a9dKjF+7dg3Z2Y47Rfl+YmqipvTxgcLt3pMZlB4eUKjVxa9z0CnmpgTXzQG2DDNVukVeHox5eXaOhoiIiIiIHJ3spHvQoEEYNWoUtmzZgn/++Qf//PMPvvjiC4wePRqPP/64LWIkmYwW7tFtcnuvbsfbNkwIIa3pdoQtw5QaDRQeHgAAfXqGnaMhIiIiIiJHJ3vLsOXLl2PSpEl46qmnUFRUVHwSNzeMHj0a77zzjtUDJPn0pu3CylnPbaLy1cJw7brZtHRHYczNhSgsBHC7ymxPCoUCqmrVoE9OLt7KrGYNe4dEREREREQOTHbS7e3tjaVLl+Kdd97B+fPnAQB169aFRqOxenBUMbIr3b63Opg7YNJtqnIrvb2h9PKyczTF3AIDoU9O5rpuIiIiIiIql+yk20Sj0aBp06bWjIWsxNLtwkxUvrf26nbANd16qYma/ddzm5gaurGDORERERERlUf2mm5yfAa508ulNd2Ol3Qbbu2HrQoMKOfIqmPauox7dRMRERERUXmYdLsgQ2ZxpVtp6fRyn+Kk2+CAjdRMlW5H2KPbhJVuIiIiIiKyFJNuF2SQuaZbqnQ74PRyqdLtAHt0m7DSTURERERElmLS7YJuJ93+Fh2vNK3pznG8pJuVbiIiIiIicmYWNVL75ptvLD7hgAEDKhwMWcftNd0yu5c7cKXbzZEq3dVMlW4m3UREREREdG8WJd0DBw40e6xQKCCEMHtsYjAYrBMZVZjcSrfUvdwBG6lJ3csdqdIdaKp0c3o5ERERERHdm0XTy41Go/T1ww8/oFmzZti2bRsyMzORmZmJ77//Hi1atMD27dttHS9ZQPaWYU7QvdxRK913/vGJiIiIiIjobrL36Z4wYQKWL1+Ojh07SmMxMTHw9vbGs88+iz/++MOqAZI8wmCAUVfchdzSLcOUvqbu5Y6XdOvTMwA42D7dtyrd0Oth1OksblhHRERERET3H9mN1M6fPw//UpI5Pz8/XLx40QohUWUYdLe3/VJptRa9RuVr6l7uWFuGCYMBhozipNst0HEq3UoPDyh9itfB69lMjYiIiIiI7kF20t26dWvExcUhNTVVGktNTcWrr76KNm3aWDU4ks/URE3p4wOFm2UTGZRaU/fyHIeaLm3IygKMRgCAKiDAztGYkzqYc9swIiIiIiK6B9lJ98cff4zk5GRERkaiXr16qFevHiIjI3HlyhWsXLnSFjGSDEaZe3QDgOpW1RZ6PcTNm7YIq0JMjcpU/v4W/wGhqkh7dbPSTURERERE9yA7k6lXrx5OnjyJnTt34uzZswCAhg0bIjo62qyLOdmHXtouzN/i1yi8vQGVCjAYYMjOhtLb2zbBySR1Lneg9dwmrHQTEREREZElKlQ+VCgUePTRR9G5c2eo1Wom2w6kIpVuhUIBla8vDJmZxR3MQ0JsFZ4sUudyB1rPbcJKNxERERERWUL29HKj0YjZs2ejRo0a8PHxQWJiIgDg9ddf5/RyByB3uzATqYO5znE6mDtHpZtJNxERERERlU120j1nzhysXr0a8+fPh4eHhzTepEkTfPTRR1YNjuQzZBYn3UqZ21hJHcyzHaeDud4ZKt1MuomIiIiI6B5kJ91r1qzBihUrMGzYMKhUKmn84YcfltZ4k/0YKrCmG7ijg3l2jpUjqjiDqdLtiEm3qdJ9g2u6iYiIiIiobLKT7itXrqBevXolxo1GI4qKiqwSFFWcoQJrugFA5VvcwdwhK93VHC/pVrHSTUREREREFpCddDdq1Ag//vhjifHNmzejefPmVgmKKu520u0v63VK31uVbgda03270u14a7pZ6SYiIiIiIkvI7l4+Y8YMxMbG4sqVKzAajdiyZQvOnTuHNWvWYOvWrbaIkWS4Pb28gmu6cxwn6XboSvet5m6GzEwIvd7h9hEnIiIiIiLHILvS/dhjj+Hbb7/Frl27oNFoMGPGDPzxxx/49ttv0bNnT1vESDJUvNLteN3LHbnSrfLzA5TFvz6GjAw7R0NERERERI5KVtKt1+vx5ptvonbt2ti5cyfS0tKQl5eHAwcO4NFHH5V98f3796N///4IDw+HQqHAV199Zfa8EAIzZsxAWFgYvLy8EB0djb/++kv2de4nFd0yTKV1rO7lxsJCGHOKm7o5YqVboVJBFRAAgOu6iYiIiIiobLKSbjc3N8yfPx96vd4qF8/NzcXDDz+MJUuWlPr8/Pnz8d///hfLly/HoUOHoNFoEBMTg/z8fKtc39UIgwFGXXHSLLeRmrSm20G6l0v7X7u5SZ3VHY1bYHHSzXXdRERERERUFtkLUXv06IF9+/ahVq1alb5479690bt371KfE0Jg4cKFmD59Oh577DEAxduVhYSE4KuvvsLQoUMrfX1XY9DdrlJXuHu5zjEq3fobt/foVigUdo6mdMXT3v+G/gYr3UREREREVDrZSXfv3r0xdepUnDp1Ci1btoRGozF7fsCAAVYJLDExESkpKYiOjpbG/Pz80LZtWxw8eJBJdylMTdSUPj6yG3vdrnQ7xppuU6Xb1LDMEUkdzNNZ6SYiIiIiotLJTrpffPFFAMCCBQtKPKdQKGAwGCofFYCUlBQAQEhIiNl4SEiI9FxpCgoKUFBQID3W3arcGo1GGI1Gq8TmqPSmzuV+frJ/VoVP8R9PDNnZDvE+FV2/DgBQBQY4RDylUQYUJ91F1284bIxERERERGQbluYAspNuR08u4uPjMWvWrBLj165dQ2FhoR0iqjpFFy8CAIwab6Slpcl6reHWe2PQ6WS/1hbyLyUBAPTeGoeIpzT5ajUAIOfKFQgHjZGIiIiIiGwj61YT6/JUanPh/Px8eHp6VuYUZQoNDQUApKamIiwsTBpPTU1Fs2bNynzdtGnTEBcXJz3W6XSIiIhAUFAQ/P39bRKro8hSKJADQF09CMHBwbJea1CroQOAggIE+ftD4eFhixAtllZYgJsANOHhsn+WqpIZGYF8AO438xw2RiIiIiIisg0PC3Mm2Um3wWDA3LlzsXz5cqSmpuLPP/9EnTp18Prrr6NWrVoYPXq07GBLU7t2bYSGhmL37t1Skq3T6XDo0CG88MILZb5OrVZDfasCeSelUgmlUva25E5F3JpK7+bvJ/tnVdzRIVzk5UFloz+mWMqYXrz3tVv1ag5739yrVwdQvP7cUWMkIiIiIiLbsDQHkJ0pvPXWW1i9ejXmz59vltk3adIEH330kaxz5eTk4LfffsNvv/0GoLh52m+//YakpCQoFApMmDABc+bMwTfffINTp05hxIgRCA8Px8CBA+WGfV8wZBZPb1DK7FwOFO87rbzVFM8ROpjr003dyx23kZrqVmwGdi8nIiIiIqIyyK50r1mzBitWrECPHj3w/PPPS+MPP/wwzp49K+tcR44cQbdu3aTHpmnhsbGxWL16NSZPnozc3Fw8++yzyMzMRMeOHbF9+3abTWl3dqbu5aoKTqNXarUw5uY6RAdzUyKrutUh3BHd7l7OpJuIiIiIiEonO+m+cuUK6tWrV2LcaDSiqKhI1rm6du0KIUSZzysUCrz55pt488035YZ5XzLcWsgvd49uE5WvL/TJyTA6QNKtv5XIugU6btJt2s7MmJcH482bUHp52TkiIiIiIiJyNLKnlzdq1Ag//vhjifHNmzejefPmVgmKKuZ20u1fodcrfX2Lz6Ozb9IthIDhRvH0cpUDTy9XajRSwzlWu4mIiIiIqDSyK90zZsxAbGwsrly5AqPRiC1btuDcuXNYs2YNtm7daosYyULWqHQDgCHbvmu6jbm5ELe2MHMLDLBrLPeiUCigqlYN+uRk6NPT4V6jhr1DIiIiIiIiByO70v3YY4/h22+/xa5du6DRaDBjxgz88ccf+Pbbb9GzZ09bxEgWqvya7uKk25idY6WIKsZU5VZ4e0Pp7W3XWMpjmv6uvxUzERERERHRnSq0T3enTp2wc+dOa8dClSRVuv0rWOn2cYxKtzOs5zYxNXpjB3MiIiIiIiqN7Er3f/7zH+zdu9cGoVBlCINB2uqrotPLpUq3ndd0m9ZHO3LnchO3gFuV7nRWuomIiIiIqCTZSfe1a9fQq1cvRERE4NVXX5X22Cb7Mtyxt7ZKq63QOVS+xa8z5tg36TZN1XbkPbpNTB3MWekmIiIiIqLSyE66v/76ayQnJ+P111/H4cOH0bJlSzRu3Bhz587FxYsXbRAiWcK0nlvp4wOFu3uFzqH09Sk+FyvdFjPt1c1KNxERERERlUZ20g0AAQEBePbZZ7F3715cunQJI0eOxNq1a0vdv5uqhrGSncuB2xVyu6/pvmFa0+0Ele5AVrqJiIiIiKhsFUq6TYqKinDkyBEcOnQIFy9eREhIiLXiIpkqu10YcHufbkfpXu7mVJVuJt1ERERERFRShZLuhIQEjBkzBiEhIRg5ciS0Wi22bt2Kf/75x9rxkYUqu10Y4Dj7dJsSWJVTVbo5vZyIiIiIiEqSvWVYjRo1kJ6ejl69emHFihXo378/1Gq1LWIjGSq7XRhwR6Xb3mu6nbTSLYSAQqGwc0RERERERORIZCfdb7zxBv7973/DvxIVVbI+Q2Zx0q20wppuY24uhNEIhbJSqw8qTKp0V3OGSvetPwzo9TDqdJWa3k9ERERERK5HdlY1ZswYKeH+559/OKXcQUjTy62wphtCwJhjn3XdwmCAISMDAOAW6PiVbqVaDaVPcdd3PZupERERERHRXWQn3UajEW+++Sb8/PwQFRWFqKgo+Pv7Y/bs2TAajbaIkSxwe3q5f4XPofTwgOLWUgF7bRtmyMoCbn2OVAEBdolBLtPWZoYMJt1ERERERGRO9vTy1157DStXrsS8efPQoUMHAMCBAwfwxhtvID8/H2+99ZbVg6Ty3e5e7l+p8yi1vjBcK4Axx05J96313Co/PyjcZH887cItsBqKLiVBz2ZqRERERER0F9lZzSeffIKPPvoIAwYMkMaaNm2KGjVq4MUXX2TSbSfW2DIMAFQ+vjBcuw6Dzj4dzE1TtJ1hPbeJVOnmtmFERERERHQX2dPL09PT0aBBgxLjDRo0QDqTDrvQZ2Sg4M8/AQDu4WGVOpdSa9qr206V7ltTtJ1hPbeJ261tw1jpJiIiIiKiu8lOuh9++GF88MEHJcY/+OADPPzww1YJiuTJ3LQZoqAAno0aQV2/fqXOpfIt7mBusFPS7ZSV7sDitecGNlIjIiIiIqK7yJ5ePn/+fPTt2xe7du1Cu3btAAAHDx7E5cuX8f3331s9QLo3odcj4/PPAQABTz9d6X2ilb7FnbjttVe3Id159ug2kSrdnOlBRERERER3kV3p7tKlC86dO4dBgwYhMzMTmZmZePzxx3Hu3Dl06tTJFjHSPWTv3gN9cjJUAQHQ9uld6fPdrnTbeU13oBNVuk1rujm9nIiIiIiI7lKh9tA1atRgwzQHkbF2LQDA/4khUN7a7qsyVNKabvvs0+2Ule5qrHQTEREREVHpZFe6V61ahU2bNpUY37RpEz755BOrBEWWyT97FnlHjgAqFQKefNIq51T6FCfdrHRbThXISjcREREREZVOdtIdHx+P6tWrlxgPDg7G3LlzrRIUWSb9008BAL6P9oR7SIhVzil1L7fXmu4bzlvpNmRmQuj1do6GiIiIiIgcieykOykpCbVr1y4xHhUVhaSkJKsEReXTZ2RA9+1WAEDg009b7bzSmu4cO3UvT3fCSre/P3CrgZ0hI8O+wRARERERkUORnXQHBwfj5MmTJcZPnDiBak60zZOzy9xcvE2YulFDeDVvbrXz2rN7ubGwUNof3Jkq3QqVCqqA4m3DuK6biIiIiIjuJDvpfvLJJ/Hyyy8jISEBBoMBBoMBe/bswfjx4zF06FBbxEh3EXo9MtYVbxMWOLzy24TdSaW13z7dBlPC6uYG5a04nIUbO5gTEREREVEpZHcvnz17Ni5evIgePXrAza345UajESNGjOCa7iqSveeObcL69rHquVW+pu7lVZ90603ruQMDrfqHhKpQPB3+b6kRHBEREREREVCBpNvDwwMbNmzA7NmzceLECXh5eeGhhx5CVFSULeKjUmSsLW6g5j/EOtuE3Unpa+peng0hRJUmv6ZKt8oJlylIle50VrqJiIiIiOi2Cu3TDQAPPvggHnzwQWvGQhbIP3cOeYcP39omzPrT+U2Vbuj1EDdvQuHtbfVrlOXOSrezMTV+06ezkRoREREREd0mO+k2GAxYvXo1du/ejbS0NBiNRrPn9+zZY7XgqKSMO7cJCw21+vkV3t6ASgUYDDBk50BZhUm34VbCqnLCpJuVbiIiIiIiKo3spHv8+PFYvXo1+vbtiyZNmjjd2ltnps/IQNY33wIAAocPt8k1FAoFVD4+MGRlwZitA0KCbXKd0pgSVqesdAcUx8w13UREREREdCfZSff69euxceNG9Olj3QZeVD6zbcJatLDZdZRaLQxZWTBU8bZhpoTVGdd0q9i9nIiIiIiISiF7yzAPDw/Uq1fPFrHQPQi9Hhmf22absLtJHcxzqjjpNlW6nWiPbhO3aqY13ax0ExERERHRbbKT7ldeeQWLFi2CEMIW8VAZsvfsgf6qbbYJu5vUwbyKK90GU6XbCaeXm6bEs9JNRERERER3kj29/MCBA0hISMC2bdvQuHFjuLu7mz2/ZcsWqwVnsmTJErzzzjtISUnBww8/jMWLF6NNmzZWv44js+U2YXdTae1d6XbG6eXFMRvz8mC8eRNKLy87R0RERERERI5AdtLt7++PQYMG2SKWUm3YsAFxcXFYvnw52rZti4ULFyImJgbnzp1DcHDVNfmyJ1tvE3Y3pa8WQNVWuoUQd1S6nS/pVvr4QOHuDlFUBEN6OpQ1atg7JCIiIiIicgCyk+5Vq1bZIo4yLViwAGPGjMGoUaMAAMuXL8d3332Hjz/+GFOnTq3SWOxF2iasp222CbubytcHAIq7l1cRY24eREEBAMAtMKDKrmstCoUCqmrVoE9JgT49He5MuomIiIiICBVIuqtSYWEhjh49imnTpkljSqUS0dHROHjwoKxzFaWloehWUudMjLl5yPp2KwAg8GnbbBN2N1OlW5+WhqLU1Cq5ZtHVqwCK9wmvyr3BrcktMBD6lBQUnD8Pt/tkFgYRERER0f2qKCvLouMsTroDAgJK7Zjt5+eHBx98EJMmTULPnj0tj9AC169fh8FgQEhIiNl4SEgIzp49W+prCgoKUHBHcq3TFVdrL/btBx+VyqrxVSV1gwZQN2sGo9Fo82spb1W6s77+Bllff2Pz693JLTCwSn5GWzA1gEueOq2cI4mIiIiIyNnlGAwWHWdx0r1w4cJSxzMzM3H06FH069cPmzdvRv/+/S09pU3Ex8dj1qxZJZ9QqYq/nJGnJ9xGPI1r165VyeUMDzwIRbVqEJmZVXI9iVIJVdcuSEtLq9rrWolo3w44cgQoKrJ3KERERERE5CAUwkp7fy1YsACbN2/Gzz//bI3TASieXu7t7Y3Nmzdj4MCB0nhsbCwyMzPx9ddfl3hNaZXuiIgI3LhxA/7+/laLjYiIiIiIiO5fmZmZqFatGrKysqDVass8zmpruvv164c5c+ZY63QAAA8PD7Rs2RK7d++Wkm6j0Yjdu3dj3Lhxpb5GrVZDXcqWWkqlEkql7G3JiYiIiIiIiEqwNL+0WtJdUFAADw8Pa51OEhcXh9jYWLRq1Qpt2rTBwoULkZubK3UzJyIiIiIiInJUVku6V65ciWbNmlnrdJInnngC165dw4wZM5CSkoJmzZph+/btJZqrERERERERETkai9d0x8XFlTqelZWFY8eO4c8//8T+/fvRsmVLqwZYWTqdDn5+fsjIyOCabiIiIiIiIrKKzMxMBAQEWG9N9/Hjx0sd12q16NmzJ7Zs2YLatWvLj5SIiIiIiIjIRVmcdCckJNgyDpsxFfJ1Oh0bqREREREREZFV6HQ6ALdzzrJYbU23o7px4wYAICoqys6REBERERERkau5ceMG/Pz8ynze5ZPuwMBAAEBSUtI93whyLq1bt8bhw4ftHQZZCe+n6+E9dS28n66H99T18J66Ft5P55CVlYXIyEgp5yyLyyfdpinlfn5+91zcTs5FpVLxfroQ3k/Xw3vqWng/XQ/vqevhPXUtvJ/OpbxlzFzkTE5p7Nix9g6BrIj30/XwnroW3k/Xw3vqenhPXQvvp2uxeMswZ2XaMqy8Nu5ERERERERElrI013T5SrdarcbMmTOhVqvtHQoRERERERG5CEtzTZevdBMRERERERHZi8tXuomIiIiIiIjshUk3VbklS5agVq1a8PT0RNu2bfHrr79Kzz333HOoW7cuvLy8EBQUhMceewxnz54t95ybNm1CgwYN4OnpiYceegjff/+92fNCCMyYMQNhYWHw8vJCdHQ0/vrrL6v/bPeje91PADh48CC6d+8OjUYDrVaLzp074+bNm/c85969e9GiRQuo1WrUq1cPq1evln1dqrh7vbfnz5/HoEGDEBQUBK1WiyFDhiA1NbXcc/Ke2sf+/fvRv39/hIeHQ6FQ4KuvvpKeKyoqwpQpU/DQQw9Bo9EgPDwcI0aMwNWrV8s9L++n/dzrngLAyJEjoVAozL569epV7nl5T+2jvPuZk5ODcePGoWbNmvDy8kKjRo2wfPnycs978uRJdOrUCZ6enoiIiMD8+fNLHFPev51Ivvj4eLRu3Rq+vr4IDg7GwIEDce7cObNjVqxYga5du0Kr1UKhUCAzM9Oic/N31MkJoiq0fv164eHhIT7++GPx+++/izFjxgh/f3+RmpoqhBDiww8/FPv27ROJiYni6NGjon///iIiIkLo9foyz/nTTz8JlUol5s+fL86cOSOmT58u3N3dxalTp6Rj5s2bJ/z8/MRXX30lTpw4IQYMGCBq164tbt68afOf2ZWVdz9//vlnodVqRXx8vDh9+rQ4e/as2LBhg8jPzy/znBcuXBDe3t4iLi5OnDlzRixevFioVCqxfft2i69LFXev9zYnJ0fUqVNHDBo0SJw8eVKcPHlSPPbYY6J169bCYDCUeU7eU/v5/vvvxWuvvSa2bNkiAIgvv/xSei4zM1NER0eLDRs2iLNnz4qDBw+KNm3aiJYtW97znLyf9nWveyqEELGxsaJXr14iOTlZ+kpPT7/nOXlP7ae8+zlmzBhRt25dkZCQIBITE8WHH34oVCqV+Prrr8s8Z1ZWlggJCRHDhg0Tp0+fFp9//rnw8vISH374oXSMJf92IvliYmLEqlWrxOnTp8Vvv/0m+vTpIyIjI0VOTo50zPvvvy/i4+NFfHy8ACAyMjLKPS9/R50fk26qUm3atBFjx46VHhsMBhEeHi7i4+NLPf7EiRMCgPj777/LPOeQIUNE3759zcbatm0rnnvuOSGEEEajUYSGhop33nlHej4zM1Oo1Wrx+eefV+bHue+Vdz/btm0rpk+fLuuckydPFo0bNzYbe+KJJ0RMTIzF16WKu9d7u2PHDqFUKkVWVpb0fGZmplAoFGLnzp1lnpP31DGU9g/6u/36668CgLh06VKZx/B+Oo6yku7HHntM1nl4Tx1DafezcePG4s033zQba9GihXjttdfKPM/SpUtFQECAKCgokMamTJki6tevLz0u799OZB1paWkCgNi3b1+J5xISEixOuvk76vwcfnr5vaZJ5OfnY+zYsahWrRp8fHwwePBgi6Y5ciqyfRQWFuLo0aOIjo6WxpRKJaKjo3Hw4MESx+fm5mLVqlWoXbs2IiIipPFatWrhjTfekB4fPHjQ7JwAEBMTI50zMTERKSkpZsf4+fmhbdu2pV6XLFPe/UxLS8OhQ4cQHByM9u3bIyQkBF26dMGBAwfMztO1a1eMHDlSelze/ZT7OSLLlffeFhQUQKFQmHXo9PT0hFKpNLuvvKfOKysrCwqFAv7+/tIY76fz2bt3L4KDg1G/fn288MILuHHjhtnzvKfOo3379vjmm29w5coVCCGQkJCAP//8E48++qh0zMiRI9G1a1fp8cGDB9G5c2d4eHhIYzExMTh37hwyMjKkY+51z8k6srKyAACBgYGyXsffUdfj0En3hg0bEBcXh5kzZ+LYsWN4+OGHERMTg7S0NADAxIkT8e2332LTpk3Yt28frl69iscff/ye5/z555/x5JNPYvTo0Th+/DgGDhyIgQMH4vTp09Ix8+fPx3//+18sX74chw4dgkajQUxMDPLz823687q669evw2AwICQkxGw8JCQEKSkp0uOlS5fCx8cHPj4+2LZtG3bu3Gn2fxx169ZF9erVpccpKSn3PKfpf8u7LslT3v28cOECAOCNN97AmDFjsH37drRo0QI9evQw+yNWZGQkwsLCpMdl3U+dToebN29a/Dki+cp7bx955BFoNBpMmTIFeXl5yM3NxaRJk2AwGJCcnCwdz3vqnPLz8zFlyhQ8+eSTZnuN8n46l169emHNmjXYvXs33n77bezbtw+9e/eGwWCQjuE9dR6LFy9Go0aNULNmTXh4eKBXr15YsmQJOnfuLB0TFhaGyMhI6XFZ99P03L2O4f20nv9v796Doqz+P4C/AVnAQSAEdgcRRCVFCc0LijqQQuBl8JImWmOApQ3uaogoZlxyLHUmRA01hgqYNNRs8kpDsy6ghVCjrU4okJKXSV28zOAFFJj2/P7gx3594qqxsuD7NePonufs5znPHp51P5yz5+j1esTExGDixInw8fF5qufyHu15enV1A9qSmpqKJUuWICoqCgCQnp6O3NxcZGZmIjo6Gl9//TVycnIwZcoU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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } ], - "execution_count": null, - "outputs": [] + "source": [ + "# heat demand results\n", + "res1_idx = res1[res1['name'] == 'heat_consumer'].index[0]\n", + "df_hd1 = res1.data_source.loc[res1_idx].df\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "print(df_hd1)\n", + "df_hd1.q_received_kw.plot(ax=axes[0], color='C2')\n", + "axes[0].set_ylabel('Demand received power (kW)')\n", + "axes[0].set_title('Part 1 (GenericMapping): Heat demand')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hd1.q_uncovered_kw.plot(ax=axes[1], color='C3')\n", + "axes[1].set_ylabel('Uncovered demand (kW)')\n", + "axes[1].set_title('Uncovered demand')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] }, { "cell_type": "markdown", @@ -185,12 +551,215 @@ "\n", "Chain: **Const profile** → **Electric boiler** → **Heat storage (uniform tank)** → **Heat demand**.\n", "\n", - "The electric boiler supplies the storage with fluid (temperature + mass flow); the storage is configured with `capacity_kg`, optional `init_temperature_c`, `min_temp_c`, `max_temp_c` for SOC from temperature. The run uses `continue_on_divergence=True` so that if the control loop does not converge in some timesteps, the time series still completes (you may see gaps or zeros in results for those steps)." + "The electric boiler supplies the storage with fluid (temperature + mass flow); the storage is configured with `capacity_kg`, optional `init_temperature_c`, `min_temp_c`, `max_temp_c` for SOC from temperature." ] }, { "cell_type": "code", + "execution_count": 8, "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ + { + "name": "index", + "rawType": "datetime64[ns, UTC]", + "type": "unknown" + }, + { + "name": "demand_power", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_feed_demand_c", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_return_demand_c", + "rawType": "float64", + "type": "float" + } + ], + "ref": "749c1397-fb1a-49f0-b1d1-beb417a5e8cd", + "rows": [ + [ + "2020-01-01 00:00:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 00:15:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 00:30:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 00:45:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:00:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:15:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:30:00+00:00", + "60.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:45:00+00:00", + "60.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 02:00:00+00:00", + "60.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 02:15:00+00:00", + "60.0", + "55.0", + "25.0" + ] + ], + "shape": { + "columns": 3, + "rows": 10 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
demand_powert_feed_demand_ct_return_demand_c
2020-01-01 00:00:00+00:000.055.025.0
2020-01-01 00:15:00+00:000.055.025.0
2020-01-01 00:30:00+00:000.055.025.0
2020-01-01 00:45:00+00:000.055.025.0
2020-01-01 01:00:00+00:000.055.025.0
2020-01-01 01:15:00+00:000.055.025.0
2020-01-01 01:30:00+00:0060.055.025.0
2020-01-01 01:45:00+00:0060.055.025.0
2020-01-01 02:00:00+00:0060.055.025.0
2020-01-01 02:15:00+00:0060.055.025.0
\n", + "
" + ], + "text/plain": [ + " demand_power t_feed_demand_c t_return_demand_c\n", + "2020-01-01 00:00:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 00:15:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 00:30:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 00:45:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 01:00:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 01:15:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 01:30:00+00:00 60.0 55.0 25.0\n", + "2020-01-01 01:45:00+00:00 60.0 55.0 25.0\n", + "2020-01-01 02:00:00+00:00 60.0 55.0 25.0\n", + "2020-01-01 02:15:00+00:00 60.0 55.0 25.0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Part 2 input: demand power and feed/return temperatures for the heat demand (same time range as Part 1)\n", "demand_kw2 = np.zeros(n_steps)\n", @@ -203,13 +772,43 @@ "}, index=dur)\n", "profile2 = DFData(df2)\n", "df2.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([, , ], dtype=object)" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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PHhQzzzzjEPf5YwZMzRs2DB9++23uvPOOyVJWVlZWrFihVavXq3Vq1crPT1dc+bMqVR/U6dOVXp6ulauXKn//e9/SktL01dffWXXZsKECcrIyNCyZcv0zTff6C9/+YsGDx6sPXv22NoUFhbq2Wef1bJly5Samqq0tDQNGzZMa9as0Zo1a/Taa6/phRdesIU86eSM06xZs/T1119rxYoV2r9/vy3oneqhhx7SU089pS+//FI+Pj6285akt956SzNmzNDs2bP15ZdfKiYmRs8//3ylv8+FCxcqKSlJd911l7799lutWrVKLVq0qPTnq6rKD+i0Wq2aOHGievXqpfbt20uSfvjhB0knfzjmzp2rTp066dVXX9WAAQO0Y8cOtWzZ8rR+SkpKVFJSYntvsViqWhIAAECdUXSiSN2WdnPJsbeM2KIg3/M/JDQ0NFR+fn4KCgpSdHR0pft/7LHHdOWVV0o6+bvi7NmztW7dOvXo0UOS1KxZM3366ad64YUX1LdvX9s/skdGRiosLMzh8xkxYoRGjx5tt81qtSolJUUhISGSpNtvv13r16/XE088cc6+CgoK9PLLL+v111/XgAEDJElLlixR48aNbW2ys7O1ePFiZWdnKzY2VpI0ZcoUpaamavHixZo9e7akkyFl4cKFat68uSTppptu0muvvaZDhw4pODhYbdu21RVXXKGNGzfqlltukSS7gNKsWTM9++yz6tq1qwoKChQcHGzb98QTT6hv376STgbJa665RsXFxQoICND8+fM1ZswYjRkzRpL0+OOPa926dZWetXn88cd177336p///KdtW9euXSv12eqo8oxNUlKSduzYoWXLltm2Wa1WSdLf//53jR49WpdccomefvpptWrVSq+88soZ+0lOTlZoaKjtVZkUDwAAgAtXly5dbP9/7969Kiws1JVXXqng4GDb69VXX1VWVpbTj1chISHBFmokKSYmxu6SrrPJyspSaWmpunX7I3SGh4erVatWtvfffvutysvLddFFF9mdU3p6ut05BQUF2UKNJEVFRSkhIcEuoERFRdnVtXXrVg0ZMkTx8fEKCQmxhZfs7Gy7Ojt06GB3bpJs/ezatcuufkm2UHk+hw8fVk5Oji3U1aYqzdhMmDBBq1ev1scff2yXPiu+lLZt29q1b9OmzWlfZoVp06Zp8uTJtvcWi4VwAwAAcB6B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paXGddddZzRu3NjYvn273VLDp67yxDhU37nG4dixY8aUKVOMjIwMY9++fca6deuMzp07Gy1btrRbhp5xqJ5zjYFhGEbfvn2Ndu3aGRs3bjR++OEHY/HixUZAQIDx/PPP2/p44IEHjNtvv932Pi8vz4iKijJuv/12Y8eOHcayZcuMoKCg05Z7Pt/f43XJ+PHjjdDQUCMtLc3uvzmFhYW2NgcPHjS2bdtmvPTSS4Yk4+OPPza2bdtmHDlyxNaGPw/uxanLPV922WXGhAkTbO/Ly8uNRo0aGcnJyUZeXp7h6+trvPPOO7b9u3fvNiQZGRkZZ+3z5ptvNq699lq7bT169DhtmeG5c+fa9ufn59fpZYYNwzCee+45Iz4+3vDz8zMuu+wyY/PmzYZhGMbPP/9sXHXVVUZkZKTh6+trNG7c2BgxYoSxe/duu883adLEmD59ut22t956y7jooosMPz8/o127dmdddjsqKsrw9/c3BgwYYGRmZtboebq7s41DheTkZKNx48ZGUFCQ0aNHD+OTTz6x29+3b19j5MiRdts2btxodOrUyfDz8zOaNWtmLF682OHj1jXn+j7uv/9+IyoqyvD19TVatmxpPPXUU4bVarX7PONQfRXLpf75NXLkSGPfvn1n3CfJ2Lhxo60PxqH6zjUOhYWFxqBBg4yIiAjD19fXaNKkiTF27NjTftliHKrnXGNgGCd/mR41apQRGxtrBAQEGK1atTrtv0sjR440+vbta9fv119/bVx++eWGv7+/0ahRI2POnDmnHft8f4/XJWf7b86pP7vTp08/bxv+PLgXk2EYhrNmf958802NHDlSL7zwgi677DLNnz9fb731lnbv3q2oqCiNHz9ea9asUUpKisxms+6++25JJ5d0rjBgwAANGzbMdjnaZ599pr59+2rOnDm65pprtGzZMs2ePVtfffWVbeWKJ598UnPmzNGSJUvUtGlTPfLII/rmm2+0c+dO283wAAAAAC5cTls8QJJuueUW/fLLL3r00UeVm5urTp06KTU11XZj/9NPPy0vLy/deOONKikpUWJiop5//nm7Pipu4q3Qs2dPLV26VA8//LAefPBBtWzZUitWrLBbju++++7T8ePHdddddykvL0+XX365UlNTCTUAAABAHeHUGRsAAAAAcAW3WxUNAAAAABxFsAEAAADg8Qg2AAAAADwewQYA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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } ], - "execution_count": null, - "outputs": [] + "source": [ + "df2.plot(subplots=True, figsize=(10, 6))" + ] }, { "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ "from pandaprosumer.create_controlled import create_controlled_electric_boiler\n", "\n", @@ -220,7 +819,8 @@ "cp_result2 = ['qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", "cp_idx2 = create_controlled_const_profile(prosumer2, cp_input2, cp_result2, profile2, period_id2, 0, 0)\n", "\n", - "eb_idx = create_controlled_electric_boiler(prosumer2, max_p_kw=150.0, name='electric_boiler',\n", + "eb_max_p_kw = 150.0\n", + "eb_idx = create_controlled_electric_boiler(prosumer2, max_p_kw=eb_max_p_kw, name='electric_boiler',\n", " period=period_id2, level=1, order=0)\n", "\n", "capacity_kg = 2000.0\n", @@ -231,13 +831,24 @@ " init_temperature=init_t, min_temp_c=min_t, max_temp_c=max_t,\n", " period=period_id2, level=1, order=1)\n", "hd_idx2 = create_controlled_heat_demand(prosumer2, period=period_id2, level=1, order=2, name='heat_consumer')" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": 10, "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from pandaprosumer.mapping import GenericMapping, FluidMixMapping\n", "\n", @@ -246,24 +857,72 @@ " responder_id=hd_idx2, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=0)\n", "FluidMixMapping(prosumer2, initiator_id=eb_idx, responder_id=hs_idx2, order=0)\n", "FluidMixMapping(prosumer2, initiator_id=hs_idx2, responder_id=hd_idx2, order=0)" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": 11, "metadata": {}, + "outputs": [], "source": [ "run_timeseries(prosumer2, period_id2, verbose=False, max_iter=15, continue_on_divergence=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "res2 = prosumer2.time_series.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } ], - "execution_count": null, - "outputs": [] + "source": [ + "# Electric boiler results\n", + "res2_idx = res2[res2['name'] == 'electric_boiler'].index[0]\n", + "df_eb2 = res2.data_source.loc[res2_idx].df\n", + "fig, ax = plt.subplots(figsize=(10, 3))\n", + "df_eb2.p_kw.plot(ax=ax, color='C4')\n", + "ax.set_ylabel('Electric boiler power (kW)')\n", + "ax.set_title('Electric boiler power')\n", + "ax.grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] }, { "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "res2 = prosumer2.time_series.copy()\n", "res2_idx = res2[res2['name'] == 'tank_fluid_mix'].index[0]\n", "df_hs2 = res2.data_source.loc[res2_idx].df\n", "\n", @@ -278,31 +937,155 @@ "axes[1].grid(True, alpha=0.3)\n", "plt.tight_layout()\n", "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAG9CAYAAADp61eNAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOXFJREFUeJzt3Xl8lNXd///3JGQDTGIgC4GEXRZBUrYQF6AkJSwCEayYUlmkYBWwGLSsgtjWWAVBBURqxdtbUYrfioqYNoZViKABqexKERSYBMUkEiCE5Pz+4MfcjmRFhpDD6/l4zEPnXOc61/lMYubttTqMMUYAAACW8KruCQAAAFxOhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKvUqu4JVIeSkhIdPXpU1113nRwOR3VPBwAAVIIxRj/88IMiIyPl5VX2/plrMtwcPXpUUVFR1T0NAABwCb7++ms1atSozOXXZLi57rrrJJ3/cAIDA6t5NgAAoDLy8/MVFRXl+h4vyzUZbi4cigoMDCTcAABQw1R0SgknFAMAAKsQbgAAgFUINwAAwCrX5Dk3AICqKy4uVlFRUXVPAxbz8fGRt7f3zx6HcAMAKJcxRk6nU7m5udU9FVwDgoODFRER8bPuQ0e4AQCU60KwCQsLU+3atbn5KTzCGKNTp04pJydHktSgQYNLHotwAwAoU3FxsSvY1KtXr7qnA8sFBARIknJychQWFnbJh6g4oRgAUKYL59jUrl27mmeCa8WF37Wfc34X4QYAUCEOReFKuRy/a4QbAABgFcINAACwCuEGAABYhXADAACsQrgBAFjprbfeUvv27RUQEKB69eopISFBBQUFKikp0eOPP65GjRrJz89PMTExSktLc1v3m2++UXJyskJCQlSnTh117txZW7ZsqaZKUFXc5wYAUGnGGJ0uKq6WbQf4eFf6Sppjx44pOTlZTz31lO644w798MMP2rhxo4wxevbZZzV37ly9+OKL+sUvfqGXX35ZAwcO1K5du9SyZUudPHlSPXr0UMOGDfXuu+8qIiJC27ZtU0lJiYcrxOVCuAEAVNrpomK1nfmvatn27scTVdu3cl9bx44d07lz5zR48GA1btxYktS+fXtJ0pw5czR58mTdfffdkqS//vWvWrt2rebPn6+FCxdq2bJlOn78uD755BOFhIRIklq0aOGBiuApHJYCAFinQ4cOio+PV/v27fXrX/9af/vb3/T9998rPz9fR48e1S233OLW/5ZbbtGePXskSZ999pl+8YtfuIINah723AAAKi3Ax1u7H0+stm1Xlre3t9LT07V582b9+9//1vPPP6/p06crPT294u38/48AQM1FuAEAVJrD4aj0oaHq5nA4dMstt+iWW27RzJkz1bhxY2VkZCgyMlKbNm1Sjx49XH03bdqkrl27SpJuuukmvfTSSzpx4gR7b2qomvEbCgBAFWzZskUZGRnq3bu3wsLCtGXLFh0/flxt2rTRI488olmzZql58+aKiYnR0qVL9dlnn+n111+XJCUnJ+uJJ55QUlKSUlNT1aBBA23fvl2RkZGKi4ur5spQGYQbAIB1AgMDtWHDBs2fP1/5+flq3Lix5s6dq759+yoxMVF5eXmaNGmScnJy1LZtW7377rtq2bKlJMnX11f//ve/NWnSJPXr10/nzp1T27ZttXDhwmquCpXlMMaY6p7ElZafn6+goCDl5eUpMDCwuqcDAFetM2fO6ODBg2ratKn8/f2rezq4BpT3O1fZ72+ulgIAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACohCZNmmj+/PmV7v/YY48pJibG9X7kyJFKSkq67PO6XBwOh1auXFlhv6+++koOh0OfffaZx+d0qXhwJgAAV8Czzz6ra/BxjtWCcAMAwBUQFBTk8W0UFRXJx8fH49u52nFYCgBQecZIZwuq51XFvR4FBQUaPny46tatqwYNGmju3Lnq2bOnJk6cWOG6OTk5GjBggAICAtS0aVO9/vrrF/XJzc3V7373O4WGhiowMFC9evXSjh07yhzzx4ellixZosjISJWUlLj1GTRokO69917X+3feeUcdO3aUv7+/mjVrptmzZ+vcuXOu5Q6HQy+88IIGDhyoOnXq6C9/+Uul1vviiy/UvXt3+fv7q23btkpPT6/wMylLcXGx7r33XrVu3VqHDx/Www8/rNtvv921fP78+XI4HEpLS3O1tWjRQi+99NIlb7Mi7LkBAFRe0Snpicjq2fa0o5JvnUp3f+SRR7R+/Xq98847CgsL07Rp07Rt2za382DKMnLkSB09elRr166Vj4+PHnzwQeXk5Lj1+fWvf62AgAB98MEH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Cl6/fn15e3srOzvbrT07O1sRERGVGuOll17S6dOnJUk+Pj5l9nv44YeVnp6uOXPmqEWLFgoICNCdd96ps2fPuvX76RgOh0MlJSWVmgsAAPCcGhFufH191alTJ2VkZCgpKUmSVFJSooyMDI0fP75SYzRs2LBS/TZt2qSRI0fqjjvukHR+T85XX311KdMGAADVoEaEG0lKSUnRiBEj1LlzZ3Xt2lXz589XQUGBRo0aJUlyOp1yOp368ssvJUmff/6560qmkJCQSm+nZcuW+uc//6kBAwbI4XDo0UcfZY8MAAA1SI0JN0OHDtXx48c1c+ZMOZ1OxcTEKC0tzXWS8eLFizV79mxX/+7du0uSli5dqpEjR5Y5bklJiWrV+r+P4ZlnntG9996rm2++WfXr19fkyZOVn5/vmaIAAMBl5zDGmOqeRHV68skn9dprr2nnzp3VPRUAAHAZ1Jg9N5fbqVOntHfvXi1dulR9+/at7ukAAIDL5Jq5FPynlixZooSEBHXo0EEzZ86s7ukAAIDL5Jo/LAUAAOxyze65AQAAdiLcAAAAq9TIcJOamqouXbrouuuuU1hYmJKSki56aOWZM2c0btw41atXT3Xr1tWQIUPc7nC8Y8cOJScnKyoqSgEBAWrTpo2effbZi7a1bt06dezYUX5+fmrRooVeeeUVT5cHAAB+hhoZbtavX69x48bp448/Vnp6uoqKitS7d28VFBS4+jz00EN67733tGLFCq1fv15Hjx7V4MGDXcuzsrIUFham1157Tbt27dL06dM1depULViwwNXn4MGD6t+/v375y1/qs88+08SJE/W73/1O//rXv65ovQAAoPKsOKH4+PHjCgsL0/r169W9e3fl5eUpNDRUy5Yt05133ilJ2rt3r9q0aaPMzEx169at1HHGjRunPXv2aM2aNZKkyZMn6/3333e7B87dd9+t3NxcpaWleb4wAABQZTVyz81P5eXlSZLrMQtZWVkqKipSQkKCq0/r1q0VHR2tzMzMcsf58aMaMjMz3caQpMTExHLHAAAA1avG38SvpKREEydO1C233KJ27dpJOv+cKV9fXwUHB7v1DQ8Pl9PpLHWczZs3a/ny5Xr//fddbU6n0/V4hx+PkZ+fr9OnTysgIODyFgMAAH62Gh9uxo0bp507d+qjjz665DF27typQYMGadasWerdu/dlnB0AALjSavRhqfHjx2vVqlVau3atGjVq5GqPiIjQ2bNnlZub69Y/OztbERERbm27d+9WfHy8xo4dqxkzZrgti4iIcLvC6sIYgYGB7LUBAOAqVSPDjTFG48eP19tvv601a9aoadOmbss7deokHx8fZWRkuNr27dunw4cPKy4uztW2a9cu/fKXv9SIESP0l7/85aLtxMXFuY0hSenp6W5jAACAq0uNvFrqgQce0LJly/TOO++oVatWrvagoCDXHpX7779fq1ev1iuvvKLAwEBNmDBB0vlza6Tzh6J69eqlxMREPf30064xvL29FRoaKun8peDt2rXTuHHjdO+992rNmjV68MEH9f777ysxMfFKlQsAAKqgRoYbh8NRavvSpUs1cuRISedv4jdp0iS98cYbKiwsVGJiohYtWuQ6LPXYY49p9uzZF43RuHFjffXVV67369at00MPPaTdu3erUaNGevTRR13bAAAAV58aGW4AAADKUiPPuQEAACgL4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArPL/AXrJYj43/0ivAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } ], - "execution_count": null, - "outputs": [] + "source": [ + "df_hs2.plot()" + ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 25, "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", + "2020-01-01 00:00:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:15:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:30:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:45:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 01:00:00+00:00 0.0 0.0 0.0 \n", + "... ... ... ... \n", + "2020-01-01 22:45:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:00:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:15:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:30:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:45:00+00:00 0.0 0.0 0.0 \n", + "\n", + " t_in_c t_out_c \n", + "2020-01-01 00:00:00+00:00 55.0 25.0 \n", + "2020-01-01 00:15:00+00:00 55.0 25.0 \n", + "2020-01-01 00:30:00+00:00 55.0 25.0 \n", + "2020-01-01 00:45:00+00:00 55.0 25.0 \n", + "2020-01-01 01:00:00+00:00 55.0 25.0 \n", + "... ... ... \n", + "2020-01-01 22:45:00+00:00 0.0 0.0 \n", + "2020-01-01 23:00:00+00:00 0.0 0.0 \n", + "2020-01-01 23:15:00+00:00 0.0 0.0 \n", + "2020-01-01 23:30:00+00:00 0.0 0.0 \n", + "2020-01-01 23:45:00+00:00 0.0 0.0 \n", + "\n", + "[96 rows x 5 columns]\n" + ] + }, + { + "data": { + "image/png": "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u7u7RZtKlSopJCTE4pzr1q1TQkKC+vTpk+15bPlcbNmyRaNHj9YTTzyhV155RZcvX1bHjh118ODBLHV79eqlGzduKDIyUp07d9bbb7+tp59++o7XLUkjR47U/v37NXnyZA0bNkzffPONRowYYVFnwoQJmjp1qho2bKjXX39d1atXV1hYWI7jERQUZP5MZfryyy9Vq1YtqxO19PT0LJ+5S5cuZZm5IN16NKNVq1b65JNPNGDAAL399ttq1qyZJkyYoIiICIu61ozBxx9/LBcXF7Vo0cL8+/fMM8/kGOv169fVrl07fffddxoxYoReeuklbd26VS+++GKWups2bVLLli2VmJioyZMna/r06YqPj1fbtm31008/Zanfu3dvZWRk6LXXXlNwcLCmTZumOXPmqH379ipfvrxmzJihatWqacyYMRZfzCQmJuq9995T69atNWPGDE2ZMkUXL15UWFiYfv755yznWbp0qV5//XU988wzmjZtmk6ePKlHH31UaWlp5jrff/+9evbsKZPJpMjISIWHh2vw4ME2rSUBAP84AwBQ4CxevNiQZGzcuNG4ePGi8eeffxrLli0zypQpYxQvXtw4c+aMYRiGkZycbNEuNTXVqFu3rtG2bVuLckmGg4ODcejQIYvyixcvGpKMyZMn2x3rDz/8YJhMJuPll1++Y92JEycakoy//voryzFJ2f4sXrzYXGfy5MnG7f9rO3HiRJY6t/d3+3VlvqcnTpwwDMMwLly4YDg7OxtdunQxMjIyzPX+85//GJKMgQMHmsuio6MNScaKFSuMNWvWGCaTyTh9+rRhGIYxduxYo0qVKoZhGEarVq2MOnXqWMRRsWJFi74MwzDeffddQ5LxySefGD/++KPh6OhojB492qJOZry7du0y5s2bZ5QsWdI83v/617+MNm3amPvv0qWLRVtbPheSjN27d5vLTp06Zbi6uho9evQwl2W+7926dbNo/+yzzxqSjP379+d4vZnXERoaavE+P//884ajo6MRHx9vGIZhxMbGGk5OTkZ4eLjFOaZMmZJlPDJNnz7dkGTExcVlOV92n4m/a9WqVY6fu8yf119/3Vz/1VdfNdzd3Y1ff/3Vop/x48cbjo6O5s+EYVg/Bu7u7tleW3bmzJljSDI+//xzc1lSUpJRrVo1Q5IRHR1tGIZhZGRkGNWrVzfCwsIs3vPk5GSj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2lQuLi53HXRBVLJkSUm3tljz8vK6t8EAAAAAAPJdfHy8KlasaM4Hc2P1VHNnZ2c1bNhQbdq0UZs2bdSsWTMVL178roMtDBITE+Xp6amrV6+SeAMAAABAERAfH69SpUopISFBHh4euda1+o731atX5e7unmud69evk4wDAAAAAHCb3J8Av01m0v3cc89lezwpKUmdO3fOm6gAAAAAACgkrE68M3377beaPHmyRVlSUpI6duxYJFc0BwAAAAAgNzavav7999+rRYsWKlWqlEaPHq2//vpLYWFhcnJy0rp16/IjRgAAAAAACiybE++qVatq/fr1atOmjRwcHPTZZ5/JxcVF33777R2fAQcAAAAAoKixax/vBx98UGvWrFH79u0VHBysNWvWsKgaAAAAAADZsCrxfuihh2QymbKUu7i46Ny5c2rWrJm5bO/evXkXHQAAAAAABZxViXd4eHg+hwEAAAAAQOFkMgzDuNdBFHSJiYny9PTU1atX5eXlda/DAQAAAADks/j4eJUqVUoJCQny8PDIta5V24mRmwMAAAAAYB+rEu86depo2bJlSk1NzbXe8ePHNWzYML322mt5EhwAAAAAAAWdVc94z507V+PGjdOzzz6r9u3bq2HDhvL395erq6uuXr2qw4cPa9u2bTp06JBGjBihYcOG5XfcAAAAAAAUCDY9471t2zYtX75cW7du1alTp3T9+nWVLVtWDz30kMLCwtSvXz+VKlUqP+O9L/GMNwAAAAAULbY8423TPt7NmzdX8+bN7yo4AAAAAACKEque8QYAAAAAAPYh8QYAAAAAIB+ReAMAAAAAkI8KXOI9f/58VapUSa6urgoODtZPP/2Ua/0VK1aoZs2acnV1Vb169bR27doc6/773/+WyWTSnDlz8jhqAAAAAEBRZVPiffPmTX300UeKi4vLr3hytXz5ckVERGjy5Mnau3ev6tevr7CwMF24cCHb+jt27FDfvn01ZMgQ7du3T+Hh4QoPD9fBgwez1P3yyy/1448/yt/fP78vAwAAAABQhNi0nZgkubm56ciRI6pYsWJ+xZSj4OBgNWrUSPPmzZMkZWRkKCAgQCNHjtT48eOz1O/du7eSkpK0Zs0ac1mTJk3UoEEDLVy40Fx29uxZBQcH67vvvlOXLl00evRojR492uq42E4MAAAAAIqWfNtOTJIaN26sn3/++R9P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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Heat demand results\n", + "res2_idx = res2[res2['name'] == 'heat_consumer'].index[0]\n", + "df_hd2 = res2.data_source.loc[res2_idx].df\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "print(df_hd2)\n", + "df_hd2.q_received_kw.plot(ax=axes[0], color='C2')\n", + "axes[0].set_ylabel('Demand received power (kW)')\n", + "axes[0].set_title('Part 2 (FluidMixMapping): Heat demand')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hd2.q_uncovered_kw.plot(ax=axes[1], color='C3')\n", + "axes[1].set_ylabel('Uncovered demand (kW)')\n", + "axes[1].set_title('Uncovered demand')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "## Summary\n", - "- **Part 1**: Power-only chain with GenericMapping; storage input is `q_received_kw`, output is `soc` and `q_delivered_kw`. Fully convergent.\n", - "- **Part 2**: Fluid chain (Electric boiler → Uniform heat storage → Heat demand) with FluidMixMapping; storage uses uniform tank and optional SOC from temperature (`min_temp_c`, `max_temp_c`). Run uses `continue_on_divergence=True` so the time series completes even if the control loop does not converge in some steps; same result columns `soc`, `q_delivered_kw`." + "df_hd2.plot()" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", "name": "python", - "version": "3.10.0" + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.15" } }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} From e2e0f5de3d2be90f94798c3ea082c49939a785fd Mon Sep 17 00:00:00 2001 From: mena138 Date: Thu, 5 Mar 2026 12:50:44 +0100 Subject: [PATCH 14/33] wip --- .../controller/models/heat_storage.py | 37 +- tests/models/test_simple_heat_storage.py | 100 +- tutorials/heat_storage_tutorial.ipynb | 2070 ++++++++--------- 3 files changed, 1156 insertions(+), 1051 deletions(-) diff --git a/src/pandaprosumer/controller/models/heat_storage.py b/src/pandaprosumer/controller/models/heat_storage.py index 0d6cb65..7ce7acb 100644 --- a/src/pandaprosumer/controller/models/heat_storage.py +++ b/src/pandaprosumer/controller/models/heat_storage.py @@ -95,8 +95,12 @@ def _soc_from_temperature(self, prosumer): def _calculate_heat_losses(self, prosumer): """Update internal temperature for wall heat losses.""" - u = self._get_element_param(prosumer, "u_w_per_m2k") or 0 - area = self._get_element_param(prosumer, "area_wall_m2") or 0 + u = self._get_element_param(prosumer, "u_w_per_m2k") + if u is None or (isinstance(u, float) and np.isnan(u)): + u = 0 + area = self._get_element_param(prosumer, "area_wall_m2") + if area is None or (isinstance(area, float) and np.isnan(area)): + area = 0 t_ext = self._get_element_param(prosumer, "t_ext_c") if t_ext is None or (isinstance(t_ext, float) and np.isnan(t_ext)): t_ext = 25.0 @@ -120,21 +124,32 @@ def _calculate_uniform_tank_step(self, prosumer, mdot_kg_per_s, t_in_c): One timestep of uniform tank: heat losses then mixing. Returns (q_delivered_kw, mdot_delivered_kg_per_s, t_out_c, new_temperature). """ + # Store initial temperature before heat losses + t_before_loss_c = self._temperature + self._calculate_heat_losses(prosumer) t_out_c = self._temperature capacity_kg = float(self._get_element_param(prosumer, "capacity_kg")) m_received_kg = mdot_kg_per_s * self.resol - self._temperature = ( - (capacity_kg - m_received_kg) * self._temperature + m_received_kg * t_in_c - ) / capacity_kg + + # Calculate energy before mixing fluid = getattr(prosumer, "fluid", None) if fluid is not None and hasattr(fluid, "get_heat_capacity"): - cp_kj_per_kgk = fluid.get_heat_capacity(CELSIUS_TO_K + self._temperature) / 1000 + cp_j_per_kgk = fluid.get_heat_capacity(CELSIUS_TO_K + t_before_loss_c) else: - cp_kj_per_kgk = 4.18 # default water [kJ/(kg·K)] - if np.isnan(cp_kj_per_kgk) or cp_kj_per_kgk <= 0: - cp_kj_per_kgk = 4.18 - q_delivered_kw = mdot_kg_per_s * (t_out_c - t_in_c) * cp_kj_per_kgk + cp_j_per_kgk = 4180.0 # default water [J/(kg·K)] + if np.isnan(cp_j_per_kgk) or cp_j_per_kgk <= 0: + cp_j_per_kgk = 4180.0 + + # Calculate energy delivered (positive when discharging, negative when charging) + # Energy delivered = mass_flow * cp * (t_out - t_in) + q_delivered_kw = mdot_kg_per_s * (t_out_c - t_in_c) * cp_j_per_kgk / 1000 + + # Update tank temperature after mixing + self._temperature = ( + (capacity_kg - m_received_kg) * self._temperature + m_received_kg * t_in_c + ) / capacity_kg + return q_delivered_kw, mdot_kg_per_s, t_out_c, self._temperature def q_to_receive_kw(self, prosumer): @@ -299,7 +314,7 @@ def _run_control_step_fluid_mix(self, prosumer): "mdot_kg_per_s": mdot_delivered, } result = np.array([[soc_out, q_delivered_kw]]) - result_fluid = [{FluidMixMapping.TEMPERATURE_KEY: float(t_out_c), + result_fluid = [{FluidMixMapping.TEMPERATURE_KEY: float(self._temperature), FluidMixMapping.MASS_FLOW_KEY: float(mdot_delivered)}] if np.isnan(result).any(): diff --git a/tests/models/test_simple_heat_storage.py b/tests/models/test_simple_heat_storage.py index 985dcb3..3aa7b9d 100644 --- a/tests/models/test_simple_heat_storage.py +++ b/tests/models/test_simple_heat_storage.py @@ -244,10 +244,14 @@ def test_fluid_mix_mode_step(self): # Step ran; step_results must be (1, 2) assert ctrl.step_results.shape == (1, 2) - energy_charged = mdot_charge_kg_per_s * (high_temp_c - low_temp_c) * 4.186 * ctrl.resol / 3600 # kWh - t_tank_expected_c = low_temp_c + energy_charged / (mdot_charge_kg_per_s * ctrl.resol / 3600 * 4.186) - soc_expected = energy_charged / q_capacity_kwh - q_delivered_expected_kw = 0.0 # No discharge in this test + # Calculate expected temperature using proper mixing formula + capacity_kg = 1000.0 + m_received_kg = mdot_charge_kg_per_s * ctrl.resol + t_tank_expected_c = ((capacity_kg - m_received_kg) * low_temp_c + m_received_kg * high_temp_c) / capacity_kg + soc_expected = (t_tank_expected_c - low_temp_c) / (high_temp_c - low_temp_c) + # q_delivered_kw is negative when charging (heat is delivered TO the tank) + # Using cp = 4181.554 J/kgK (water at ~50°C, from fluid model) + q_delivered_expected_kw = mdot_charge_kg_per_s * (low_temp_c - high_temp_c) * 4181.554 / 1000 # kW assert not np.isnan(ctrl.step_results[0, 0]) soc = ctrl.step_results[0, 0] @@ -271,8 +275,94 @@ def test_soc_from_temperature(self): init_temperature_c=50.0, min_temp_c=20.0, max_temp_c=80.0, period=period) ctrl = prosumer.controller.iloc[0].object ctrl._temperature = 50.0 - assert ctrl._soc_from_temperature(prosumer) == pytest.approx((50.0 - 20.0) / 60.0) + assert ctrl._soc_from_temperature(prosumer) == pytest.approx((50.0 - 20.0) / (80.0 - 20.0)) ctrl._temperature = 80.0 assert ctrl._soc_from_temperature(prosumer) == pytest.approx(1.0) ctrl._temperature = 20.0 assert ctrl._soc_from_temperature(prosumer) == pytest.approx(0.0) + + def test_fluid_mix_mode_discharge(self): + """Test FluidMix mode with discharging (hot water out, cold water in).""" + prosumer = create_empty_prosumer_container(fluid="water") + resol_s = 60 * 5 + period = create_period(prosumer, resol_s, name="foo", + start="2020-01-01 00:00:00", end="2020-01-01 00:00:09", timezone="utc") + q_capacity_kwh = 10 + high_temp_c = 70.0 + low_temp_c = 50.0 + mdot_discharge_kg_per_s = 0.5 + idx = create_controlled_heat_storage(prosumer, q_capacity_kwh=q_capacity_kwh, capacity_kg=1000.0, + init_temperature_c=high_temp_c, min_temp_c=low_temp_c, max_temp_c=high_temp_c, period=period) + ctrl = prosumer.controller.iloc[idx].object + ctrl.time_step(prosumer, "2020-01-01 00:00:00") + # Discharging: hot water out (70°C), cold water in (50°C) + ctrl.input_mass_flow_with_temp = {FluidMixMapping.TEMPERATURE_KEY: low_temp_c, FluidMixMapping.MASS_FLOW_KEY: mdot_discharge_kg_per_s} + ctrl.control_step(prosumer) + + # Calculate expected values + capacity_kg = 1000.0 + m_received_kg = mdot_discharge_kg_per_s * ctrl.resol + t_tank_expected_c = ((capacity_kg - m_received_kg) * high_temp_c + m_received_kg * low_temp_c) / capacity_kg + soc_expected = (t_tank_expected_c - low_temp_c) / (high_temp_c - low_temp_c) + # q_delivered_kw is positive when discharging (heat is delivered FROM the tank) + # Using cp = 4190.3005 J/kgK (water at ~70°C, from fluid model) + q_delivered_expected_kw = mdot_discharge_kg_per_s * (high_temp_c - low_temp_c) * 4190.3005 / 1000 # kW + + assert ctrl.step_results.shape == (1, 2) + assert not np.isnan(ctrl.step_results[0, 0]) + soc = ctrl.step_results[0, 0] + assert 0 <= soc <= 1 + assert soc == pytest.approx(soc_expected) + assert ctrl.step_results[0, 1] == pytest.approx(q_delivered_expected_kw) + + # Check result_mass_flow_with_temp + assert len(ctrl.result_mass_flow_with_temp) == 1 + assert ctrl.result_mass_flow_with_temp[0][FluidMixMapping.MASS_FLOW_KEY] == mdot_discharge_kg_per_s + assert ctrl.result_mass_flow_with_temp[0][FluidMixMapping.TEMPERATURE_KEY] == t_tank_expected_c + assert ctrl.applied is True + + def test_fluid_mix_mode_with_heat_losses(self): + """Test FluidMix mode with heat losses when u and area are set.""" + prosumer = create_empty_prosumer_container(fluid="water") + resol_s = 60 * 5 + period = create_period(prosumer, resol_s, name="foo", + start="2020-01-01 00:00:00", end="2020-01-01 00:00:09", timezone="utc") + q_capacity_kwh = 10 + init_temp_c = 60.0 + min_temp_c = 50.0 + max_temp_c = 70.0 + t_ext_c = 20.0 + u_w_per_m2k = 1.0 # W/m²K + area_wall_m2 = 5.0 # m² + idx = create_controlled_heat_storage(prosumer, q_capacity_kwh=q_capacity_kwh, capacity_kg=1000.0, + init_temperature_c=init_temp_c, min_temp_c=min_temp_c, max_temp_c=max_temp_c, + u_w_per_m2k=u_w_per_m2k, area_wall_m2=area_wall_m2, t_ext_c=t_ext_c, period=period) + ctrl = prosumer.controller.iloc[idx].object + ctrl.time_step(prosumer, "2020-01-01 00:00:00") + # No flow, so only heat losses should affect temperature + ctrl.input_mass_flow_with_temp = {FluidMixMapping.TEMPERATURE_KEY: np.nan, FluidMixMapping.MASS_FLOW_KEY: np.nan} + ctrl.control_step(prosumer) + + # Calculate expected temperature drop due to heat losses + # q_loss_w = u * area * (t_tank - t_ext) + # loss_w_per_k = cp_j_per_kgk * resol * capacity_kg + # t_loss_c = q_loss_w / loss_w_per_k + q_loss_w = u_w_per_m2k * area_wall_m2 * (init_temp_c - t_ext_c) + cp_j_per_kgk = 4180.0 # default water + loss_w_per_k = cp_j_per_kgk * ctrl.resol * 1000.0 + t_loss_expected_c = q_loss_w / loss_w_per_k + t_tank_expected_c = init_temp_c - t_loss_expected_c + soc_expected = (t_tank_expected_c - min_temp_c) / (max_temp_c - min_temp_c) + + assert ctrl.step_results.shape == (1, 2) + assert not np.isnan(ctrl.step_results[0, 0]) + soc = ctrl.step_results[0, 0] + assert 0 <= soc <= 1 + assert soc == pytest.approx(soc_expected) + assert ctrl.step_results[0, 1] == pytest.approx(0.0) # No flow, so no heat delivered + + # Check result_mass_flow_with_temp + assert len(ctrl.result_mass_flow_with_temp) == 1 + assert ctrl.result_mass_flow_with_temp[0][FluidMixMapping.MASS_FLOW_KEY] == 0.0 + assert ctrl.result_mass_flow_with_temp[0][FluidMixMapping.TEMPERATURE_KEY] == pytest.approx(t_tank_expected_c) + assert ctrl.applied is True diff --git a/tutorials/heat_storage_tutorial.ipynb b/tutorials/heat_storage_tutorial.ipynb index 2a7c72d..8e04ffb 100644 --- a/tutorials/heat_storage_tutorial.ipynb +++ b/tutorials/heat_storage_tutorial.ipynb @@ -1,1091 +1,1091 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# PANDAPROSUMER EXAMPLE: SIMPLE HEAT STORAGE (TWO MODES)\n", - "\n", - "## DESCRIPTION\n", - "This tutorial illustrates the **Simple Heat Storage** controller, which can be used in two ways:\n", - "\n", - "1. **GenericMapping (power-only)**: The storage receives and delivers power only (`q_received_kw` in; `soc`, `q_delivered_kw` out). Suitable when upstream/downstream elements work with power only.\n", - "\n", - "2. **FluidMixMapping (uniform tank)**: The storage is modelled as a uniform-temperature tank with temperature and mass-flow in/out. Use when connecting to fluid-based elements (e.g. heat pump, heat demand with fluid). Optional `min_temp_c` and `max_temp_c` on the element allow SOC to be derived from tank temperature.\n", - "\n", - "Time series data is defined in the notebook (no external files). After each part we run the timeseries and plot SOC and delivered power." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Glossary\n", - "- **Network**: A configuration of connected energy generators and consumers.\n", - "- **Element**: A single generator or consumer.\n", - "- **Controller**: The logic that defines an element's behaviour.\n", - "- **Prosumer**: Container holding elements and their controllers.\n", - "- **Const Profile Controller**: Distributes time-dependent input data to element controllers.\n", - "- **Mapping**: Connection between two controllers (GenericMapping for power/data; FluidMixMapping for temperature and mass flow)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "# Part 1: Power-only mode (GenericMapping)\n", - "\n", - "Chain: **Const profile (supply power)** → **Heat storage** → **Heat demand**.\n", - "\n", - "The const profile provides a supply power and demand data; the storage receives power and delivers to the demand." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "import os\n", - "import numpy as np\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "from pandapower.timeseries.data_sources.frame_data import DFData\n", - "\n", - "current_directory = os.getcwd()\n", - "parent_directory = os.path.dirname(current_directory)\n", - "sys.path.insert(0, parent_directory)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# Time range and resolution\n", - "start = '2020-01-01 00:00:00'\n", - "end = '2020-01-01 23:59:59'\n", - "time_resolution_s = 900\n", - "dur = pd.date_range(start=start, end=end, freq=f'{time_resolution_s}s', tz='utc')\n", - "n_steps = len(dur)" - ] - }, + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# PANDAPROSUMER EXAMPLE: SIMPLE HEAT STORAGE (TWO MODES)\n", + "\n", + "## DESCRIPTION\n", + "This tutorial illustrates the **Simple Heat Storage** controller, which can be used in two ways:\n", + "\n", + "1. **GenericMapping (power-only)**: The storage receives and delivers power only (`q_received_kw` in; `soc`, `q_delivered_kw` out). Suitable when upstream/downstream elements work with power only.\n", + "\n", + "2. **FluidMixMapping (uniform tank)**: The storage is modelled as a uniform-temperature tank with temperature and mass-flow in/out. Use when connecting to fluid-based elements (e.g. heat pump, heat demand with fluid). Optional `min_temp_c` and `max_temp_c` on the element allow SOC to be derived from tank temperature.\n", + "\n", + "Time series data is defined in the notebook (no external files). After each part we run the timeseries and plot SOC and delivered power." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Glossary\n", + "- **Network**: A configuration of connected energy generators and consumers.\n", + "- **Element**: A single generator or consumer.\n", + "- **Controller**: The logic that defines an element's behaviour.\n", + "- **Prosumer**: Container holding elements and their controllers.\n", + "- **Const Profile Controller**: Distributes time-dependent input data to element controllers.\n", + "- **Mapping**: Connection between two controllers (GenericMapping for power/data; FluidMixMapping for temperature and mass flow)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "# Part 1: Power-only mode (GenericMapping)\n", + "\n", + "Chain: **Const profile (supply power)** → **Heat storage** → **Heat demand**.\n", + "\n", + "The const profile provides a supply power and demand data; the storage receives power and delivers to the demand." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from pandapower.timeseries.data_sources.frame_data import DFData\n", + "\n", + "current_directory = os.getcwd()\n", + "parent_directory = os.path.dirname(current_directory)\n", + "sys.path.insert(0, parent_directory)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Time range and resolution\n", + "start = '2020-01-01 00:00:00'\n", + "end = '2020-01-01 23:59:59'\n", + "time_resolution_s = 900\n", + "dur = pd.date_range(start=start, end=end, freq=f'{time_resolution_s}s', tz='utc')\n", + "n_steps = len(dur)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ + "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ { - "data": { - "application/vnd.microsoft.datawrangler.viewer.v0+json": { - "columns": [ - { - "name": "index", - "rawType": "datetime64[ns, UTC]", - "type": "unknown" - }, - { - "name": "supply_power", - "rawType": "float64", - "type": "float" - }, - { - "name": "demand_power", - "rawType": "float64", - "type": "float" - }, - { - "name": "t_feed_demand_c", - "rawType": "float64", - "type": "float" - }, - { - "name": "t_return_demand_c", - "rawType": "float64", - "type": "float" - } - ], - "ref": "8b63f34d-906c-405b-8cb4-374404b8a3d7", - "rows": [ - [ - "2020-01-01 00:00:00+00:00", - "25.0", - "0.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 00:15:00+00:00", - "25.0", - "0.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 00:30:00+00:00", - "25.0", - "0.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 00:45:00+00:00", - "25.0", - "0.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 01:00:00+00:00", - "25.0", - "60.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 01:15:00+00:00", - "25.0", - "60.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 01:30:00+00:00", - "25.0", - "60.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 01:45:00+00:00", - "25.0", - "60.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 02:00:00+00:00", - "0.0", - "0.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 02:15:00+00:00", - "0.0", - "0.0", - "80.0", - "20.0" - ] - ], - "shape": { - "columns": 4, - "rows": 10 - } - }, - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
supply_powerdemand_powert_feed_demand_ct_return_demand_c
2020-01-01 00:00:00+00:0025.00.080.020.0
2020-01-01 00:15:00+00:0025.00.080.020.0
2020-01-01 00:30:00+00:0025.00.080.020.0
2020-01-01 00:45:00+00:0025.00.080.020.0
2020-01-01 01:00:00+00:0025.060.080.020.0
2020-01-01 01:15:00+00:0025.060.080.020.0
2020-01-01 01:30:00+00:0025.060.080.020.0
2020-01-01 01:45:00+00:0025.060.080.020.0
2020-01-01 02:00:00+00:000.00.080.020.0
2020-01-01 02:15:00+00:000.00.080.020.0
\n", - "
" - ], - "text/plain": [ - " supply_power demand_power t_feed_demand_c \\\n", - "2020-01-01 00:00:00+00:00 25.0 0.0 80.0 \n", - "2020-01-01 00:15:00+00:00 25.0 0.0 80.0 \n", - "2020-01-01 00:30:00+00:00 25.0 0.0 80.0 \n", - "2020-01-01 00:45:00+00:00 25.0 0.0 80.0 \n", - "2020-01-01 01:00:00+00:00 25.0 60.0 80.0 \n", - "2020-01-01 01:15:00+00:00 25.0 60.0 80.0 \n", - "2020-01-01 01:30:00+00:00 25.0 60.0 80.0 \n", - "2020-01-01 01:45:00+00:00 25.0 60.0 80.0 \n", - "2020-01-01 02:00:00+00:00 0.0 0.0 80.0 \n", - "2020-01-01 02:15:00+00:00 0.0 0.0 80.0 \n", - "\n", - " t_return_demand_c \n", - "2020-01-01 00:00:00+00:00 20.0 \n", - "2020-01-01 00:15:00+00:00 20.0 \n", - "2020-01-01 00:30:00+00:00 20.0 \n", - "2020-01-01 00:45:00+00:00 20.0 \n", - "2020-01-01 01:00:00+00:00 20.0 \n", - "2020-01-01 01:15:00+00:00 20.0 \n", - "2020-01-01 01:30:00+00:00 20.0 \n", - "2020-01-01 01:45:00+00:00 20.0 \n", - "2020-01-01 02:00:00+00:00 20.0 \n", - "2020-01-01 02:15:00+00:00 20.0 " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Part 1 input: supply power (to storage) and demand (for heat demand element)\n", - "supply_kw = np.zeros(n_steps)\n", - "supply_kw[0:8] = 25.0 # charge 25 kW for first 2 h\n", - "supply_kw[20:24] = 20.0 # charge again later\n", - "demand_kw = np.zeros(n_steps)\n", - "demand_kw[4:8] = 60.0 # demand spike 60 kW for 4 steps\n", - "demand_kw[12:16] = 25.0\n", - "df1 = pd.DataFrame({\n", - " 'supply_power': supply_kw,\n", - " 'demand_power': demand_kw,\n", - " 't_feed_demand_c': 80.0,\n", - " 't_return_demand_c': 20.0\n", - "}, index=dur)\n", - "profile1 = DFData(df1)\n", - "df1.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ + "name": "index", + "rawType": "datetime64[ns, UTC]", + "type": "unknown" + }, + { + "name": "supply_power", + "rawType": "float64", + "type": "float" + }, { - "data": { - "text/plain": [ - "array([, , , ], dtype=object)" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" + "name": "demand_power", + "rawType": "float64", + "type": "float" }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0MAAAIaCAYAAADiNpZkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdMVJREFUeJzt3XlcVmX+//H3DbKvoqwKrmlquZvZopYmOo1le9av1BybCiszK51yywprymwxq5nUNrNs0hb9OhkJToaWa5k7aVayqAkIKCCc3x94H70TkRu4F7hfz8fjfsh9zrmvcx0uTN5d1/kci2EYhgAAAADAw3i5ugMAAAAA4AqEIQAAAAAeiTAEAAAAwCMRhgAAAAB4JMIQAAAAAI9EGAIAAADgkQhDAAAAADwSYQgAAACAR2rk6g7UhfLych04cEAhISGyWCyu7g4AAAAAFzEMQ0ePHlVcXJy8vKqe+2kQYejAgQOKj493dTcAAAAAuIlff/1VzZs3r/KYBhGGQkJCJFVccGhoqIt7AwAAAMBV8vPzFR8fb2aEqjSIMGRdGhcaGkoYAgAAAFCt22caRBiymvbZT/ILDHZ1NxzGr5GX7rq0lRKaBLq6KwAAAEC916DC0McbfpOXX8MOCsUnypR8fWdXdwMAAACo9xpUGBp7RVsFBDXMmaHtWfla/mOWDuQed3VXAAAAgAahQYWhe/q3abD3DK3akaPlP2bpUEGxq7sCAABQZ8rKylRaWurqbqCe8fHxkbe3d63baVBhqCFrGuwnSYQhAADQIBiGoaysLOXm5rq6K6inwsPDFRMTU6vnjBKG6ommIb6SpMMFJSovN+TlxcNlAQBA/WUNQlFRUQoMDKzVL7TwLIZhqKioSDk5OZKk2NjYGrdFGKonmgRVzAydKDeUd6xUjYN8XdwjAACAmikrKzODUJMmTVzdHdRDAQEBkqScnBxFRUXVeMmcV112Co7j28hLYQE+klgqBwAA6jfrPUKBgQ27CjAcy/rzU5t7zghD9UjT4IrZoEMFJS7uCQAAQO2xNA61URc/P4SheoQiCgAAAEDdIQzVI4QhAAAAz7Zv3z5ZLBZt3rzZ1V1pEAhD9cipZXKEIQAAAKC2CEP1iDkzdJR7hgAAAOAZSkoc97svYageaRrCMjkAAABX+vjjj3XhhRcqICBATZo00cCBA1VYWKj+/ftr3LhxNscOGzZMI0eONN+3bNlSM2bM0PDhwxUUFKRmzZppzpw5Np+xWCyaO3euhgwZooCAALVu3Voff/xxpX0xDENt27bV888/b7N98+bNslgs2rNnzzmvpzrn+/HHH3XllVea13z33XeroKBAkrR161Z5eXnp4MGDkqQ//vhDXl5euvXWW83PP/XUU7rsssvM91u3btWQIUMUHBys6Oho3XHHHTp06JC5v3///ho7dqzGjRunpk2bKjEx8ZzXUVOEoXqEe4YAAEBDZBiGikpOuORlGEa1+5mZmanhw4frrrvu0vbt25Wamqrrr7/erjb++c9/qkuXLtq0aZMmTpyoBx98UCtXrrQ5ZvLkybrhhhu0ZcsW3X777br11lu1ffv2M9qyWCy66667NH/+fJvt8+fPV9++fdW2bdtq9amq8xUWFioxMVGNGzfW999/r8WLF+urr77S2LFjJUmdOnVSkyZNlJaWJkn63//+Z/NektLS0tS/f39JUm5urq688kp169ZN69ev14oVK5Sdna2bb77Zpk9vv/22fH19tWbNGr3++uvVuo6acPhDV5OTk/XJJ59ox44dCggI0CWXXKJnn31W7du3N485fvy4Hn74YS1atEjFxcVKTEzUa6+9pujoaEd3r16htDYAAGiIjpWWqeOU/7rk3NueTFSgb/V+Jc7MzNSJEyd0/fXXq0WLFpKkCy+80K7zXXrppZo4caIkqV27dlqzZo1efPFFXXXVVeYxN910k/72t79JkmbMmKGVK1fqlVde0WuvvXZGeyNHjtSUKVP03Xff6aKLLlJpaakWLlx4xmxRVao638KFC3X8+HG98847CgoKkiS9+uqrGjp0qJ599llFR0erb9++Sk1N1Y033qjU1FSNGjVK//73v7Vjxw61adNG3377rR599FHzs926ddMzzzxjnn/evHmKj4/Xrl271K5dO0nSeeedp+eee86eb22NOHxmKC0tTUlJSVq7dq1Wrlyp0tJSDRo0SIWFheYxDz30kD7//HMtXrxYaWlpOnDggK6//npHd63eOX1myJ7/AwEAAIDa69KliwYMGKALL7xQN910k/71r3/pyJEjdrXRp0+fM97/edanOsdYxcXF6eqrr9a8efMkSZ9//rmKi4t100031Umftm/fri5duphBSKoIdOXl5dq5c6ckqV+/fkpNTZVU8bv/lVdeaQak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atu2rV3fz2effVb//ve/9dNPPykqyjGTDk556GqjRo0UExNzxva8vDy99dZbWrhwoa688kpJ0vz589WhQwetXbtWF198sTO6VzvWJWt+YY5/EKp1GR7PGQIAAO6utEh6Js415/7HAck3qFqHFhQU6K233tJ7772nAQMGSJLefvttNW/eXJK0f/9+zZ8/X/v371dcXMX1TJgwQStWrND8+fP1zDPPSKoINnPnzlWbNm0kSTfeeKPeffddZWdnKzg4WB07dtQVV1yhVatW6ZZbbpEkm1DTunVrvfzyy+rVq5cKCgoUHBxs7nv66afVr18/SdLEiRN19dVX6/jx4/L399fs2bM1evRojR49WpL01FNP6auvvrJrdsjX11fz5s1TYGCgOnXqpCeffFKPPPKIZsyYoWPHjmnu3LlasGCBhgwZIkn617/+pZUrV+qtt97SI488ov79++utt95SWVmZtm7dKl9fX91yyy1KTU3V4MGDlZqaavbfnu/na6+9pi5dulT7OmrCKTNDu3fvVlxcnFq3bq3bb7/dnObasGGDSktLNXDgQPPY888/XwkJCUpPTz9re8XFxcrPz7d5uYz5wFUHzwpJzAwBAADUsYyMDJWUlKh3797mtoiICLVv316S9OOPP6qsrEzt2rVTcHCw+UpLS1NGRob5mcDAQDMISVJ0dLRatmxpE2qio6NtlsFt2LBBQ4cOVUJCgkJCQmwCw+k6d+5sfh0bGytJZjvbt2+36bsk9enTx67vQZcuXWwemNunTx8VFBTo119/VUZGhkpLS3XppZea+318fHTRRRdp+/btkqTLL79cR48e1aZNm5SWlqZ+/fqpf//+5mxRWlqa+vfvL6n6309fX1+b63YUh88M9e7dWwsWLFD79u2VmZmp6dOn6/LLL9fWrVuVlZUlX19fhYeH23wmOjpaWVlZZ20zOTnZZurOpcz7hZwQhqz3DB37Qyo7IXk7ZWIPAADAfj6BFTM0rjp3HSkoKJC3t7c2bNggb29vm32nBx0fHx+bfRaLpdJt1kIAhYWFSkxMVGJiot5//31FRkZq//79SkxMtLlf589tWx806qiCAjURHh6uLl26KDU1Venp6brqqqvUt29f3XLLLdq1a5d2795tBr3qfj8DAgKc8hBfh/82bZ1OkypSbe/evdWiRQt99NFHCggIqFGbkyZN0vjx4833+fn5io+Pr3Vfa6TAiWEooLFk8ZKMcqnokBRy5tJDAAAAt2CxVHupmiu1adNGPj4+WrdunRISEiRJR44c0a5du9SvXz9169ZNZWVlysnJ0eWXX15n592xY4cOHz6smTNnmr/Hrl+/3u52OnTooHXr1unOO+80t61du9auNrZs2aJjx46Zv5uvXbtWwcHBio+PV9OmTeXr66s1a9aoRYsWkiqWsH3//fc2z2Hq16+fVq1ape+++05PP/20IiIi1KFDBz399NOKjY1Vu3btJMlh38+acnpp7fDwcLVr10579uxRTEyMSkpKlJuba3NMdnZ2pfcYWfn5+Sk0NNTm5TLmMjkHV5KTJC9vKbBpxdcslQMAAKi14OBgjR49Wo888oi+/vprbd26VSNHjpSXV8Wvye3atdPtt9+uO++8U5988on27t2r7777TsnJyVq2bFmNz5uQkCBfX1+98sor+vnnn/XZZ59pxowZdrfz4IMPat68eZo/f7527dqlqVOn6qeffrKrjZKSEo0ePVrbtm3T8uXLNXXqVI0dO1ZeXl4KCgrSvffeq0ceeUQrVqzQtm3bNGbMGBUVFZn3KUkVD6n973//q0aNGpmVo/v376/333/fnBWSHPf9rCmnh6GCggJlZGQoNjZWPXr0kI+Pj1JSUsz9O3fu1P79++1e6+gyznrgqhXltQEAAOrUP//5T11++eUaOnSoBg4cqMsuu0w9evQw98+fP1933nmnHn74YbVv317Dhg3T999/b84k1URkZKQWLFigxYsXq2PHjpo5c6ZNeerquuWWWzR58mQ9+uij6tGjh3755Rfde++9drUxYMAAnXfeeebStmuuuUbTpk0z98+cOVM33HCD7rjjDnXv3l179uzRf//7XzVu3Ng85vLLL1d5eblN8Onfv7/KysrM+4WsHPH9rCmLYdhZe9BOEyZM0NChQ9WiRQsdOHBAU6dO1ebNm7Vt2zZFRkbq3nvv1fLly7VgwQKFhobq/vvvlyR9++231T5Hfn6+wsLClJeX5/xZog+GSzuXS399Uep517mPr613hkk/r5KGvS51He748wEAAJzD8ePHtXfvXrVq1Ur+/g6uros6NXLkSOXm5mrp0qWu7ordzvZzZ082cPg9Q7/99puGDx+uw4cPKzIyUpdddpnWrl2ryMiKe2xefPFFeXl56YYbblBxcbESExPt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wak6tm/fruuuu+6Mz58ehrZs2aI1a9bo6aefNreVlZXp+PHjKioqMh9C2rlzZ3N/dHS0JOnCCy+02Xb8+HHl5+crNDRUBQUFmjZtmpYtW6bMzEydOHFCx44d0/79+236c3q7FotFMTExysnJMfvfuXNn+fv71+j6N2/erMsvv9wMQs5iVxi65JJL9Oabb2rXrl1q166dtmzZom+++UazZs0662fy8vJksVjOeXPa7t27FRcXJ39/f/Xp00fJyclVhicAAAA4VkCjAK27bZ3Lzu0sBQUFGjp0aKWzOLGxsdq6daskadmyZWrWrJnNfj8/P6f0Uaro5/Tp03X99defse/0EHJ6oLA+mLSybeXl5ZKkCRMmaOXKlXr++efVtm1bBQQE6MYbb1RJSYnNOf4cVCwWi9lGbQUEOG+8T2dXGJo4caLy8/N1/vnny9vbW2VlZXr66ad1++23V3r88ePH9dhjj2n48OEKDQ09a7u9e/fWggUL1L59e2VmZmr69Om6/PLLtXXrVoWEhJxxfHFxsYqLi833+fn59lwGAAAAqsFisVRrqZqr+fr6qqysrMaf7969u/7zn/+oZcuWld6q0bFjR/n5+Wn//v3q169fpW106NBBn332mc22tWvXVrsPHTp00Lp1tsHzz5/v3r27du7cqbZt21a73epYs2aNRo4cac5MFRQU2F38oUOHDnr33Xd1/PhxM5jZc/2dO3fW22+/rdLSUqfODtlVTe6jjz7S+++/r4ULF2rjxo16++239fzzz+vtt98+49jS0lLdfPPNMgxDc+fOrbLdIUOG6KabblLnzp2VmJio5cuXKzc3Vx999FGlxycnJyssLMx8xcfH23MZAAAAaEBatmypdevWad++fTp06JDdsxVJSUn6448/NHz4cH3//ffKyMjQf//7X40aNUplZWUKCQnRhAkT9NBDD+ntt99WRkaGNm7cqFdeecX8Pfiee+7R7t279cgjj2jnzp1auHChXc8weuCBB7RixQo9//zz2r17t1599VWbJXKSNGXKFL3zzjuaPn26fvrpJ23fvl2LFi3SE088Ydf1/tl5552nTz75RJs3b9aWLVt022232f09vO2222SxWDRmzBht27ZNy5cv1/PPP1/tz48dO1b5+fm69dZbtX79eu3evVvvvvuudu7cae/l2MWuMPTII49o4sSJuvXWW3XhhRfqjjvu0EMPPaTk5GSb46xB6JdfftHKlSurnBWqTHh4uNq1a6c9e/ZUun/SpEnKy8szX7/++qtd7QMAAKDhmDBhgry9vdWxY0dFRkaeca/LucTFxWnNmjUqKyvToEGDdOGFF2rcuHEKDw+Xl1fFr8szZszQ5MmTlZycrA4dOmjw4MFatmyZWrVqJUlKSEjQf/7zHy1dulRdunTR66+/blOQ4Vwuvvhi/etf/9JLL72kLl266Msvvzwj5CQmJuqLL77Ql19+qV69euniiy/Wiy++qBYtWth1vX82a9YsNW7cWJdccomGDh2qxMREde/e3a42goOD9fnnn+vHH39Ut27d9Pjjj1e7eIQkNWnSRF9//bUKCgrUr18/9ejRQ//6178cPktkOVmCr1qaNGmip556yqYqRHJysubPn69du3ZJOhWEdu/erVWrVikyMtLuThUUFCghIUHTpk3TAw88cM7j8/PzFRYWpry8PLuDFwAAACpub9i7d69atWplc/8J4K7O9jNrTzawa2Zo6NChevrpp7Vs2TLt27dPS5Ys0axZs8z1haWlpbrxxhu1fv16vf/++yorK1NWVpaysrJsbsAaMGCAXn31VfP9hAkTlJaWpn379unbb7/VddddJ29vbw0fPtye7gEAAABAtdkVhl555RXdeOONuu+++9ShQwdNmDBBf//73zVjxgxJ0u+//67PPvtMv/32m7p27arY2Fjz9e2335rtZGRk2DzR97ffftPw4cPVvn173XzzzWrSpInWrl1bo1klAAAAeK577rlHwcHBlb7uuecel/VryJAhZ+2XPcvp6it3HRe7lsm5K5bJAQAA1E5DWSaXk5Nz1krDoaGhioqKcnKPKvz+++86duxYpfsiIiIUERHh5B45lyPGpS6WydlVWhsAAABwZ1FRUS4LPFX58/OJPI27jotdy+QAAADQsDWARUPwEHXxs0oYAgAAgFnCuKioyMU9AarH+rNam/LbLJMDAACAvL29FR4erpycHElSYGCgLBaLi3sFnMkwDBUVFSknJ0fh4eHy9vaucVuEIQAAAEiSYmJiJMkMRIA7Cw8PN39ma4owBAAAAEmSxWJRbGysoqKiVFpa6uruAGfl4+NTqxkhK8IQAAAAbHh7e9fJL5qAu6OAAgAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADw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+uKLL7R69epzlrg7Fz8/P/n5+dVRzwAAABouwzCUlZWl3NxcV3cFqFPh4eGKiYmp1XNGHR6GDMPQ/fffryVLlig1NVWtWrVy9CkBAABwkjUIRUVFKTAwkAfUo94zDENFRUXKycmRJMXGxta4LYeHoaSkJC1cuFCffvqpQkJClJWVJUkKCwtTQECApIq/pFlZWdqzZ48k6ccff1RISIgSEhJqVWgBAADAk5WVlZlBqEmTJq7uDlBnrDkiJydHUVFRNV4y5/ACCnPnzlVeXp769++v2NhY8/Xhhx+ax7z++uvq1q2bxowZI0nq27evunXrps8++8zR3QMAAGiwrPcIBQYGurgnQN2z/lzX5l44pyyTO5dp06Zp2rRpju4KAACAR2JpHBqiuvi5dmppbQAAAABwF4QhAAAAwE31799f48aNc3U3amzatGnq2rWrq7txVoQhAAAAuB1nhIDU1FRZLBbKjnswwhAAAAAaFMMwdOLECaeekwfa1k+EIQAAALiVkSNHKi0tTS+99JIsFossFov27dt31uOtMzz/93//px49esjPz0/ffPONysvLlZycrFatWikgIEBdunTRxx9/LEnat2+frrjiCklS48aNZbFYNHLkSElSy5YtNXv2bJtzdO3a1abgl8Vi0dy5c3XNNdcoKChITz/9tLkk7N1331XLli0VFhamW2+9VUePHq3WdRcWFurOO+9UcHCwYmNj9cILL5xxTHFxsSZMmKBmzZopKChIvXv3Vmpqqrl/wYIFCg8P1xdffKH27dsrMDBQN954o4qKivT222+rZcuWaty4sR544AGVlZWZn3v33XfVs2dPhYSEKCYmRrfddpv5HJ/Tv8cpKSnq2bOnAgMDdckll2jnzp02/Zs5c6aio6MVEhKi0aNH6/jx49W6dqt58+apU6dO8vPzU2xsrMaOHWvX5+1FGAIAAPAQhmGovKjIJa/qVBi2eumll9SnTx+NGTNGmZmZyszMVHx8/Dk/N3HiRM2cOVPbt29X586dlZycrHfeeUevv/66fvrpJz300EP6f//v/yktLU3x8fH6z3/+I0nauXOnMjMz9dJLL9n1/Zw2bZquu+46/fjjj7rrrrskSRkZGVq6dKm++OILffHFF0pLS9PMmTOr1d4jjzyitLQ0ffrpp/ryyy+VmpqqjRs32hwzduxYpaena9GiRfrhhx90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KYqNjVVAQIAGDhyo3bt31/m11SdVjYMkpaen68orr1RQUJBCQ0PVt29fHTt2rMo2U1NT1b17d/n5+alt27ZasGCB3ef1NFV9PzIyMnTdddcpMjJSoaGhuvnmm5WdnX3ONhkH+6xevVpDhw5VXFycLBaLli5dau4rLS3VY489pgsvvFBBQUGKi4vTnXfeqQMHDpyzXcbBPlWNgySNHDlSFovF5jV48OBztss4VN+5xqCgoEBjx45V8+bNFRAQoI4dO+r1118/Z7s//PCDLr/8cvn7+ys+Pl7PPffcGcec699xT5KcnKxevXopJCREUVFRGjZsmHbu3GlzzJtvvqn+/fsrNDRUFotFubm51Wqbvw8udM7HssIjLFq0yPD19TXmzZtn/PTTT8aYMWOM8PBwIzs72zAMw3jjjTeMtLQ0Y+/evcaGDRuMoUOHGvHx8caJEyfO2uaaNWsMb29v47nnnjO2bdtmPPHEE4aPj4/x448/msfMnDnTCAsLM5YuXWps2bLFuOaaa4xWrVoZx44dc/g1u6NzjcO3335rhIaGGsnJycbWrVuNHTt2GB9++KFx/Pjxs7b5888/G4GBgcb48eONbdu2Ga+88orh7e1trFixotrn9TRVfT8KCgqM1q1bG9ddd53xww8/GD/88INx7bXXGr169TLKysrO2ibjYL/ly5cbjz/+uPHJJ58YkowlS5aY+3Jzc42BAwcaH374obFjxw4jPT3duOiii4wePXpU2SbjYL+qxsEwDGPEiBHG4MGDjczMTPP1xx9/VNkm42Cfc43BmDFjjDZt2hirVq0y9u7da7zxxhuGt7e38emnn561zby8PCM6Otq4/fbbja1btxoffPCBERAQYLzxxhvmMdX5d9yTJCYmGvPnzze2bt1qbN682fjLX/5iJCQkGAUFBeYxL774opGcnGwkJycbkowjR46cs13+PriW24ShV1991WjRooXh5+dnXHTRRca6devMfceOHTPuu+8+IyIiwggKCjKuv/56Iysr65xtfvTRR0b79u0NPz8/44ILLjCWLVtms7+8vNyYPHmyERMTY/j7+xsDBgwwdu3aVefXVh9cdNFFRlJSkvm+rKzMiIuLM5KTkys9fsuWLYYkY8+ePWdt8+abbzauvvpqm229e/c2/v73vxuGUfH9j4mJMf75z3+a+3Nzcw0/Pz/jgw8+qM3l1FvnGofevXsbTzzxhF1tPvroo0anTp1stt1yyy1GYmJitc/raar6fvz3v/81vLy8jLy8PHN/bm6uYbFYjJUrV561Tcahdir7BfDPvvvuO0OS8csvv5z1GMahds4Whq699lq72mEcaq6yMejUqZPx5JNP2mzr3r278fjjj5+1nddee81o3LixUVxcbG577LHHjPbt25vvz/XvuKfLyckxJBlpaWln7Fu1alW1wxB/H1zLLZbJffjhhxo/frymTp2qjRs3qkuXLkpMTFROTo4k6aGHHtLnn3+uxYsXKy0tTQcOHND1119fZZvffvuthg8frtGjR2vTpk0aNmyYhg0bpq1bt5rHPPfcc3r55Zf1+uuva926dQoKClJiYqKOHz/u0Ot1NyUlJdqwYYMGDhxobvPy8tLAgQOVnp5+xvGFhYWaP3++WrVqpfj4eHN7y5YtNW3aNPN9enq6TZuSlJiYaLa5d+9eZWVl2RwTFham3r17V3rehu5c45CTk6N169YpKipKl1xyiaKjo9WvXz998803Nu30799fI0eONN+faxzsHf+G7lzfj+LiYlksFptynf7+/vLy8rIZC8bB+fLy8mSxWBQeHm5uYxycIzU1VVFRUWrfvr3uvfdeHT582GY/4+BYl1xyiT777DP9/vvvMgxDq1at0q5duzRo0CDzmJEjR6p///7m+/T0dPXt21e+vr7mtsTERO3cuVNHjhwxj6lqnDxdXl6eJCkiIsKuz/H3wb24RRiaNWuWxowZo1GjRpnrXAMDAzVv3jzl5eXprbfe0qxZs3TllVeqR48emj9/vr799lutXbv2rG2+9NJLGjx4sB555BF16NBBM2bMUPfu3fXqq69KqrhXZfbs2XriiSd07bXXqnPnznrnnXd04MCBM9biNnSHDh1SWVmZoqOjbbZHR0crKyvLfP/aa68pODhYwcHB+r//+z+tXLnS5j+ibdq0UdOmTc33WVlZVbZp/fNc5/UU5xqHn3/+WZI0bdo0jRkzRitWrFD37t01YMAAm/usEhISFBsba74/2zjk5+fr2LFj1R5/T3Gu78fFF1+soKAgPfbYYyoqKlJhYaEmTJigsrIyZWZmmsczDs51/PhxPfbYYxo+fLjNA/YYB8cbPHiw3nnnHaWkpOjZZ59VWlqahgwZorKyMvMYxsGxXnnlFXXs2FHNmzeXr6+vBg8erDlz5qhv377mMbGxsUpISDDfn20MrPuqOoYxkMrLyzVu3DhdeumluuCCC+z6LH8f3EsjV3fAmnYnTZpkbjs97V500UUqLS21ScPnn3++EhISlJ6erosvvlhSxazEyJEjzZmJ9PR0jR8/3uZciYmJZtA516zErbfe6qArrr9uv/12XXXVVcrMzNTzzz+vm2++WWvWrJG/v78kKSUlxcU9bNjKy8slVRSzGDVqlCSpW7duSklJ0bx585ScnCxJeuedd1zWR08QGRmpxYsX695779XLL78sLy8vDR8+XN27d5eX16n/v8Q4OE9paaluvvlmGYahuXPn2uxjHBzv9H8vL7zwQnXu3Flt2rRRamqqBgwYIIlxcLRXXnlFa9eu1WeffaYWLVpo9erVSkpKUlxcnPl7jvXfCNSNpKQkbd269YzVGdXB3wf34vIwVFXa3bFjh7KysuTr62uz7MG6//Q0zKxEzTVt2lTe3t5nVMPKzs5WTEyM+T4sLExhYWE677zzdPHFF6tx48ZasmSJhg8fXmm7MTExVbZp/TM7O9vm/5BkZ2era9eudXFp9cq5xsH6PerYsaPN/g4dOmj//v1nbfds4xAaGqqAgAB5e3tXa/w9RXX+PgwaNEgZGRk6dOiQGjVqpPDwcMXExKh169ZnbZdxcAxrEPrll1/09ddf28wKVYZxcLzWrVuradOm2rNnjxmG/oxxqDvHjh3TP/7xDy1ZskRXX321JKlz587avHmznn/++TOWX1mdbQys+6o6xtPHYOzYsfriiy+0evVqNW/evNbt8ffBtdximVxdSElJ0dixY13djXrJ19dXPXr0sJnZKS8vV0pKivr06VPpZ4yK4hsqLi4+a7t9+vQ5Y7Zo5cqVZputWrVSTEyMzTH5+flat27dWc/bkJ1rHFq2bKm4uLgzynju2rVLLVq0OGu75xqHmox/Q2bP96Np06YKDw/X119/rZycHF1zzTVnbZdxqHvWILR792599dVXatKkyTk/wzg43m+//abDhw/b/E+uP2Mc6k5paalKS0ttZqYlydvb21xRUJk+ffpo9erVKi0tNbetXLlS7du3V+PGjc1jqhonT2MYhsaOHaslS5bo66+/VqtWreqkXf4+uJgrqzcYhmEUFxcb3t7eZ1RGufPOO41rrrnGSElJqbQaR0JCgjFr1qyzthsfH2+8+OKLNtumTJlidO7c2TAMw8jIyDAkGZs2bbI5pm/fvsYDDzxQ08uptxYtWmT4+fkZCxYsMLZt22bcfffdRnh4uJGVlWVkZGQYzzzzjLF+/Xrjl19+MdasWWMMHTrUiIiIsCnpeOWVVxqvvPKK+X7NmjVGo0aNjOeff97Yvn27MXXq1EpLa4eHhxuffvqpWaLY00trn20cDKOiZGdoaKixePFiY/fu3cYTTzxh+Pv721T1u+OOO4yJEyea760lOx955BFj+/btxpw5cyot2VnVeT3Nub4f8+bNM9LT0409e/YY7777rhEREWGMHz/epg3GofaOHj1qbNq0ydi0aZMhyZg1a5axadMm45dffjFKSkqMa665xmjevLmxefNmm7LOp1fHYhxqr6pxOHr0qDFhwgQjPT3d2Lt3r/HVV18Z3bt3N8477zybkv+MQ+1UNQaGYRj9+vUzOnXqZKxatcr4+eefjfnz5xv+/v7Ga6+9ZrYxceJE44477jDf5+bmGtHR0cYdd9xhbN261Vi0aJERGBh4Rmntc/077knuvfdeIywszEhNTbX5b05RUZF5TGZmprFp0ybjX//6lyHJWL16tbFp0ybj8OHD5jH8fXAvLg9DhlFRLnDs2LHm+7KyMqNZs2ZGcnKykZuba/j4+Bgff/yxuX/Hjh2GJCM9Pf2sbd58883GX//6V5ttffr0OaOs8/PPP2/uz8vL8+iyzq+88oqRkJBg+Pr6GhdddJGxdu1awzAM4/fffzeGDBliREVFGT4+Pkbz5s2N2267zdixY4fN51u0aGFMnTrVZttHH31ktGvXzvD19TU6dep01vLm0dHRhp+fnzFgwABj586dDr1Od3e2cbBKTk42mjdvbgQGBhp9+vQx/ve//9ns79evnzFixAibbatWrTK6du1q+Pr6Gq1btzbmz59v93k9TVXfj8cee8yIjo42fHx8jPPOO8944YUXjPLycpvPMw61Zy1N++fXiBEjjL1791a6T5KxatUqsw3GofaqGoeioiJj0KBBRmRkpOHj42O0aNHCGDNmzBm/oDEOtVPVGBhGxS/gI0eONOLi4gx/f3+jffv2Z/x3acSIEUa/fv1s2t2yZYtx2WWXGX5+fkazZs2MmTNnnnHuc/077knO9t+c0392p06des5j+PvgXiyGYRgOnHiqlg8//FAjRozQG2+8oYsuukizZ8/WRx99pB07dig6Olr33nuvli9frgULFig0NFT333+/pIry2VYDBgzQddddZy6V+/bbb9WvXz/NnDlTV199tRYtWqRnnnlGGzduNKt+PPvss5o5c6befvtttWrVSpMnT9YPP/ygbdu2mUUBAAAAADRMLi+gIEm33HKLDh48qClTpigrK0tdu3bVihUrzOIGL774ory8vHTDDTeouLhYiYmJeu2112zasN7MbHXJJZdo4cKFeuKJJ/SPf/xD5513npYuXWpT/vDRRx9VYWGh7r77buXm5uqyyy7TihUrCEIAAACAB3CLmSEAAAAAcLYGU00OAAAAAOxBGAIAAADgkQhDAAAAADwSYQgAAACARyIMAQAAAPBILg1Dc+bMUcuWLeXv76/evXvru+++M/e9+eab6t+/v0JDQ2WxWJSbm1utNhcsWKDw8HDHdBgAAABAg+GyMPThhx9q/Pjxmjp1qjZu3KguXbooMTFROTk5kqSioiINHjxY//jHP1zVRQAAAAANmMvC0KxZszRmzBiNGjVKHTt21Ouvv67AwEDNmzdPkjRu3DhNnDhRF198ca3Ok5GRoWuvvVbR0dEKDg5Wr1699NVXX9kc07JlSz3zzDO66667FBISooSEBL355pu1Oi8AAAAA9+aSMFRSUqINGzZo4MCBpzri5aWBAwcqPT29Ts9VUFCgv/zlL0pJSdGmTZs0ePBgDR06VPv377c57oUXXlDPnj21adMm3Xfffbr33nu1c+fOOu0LAAAAAPfhkjB06NAhlZWVKTo62mZ7dHS0srKy6vRcXbp00d///nddcMEFOu+88zRjxgy1adNGn332mc1xf/nLX3Tfffepbdu2euyxx9S0aVOtWrWqTvsCAAAAwH3U22pyQ4YMUXBwsIKDg9WpU6ezHldQUKAJEyaoQ4cOCg8PV3BwsLZv337GzFDnzp3Nry0Wi2JiYsz7lwAAAAA0PI1ccdKmTZvK29tb2dnZNtuzs7MVExNTrTb+/e9/69ixY5IkHx+fsx43YcIErVy5Us8//7zatm2rgIAA3XjjjSopKbE57s9tWCwWlZeXV6svAAAAAOofl4QhX19f9ejRQykpKRo2bJgkqby8XCkpKRo7dmy12mjWrFm1jluzZo1Gjhyp6667TlLFTNG+fftq0m0AAAAADYhLwpAkjR8/XiNGjFDPnj110UUXafbs2SosLNSoUaMkSVlZWcrKytKePXskST/++KNZ6S0iIqLa5znvvPP0ySefaOjQobJYLJo8eTIzPgAAAABcF4ZuueUWHTx4UFOmTFFWVpa6du2qFStWmEUVXn/9dU2fPt08vm/fvpKk+fPna+TIkWdtt7y8XI0anbqsWbNm6a677tIll1yipk2b6rHHHlN+fr5jLgoAAABAvWExDMNwdSfq0syZM/Xee+9p69atru4KAAAAADfmspmhulZUVKQdO3Zo/vz5GjJkiKu7AwAAAMDN1dvS2n/25ptvauDAgerSpYumTJni6u4AAAAAcHMNbpkcAAAAAFRHg5kZAgAAAAB7EIYAAAAAeCS3CUPJycnq1auXQkJCFBUVpWHDhmnnzp02xxw/flxJSUlq0qSJgoODdcMNNyg7O9vcv2XLFg0fPlzx8fEKCAhQhw4d9NJLL51xrtTUVHXv3l1+fn5q27atFixY4OjLAwAAAOBm3CYMpaWlKSkpSWvXrtXKlStVWlqqQYMGqbCw0DzmoYce0ueff67FixcrLS1NBw4c0PXXX2/u37Bhg6KiovTee+/pp59+0uOPP65Jkybp1VdfNY/Zu3evrr76al1xxRXavHmzxo0bp7/97W/673//69TrBQAAAOBabltA4eDBg4qKilJaWpr69u2rvLw8RUZGauHChbrxxhslSTt27FCHDh2Unp6uiy++uNJ2kpKStH37dn399deSpMcee0zLli2zeQ7RrbfeqtzcXK1YscLxFwYAAADALbjNzNCf5eXlSZIiIiIkVcz6lJaWauDAgeYx559/vhISEpSenl5lO9Y2JCk9Pd2mDUlKTEyssg0AAAAADY9bPnS1vLxc48aN06WXXqoLLrhAkpSVlSVfX1+Fh4fbHBsdHa2srKxK2/n222/14YcfatmyZea2rKwsRUdHn9FGfn6+jh07poCAgLq9GAAAAABuyS3DUFJSkrZu3apvvvmmxm1s3bpV1157raZOnapBgwbVYe8AAAAANARut0xu7Nix+uKLL7Rq1So1b97c3B4TE6OSkhLl5ubaHJ+dna2YmBibbdu2bdOAAQN0991364knnrDZFxMTY1OBztpGaGgos0IAAACAB3GbMGQYhsaOHaslS5bo66+/VqtWrWz29+jRQz4+PkpJSTG37dy5U/v371efPn3MbT/99JOuuOIKjRgxQk8//fQZ5+nTp49NG5K0cuVKmzYAAAAANHxuU03uvvvu08KFC/Xpp5+qffv25vawsDBzxubee+/V8uXLtWDBAoWGhur++++XVHFvkFSxNO7KK69UYmKi/vnPf5pteHt7KzIyUlJFae0LLrhASUlJuuuuu/T111/rgQce0LJly5SYmOisywUAAADgYm4ThiwWS6Xb58+fr5EjR0qqeOjqww8/rA8++EDFxcVKTEzUa6+9Zi6TmzZtmqZPn35GGy1atNC+ffvM96mpqXrooYe0bds2NW/eXJMnTzbPAQAAAMAzuE0YAgAAAABncpt7hgAAAADAmQhDAAAAADwSYQgAAACARyIMAQAAAPBIhCEAAAAAHokwBAAAAMAjEYYAAAAAeCTCEAAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADwSP8f6iwC3DOSfS8AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "t_feed_demand_c", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_return_demand_c", + "rawType": "float64", + "type": "float" } + ], + "ref": "8b63f34d-906c-405b-8cb4-374404b8a3d7", + "rows": [ + [ + "2020-01-01 00:00:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 00:15:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 00:30:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 00:45:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:00:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:15:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:30:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:45:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 02:00:00+00:00", + "0.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 02:15:00+00:00", + "0.0", + "0.0", + "80.0", + "20.0" + ] + ], + "shape": { + "columns": 4, + "rows": 10 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
supply_powerdemand_powert_feed_demand_ct_return_demand_c
2020-01-01 00:00:00+00:0025.00.080.020.0
2020-01-01 00:15:00+00:0025.00.080.020.0
2020-01-01 00:30:00+00:0025.00.080.020.0
2020-01-01 00:45:00+00:0025.00.080.020.0
2020-01-01 01:00:00+00:0025.060.080.020.0
2020-01-01 01:15:00+00:0025.060.080.020.0
2020-01-01 01:30:00+00:0025.060.080.020.0
2020-01-01 01:45:00+00:0025.060.080.020.0
2020-01-01 02:00:00+00:000.00.080.020.0
2020-01-01 02:15:00+00:000.00.080.020.0
\n", + "
" ], - "source": [ - "df1.plot(subplots=True, figsize=(10, 6))" + "text/plain": [ + " supply_power demand_power t_feed_demand_c \\\n", + "2020-01-01 00:00:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 00:15:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 00:30:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 00:45:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 01:00:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 01:15:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 01:30:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 01:45:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 02:00:00+00:00 0.0 0.0 80.0 \n", + "2020-01-01 02:15:00+00:00 0.0 0.0 80.0 \n", + "\n", + " t_return_demand_c \n", + "2020-01-01 00:00:00+00:00 20.0 \n", + "2020-01-01 00:15:00+00:00 20.0 \n", + "2020-01-01 00:30:00+00:00 20.0 \n", + "2020-01-01 00:45:00+00:00 20.0 \n", + "2020-01-01 01:00:00+00:00 20.0 \n", + "2020-01-01 01:15:00+00:00 20.0 \n", + "2020-01-01 01:30:00+00:00 20.0 \n", + "2020-01-01 01:45:00+00:00 20.0 \n", + "2020-01-01 02:00:00+00:00 20.0 \n", + "2020-01-01 02:15:00+00:00 20.0 " ] - }, + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Part 1 input: supply power (to storage) and demand (for heat demand element)\n", + "supply_kw = np.zeros(n_steps)\n", + "supply_kw[0:8] = 25.0 # charge 25 kW for first 2 h\n", + "supply_kw[20:24] = 20.0 # charge again later\n", + "demand_kw = np.zeros(n_steps)\n", + "demand_kw[4:8] = 60.0 # demand spike 60 kW for 4 steps\n", + "demand_kw[12:16] = 25.0\n", + "df1 = pd.DataFrame({\n", + " 'supply_power': supply_kw,\n", + " 'demand_power': demand_kw,\n", + " 't_feed_demand_c': 80.0,\n", + " 't_return_demand_c': 20.0\n", + "}, index=dur)\n", + "profile1 = DFData(df1)\n", + "df1.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from pandaprosumer.create import create_empty_prosumer_container, create_period\n", - "from pandaprosumer.create_controlled import (\n", - " create_controlled_const_profile,\n", - " create_controlled_heat_storage,\n", - " create_controlled_heat_demand\n", - ")\n", - "\n", - "prosumer1 = create_empty_prosumer_container()\n", - "period_id = create_period(prosumer1, time_resolution_s, start, end, 'utc', 'default')\n", - "\n", - "cp_input = ['supply_power', 'demand_power', 't_feed_demand_c', 't_return_demand_c']\n", - "cp_result = ['supply_power', 'qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", - "cp_idx = create_controlled_const_profile(prosumer1, cp_input, cp_result, profile1, period_id, 0, 0)\n", - "\n", - "hs_idx = create_controlled_heat_storage(prosumer1, q_capacity_kwh=100.0, name='tank_power_only',\n", - " period=period_id, level=1, order=0)\n", - "hd_idx = create_controlled_heat_demand(prosumer1, period=period_id, level=1, order=1, name='heat_consumer')" + "data": { + "text/plain": [ + "array([, , , ], dtype=object)" ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from pandaprosumer.mapping import GenericMapping\n", - "\n", - "# Const profile -> Heat storage: supply power as q_received_kw\n", - "GenericMapping(prosumer1, initiator_id=cp_idx, initiator_column='supply_power',\n", - " responder_id=hs_idx, responder_column='q_received_kw', order=0)\n", - "# Const profile -> Heat demand: demand request and temperatures\n", - "GenericMapping(prosumer1, initiator_id=cp_idx,\n", - " initiator_column=['qdemand_kw', 't_feed_demand_c', 't_return_demand_c'],\n", - " responder_id=hd_idx, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=1)\n", - "# Heat storage -> Heat demand: delivered power as q_received_kw\n", - "GenericMapping(prosumer1, initiator_id=hs_idx, initiator_column='q_delivered_kw',\n", - " responder_id=hd_idx, responder_column='q_received_kw', order=0)" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0MAAAIaCAYAAADiNpZkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdMVJREFUeJzt3XlcVmX+//H3DbKvoqwKrmlquZvZopYmOo1le9av1BybCiszK51yywprymwxq5nUNrNs0hb9OhkJToaWa5k7aVayqAkIKCCc3x94H70TkRu4F7hfz8fjfsh9zrmvcx0uTN5d1/kci2EYhgAAAADAw3i5ugMAAAAA4AqEIQAAAAAeiTAEAAAAwCMRhgAAAAB4JMIQAAAAAI9EGAIAAADgkQhDAAAAADwSYQgAAACAR2rk6g7UhfLych04cEAhISGyWCyu7g4AAAAAFzEMQ0ePHlVcXJy8vKqe+2kQYejAgQOKj493dTcAAAAAuIlff/1VzZs3r/KYBhGGQkJCJFVccGhoqIt7AwAAAMBV8vPzFR8fb2aEqjSIMGRdGhcaGkoYAgAAAFCt22caRBiymvbZT/ILDHZ1NxzGr5GX7rq0lRKaBLq6KwAAAEC916DC0McbfpOXX8MOCsUnypR8fWdXdwMAAACo9xpUGBp7RVsFBDXMmaHtWfla/mOWDuQed3VXAAAAgAahQYWhe/q3abD3DK3akaPlP2bpUEGxq7sCAABQZ8rKylRaWurqbqCe8fHxkbe3d63baVBhqCFrGuwnSYQhAADQIBiGoaysLOXm5rq6K6inwsPDFRMTU6vnjBKG6ommIb6SpMMFJSovN+TlxcNlAQBA/WUNQlFRUQoMDKzVL7TwLIZhqKioSDk5OZKk2NjYGrdFGKonmgRVzAydKDeUd6xUjYN8XdwjAACAmikrKzODUJMmTVzdHdRDAQEBkqScnBxFRUXVeMmcV112Co7j28hLYQE+klgqBwAA6jfrPUKBgQ27CjAcy/rzU5t7zghD9UjT4IrZoEMFJS7uCQAAQO2xNA61URc/P4SheoQiCgAAAEDdIQzVI4QhAAAAz7Zv3z5ZLBZt3rzZ1V1pEAhD9cipZXKEIQAAAKC2CEP1iDkzdJR7hgAAAOAZSkoc97svYageaRrCMjkAAABX+vjjj3XhhRcqICBATZo00cCBA1VYWKj+/ftr3LhxNscOGzZMI0eONN+3bNlSM2bM0PDhwxUUFKRmzZppzpw5Np+xWCyaO3euhgwZooCAALVu3Voff/xxpX0xDENt27bV888/b7N98+bNslgs2rNnzzmvpzrn+/HHH3XllVea13z33XeroKBAkrR161Z5eXnp4MGDkqQ//vhDXl5euvXWW83PP/XUU7rsssvM91u3btWQIUMUHBys6Oho3XHHHTp06JC5v3///ho7dqzGjRunpk2bKjEx8ZzXUVOEoXqEe4YAAEBDZBiGikpOuORlGEa1+5mZmanhw4frrrvu0vbt25Wamqrrr7/erjb++c9/qkuXLtq0aZMmTpyoBx98UCtXrrQ5ZvLkybrhhhu0ZcsW3X777br11lu1ffv2M9qyWCy66667NH/+fJvt8+fPV9++fdW2bdtq9amq8xUWFioxMVGNGzfW999/r8WLF+urr77S2LFjJUmdOnVSkyZNlJaWJkn63//+Z/NektLS0tS/f39JUm5urq688kp169ZN69ev14oVK5Sdna2bb77Zpk9vv/22fH19tWbNGr3++uvVuo6acPhDV5OTk/XJJ59ox44dCggI0CWXXKJnn31W7du3N485fvy4Hn74YS1atEjFxcVKTEzUa6+9pujoaEd3r16htDYAAGiIjpWWqeOU/7rk3NueTFSgb/V+Jc7MzNSJEyd0/fXXq0WLFpKkCy+80K7zXXrppZo4caIkqV27dlqzZo1efPFFXXXVVeYxN910k/72t79JkmbMmKGVK1fqlVde0WuvvXZGeyNHjtSUKVP03Xff6aKLLlJpaakWLlx4xmxRVao638KFC3X8+HG98847CgoKkiS9+uqrGjp0qJ599llFR0erb9++Sk1N1Y033qjU1FSNGjVK//73v7Vjxw61adNG3377rR599FHzs926ddMzzzxjnn/evHmKj4/Xrl271K5dO0nSeeedp+eee86eb22NOHxmKC0tTUlJSVq7dq1Wrlyp0tJSDRo0SIWFheYxDz30kD7//HMtXrxYaWlpOnDggK6//npHd63eOX1myJ7/AwEAAIDa69KliwYMGKALL7xQN910k/71r3/pyJEjdrXRp0+fM97/edanOsdYxcXF6eqrr9a8efMkSZ9//rmKi4t100031Umftm/fri5duphBSKoIdOXl5dq5c6ckqV+/fkpNTZVU8bv/lVdeaQak77//XqWlpbr00kslSVu2bNGqVasUHBxsvs4//3xJUkZGhnmOHj16VLv/teHwmaEVK1bYvF+wYIGioqK0YcMG9e3bV3l5eXrrrbe0cOFCXXnllZIqpvY6dOigtWvX6uKLL3Z0F+sNaxgqPlGuguITCvH3cXGPAAAAai/Ax1vbnnTcfSHnOnd1eXt7a+XKlfr222/15Zdf6pVXXtHjjz+udevWycvL64z/WV1aWlrX3a3U3/72N91xxx168cUXNX/+fN1yyy0KDAx0yrklmfdL7d69W9u2bdNll12mHTt2KDU1VUeOHFHPnj3N/hQUFJizSn8WGxtrfn16+HIkh4ehP8vLy5MkRURESJI2bNig0tJSDRw40Dzm/PPPV0JCgtLT0wlDpwnw9VaQr7cKS8p0qKCEMOSGyssNfZtxWLnHHLuUsU1ksDrEhjr0HAAAOIvFYqn2UjVXs1gsuvTSS3XppZdqypQpatGihZYsWaLIyEhlZmaax5WVlWnr1q264oorbD6/du3aM9536NDhjG133nmnzftu3bqdtU9/+ctfFBQUpLlz52rFihVavXq1XddU1fk6dOigBQsWqLCw0Awoa9askZeXl3nby4UXXqjGjRvrqaeeUteuXRUcHKz+/fvr2Wef1ZEjR8z7hSSpe/fu+s9//qOWLVuqUSPXj7lTe1BeXq5x48bp0ksv1QUXXCBJysrKkq+vr8LDw22OjY6OVlZWVqXtFBcXq7j4VBGB/Px8h/XZ3TQN8VPh4SIdKihWq6bOScyovhU/Zem+9zc6/Dw+3halTxpgzhYCAADHW7dunVJSUjRo0CBFRUVp3bp1OnjwoDp06KCgoCCNHz9ey5YtU5s2bTRr1izl5uae0caaNWv03HPPadiwYVq5cqUWL16sZcuW2RyzePFi9ezZU5dddpnef/99fffdd3rrrbfO2i9vb2+NHDlSkyZN0nnnnXfGsrdzqep8t99+u6ZOnaoRI0Zo2rRpOnjwoO6//37dcccd5v39FotFffv21fvvv68JEyZIkjp37qzi4mKlpKRo/Pjx5rmSkpL0r3/9S8OHD9ejjz6qiIgI7dmzR4sWLdK///1veXtXf6auLjg1DCUlJWnr1q365ptvatVOcnKypk+fXke9ql+aBvvpl8NFOnSUinLuaHtmRTCPDfNXiyaOmZ7+4bc8FZWUKSOngDAEAIAThYaGavXq1Zo9e7by8/PVokULvfDCCxoyZIhKS0u1ZcsW3XnnnWrUqJEeeuihM2aFJOnhhx/W+vXrNX36dIWGhmrWrFlnlI6ePn26Fi1apPvuu0+xsbH64IMP1LFjxyr7Nnr0aD3zzDMaNWqU3ddV1fkCAwP13//+Vw8++KB69eqlwMBA3XDDDZo1a5ZNG/369dPSpUvNWSAvLy/17dtXy5YtM+8XkirucVqzZo0ee+wxDRo0SMXFxWrRooUGDx4sLy/nF7p2WhgaO3asvvjiC61evVrNmzc3t8fExKikpES5ubk2s0PZ2dmKiYmptK1JkybZJMz8/HzFx8c7rO/u5FRFOcKQO8rMOy5J+n8Xt1DSFdUrZ2mvW99M19qf/1BW/nGHtA8AACrXoUOHM+6Ht/Lx8dFrr71WacW304WGhuqjjz6q8pi4uDh9+eWXle5r2bJlpYW0fv/9d/n4+Ngsd6uuqs4nVSyD+/rrr6tsY9y4cWc8Z2np0qWVHnveeefpk08+OWtb1mIMzuDw+GUYhsaOHaslS5bo66+/VqtWrWz29+jRQz4+PkpJSTG37dy5U/v37z/rFJ+fn59CQ0NtXp7COhNwkPLabikz75gkKSbU32HniA0LkCQdyCUMAQDg6YqLi/Xbb79p2rRpuummm3g0jZ0cHoaSkpL03nvvaeHChQoJCVFWVpaysrJ07FjFL41hYWEaPXq0xo8fr1WrVmnDhg0aNWqU+vTpQ/GESvDgVfeWeTKgxIY7MgxVtG0NXgAAwHN98MEHatGihXJzc894Ls/7779vU8L69FenTp1c1GP34vBlcnPnzpUkmyoSUkX57JEjR0qSXnzxRXl5eemGG26weegqztQ0pCIMHSYMuR3DMMxlcnEnZ28cITa8om3ruQAAQP2wb9++cx5j77MkR44caf5O/WfXXHONevfuXek+Hx+fGp2voXF4GKrON9jf319z5szRnDlzHN2dei/SvGeIZXLuJu9YqY6VlkmSYsIcODMUyswQAAA4t5CQEIWEhLi6G27N+SUbUCtNWCbntqwzNRFBvvK34wFu9rIuwctiZggAUM95+qwEaqcufn4IQ/WMec8QpbXdjjOKJ0inCigcKihR8Ykyh54LAABHsC7RKioqcnFPUJ9Zf36sP0814frHvsIu1tLahSVlOlZSpgBf5z6YCmdnre4W58DiCZLUONBHfo28VHyiXFl5x9WiCQ/fBQDUL97e3goPD1dOTo6kimfZWCwWF/cK9YVhGCoqKlJOTo7Cw8Nr9aBWwlA9E+zXyPxF+FBBseIjHPNgT9jPumzNkfcLSRVPeY4N89e+w0XKJAwBAOop6/MkrYEIsFd4ePhZn0taXYShesZisahpsJ9+zz2mg4Qht3Lg5DK5WAdWkrOKDQs4GYYoogAAqJ8sFotiY2MVFRWl0tJSV3cH9YyPj0+tZoSsCEP1UNOQijDEfUPuxToz5OhlctKpIgqU1wYA1Hfe3t518kstUBMUUKiHrOW1DxdSXtudWINJTKgzZoZOhqFcwhAAAEBNEYbqISrKuR/DMHQgt2LJmlNmhsKsD15lmRwAAEBNEYbqoSbmg1cJQ+4it6hUxSfKJUnRDi6tLZ02M8QyOQAAgBojDNVD5sxQAcvk3IW1eEITBz9w1erUzBBhCAAAoKYIQ/WQNQwdZGbIbViLJ8Q6YYmcdGop3h+FJTpeyoNXAQAAaoIwVA+dmhkiDLmLA04sniBJYQE+8vep+OubxewQAABAjRCG6qHIkJP3DFFAwW1k5TmveIJU8WyGOJbKAQAA1AphqB6yzgzlHz+h4hMskXIH1hLXMWHOCUOnn4uKcgAAADVDGKqHwgJ85ONtkSQdpoiCW7AWULDO1jgDRRQAAABqhzBUD1ksFjUJqpgdIgy5B7OAghNnhqxL8pgZAgAAqBnCUD3Fs4bch2EY5uxMrBNnhsxlcrnMDAEAANQEYaieory2+zhy+gNXw/ycdl4KKAAAANQOYaieory2+ziQW7FMrWmwr/waOf6Bq1YUUAAAAKgdwlA91dQsr809Q67miiVy0qmZoSNFpTpWQlVBAAAAexGG6qlIZobchvUZQ84sniBJoQGNFOhbMROVlc9SOQAAAHsRhuoplsm5jwMuqCQnVVQVPFVEgaVyAAAA9iIM1VOEIfdhltUOd+4yOYkiCgAAALVBGKqnrPcM8Zwh17MWUHD2zJBEEQUAAIDaIAzVU9aHrv5RVKITZeUu7o1nc1UBBUmKOxmGDjAzBAAAYDfCUD0VEeQrL4tkGBWBCK5hGMapZXIumBmyLs3LIgwBAADYzSlhaPXq1Ro6dKji4uJksVi0dOlSm/2GYWjKlCmKjY1VQECABg4cqN27dzuja/WWt5dFEUGU13a1w4UlKikrl8UiRYe6bpncAQooAAAA2M0pYaiwsFBdunTRnDlzKt3/3HPP6eWXX9brr7+udevWKSgoSImJiTp+nP/bXRWKKLiedUamabCffBs5f6LVWkCB0toAAAD2a+SMkwwZMkRDhgypdJ9hGJo9e7aeeOIJXXvttZKkd955R9HR0Vq6dKluvfVWZ3SxXqoIQ0cJQy7kyuIJ0qmZodyTD14NOPncIQAAAJyby+8Z2rt3r7KysjRw4EBzW1hYmHr37q309PRKP1NcXKz8/HyblydqGnxymRxhyGUyXXi/kCSF+jdS0MkAdICKcgAAAHZxeRjKysqSJEVHR9tsj46ONvf9WXJyssLCwsxXfHy8w/vpjk4tk+OeIVdxZSU5yfbBqxRRAAAAsI/Lw1BNTJo0SXl5eebr119/dXWXXKJpCPcMuZr1+T6umhmSpLiTFeUoogAAAGAfl4ehmJgYSVJ2drbN9uzsbHPfn/n5+Sk0NNTm5YmaWKvJMTPkMubMULhrZoakU0GMmSEAAAD7uDwMtWrVSjExMUpJSTG35efna926derTp48Le+b+zJmho8wMuYo7zAzFnFyix4NXAQAA7OOUanIFBQXas2eP+X7v3r3avHmzIiIilJCQoHHjxumpp57Seeedp1atWmny5MmKi4vTsGHDnNG9eiuS0touVV7u2geuWsWdPHcmBRQAAADs4pQwtH79el1xxRXm+/Hjx0uSRowYoQULFujRRx9VYWGh7r77buXm5uqyyy7TihUr5O/vul8w6wNrAYXDhSUqLzfk5WVxcY88y+HCEpWWGS574KoVBRQAAABqxilhqH///jIM46z7LRaLnnzyST355JPO6E6D0eRkae2yckO5x0oVcfIeIjiHdSYmMthPPt6uW3FKAQUAAICacfk9Q6g5H28vhQf6SGKpnCu4Q/EE6dQSvfzjJ1RYfMKlfQEAAKhPCEP1nPmsIYooOF3myZmYWBcukZOkEH8fBftVTPJmslQOAACg2ghD9VzTk0vlDhVSXtvZMvOtM0Ouv7eN8toAAAD2IwzVc8wMuU5mrusryVlZiygcoKIcAABAtRGG6rmmlNd2mVPPGHLtPUOSFHeyD9aABgAAgHMjDNVz5jI5wpDTWe/PiXOHZXIn+5CVz8wQAABAdRGG6rlTM0PcM+RM5eWGsk/eMxTjBjND1qV6B5gZAgAAqDbCUD3HMjnXOFRYrNIyQ14WKSrEz9XdMZfqUUABAACg+ghD9VzTEAoouIL13pzIENc+cNUqlgIKAAAAdnP9b3GolVP3DJXIMAwX98ZzuFPxBOnUg1+PHj+hAh68CgAAUC2EoXrOukyupKxcR/kl2GncqXiCJAX7NVKIf8WDV7OYHQIAAKgWwlA95+/jrRC/il+CWSrnPNYwFBPqHjNDEkUUAAAA7EUYagCanLZUDs7hbjNDEkUUAAAA7EUYagCoKOd8mbkVS9FiwtwpDFFEAQAAwB6EoQaAMOR81pkhdymgIJ3qSybL5AAAAKqFMNQANA05uUyOe4acouy0B6661TK5k33JzCcMAQAAVAdhqAGwzgwd5J4hpzhUUKwT5RUPXI0Mdv0DV62sy+SsS/gAAABQNcJQA8AyOeeyLpGLDvVXIzd44KoVBRQAAADs4z6/yaHGrGHoMGHIKdyxeIJ0amboaPEJHT1e6uLeAAAAuD/CUAMQGUJpbWc6YC2r7UbFEyQpyK+RQk8+eDWT2SEAAIBzIgw1AE2CWCbnTFl57jkzJJ1WUY4wBAAAcE6EoQagaUhFGCoqKVNRyQkX96bhO2CW1XbDMBROEQUAAIDqIgw1AEG+3vL3qRjKQ0dZKudo1gIFceHutUxOYmYIAADAHoShBsBisZxWXpulco7mrgUUpNPKa+cxMwQAAHAuhKEGgvLazlFWbij75MNt3a2AgnR6GGJmCAAA4FzcKgzNmTNHLVu2lL+/v3r37q3vvvvO1V2qNwhDznHwaLHKyg15e1kUGeI+D1y1YpkcAABA9blNGPrwww81fvx4TZ06VRs3blSXLl2UmJionJwcV3etXrCW1z5MeW2HOnBy+Vl0iJ+8vSwu7s2ZTi+gYBiGi3sDAADg3twmDM2aNUtjxozRqFGj1LFjR73++usKDAzUvHnzXN21eoGZIeewFk+IdcPiCdKpZXKFJWU6WkxlQQAAgKo0cnUHJKmkpEQbNmzQpEmTzG1eXl4aOHCg0tPTXdiz+qNJUMXM0I7Mo/p6R7aLe9NwfbPnkCT3LJ4gSYG+jRQW4KO8Y6X6fMsBtyz/DQAA4EiFBUerfaxbhKFDhw6prKxM0dHRNtujo6O1Y8eOM44vLi5WcfGpGZD8/HyH99HdRYVW/NL73b4/9N2CP1zcm4Yvzo1DRlx4gPKOlerxJVtd3RUAAACnKy8uqvaxbhGG7JWcnKzp06e7uhtupW+7SA3qGK3sfG6cd7Qgv0a6uWe8q7txVklXtNFb3+xVeTn3DAEAAM9TeqyRfq3msRbDDe6yLikpUWBgoD7++GMNGzbM3D5ixAjl5ubq008/tTm+spmh+Ph45eXlKTQ01FndBgAAAOBm8vPzFRYWVq1s4BYFFHx9fdWjRw+lpKSY28rLy5WSkqI+ffqccbyfn59CQ0NtXgAAAABgD7dZJjd+/HiNGDFCPXv21EUXXaTZs2ersLBQo0aNOudnrZNb3DsEAAAAeDZrJqjOAji3CUO33HKLDh48qClTpigrK0tdu3bVihUrziiqUJnDhw9LkuLj3fc+DgAAAADOc/jwYYWFhVV5jFvcM1Rbubm5aty4sfbv33/OC4Zj9erVS99//72ru+HxGAf3wDi4B8bBPTAO7oFxcA+Mg2Pl5eUpISFBR44cUXh4eJXHus3MUG14eVXc+hQWFsb9Qy7m7e3NGLgBxsE9MA7ugXFwD4yDe2Ac3APj4BzWjFDlMU7oBzxIUlKSq7sAMQ7ugnFwD4yDe2Ac3APj4B4YB/fRIJbJ2VM+DwAAAEDDVe9Ka9eWn5+fpk6dKj8/P1d3BQAAAIAL2ZMNGsTMEAAAAADYq0HMDAEAAACAvQhDAAAAADwSYQgAAACARyIMAQAAAPBIhCEAAAAAHokwBAAAAMAjEYYAAAAAeCTCEAAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADwSI1c3YG6UF5ergMHDigkJEQWi8XV3QEAAADgIoZh6OjRo4qLi5OXV9VzPw0iDB04cEDx8fGu7gYAAAAAN/Hrr7+qefPmVR7TIMJQSEiIpIoLDg0NdXFvAAAAALhKfn6+4uPjzYxQlQYRhqxL40JDQwlDAAAAAKp1+0yDCENuwTCkoj8cew5vH8mfsAcAAADUBcJQXVl4s7T7SwefxCL99UWp5ygHnwcAAABo+CitXRfKy6U9KU44kSH9vMoJ5wEAAAAaPmaG6sKxPySjrOLrJ3IkL5+6P8e2JdLHd0kFB+u+bQAAgDpSVlam0tJSV3cDDZyPj4+8vb1r3Q5hqC4U5FT8GRAhNfJzzDmCoyv+LMxxTPsAAAC1YBiGsrKylJub6+quwEOEh4crJiamVs8ZJQzVBWtACY5y3DmCTrbNzBAAAHBD1iAUFRWlwMDAWv2CClTFMAwVFRUpJ6fid/DY2Ngat0UYqgvWgBIU6bhzBJ9suzhPKj0u+fg77lwAAAB2KCsrM4NQkyZNXN0deICAgABJUk5OjqKiomq8ZI4CCnXBGTND/uGSt+/J8zE7BAAA3If1HqHAwEAX9wSexPrzVpt71AhDdcF6z1CQA8OQxXJq5on7hgAAgBtiaRycqS5+3ghDdaHwUMWfwQ5cJiedFoYOOfY8AAAAgAcgDNUF60yNI+8ZOr39AmaGAAAAHKl///4aN26cq7tRI9OmTVPXrl1d3Y16gTBUF5yxTE46dU8Sy+QAAACAWiMM1QVrQQNnLZOjvDYAAAA8RFlZmcrLyx3StsPD0LRp02SxWGxe559/vrn/+PHjSkpKUpMmTRQcHKwbbrhB2dnZju5W3TGMU2GImSEAAIB6p7CwUHfeeaeCg4MVGxurF154wWZ/cXGxJkyYoGbNmikoKEi9e/dWamqquX/BggUKDw/XF198ofbt2yswMFA33nijioqK9Pbbb6tly5Zq3LixHnjgAZWVlZmfe/fdd9WzZ0+FhIQoJiZGt912m/nsHElKTU2VxWJRSkqKevbsqcDAQF1yySXauXOnTf9mzpyp6OhohYSEaPTo0Tp+/Hi1r33kyJEaNmyYpk+frsjISIWGhuqee+5RSUmJzfU/8MADioqKkr+/vy677DJ9//335v6ePXvq+eefN98PGzZMPj4+KigokCT99ttvslgs2rNnj13fz88++0wdO3aUn5+f9u/fX+1rsodTZoY6deqkzMxM8/XNN9+Y+x566CF9/vnnWrx4sdLS0nTgwAFdf/31zuhW3TieK5Wd/GFx+D1D1gevEoYAAICbMwyppNA1L8Owq6uPPPKI0tLS9Omnn+rLL79UamqqNm7caO4fO3as0tPTtWjRIv3www+66aabNHjwYO3evds8pqioSC+//LIWLVqkFStWKDU1Vdddd52WL1+u5cuX691339Ubb7yhjz/+2PxMaWmpZsyYoS1btmjp0qXat2+fRo4ceUb/Hn/8cb3wwgtav369GjVqpLvuusvc99FHH2natGl65plntH79esXGxuq1116z6/pTUlK0fft2paam6oMPPtAnn3yi6dOnm/sfffRR/ec//9Hbb7+tjRs3qm3btkpMTNQff/whSerXr58ZZgzD0P/+9z+Fh4ebv/OnpaWpWbNmatu2rV3fz2effVb//ve/9dNPPykqyjGTDk556GqjRo0UExNzxva8vDy99dZbWrhwoa688kpJ0vz589WhQwetXbtWF198sTO6VzvWJWt+YY5/EKp1GR7PGQIAAO6utEh6Js415/7HAck3qFqHFhQU6K233tJ7772nAQMGSJLefvttNW/eXJK0f/9+zZ8/X/v371dcXMX1TJgwQStWrND8+fP1zDPPSKoINnPnzlWbNm0kSTfeeKPeffddZWdnKzg4WB07dtQVV1yhVatW6ZZbbpEkm1DTunVrvfzyy+rVq5cKCgoUHBxs7nv66afVr18/SdLEiRN19dVX6/jx4/L399fs2bM1evRojR49WpL01FNP6auvvrJrdsjX11fz5s1TYGCgOnXqpCeffFKPPPKIZsyYoWPHjmnu3LlasGCBhgwZIkn617/+pZUrV+qtt97SI488ov79++utt95SWVmZtm7dKl9fX91yyy1KTU3V4MGDlZqaavbfnu/na6+9pi5dulT7OmrCKTNDu3fvVlxcnFq3bq3bb7/dnObasGGDSktLNXDgQPPY888/XwkJCUpPTz9re8XFxcrPz7d5uYz5wFUHzwpJzAwBAADUsYyMDJWUlKh3797mtoiICLVv316S9OOPP6qsrEzt2rVTcHCw+UpLS1NGRob5mcDAQDMISVJ0dLRatmxpE2qio6NtlsFt2LBBQ4cOVUJCgkJCQmwCw+k6d+5sfh0bGytJZjvbt2+36bsk9enTx67vQZcuXWwemNunTx8VFBTo119/VUZGhkpLS3XppZea+318fHTRRRdp+/btkqTLL79cR48e1aZNm5SWlqZ+/fqpf//+5mxRWlqa+vfvL6n6309fX1+b63YUh88M9e7dWwsWLFD79u2VmZmp6dOn6/LLL9fWrVuVlZUlX19fhYeH23wmOjpaWVlZZ20zOTnZZurOpcz7hZwQhqz3DB37Qyo7IXk7ZWIPAADAfj6BFTM0rjp3HSkoKJC3t7c2bNggb29vm32nBx0fHx+bfRaLpdJt1kIAhYWFSkxMVGJiot5//31FRkZq//79SkxMtLlf589tWx806qiCAjURHh6uLl26KDU1Venp6brqqqvUt29f3XLLLdq1a5d2795tBr3qfj8DAgKc8hBfh/82bZ1OkypSbe/evdWiRQt99NFHCggIqFGbkyZN0vjx4833+fn5io+Pr3Vfa6TAiWEooLFk8ZKMcqnokBRy5tJDAAAAt2CxVHupmiu1adNGPj4+WrdunRISEiRJR44c0a5du9SvXz9169ZNZWVlysnJ0eWXX15n592xY4cOHz6smTNnmr/Hrl+/3u52OnTooHXr1unOO+80t61du9auNrZs2aJjx46Zv5uvXbtWwcHBio+PV9OmTeXr66s1a9aoRYsWkiqWsH3//fc2z2Hq16+fVq1ape+++05PP/20IiIi1KFDBz399NOKjY1Vu3btJMlh38+acnpp7fDwcLVr10579uxRTEyMSkpKlJuba3NMdnZ2pfcYWfn5+Sk0NNTm5TLmMjkHV5KTJC9vKbBpxdcslQMAAKi14OBgjR49Wo888oi+/vprbd26VSNHjpSXV8Wvye3atdPtt9+uO++8U5988on27t2r7777TsnJyVq2bFmNz5uQkCBfX1+98sor+vnnn/XZZ59pxowZdrfz4IMPat68eZo/f7527dqlqVOn6qeffrKrjZKSEo0ePVrbtm3T8uXLNXXqVI0dO1ZeXl4KCgrSvffeq0ceeUQrVqzQtm3bNGbMGBUVFZn3KUkVD6n973//q0aNGpmVo/v376/333/fnBWSHPf9rCmnh6GCggJlZGQoNjZWPXr0kI+Pj1JSUsz9O3fu1P79++1e6+gyznrgqhXltQEAAOrUP//5T11++eUaOnSoBg4cqMsuu0w9evQw98+fP1933nmnHn74YbVv317Dhg3T999/b84k1URkZKQWLFigxYsXq2PHjpo5c6ZNeerquuWWWzR58mQ9+uij6tGjh3755Rfde++9drUxYMAAnXfeeebStmuuuUbTpk0z98+cOVM33HCD7rjjDnXv3l179uzRf//7XzVu3Ng85vLLL1d5eblN8Onfv7/KysrM+4WsHPH9rCmLYdhZe9BOEyZM0NChQ9WiRQsdOHBAU6dO1ebNm7Vt2zZFRkbq3nvv1fLly7VgwQKFhobq/vvvlyR9++231T5Hfn6+wsLClJeX5/xZog+GSzuXS399Uep517mPr613hkk/r5KGvS51He748wEAAJzD8ePHtXfvXrVq1Ur+/g6uros6NXLkSOXm5mrp0qWu7ordzvZzZ082cPg9Q7/99puGDx+uw4cPKzIyUpdddpnWrl2ryMiKe2xefPFFeXl56YYbblBxcbESExPt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wak6tm/fruuuu+6Mz58ehrZs2aI1a9bo6aefNreVlZXp+PHjKioqMh9C2rlzZ3N/dHS0JOnCCy+02Xb8+HHl5+crNDRUBQUFmjZtmpYtW6bMzEydOHFCx44d0/79+236c3q7FotFMTExysnJMfvfuXNn+fv71+j6N2/erMsvv9wMQs5iVxi65JJL9Oabb2rXrl1q166dtmzZom+++UazZs0662fy8vJksVjOeXPa7t27FRcXJ39/f/Xp00fJyclVhicAAAA4VkCjAK27bZ3Lzu0sBQUFGjp0aKWzOLGxsdq6daskadmyZWrWrJnNfj8/P6f0Uaro5/Tp03X99defse/0EHJ6oLA+mLSybeXl5ZKkCRMmaOXKlXr++efVtm1bBQQE6MYbb1RJSYnNOf4cVCwWi9lGbQUEOG+8T2dXGJo4caLy8/N1/vnny9vbW2VlZXr66ad1++23V3r88ePH9dhjj2n48OEKDQ09a7u9e/fWggUL1L59e2VmZmr69Om6/PLLtXXrVoWEhJxxfHFxsYqLi833+fn59lwGAAAAqsFisVRrqZqr+fr6qqysrMaf7969u/7zn/+oZcuWld6q0bFjR/n5+Wn//v3q169fpW106NBBn332mc22tWvXVrsPHTp00Lp1tsHzz5/v3r27du7cqbZt21a73epYs2aNRo4cac5MFRQU2F38oUOHDnr33Xd1/PhxM5jZc/2dO3fW22+/rdLSUqfODtlVTe6jjz7S+++/r4ULF2rjxo16++239fzzz+vtt98+49jS0lLdfPPNMgxDc+fOrbLdIUOG6KabblLnzp2VmJio5cuXKzc3Vx999FGlxycnJyssLMx8xcfH23MZAAAAaEBatmypdevWad++fTp06JDdsxVJSUn6448/NHz4cH3//ffKyMjQf//7X40aNUplZWUKCQnRhAkT9NBDD+ntt99WRkaGNm7cqFdeecX8Pfiee+7R7t279cgjj2jnzp1auHChXc8weuCBB7RixQo9//zz2r17t1599VWbJXKSNGXKFL3zzjuaPn26fvrpJ23fvl2LFi3SE088Ydf1/tl5552nTz75RJs3b9aWLVt022232f09vO2222SxWDRmzBht27ZNy5cv1/PPP1/tz48dO1b5+fm69dZbtX79eu3evVvvvvuudu7cae/l2MWuMPTII49o4sSJuvXWW3XhhRfqjjvu0EMPPaTk5GSb46xB6JdfftHKlSurnBWqTHh4uNq1a6c9e/ZUun/SpEnKy8szX7/++qtd7QMAAKDhmDBhgry9vdWxY0dFRkaeca/LucTFxWnNmjUqKyvToEGDdOGFF2rcuHEKDw+Xl1fFr8szZszQ5MmTlZycrA4dOmjw4MFatmyZWrVqJUlKSEjQf/7zHy1dulRdunTR66+/blOQ4Vwuvvhi/etf/9JLL72kLl266Msvvzwj5CQmJuqLL77Ql19+qV69euniiy/Wiy++qBYtWth1vX82a9YsNW7cWJdccomGDh2qxMREde/e3a42goOD9fnnn+vHH39Ut27d9Pjjj1e7eIQkNWnSRF9//bUKCgrUr18/9ejRQ//6178cPktkOVmCr1qaNGmip556yqYqRHJysubPn69du3ZJOhWEdu/erVWrVikyMtLuThUUFCghIUHTpk3TAw88cM7j8/PzFRYWpry8PLuDFwAAACpub9i7d69atWplc/8J4K7O9jNrTzawa2Zo6NChevrpp7Vs2TLt27dPS5Ys0axZs8z1haWlpbrxxhu1fv16vf/++yorK1NWVpaysrJsbsAaMGCAXn31VfP9hAkTlJaWpn379unbb7/VddddJ29vbw0fPtye7gEAAABAtdkVhl555RXdeOONuu+++9ShQwdNmDBBf//73zVjxgxJ0u+//67PPvtMv/32m7p27arY2Fjz9e2335rtZGRk2DzR97ffftPw4cPVvn173XzzzWrSpInWrl1bo1klAAAAeK577rlHwcHBlb7uuecel/VryJAhZ+2XPcvp6it3HRe7lsm5K5bJAQAA1E5DWSaXk5Nz1krDoaGhioqKcnKPKvz+++86duxYpfsiIiIUERHh5B45lyPGpS6WydlVWhsAAABwZ1FRUS4LPFX58/OJPI27jotdy+QAAADQsDWARUPwEHXxs0oYAgAAgFnCuKioyMU9AarH+rNam/LbLJMDAACAvL29FR4erpycHElSYGCgLBaLi3sFnMkwDBUVFSknJ0fh4eHy9vaucVuEIQAAAEiSYmJiJMkMRIA7Cw8PN39ma4owBAAAAEmSxWJRbGysoqKiVFpa6uruAGfl4+NTqxkhK8IQAAAAbHh7e9fJL5qAu6OAAgAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADw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+uKLL7R69epzlrg7Fz8/P/n5+dVRzwAAABouwzCUlZWl3NxcV3cFqFPh4eGKiYmp1XNGHR6GDMPQ/fffryVLlig1NVWtWrVy9CkBAABwkjUIRUVFKTAwkAfUo94zDENFRUXKycmRJMXGxta4LYeHoaSkJC1cuFCffvqpQkJClJWVJUkKCwtTQECApIq/pFlZWdqzZ48k6ccff1RISIgSEhJqVWgBAADAk5WVlZlBqEmTJq7uDlBnrDkiJydHUVFRNV4y5/ACCnPnzlVeXp769++v2NhY8/Xhhx+ax7z++uvq1q2bxowZI0nq27evunXrps8++8zR3QMAAGiwrPcIBQYGurgnQN2z/lzX5l44pyyTO5dp06Zp2rRpju4KAACAR2JpHBqiuvi5dmppbQAAAABwF4QhAAAAwE31799f48aNc3U3amzatGnq2rWrq7txVoQhAAAAuB1nhIDU1FRZLBbKjnswwhAAAAAaFMMwdOLECaeekwfa1k+EIQAAALiVkSNHKi0tTS+99JIsFossFov27dt31uOtMzz/93//px49esjPz0/ffPONysvLlZycrFatWikgIEBdunTRxx9/LEnat2+frrjiCklS48aNZbFYNHLkSElSy5YtNXv2bJtzdO3a1abgl8Vi0dy5c3XNNdcoKChITz/9tLkk7N1331XLli0VFhamW2+9VUePHq3WdRcWFurOO+9UcHCwYmNj9cILL5xxTHFxsSZMmKBmzZopKChIvXv3Vmpqqrl/wYIFCg8P1xdffKH27dsrMDBQN954o4qKivT222+rZcuWaty4sR544AGVlZWZn3v33XfVs2dPhYSEKCYmRrfddpv5HJ/Tv8cpKSnq2bOnAgMDdckll2jnzp02/Zs5c6aio6MVEhKi0aNH6/jx49W6dqt58+apU6dO8vPzU2xsrMaOHWvX5+1FGAIAAPAQhmGovKjIJa/qVBi2eumll9SnTx+NGTNGmZmZyszMVHx8/Dk/N3HiRM2cOVPbt29X586dlZycrHfeeUevv/66fvrpJz300EP6f//v/yktLU3x8fH6z3/+I0nauXOnMjMz9dJLL9n1/Zw2bZquu+46/fjjj7rrrrskSRkZGVq6dKm++OILffHFF0pLS9PMmTOr1d4jjzyitLQ0ffrpp/ryyy+VmpqqjRs32hwzduxYpaena9GiRfrhhx90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KYqNjVVAQIAGDhyo3bt31/m11SdVjYMkpaen68orr1RQUJBCQ0PVt29fHTt2rMo2U1NT1b17d/n5+alt27ZasGCB3ef1NFV9PzIyMnTdddcpMjJSoaGhuvnmm5WdnX3ONhkH+6xevVpDhw5VXFycLBaLli5dau4rLS3VY489pgsvvFBBQUGKi4vTnXfeqQMHDpyzXcbBPlWNgySNHDlSFovF5jV48OBztss4VN+5xqCgoEBjx45V8+bNFRAQoI4dO+r1118/Z7s//PCDLr/8cvn7+ys+Pl7PPffcGcec699xT5KcnKxevXopJCREUVFRGjZsmHbu3GlzzJtvvqn+/fsrNDRUFotFubm51Wqbvw8udM7HssIjLFq0yPD19TXmzZtn/PTTT8aYMWOM8PBwIzs72zAMw3jjjTeMtLQ0Y+/evcaGDRuMoUOHGvHx8caJEyfO2uaaNWsMb29v47nnnjO2bdtmPPHEE4aPj4/x448/msfMnDnTCAsLM5YuXWps2bLFuOaaa4xWrVoZx44dc/g1u6NzjcO3335rhIaGGsnJycbWrVuNHTt2GB9++KFx/Pjxs7b5888/G4GBgcb48eONbdu2Ga+88orh7e1trFixotrn9TRVfT8KCgqM1q1bG9ddd53xww8/GD/88INx7bXXGr169TLKysrO2ibjYL/ly5cbjz/+uPHJJ58YkowlS5aY+3Jzc42BAwcaH374obFjxw4jPT3duOiii4wePXpU2SbjYL+qxsEwDGPEiBHG4MGDjczMTPP1xx9/VNkm42Cfc43BmDFjjDZt2hirVq0y9u7da7zxxhuGt7e38emnn561zby8PCM6Otq4/fbbja1btxoffPCBERAQYLzxxhvmMdX5d9yTJCYmGvPnzze2bt1qbN682fjLX/5iJCQkGAUFBeYxL774opGcnGwkJycbkowjR46cs13+PriW24ShV1991WjRooXh5+dnXHTRRca6devMfceOHTPuu+8+IyIiwggKCjKuv/56Iysr65xtfvTRR0b79u0NPz8/44ILLjCWLVtms7+8vNyYPHmyERMTY/j7+xsDBgwwdu3aVefXVh9cdNFFRlJSkvm+rKzMiIuLM5KTkys9fsuWLYYkY8+ePWdt8+abbzauvvpqm229e/c2/v73vxuGUfH9j4mJMf75z3+a+3Nzcw0/Pz/jgw8+qM3l1FvnGofevXsbTzzxhF1tPvroo0anTp1stt1yyy1GYmJitc/raar6fvz3v/81vLy8jLy8PHN/bm6uYbFYjJUrV561Tcahdir7BfDPvvvuO0OS8csvv5z1GMahds4Whq699lq72mEcaq6yMejUqZPx5JNP2mzr3r278fjjj5+1nddee81o3LixUVxcbG577LHHjPbt25vvz/XvuKfLyckxJBlpaWln7Fu1alW1wxB/H1zLLZbJffjhhxo/frymTp2qjRs3qkuXLkpMTFROTo4k6aGHHtLnn3+uxYsXKy0tTQcOHND1119fZZvffvuthg8frtGjR2vTpk0aNmyYhg0bpq1bt5rHPPfcc3r55Zf1+uuva926dQoKClJiYqKOHz/u0Ot1NyUlJdqwYYMGDhxobvPy8tLAgQOVnp5+xvGFhYWaP3++WrVqpfj4eHN7y5YtNW3aNPN9enq6TZuSlJiYaLa5d+9eZWVl2RwTFham3r17V3rehu5c45CTk6N169YpKipKl1xyiaKjo9WvXz998803Nu30799fI0eONN+faxzsHf+G7lzfj+LiYlksFptynf7+/vLy8rIZC8bB+fLy8mSxWBQeHm5uYxycIzU1VVFRUWrfvr3uvfdeHT582GY/4+BYl1xyiT777DP9/vvvMgxDq1at0q5duzRo0CDzmJEjR6p///7m+/T0dPXt21e+vr7mtsTERO3cuVNHjhwxj6lqnDxdXl6eJCkiIsKuz/H3wb24RRiaNWuWxowZo1GjRpnrXAMDAzVv3jzl5eXprbfe0qxZs3TllVeqR48emj9/vr799lutXbv2rG2+9NJLGjx4sB555BF16NBBM2bMUPfu3fXqq69KqrhXZfbs2XriiSd07bXXqnPnznrnnXd04MCBM9biNnSHDh1SWVmZoqOjbbZHR0crKyvLfP/aa68pODhYwcHB+r//+z+tXLnS5j+ibdq0UdOmTc33WVlZVbZp/fNc5/UU5xqHn3/+WZI0bdo0jRkzRitWrFD37t01YMAAm/usEhISFBsba74/2zjk5+fr2LFj1R5/T3Gu78fFF1+soKAgPfbYYyoqKlJhYaEmTJigsrIyZWZmmsczDs51/PhxPfbYYxo+fLjNA/YYB8cbPHiw3nnnHaWkpOjZZ59VWlqahgwZorKyMvMYxsGxXnnlFXXs2FHNmzeXr6+vBg8erDlz5qhv377mMbGxsUpISDDfn20MrPuqOoYxkMrLyzVu3DhdeumluuCCC+z6LH8f3EsjV3fAmnYnTZpkbjs97V500UUqLS21ScPnn3++EhISlJ6erosvvlhSxazEyJEjzZmJ9PR0jR8/3uZciYmJZtA516zErbfe6qArrr9uv/12XXXVVcrMzNTzzz+vm2++WWvWrJG/v78kKSUlxcU9bNjKy8slVRSzGDVqlCSpW7duSklJ0bx585ScnCxJeuedd1zWR08QGRmpxYsX695779XLL78sLy8vDR8+XN27d5eX16n/v8Q4OE9paaluvvlmGYahuXPn2uxjHBzv9H8vL7zwQnXu3Flt2rRRamqqBgwYIIlxcLRXXnlFa9eu1WeffaYWLVpo9erVSkpKUlxcnPl7jvXfCNSNpKQkbd269YzVGdXB3wf34vIwVFXa3bFjh7KysuTr62uz7MG6//Q0zKxEzTVt2lTe3t5nVMPKzs5WTEyM+T4sLExhYWE677zzdPHFF6tx48ZasmSJhg8fXmm7MTExVbZp/TM7O9vm/5BkZ2era9eudXFp9cq5xsH6PerYsaPN/g4dOmj//v1nbfds4xAaGqqAgAB5e3tXa/w9RXX+PgwaNEgZGRk6dOiQGjVqpPDwcMXExKh169ZnbZdxcAxrEPrll1/09ddf28wKVYZxcLzWrVuradOm2rNnjxmG/oxxqDvHjh3TP/7xDy1ZskRXX321JKlz587avHmznn/++TOWX1mdbQys+6o6xtPHYOzYsfriiy+0evVqNW/evNbt8ffBtdximVxdSElJ0dixY13djXrJ19dXPXr0sJnZKS8vV0pKivr06VPpZ4yK4hsqLi4+a7t9+vQ5Y7Zo5cqVZputWrVSTEyMzTH5+flat27dWc/bkJ1rHFq2bKm4uLgzynju2rVLLVq0OGu75xqHmox/Q2bP96Np06YKDw/X119/rZycHF1zzTVnbZdxqHvWILR792599dVXatKkyTk/wzg43m+//abDhw/b/E+uP2Mc6k5paalKS0ttZqYlydvb21xRUJk+ffpo9erVKi0tNbetXLlS7du3V+PGjc1jqhonT2MYhsaOHaslS5bo66+/VqtWreqkXf4+uJgrqzcYhmEUFxcb3t7eZ1RGufPOO41rrrnGSElJqbQaR0JCgjFr1qyzthsfH2+8+OKLNtumTJlidO7c2TAMw8jIyDAkGZs2bbI5pm/fvsYDDzxQ08uptxYtWmT4+fkZCxYsMLZt22bcfffdRnh4uJGVlWVkZGQYzzzzjLF+/Xrjl19+MdasWWMMHTrUiIiIsCnpeOWVVxqvvPKK+X7NmjVGo0aNjOeff97Yvn27MXXq1EpLa4eHhxuffvqpWaLY00trn20cDKOiZGdoaKixePFiY/fu3cYTTzxh+Pv721T1u+OOO4yJEyea760lOx955BFj+/btxpw5cyot2VnVeT3Nub4f8+bNM9LT0409e/YY7777rhEREWGMHz/epg3GofaOHj1qbNq0ydi0aZMhyZg1a5axadMm45dffjFKSkqMa665xmjevLmxefNmm7LOp1fHYhxqr6pxOHr0qDFhwgQjPT3d2Lt3r/HVV18Z3bt3N8477zybkv+MQ+1UNQaGYRj9+vUzOnXqZKxatcr4+eefjfnz5xv+/v7Ga6+9ZrYxceJE44477jDf5+bmGtHR0cYdd9xhbN261Vi0aJERGBh4Rmntc/077knuvfdeIywszEhNTbX5b05RUZF5TGZmprFp0ybjX//6lyHJWL16tbFp0ybj8OHD5jH8fXAvLg9DhlFRLnDs2LHm+7KyMqNZs2ZGcnKykZuba/j4+Bgff/yxuX/Hjh2GJCM9Pf2sbd58883GX//6V5ttffr0OaOs8/PPP2/uz8vL8+iyzq+88oqRkJBg+Pr6GhdddJGxdu1awzAM4/fffzeGDBliREVFGT4+Pkbz5s2N2267zdixY4fN51u0aGFMnTrVZttHH31ktGvXzvD19TU6dep01vLm0dHRhp+fnzFgwABj586dDr1Od3e2cbBKTk42mjdvbgQGBhp9+vQx/ve//9ns79evnzFixAibbatWrTK6du1q+Pr6Gq1btzbmz59v93k9TVXfj8cee8yIjo42fHx8jPPOO8944YUXjPLycpvPMw61Zy1N++fXiBEjjL1791a6T5KxatUqsw3GofaqGoeioiJj0KBBRmRkpOHj42O0aNHCGDNmzBm/oDEOtVPVGBhGxS/gI0eONOLi4gx/f3+jffv2Z/x3acSIEUa/fv1s2t2yZYtx2WWXGX5+fkazZs2MmTNnnnHuc/077knO9t+c0392p06des5j+PvgXiyGYRgOnHiqlg8//FAjRozQG2+8oYsuukizZ8/WRx99pB07dig6Olr33nuvli9frgULFig0NFT333+/pIry2VYDBgzQddddZy6V+/bbb9WvXz/NnDlTV199tRYtWqRnnnlGGzduNKt+PPvss5o5c6befvtttWrVSpMnT9YPP/ygbdu2mUUBAAAAADRMLi+gIEm33HKLDh48qClTpigrK0tdu3bVihUrzOIGL774ory8vHTDDTeouLhYiYmJeu2112zasN7MbHXJJZdo4cKFeuKJJ/SPf/xD5513npYuXWpT/vDRRx9VYWGh7r77buXm5uqyyy7TihUrCEIAAACAB3CLmSEAAAAAcLYGU00OAAAAAOxBGAIAAADgkQhDAAAAADwSYQgAAACARyIMAQAAAPBILg1Dc+bMUcuWLeXv76/evXvru+++M/e9+eab6t+/v0JDQ2WxWJSbm1utNhcsWKDw8HDHdBgAAABAg+GyMPThhx9q/Pjxmjp1qjZu3KguXbooMTFROTk5kqSioiINHjxY//jHP1zVRQAAAAANmMvC0KxZszRmzBiNGjVKHTt21Ouvv67AwEDNmzdPkjRu3DhNnDhRF198ca3Ok5GRoWuvvVbR0dEKDg5Wr1699NVXX9kc07JlSz3zzDO66667FBISooSEBL355pu1Oi8AAAAA9+aSMFRSUqINGzZo4MCBpzri5aWBAwcqPT29Ts9VUFCgv/zlL0pJSdGmTZs0ePBgDR06VPv377c57oUXXlDPnj21adMm3Xfffbr33nu1c+fOOu0LAAAAAPfhkjB06NAhlZWVKTo62mZ7dHS0srKy6vRcXbp00d///nddcMEFOu+88zRjxgy1adNGn332mc1xf/nLX3Tfffepbdu2euyxx9S0aVOtWrWqTvsCAAAAwH3U22pyQ4YMUXBwsIKDg9WpU6ezHldQUKAJEyaoQ4cOCg8PV3BwsLZv337GzFDnzp3Nry0Wi2JiYsz7lwAAAAA0PI1ccdKmTZvK29tb2dnZNtuzs7MVExNTrTb+/e9/69ixY5IkHx+fsx43YcIErVy5Us8//7zatm2rgIAA3XjjjSopKbE57s9tWCwWlZeXV6svAAAAAOofl4QhX19f9ejRQykpKRo2bJgkqby8XCkpKRo7dmy12mjWrFm1jluzZo1Gjhyp6667TlLFTNG+fftq0m0AAAAADYhLwpAkjR8/XiNGjFDPnj110UUXafbs2SosLNSoUaMkSVlZWcrKytKePXskST/++KNZ6S0iIqLa5znvvPP0ySefaOjQobJYLJo8eTIzPgAAAABcF4ZuueUWHTx4UFOmTFFWVpa6du2qFStWmEUVXn/9dU2fPt08vm/fvpKk+fPna+TIkWdtt7y8XI0anbqsWbNm6a677tIll1yipk2b6rHHHlN+fr5jLgoAAABAvWExDMNwdSfq0syZM/Xee+9p69atru4KAAAAADfmspmhulZUVKQdO3Zo/vz5GjJkiKu7AwAAAMDN1dvS2n/25ptvauDAgerSpYumTJni6u4AAAAAcHMNbpkcAAAAAFRHg5kZAgAAAAB7EIYAAAAAeCS3CUPJycnq1auXQkJCFBUVpWHDhmnnzp02xxw/flxJSUlq0qSJgoODdcMNNyg7O9vcv2XLFg0fPlzx8fEKCAhQhw4d9NJLL51xrtTUVHXv3l1+fn5q27atFixY4OjLAwAAAOBm3CYMpaWlKSkpSWvXrtXKlStVWlqqQYMGqbCw0DzmoYce0ueff67FixcrLS1NBw4c0PXXX2/u37Bhg6KiovTee+/pp59+0uOPP65Jkybp1VdfNY/Zu3evrr76al1xxRXavHmzxo0bp7/97W/673//69TrBQAAAOBabltA4eDBg4qKilJaWpr69u2rvLw8RUZGauHChbrxxhslSTt27FCHDh2Unp6uiy++uNJ2kpKStH37dn399deSpMcee0zLli2zeQ7RrbfeqtzcXK1YscLxFwYAAADALbjNzNCf5eXlSZIiIiIkVcz6lJaWauDAgeYx559/vhISEpSenl5lO9Y2JCk9Pd2mDUlKTEyssg0AAAAADY9bPnS1vLxc48aN06WXXqoLLrhAkpSVlSVfX1+Fh4fbHBsdHa2srKxK2/n222/14YcfatmyZea2rKwsRUdHn9FGfn6+jh07poCAgLq9GAAAAABuyS3DUFJSkrZu3apvvvmmxm1s3bpV1157raZOnapBgwbVYe8AAAAANARut0xu7Nix+uKLL7Rq1So1b97c3B4TE6OSkhLl5ubaHJ+dna2YmBibbdu2bdOAAQN0991364knnrDZFxMTY1OBztpGaGgos0IAAACAB3GbMGQYhsaOHaslS5bo66+/VqtWrWz29+jRQz4+PkpJSTG37dy5U/v371efPn3MbT/99JOuuOIKjRgxQk8//fQZ5+nTp49NG5K0cuVKmzYAAAAANHxuU03uvvvu08KFC/Xpp5+qffv25vawsDBzxubee+/V8uXLtWDBAoWGhur++++XVHFvkFSxNO7KK69UYmKi/vnPf5pteHt7KzIyUlJFae0LLrhASUlJuuuuu/T111/rgQce0LJly5SYmOisywUAAADgYm4ThiwWS6Xb58+fr5EjR0qqeOjqww8/rA8++EDFxcVKTEzUa6+9Zi6TmzZtmqZPn35GGy1atNC+ffvM96mpqXrooYe0bds2NW/eXJMnTzbPAQAAAMAzuE0YAgAAAABncpt7hgAAAADAmQhDAAAAADwSYQgAAACARyIMAQAAAPBIhCEAAAAAHokwBAAAAMAjEYYAAAAAeCTCEAAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADwSP8f6iwC3DOSfS8AAAAASUVORK5CYII=", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df1.plot(subplots=True, figsize=(10, 6))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from pandaprosumer.create import create_empty_prosumer_container, create_period\n", + "from pandaprosumer.create_controlled import (\n", + " create_controlled_const_profile,\n", + " create_controlled_heat_storage,\n", + " create_controlled_heat_demand\n", + ")\n", + "\n", + "prosumer1 = create_empty_prosumer_container()\n", + "period_id = create_period(prosumer1, time_resolution_s, start, end, 'utc', 'default')\n", + "\n", + "cp_input = ['supply_power', 'demand_power', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_result = ['supply_power', 'qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_idx = create_controlled_const_profile(prosumer1, cp_input, cp_result, profile1, period_id, 0, 0)\n", + "\n", + "hs_idx = create_controlled_heat_storage(prosumer1, q_capacity_kwh=100.0, name='tank_power_only',\n", + " period=period_id, level=1, order=0)\n", + "hd_idx = create_controlled_heat_demand(prosumer1, period=period_id, level=1, order=1, name='heat_consumer')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "from pandaprosumer.run_time_series import run_timeseries\n", - "\n", - "run_timeseries(prosumer1, period_id, verbose=False)" + "data": { + "text/plain": [ + "" ] - }, + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from pandaprosumer.mapping import GenericMapping\n", + "\n", + "# Const profile -> Heat storage: supply power as q_received_kw\n", + "GenericMapping(prosumer1, initiator_id=cp_idx, initiator_column='supply_power',\n", + " responder_id=hs_idx, responder_column='q_received_kw', order=0)\n", + "# Const profile -> Heat demand: demand request and temperatures\n", + "GenericMapping(prosumer1, initiator_id=cp_idx,\n", + " initiator_column=['qdemand_kw', 't_feed_demand_c', 't_return_demand_c'],\n", + " responder_id=hd_idx, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=1)\n", + "# Heat storage -> Heat demand: delivered power as q_received_kw\n", + "GenericMapping(prosumer1, initiator_id=hs_idx, initiator_column='q_delivered_kw',\n", + " responder_id=hd_idx, responder_column='q_received_kw', order=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from pandaprosumer.run_time_series import run_timeseries\n", + "\n", + "run_timeseries(prosumer1, period_id, verbose=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "res1 = prosumer1.time_series.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "res1 = prosumer1.time_series.copy()" + "data": { + "image/png": "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PMeqHE/K0nl8OZVJNxERERERUX1h9jndI0aMQHp6OubNm4eUlBR06tQJu3fv1i6uduvWLZ1u+3Xr1kGlUuH555/XaSc6Ohrz58+HjY0Nzp49i88//xzZ2dkIDAzE448/joULF1Y4hNzcjiVlAgBc5bZQFJXgUmqemSMiIiIiIiIiQzH7Pt2WyJT7dA9ZdQgX7yowoU8oPjucBH9XOX6fU37eOREREREREVkOfffpNvvw8oYsp6AYiSlle4KPDm8CAEhRFCGnoNicYREREREREZGBMOk2oxM370EIIMzbCWE+zmjk7gAAuJzGed1ERERERET1AZNuMzqWdA8A0D3EEwDQ0t8FAFcwJyIiIiIiqi+YdJvRsRtlSXeP0LKku4VfWdLNFcyJiIiIiIjqBybdZlKgKsGft3MAPEi6W/o7AwAS2dNNRERERERULzDpNpPTt7JRohYIdJOjsUfZXO6He7q5qDwREREREZH1Y9JtJkeTHgwtl0gkAICmPs6QSoDsgmKk5yrNGR4REREREREZAJNuMzmWlAkA6H5/aDkAyO1sEOLtBAC4xHndREREREREVo9JtxmoStQ4fSsbABD+UNINAC39uII5ERERERFRfcGk2wz+TM6GskQNTyd7NPVx1jnGFcyJiIiIiIjqDybdZqCdzx3yYD63RivNXt2peSaPi4iIiIiIiAyLSbcZHLufdHf/29ByAGhxP+m+kpoLtZormBMREREREVkzJt0mVqoWOHkjC0D5+dwAEOzpCHtbKQpUpbidVWjq8IiIiIiIiMiAmHSb2MW7CuQqS+Ass0XrANdyx21tpGh2f543VzAnIiIiIiKybky6TUwztLxbiAdspJIK67T052JqRERERERE9QGTbhPTzucOKT+0XKMFtw0jIiIiIiKqF5h0m5AQAsdvlCXdFc3n1mjpXza8nD3dRERERERE1o1JtwldS89HZr4KMlsp2jd2q7Sepqf7WnoeikvVpgqPiIiIiIiIDIxJtwlphpZ3buIOma1NpfUauTvAWWaL4lKBGxn5pgqPiIiIiIiIDIxJtwkdS8oEAPSoYj43AEgkErTw4wrmRERERERE1o5Jtwkdv78/d49Qr2rralcw52JqREREREREVssiku61a9ciJCQEcrkc4eHhOHbsWKV1N27ciL59+8LDwwMeHh6IiIgoV18IgXnz5iEgIAAO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x6tXrwZQtie65joAdFZOB6DtmX7yySe1ZaGhoWjUqBFWrFiB4uJi9O7dG0BZMn7t2jV8/fXXeOSRR2Br+6C/oa6vGRERkT7Y001ERKSHX3/9FYmJiSgpKUFqair279+PvXv3Ijg4GD/88APkcrm27tq1a9GnTx+0b98eEydORFhYGFJTU5GQkIDbt2/jzJkzNb7+iBEjsHr1akRHR6N9+/Y6Pb9A2dZlO3bswGuvvYa4uDj07t0bpaWlSExMxI4dO7Bnzx5069atymssXrwYcXFxCA8Px8SJE9GmTRvcu3cPp06dwr59+3Dv3j0AwMSJE7FmzRqMGTMGJ0+eREBAAL788ks4OjrW6DklJSVh6NChGDx4MBISEvCf//wHL774onbYfMeOHTF27Fhs2LAB2dnZ6N+/P44dO4bPP/8cw4YNw6OPPqrTXt++fbFt2za0b98eHh4eAIAuXbrAyckJly9f1pnPbajXjIiIqDpMuomIiPQwb948AIC9vT08PT3Rvn17rFy5EuPHj4eLi4tO3TZt2uDEiRNYsGABtmzZgszMTPj6+qJz587admqqV69eCAoKwl9//VXhHtJSqRS7du3CihUr8MUXX+C7776Do6MjwsLC8NZbb6FFixbVXsPPzw/Hjh3D+++/j2+//RaffPIJvLy80LZtW3z44Yfaeo6OjoiNjcUbb7yB1atXw9HREaNHj8aQIUMwePBgvZ/T9u3bMW/ePLzzzjuwtbXF1KlTsXTpUp06//d//4ewsDBs2bIF3333Hfz9/TF79mxER0eXa0+TdPfp00dbZmtri549e2Lfvn0687kN9ZoRERFVRyKEEOYOgoiIiBqO+fPnY8GCBUhPT4e3t7e5wyEiIjIqzukmIiIiIiIiMhIm3URERERERERGwqSbiIiIiIiIyEg4p5uIiIiIiIjISNjTTURERERERGQkTLqJiIiIiIiIjIT7dFdArVbjzp07cHFxgUQiMXc4REREREREZGGEEMjNzUVgYCCk0sr7s5l0V+DOnTsICgoydxhERERERERk4f766y80bty40uNMuivg4uICALh58ybc3d3NGwwRERERERFZnOzsbAQHB2vzx8ow6a6AZki5q6srXF1dzRwNERERERERWRq1Wg0A1U5J5kJqREREREREREZilUl3cnIyXnrpJXh5ecHBwQHt27fHiRMntMeF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eDkREREREVGdmXSf7pkzZyIzMxPdunVDaWkp9uzZY51beZmKdni5CXu63dnTTUREREREZChGTbo//vjjcmWNGjWCo6Mj+vXrh2PHjuHYsWMAgDfffNOYoVgnzT7d5hhezp5uIiIiIiKiOjNq0r1ixYoKy21sbHDkyBEcOXIEACCRSJh0V8Qcw8sfXkhNCEAiMd21iYiIiIiI6hmjJt1JSUnGbL7+M8fwcs2WYcUFQME9wMnLdNcmIiIiIiKqZ0y2ejnVQpEZerrt5ICzX9n3ObdMd10iIiIiIqJ6yKhJ9+LFi1FQUKBX3aNHj3LrsL8zx5ZhAOd1ExERERERGYhRk+4LFy4gODgYr7/+On799Vekp6drj5WUlODs2bP45JNP0KtXL4wYMQIuLi7GDMf6mGNON/DQCua3TXtdIiIiIiKiesaoc7q/+OILnDlzBmvWrMGLL74IhUIBGxsbyGQybQ94586d8corr2DcuHGQy+XGDMe6lJYAqryy702ddLtx2zAiIiIiIiJDMPo+3R07dsTGjRvx6aef4uzZs7h58yYKCwvh7e2NTp06wdvb29ghWCdNLzdgxuHlnNNNRERERERUF0ZPujWkUik6deqETp06meqS1k0zn9vWAbC1N+213dnTTUREREREZAhcvdxSaedzm7iXG+BCakRERERERAbCpNtSmWO7MA1NT3fhPUCVb/rrExERERER1RNMui2VubYLA8oSfdn9ZJ+93URERERERLXGpNtSmWu7MA3O6yYiIiIiIqozkyTdxcXFsLW1xblz50xxufpB09NtjjndALcNIyIiIiIiMgCTJN12dnZo0qQJSktLTXG5+sGcc7qBBz3dHF5ORERERERUayYbXj537lzMmTMH9+7dM9UlrZs553QD7OkmIiIiIiIyAJPt071mzRpcvXoVgYGBCA4OhpOTk87xU6dOmSoU66A08/By9nQTERERERHVmcmS7mHDhpnqUvWDdk63u3muz55uIiIiIiKiOjNZ0h0dHW2qS9UPmjnd5h5ennsXKC0GbOzMEwcREREREZEVM+mWYdnZ2fi///s/zJ49Wzu3+9SpU0hOTjZlGNbB3FuGOfkANjJAqAEF7w8REREREVFtmKyn++zZs4iIiICbmxtu3LiBiRMnwtPTE99++y1u3bqFL774wlShWAdzbxkmlQJujYF718rmdXuE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", + "text/plain": [ + "
" ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# time_series rows are indexed by integer; use name column to get the storage results\n", + "res1_idx = res1[res1['name'] == 'tank_power_only'].index[0]\n", + "df_hs1 = res1.data_source.loc[res1_idx].df\n", + "\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "df_hs1.soc.plot(ax=axes[0], color='C0')\n", + "axes[0].set_ylabel('SOC (-)')\n", + "axes[0].set_title('Part 1 (GenericMapping): Heat storage SOC')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hs1.q_delivered_kw.plot(ax=axes[1], color='C1')\n", + "axes[1].set_ylabel('Power (kW)')\n", + "axes[1].set_title('Delivered power')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", + "2020-01-01 00:00:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:15:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:30:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:45:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 01:00:00+00:00 60.0 0.0 0.0 \n", + "... ... ... ... \n", + "2020-01-01 22:45:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:00:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:15:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:30:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:45:00+00:00 0.0 0.0 0.0 \n", + "\n", + " t_in_c t_out_c \n", + "2020-01-01 00:00:00+00:00 0.0 0.0 \n", + "2020-01-01 00:15:00+00:00 0.0 0.0 \n", + "2020-01-01 00:30:00+00:00 0.0 0.0 \n", + "2020-01-01 00:45:00+00:00 0.0 0.0 \n", + "2020-01-01 01:00:00+00:00 0.0 0.0 \n", + "... ... ... \n", + "2020-01-01 22:45:00+00:00 0.0 0.0 \n", + "2020-01-01 23:00:00+00:00 0.0 0.0 \n", + "2020-01-01 23:15:00+00:00 0.0 0.0 \n", + "2020-01-01 23:30:00+00:00 0.0 0.0 \n", + "2020-01-01 23:45:00+00:00 0.0 0.0 \n", + "\n", + "[96 rows x 5 columns]\n" + ] }, { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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PMeqHE/K0nl8OZVJNxERERERUX1h9jndI0aMQHp6OubNm4eUlBR06tQJu3fv1i6uduvWLZ1u+3Xr1kGlUuH555/XaSc6Ohrz58+HjY0Nzp49i88//xzZ2dkIDAzE448/joULF1Y4hNzcjiVlAgBc5bZQFJXgUmqemSMiIiIiIiIiQzH7Pt2WyJT7dA9ZdQgX7yowoU8oPjucBH9XOX6fU37eOREREREREVkOfffpNvvw8oYsp6AYiSlle4KPDm8CAEhRFCGnoNicYREREREREZGBMOk2oxM370EIIMzbCWE+zmjk7gAAuJzGed1ERERERET1AZNuMzqWdA8A0D3EEwDQ0t8FAFcwJyIiIiIiqi+YdJvRsRtlSXeP0LKku4VfWdLNFcyJiIiIiIjqBybdZlKgKsGft3MAPEi6W/o7AwAS2dNNRERERERULzDpNpPTt7JRohYIdJOjsUfZXO6He7q5qDwREREREZH1Y9JtJkeTHgwtl0gkAICmPs6QSoDsgmKk5yrNGR4REREREREZAJNuMzmWlAkA6H5/aDkAyO1sEOLtBAC4xHndREREREREVo9JtxmoStQ4fSsbABD+UNINAC39uII5ERERERFRfcGk2wz+TM6GskQNTyd7NPVx1jnGFcyJiIiIiIjqDybdZqCdzx3yYD63RivNXt2peSaPi4iIiIiIiAyLSbcZHLufdHf/29ByAGhxP+m+kpoLtZormBMREREREVkzJt0mVqoWOHkjC0D5+dwAEOzpCHtbKQpUpbidVWjq8IiIiIiIiMiAmHSb2MW7CuQqS+Ass0XrANdyx21tpGh2f543VzAnIiIiIiKybky6TUwztLxbiAdspJIK67T052JqRERERERE9QGTbhPTzucOKT+0XKMFtw0jIiIiIiKqF5h0m5AQAsdvlCXdFc3n1mjpXza8nD3dRERERERE1o1JtwldS89HZr4KMlsp2jd2q7Sepqf7WnoeikvVpgqPiIiIiIiIDIxJtwlphpZ3buIOma1NpfUauTvAWWaL4lKBGxn5pgqPiIiIiIiIDIxJtwkdS8oEAPSoYj43AEgkErTw4wrmRERERERE1o5Jtwkdv78/d49Qr2rralcw52JqREREREREVssiku61a9ciJCQEcrkc4eHhOHbsWKV1N27ciL59+8LDwwMeHh6IiIgoV18IgXnz5iEgIAAO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x6tXrwZQtie65joAdFZOB6DtmX7yySe1ZaGhoWjUqBFWrFiB4uJi9O7dG0BZMn7t2jV8/fXXeOSRR2Br+6C/oa6vGRERkT7Y001ERKSHX3/9FYmJiSgpKUFqair279+PvXv3Ijg4GD/88APkcrm27tq1a9GnTx+0b98eEydORFhYGFJTU5GQkIDbt2/jzJkzNb7+iBEjsHr1akRHR6N9+/Y6Pb9A2dZlO3bswGuvvYa4uDj07t0bpaWlSExMxI4dO7Bnzx5069atymssXrwYcXFxCA8Px8SJE9GmTRvcu3cPp06dwr59+3Dv3j0AwMSJE7FmzRqMGTMGJ0+eREBAAL788ks4OjrW6DklJSVh6NChGDx4MBISEvCf//wHL774onbYfMeOHTF27Fhs2LAB2dnZ6N+/P44dO4bPP/8cw4YNw6OPPqrTXt++fbFt2za0b98eHh4eAIAuXbrAyckJly9f1pnPbajXjIiIqDpMuomIiPQwb948AIC9vT08PT3Rvn17rFy5EuPHj4eLi4tO3TZt2uDEiRNYsGABtmzZgszMTPj6+qJz587admqqV69eCAoKwl9//VXhHtJSqRS7du3CihUr8MUXX+C7776Do6MjwsLC8NZbb6FFixbVXsPPzw/Hjh3D+++/j2+//RaffPIJvLy80LZtW3z44Yfaeo6OjoiNjcUbb7yB1atXw9HREaNHj8aQIUMwePBgvZ/T9u3bMW/ePLzzzjuwtbXF1KlTsXTpUp06//d//4ewsDBs2bIF3333Hfz9/TF79mxER0eXa0+TdPfp00dbZmtri549e2Lfvn0687kN9ZoRERFVRyKEEOYOgoiIiBqO+fPnY8GCBUhPT4e3t7e5wyEiIjIqzukmIiIiIiIiMhIm3URERERERERGwqSbiIiIiIiIyEg4p5uIiIiIiIjISNjTTURERERERGQkTLqJiIiIiIiIjIT7dFdArVbjzp07cHFxgUQiMXc4REREREREZGGEEMjNzUVgYCCk0sr7s5l0V+DOnTsICgoydxhERERERERk4f766y80bty40uNMuivg4uICALh58ybc3d3NGwwRERERERFZnOzsbAQHB2vzx8ow6a6AZki5q6srXF1dzRwNERERERERWRq1Wg0A1U5J5kJqREREREREREZilUl3cnIyXnrpJXh5ecHBwQHt27fHiRMntMeF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eDkREREREVGdmXSf7pkzZyIzMxPdunVDaWkp9uzZY51beZmKdni5CXu63dnTTUREREREZChGTbo//vjjcmWNGjWCo6Mj+vXrh2PHjuHYsWMAgDfffNOYoVgnzT7d5hhezp5uIiIiIiKiOjNq0r1ixYoKy21sbHDkyBEcOXIEACCRSJh0V8Qcw8sfXkhNCEAiMd21iYiIiIiI6hmjJt1JSUnGbL7+M8fwcs2WYcUFQME9wMnLdNcmIiIiIiKqZ0y2ejnVQpEZerrt5ICzX9n3ObdMd10iIiIiIqJ6yKhJ9+LFi1FQUKBX3aNHj3LrsL8zx5ZhAOd1ExERERERGYhRk+4LFy4gODgYr7/+On799Vekp6drj5WUlODs2bP45JNP0KtXL4wYMQIuLi7GDMf6mGNON/DQCua3TXtdIiIiIiKiesaoc7q/+OILnDlzBmvWrMGLL74IhUIBGxsbyGQybQ94586d8corr2DcuHGQy+XGDMe6lJYAqryy702ddLtx2zAiIiIiIiJDMPo+3R07dsTGjRvx6aef4uzZs7h58yYKCwvh7e2NTp06wdvb29ghWCdNLzdgxuHlnNNNRERERERUF0ZPujWkUik6deqETp06meqS1k0zn9vWAbC1N+213dnTTUREREREZAhcvdxSaedzm7iXG+BCakRERERERAbCpNtSmWO7MA1NT3fhPUCVb/rrExERERER1RNMui2VubYLA8oSfdn9ZJ+93URERERERLXGpNtSmWu7MA3O6yYiIiIiIqozkyTdxcXFsLW1xblz50xxufpB09NtjjndALcNIyIiIiIiMgCTJN12dnZo0qQJSktLTXG5+sGcc7qBBz3dHF5ORERERERUayYbXj537lzMmTMH9+7dM9UlrZs553QD7OkmIiIiIiIyAJPt071mzRpcvXoVgYGBCA4OhpOTk87xU6dOmSoU66A08/By9nQTERERERHVmcmS7mHDhpnqUvWDdk63u3muz55uIiIiIiKiOjNZ0h0dHW2qS9UPmjnd5h5ennsXKC0GbOzMEwcREREREZEVM+mWYdnZ2fi///s/zJ49Wzu3+9SpU0hOTjZlGNbB3FuGOfkANjJAqAEF7w8REREREVFtmKyn++zZs4iIiICbmxtu3LiBiRMnwtPTE99++y1u3bqFL774wlShWAdzbxkmlQJujYF718rmdXuEmCcOIiIiIiIiK2aynu6oqCiMGzcOV65cgVwu15Y/8cQTOHjwoKnCsB7m3jIMeLCYWs5t88VARERERERkxUyWdB8/fhyvvvpqufJGjRohJSXFVGFYByHMv2UYwMXUiIiIiIiI6shkSbdMJoNCoShXfvnyZfj4+JgqDOtQUgSoi8u+N2tPd5Oyf7NvmS8GIiIiIiIiK2aypHvo0KF4//33UVxclkxKJBLcunULs2bNwvDhw00VhnXQ9HJDAtg7my8O9nQTERERERHVicmS7o8++gh5eXnw9fVFYWEh+vfvj2bNmsHFxQX//ve/TRWGdXh4uzCpSReY16WZ053NpJuIiIiIiKg2TLZ6uZubG/bu3YvDhw/j7NmzyMvLQ5cuXRAREWGqEKyHduVyMw4tB8pWLwfKFlJTq837BwAiIiIiIiIrZLKku6ioCHK5HH369EGfPn1MdVnrpDTzdmEaro0AiRQoVQL56YCLn3njISIiIiIisjIm67p0d3dHv3798N5772H//v0oLCw01aWtjyVsFwYANnYPervvXTdvLERERERERFbIZEn3vn37MHjwYBw9ehRDhw6Fh4cH+vTpg7lz52Lv3r2mCsM6WMJ2YRqeTcv+vXfNvHEQERERERFZIZMl3X369MGcOXPwv//9D9nZ2YiLi0OzZs2wZMkSDB482FRhWAelhfR0A4DX/aQ7k0k3ERERERFRTZlsTjdQtid3fHy89kupVOKpp57CgAEDTBmG5SuykDndAHu6iYiIiIiI6sBkSXejRo1QWFiIAQMGYMCAAZg1axY6dOgAiURiqhCsh6XM6QYe6unmnG4iIiIiIqKaMtnwch8fHxQUFCAlJQUpKSlITU3lYmqVscg53dcBIcwbCxERERERkZUxWdL9xx9/ICUlBe+88w6USiXmzJkDb29v9OrVC3PnzjVVGNZBO6fbApJuj2BAYgMU5wO5KeaOhoiIiIiIyKqYdE63u7s7hg4dit69e6NXr174/vvv8dVXX+Ho0aP497//bcpQLJslDS+3sQPcmwBZSWXzul0DzB0RERERERGR1TBZT/e3336LN998Ex06dICfnx8mT56MvLw8fPTRRzh16pSpwrAOljS8HHhoXvdV88ZBRERERERkZUyWdL/22mu4c+cOJk2ahNOnTyMtLU2biHfs2FHvdmJiYtC9e3e4uLjA19cXw4YNw6VLl3TqFBUVYcqUKfDy8oKzszOGDx+O1NRUQz8l49EOL3c3axhantw2jIiIiIiIqDZMNrw8LS3NIO0cOHAAU6ZMQffu3VFSUoI5c+bg8ccfx4ULF+Dk5AQAePvtt/Hzzz9j586dcHNzw9SpU/Hcc8/hyJEjBonB6CxpyzDgQU/3Pa5gTkREREREVBMmndNdWlqKXbt24eLFiwCANm3a4JlnnoGNjY3ebezevVvn8ZYtW+Dr64uTJ0+iX79+yMnJwWeffYatW7di4MCBAIDNmzejdevW+P333/HII48Y7gkZg1oNKHPLvreEOd0Ae7qJiIiIiIhqyWRJ99WrV/HEE08gOTkZLVu2BFA2VDwoKAg///wzmjZtWqt2c3LKeoU9PT0BACdPnkRxcTEiIiK0dVq1aoUmTZogISGhwqRbqVRCqVRqHysUZcO71Wo11Gp1reKqtaIcSFG2NZfa3rksCTc3zzBIAYisJIjSEkBislkJREREREREFknfXNFkSfebb76Jpk2b4vfff9cmyJmZmXjppZfw5ptv4ueff65xm2q1GtOmTUPv3r3Rrl07AEBKSgrs7e3h7u6uU9fPzw8pKRVveRUTE4MFCxaUK09PT4dKpapxXHUhzU2GLwBhY4+0ewoACpNev0Jqe/hJ7SApKUL69bNQuwSaOyIiIiIiIiKz0nQAV8dkSfeBAwd0Em4A8PLywuLFi9G7d+9atTllyhScO3cOhw8frlNss2fPRlRUlPaxQqFAUFAQfHx8yiXvRqe+v+Cb3A2+vr6mvXZVPEKAzCvwluQAvp3MHQ0REREREZFZ2dvb61XPZEm3TCZDbm5uufK8vDy9g33Y1KlT8dNPP+HgwYNo3Lixttzf3x8qlQrZ2dk6CXNqair8/f0rjU0mk5Url0qlkEpNPJRalQcAkMhcITH1tavi1RTIvAJp1nVA+qi5oyEiIiIiIjIrfXNFk2V1Tz31FCZNmoSjR49CCAEhBH7//Xe89tprGDp0qN7tCCEwdepUfPfdd9i/fz9CQ0N1jnft2hV2dnaIjY3Vll26dAm3bt1Cz549DfZ8jEa7XZiFLKKm4ckVzImIiIiIiGrKZD3dH3/8McaOHYuePXvCzs4OAFBSUoKhQ4di1apVerczZcoUbN26Fd9//z1cXFy087Td3Nzg4OAANzc3TJgwAVFRUfD09ISrqyveeOMN9OzZ0/JXLgcsb7swDa+wsn+5gjkREREREZHeTJZ0u7u74/vvv8fVq1e1W4a1bt0azZo1q1E769atAwAMGDBAp3zz5s0YN24cAGDFihWQSqUYPnw4lEolIiMj8cknn9T5OZhEkaX3dDPpJiIiIiIi0pfRk261Wo2lS5fihx9+gEqlwqBBgxAdHQ0HB4datSeEqLaOXC7H2rVrsXbt2lpdw6w0Pd0yS+vpvp90Z90A1KWAVP+91YmIiIiIiBoqo8/p/ve//405c+bA2dkZjRo1wqpVqzBlyhRjX9Z6KTXDyy2sp9u1MWAjA0pVQM5f5o6GiIiIiIjIKhg96f7iiy/wySefYM+ePdi1axd+/PFH/Pe//9V7I/EGp8hCk26pFPC8v2gd53UTERERERHpxehJ961bt/DEE09oH0dEREAikeDOnTvGvrR10szptrTh5QBXMCciIiIiIqohoyfdJSUlkMvlOmV2dnYoLi429qWtk6X2dAMPrWB+1bxxEBERERERWQmjL6QmhMC4ceMgk8m0ZUVFRXjttdfg5OSkLfv222+NHYp10O7TbcE93RxeTkREREREpBejJ91jx44tV/bSSy8Z+7LWy1K3DAMerGDObcOIiIiIiIj0YvSke/Pmzca+RP1iqVuGAQ96urNuAqXFgI2deeMhIiIiIiKycEaf0001pLTgnm6XAMDWARClQPYtc0dDRERERERk8Zh0W5ISJVBSVPa9Jc7plkoBT81iahxiTkREREREVB0m3ZZEM58bsMzh5cCDFcw5r5uIiIiIiKhaTLotiWY+t70LILUxbyyV4QrmREREREREemPSbUmUmj26LbSXGwC8mpX9y55uIiIiIiKiajHptiSanm5LXERNw4s93URERERERPpi0m1JNHO6LXU+N/BgeHnOX0CJyryxEBERERERWTgm3ZbEkrcL03D2BeydAaEGsm6YOxoiIiIiIiKLxqTbkhRZwZxuieTBtmGc101ERERERFQlJt2WpMgKeroBzusmIiIiIiLSE5NuS6Lp6bbkOd3Ag3nd7OkmIiIiIiKqEpNuS2INc7qBh3q6r5o3DiIiIiIiIgvHpNuSWMOcbuBBT3fmdfPGQUREREREZOGYdFsSa9gyDHjQ0624DRQXmjcWIiIiIiIiC8ak25Joe7rdzRpGtRy9ANn9IfD3kswbCxERERERkQVj0m1JlFYyvFwiAby4bRgREREREVF1mHRbEmvZMgx4aF43k24iIiIiIqLKMOm2FEI8WL3c0ud0Aw/mdbOnm4iIiIiIqFJMui2FKg8Q6rLvraqnmyuYExERERERVYZJt6XQLKImtQXsHMwbiz7Y001ERERERFQtJt2W4uH53BKJeWPRh+f9hdRy7wKqfPPGQkREREREZKGYdFsKTU+3NcznBgBHT8DBo+z7exxiTkREREREVBEm3ZZCs4iapW8X9jCuYE5ERERERFQlJt2Wwpq2C9Pwalb2L+d1ExERERERVYhJt6Uoyi7711qGlwMPFlPjCuZEREREREQVYtJtKbTDy93NGkaNaBZTy7xq3jiIiIiIiIgsFJNuS6FZSM2a5nRz2zAiIiIiIqIqMem2FNY4p1uzkFp++oP4iYiIiIiISItJt6Wwti3DgLJeeSefsu/Z201ERERERFQOk25LobTCnm6A24YRERERERFVgUm3pbDGOd3AQ/O6uYI5ERERERHR3zHpthSaOdHWNLwceGgFc/Z0ExERERER/R2TbkthrcPLuYI5ERERERFRpZh0WwprHV7OOd1ERERERESVqrdJ99q1axESEgK5XI7w8HAcO3bM3CFVrrQYKC4o+17ubtZQakwzvLzwHlCYZd5YiIiIiIiILEy9TLq3b9+OqKgoREdH49SpU+jYsSMiIyORlpZm7tAq9vAe1zIX88VRGzJnwNm/7PtMLqZGRERERET0sHqZdC9fvhwTJ07E+PHj0aZNG6xfvx6Ojo7YtGmTuUOrmPL+0HI7J8DGzryx1AbndRMREREREVXI1twBGJpKpcLJkycxe/ZsbZlUKkVERAQSEhJq1pjiLiAtMHCEFdD0EFvbfG4NzzDg5hHg7hkgpI+5oyEiIiIiIjI+RY5e1epd0p2RkYHS0lL4+fnplPv5+SExMbHCc5RKJZRKpfaxQlE23Fu6LhyQSYwX7N8ImSuEWm2y6xmMZ1jZkImENWVfRERERERE9ZxUKfSqV++S7tqIiYnBggULypUL2EJITZV0S5AX8jjyLXXeeRVsvHrA09EH0iIupEZERERERA2DgH5Jt0QIoV9NK6FSqeDo6Iivv/4aw4YN05aPHTsW2dnZ+P7778udU1FPd1BQEDIzM+Hu7m6CqImIiIiIiMiaZGdnw8vLCzk5OXB1rXyqcL3r6ba3t0fXrl0RGxurTbrVajViY2MxderUCs+RyWSQyWTlyqVSKaTSernWHBEREREREdWBvrlivUu6ASAqKgpjx45Ft27d0KNHD6xcuRL5+fkYP368uUMjIiIiIiKiBqReJt0jRoxAeno65s2bh5SUFHTq1Am7d+8ut7gaERERERERkTHVuzndhqBQKODm5oasrCzO6SYiIiIiIqJysrOz4eHhUe2cbk5YJiIiIiIiIjKSejm8vK40nf8KhYILqREREREREVE5CoUCwIP8sTJMuiuQmZkJAAgODjZzJERERERERGTJMjMz4ebmVulxJt0V8PT0BADcunWryhePrEP37t1x/Phxc4dBBsB7WX/wXtYfvJf1B+9l/cF7WX/wXlq2nJwcNGnSRJs/VoZJdwU0Q8rd3NyqnBBP1sHGxob3sZ7gvaw/eC/rD97L+oP3sv7gvaw/eC+tQ3VTkjlhmeq9KVOmmDsEMhDey/qD97L+4L2sP3gv6w/ey/qD97J+4JZhFdBsGVbd0u9ERERERETUMOmbN7KnuwIymQzR0dGQyWTmDoWIiIiIiIgskL55I3u6iYiIiIiIiIyEPd1ERERERERERsKkmyza2rVrERISArlcjvDwcBw7dkx77NVXX0XTpk3h4OAAHx8fPPPMM0hMTKy2zZ07d6JVq1aQy+Vo3749fvnlF53jQgjMmzcPAQEBcHBwQEREBK5cuWLw59bQVHUvASAhIQEDBw6Ek5MTXF1d0a9fPxQWFlbZZnx8PLp06QKZTIZmzZphy5YtNb4u1VxVr+m1a9fw7LPPwsfHB66urnjhhReQmppabZu8l6Z18OBBPP300wgMDIREIsGuXbu0x4qLizFr1iy0b98eTk5OCAwMxJgxY3Dnzp1q2+V9NL2q7iUAjBs3DhKJROdr8ODB1bbLe2l61d3LvLw8TJ06FY0bN4aDgwPatGmD9evXV9vu2bNn0bdvX8jlcgQFBWHJkiXl6lT32YhqJiYmBt27d4eLiwt8fX0xbNgwXLp0SafOhg0bMGDAALi6ukIikSA7O1uvtvnetFKCyEJt27ZN2Nvbi02bNonz58+LiRMnCnd3d5GamiqEEOLTTz8VBw4cEElJSeLkyZPi6aefFkFBQaKkpKTSNo8cOSJsbGzEkiVLxIULF8S7774r7OzsxJ9//qmts3jxYuHm5iZ27dolzpw5I4YOHSpCQ0NFYWGh0Z9zfVXdvfztt9+Eq6uriImJEefOnROJiYli+/btoqioqNI2r1+/LhwdHUVUVJS4cOGCWL16tbCxsRG7d+/W+7pUc1W9pnl5eSIsLEw8++yz4uzZs+Ls2bPimWeeEd27dxelpaWVtsl7aXq//PKLmDt3rvj2228FAPHdd99pj2VnZ4uIiAixfft2kZiYKBISEkSPHj1E165dq2yT99E8qrqXQggxduxYMXjwYHH37l3t171796psk/fSPKq7lxMnThRNmzYVcXFxIikpSXz66afCxsZGfP/995W2mZOTI/z8/MTo0aPFuXPnxFdffSUcHBzEp59+qq2jz2cjqpnIyEixefNmce7cOfHHH3+IJ554QjRp0kTk5eVp66xYsULExMSImJgYAUBkZWVV2y7fm9aLSTdZrB49eogpU6ZoH5eWlorAwEARExNTYf0zZ84IAOLq1auVtvnCCy+IJ598UqcsPDxcvPrqq0IIIdRqtfD39xdLly7VHs/OzhYymUx89dVXdXk6DVp19zI8PFy8++67NWpz5syZom3btjplI0aMEJGRkXpfl2quqtd0z549QiqVipycHO3x7OxsIZFIxN69eyttk/fSvCr6cP93x44dEwDEzZs3K63D+2h+lSXdzzzzTI3a4b00v4ruZdu2bcX777+vU9alSxcxd+7cStv55JNPhIeHh1AqldqyWbNmiZYtW2ofV/fZiOouLS1NABAHDhwodywuLk7vpJvvTetVL4eXVzWkoqioCFOmTIGXlxecnZ0xfPhwvYY+ckiyaalUKpw8eRIRERHaMqlUioiICCQkJJSrn5+fj82bNyM0NBRBQUHa8pCQEMyfP1/7OCEhQadNAIiMjNS2mZSUhJSUFJ06bm5uCA8Pr/C6VL3q7mVaWhqOHj0KX19f9OrVC35+fujfvz8OHz6s086AAQMwbtw47ePq7mVNf4aoetW9pkqlEhKJRGcFT7lcDqlUqnM/eS+tT05ODiQSCdzd3bVlvI/WIz4+Hr6+vmjZsiUmT56MzMxMneO8l9ahV69e+OGHH5CcnAwhBOLi4nD58mU8/vjj2jrjxo3DgAEDtI8TEhLQr18/2Nvba8siIyNx6dIlZGVlaetUdb+p7nJycgAAnp6eNTqP7836o94l3du3b0dUVBSio6Nx6tQpdOzYEZGRkUhLSwMAvP322/jxxx+xc+dOHDhwAHfu3MFzzz1XZZu//fYbRo0ahQkTJuD06dMYNmwYhg0bhnPnzmnrLFmyBB9//DHWr1+Po0ePwsnJCZGRkSgqKjLq862vMjIyUFpaCj8/P51yPz8/pKSkaB9/8skncHZ2hrOzM3799Vfs3btX5z+Wpk2bwtvbW/s4JSWlyjY1/1Z3XdJfdffy+vXrAID58+dj4sSJ2L17N7p06YJBgwbp/OGqSZMmCAgI0D6u7F4qFAoUFhbq/TNE+qvuNX3kkUfg5OSEWbNmoaCgAPn5+Zg+fTpKS0tx9+5dbX3eS+tSVFSEWbNmYdSoUTp7kPI+WofBgwfjiy++QGxsLD788EMcOHAAQ4YMQWlpqbYO76V1WL16Ndq0aYPGjRvD3t4egwcPxtq1a9GvXz9tnYCAADRp0kT7uLJ7qTlWVR3eS8NQq9WYNm0aevfujXbt2tXoXL436w9bcwdgaMuXL8fEiRMxfvx4AMD69evx888/Y9OmTZg8eTI+++wzbN26FQMHDgQAbN68Ga1bt8bvv/+ORx55pMI2V61ahcGDB2PGjBkAgIULF2Lv3r1Ys2YN1q9fDyEEVq5ciXfffRfPPPMMAOCLL76An58fdu3ahZEjR5rgmTdMo0ePxmOPPYa7d+9i2bJleOGFF3DkyBHI5XIAQGxsrJkjpOqo1WoAZQvjad63nTt3RmxsLDZt2oSYmBgAZe8psmw+Pj7YuXMnJk+ejI8//hhSqRSjRo1Cly5dIJU++Bsv76X1KC4uxgsvvAAhBNatW6dzjPfROjz8GaR9+/bo0KEDmjZtivj4eAwaNAgA76W1WL16NX7//Xf88MMPCA4OxsGDBzFlyhQEBgZqezY1/2eS5ZgyZQrOnTtXbgSfPvjerD/qVU93dUMqTp48ieLiYp3jrVq1QpMmTXSGXHBIsvl5e3vDxsam3ND/1NRU+Pv7ax+7ubmhefPm6NevH77++mskJibiu+++q7Rdf3//KtvU/FvddUl/1d1LzV9w27Rpo3O8devWuHXrVqXtVnYvXV1d4eDgoPfPEOlPn9f08ccfx7Vr15CWloaMjAx8+eWXSE5ORlhYWKXt8l5aJk3CffPmTezdu1enl7sivI/WISwsDN7e3rh69WqldXgvLU9hYSHmzJmD5cuX4+mnn0aHDh0wdepUjBgxAsuWLav0vMrupeZYVXV4L+tu6tSp+OmnnxAXF4fGjRvXuT2+N61XvUq6qxtSkZKSAnt7e505aQ8f1+CQZPOzt7dH165ddXqq1Wo1YmNj0bNnzwrPEWULA0KpVFbabs+ePcv1fu/du1fbZmhoKPz9/XXqKBQKHD16tNLrUtWqu5chISEIDAwst5XG5cuXERwcXGm71d3L2vwMUdVq8pp6e3vD3d0d+/fvR1paGoYOHVppu7yXlkeTcF+5cgX79u2Dl5dXtefwPlqH27dvIzMzU2fI6t/xXlqe4uJiFBcX64waAgAbGxvtiLGK9OzZEwcPHkRxcbG2bO/evWjZsiU8PDy0daq631RzQghMnToV3333Hfbv34/Q0FCDtMv3phUz4yJuBpecnCwAiN9++02nfMaMGaJHjx7iv//9r7C3ty93Xvfu3cXMmTMrbdfOzk5s3bpVp2zt2rXC19dXCFG21QIAcefOHZ06//jHP8QLL7xQ26fT4G3btk3IZDKxZcsWceHCBTFp0iTh7u4uUlJSxLVr18QHH3wgTpw4IW7evCmOHDkinn76aeHp6amzJcLAgQPF6tWrtY+PHDkibG1txbJly8TFixdFdHR0hVuGubu7i++//1675RG3DKubqu6lEGXbZri6uoqdO3eKK1euiHfffVfI5XKdlehffvll8c4772gfa7bNmDFjhrh48aJYu3ZthdtmVHVdqrnqXtNNmzaJhIQEcfXqVfHll18KT09PERUVpdMG76X55ebmitOnT4vTp08LAGL58uXi9OnT4ubNm0KlUomhQ4eKxo0biz/++ENnq6mHV0DmfbQMVd3L3NxcMX36dJGQkCCSkpLEvn37RJcuXUTz5s11tmTkvbQMVd1LIYTo37+/aNu2rYiLixPXr18XmzdvFnK5XHzyySfaNt555x3x8ssvax9nZ2cLPz8/8fLLL4tz586Jbdu2CUdHx3JbhlX32YhqZvLkycLNzU3Ex8fr/A4tKCjQ1rl79644ffq02LhxowAgDh48KE6fPi0yMzO1dfjerD/qVdKtVCqFjY1NuS0WxowZI4YOHSpiY2MrXJK/SZMmYvny5ZW2GxQUJFasWKFTNm/ePNGhQwchhBDXrl0TAMTp06d16vTr10+8+eabtX06JIRYvXq1aNKkibC3txc9evQQv//+uxCi7A8sQ4YMEb6+vsLOzk40btxYvPjiiyIxMVHn/ODgYBEdHa1TtmPHDtGiRQthb28v2rZtK37++Wed42q1Wrz33nvCz89PyGQyMWjQIHHp0iWjPs+GoLJ7qRETEyMaN24sHB0dRc+ePcWhQ4d0jvfv31+MHTtWpywuLk506tRJ2Nvbi7CwMLF58+YaX5dqrqrXdNasWcLPz0/Y2dmJ5s2bi48++kio1Wqd83kvzU+zRc3fv8aOHSuSkpIqPAZAxMXFadvgfbQMVd3LgoIC8fjjjwsfHx9hZ2cngoODxcSJE8t9+Oa9tAxV3UshypK0cePGicDAQCGXy0XLli3L/Y4dO3as6N+/v067Z86cEX369BEymUw0atRILF68uNy1q/tsRDVT2e/Qh99H0dHR1dbhe7P+kAghhPH60U0vPDwcPXr0wOrVqwGUDalo0qQJpk6dismTJ8PHxwdfffUVhg8fDgC4dOkSWrVqhYSEhEoXUhsxYgQKCgrw448/ast69eqFDh06aBdSCwwMxPTp0/Gvf/0LQNmQZF9fX2zZsoULqRERERERETVQ9W718qioKIwdOxbdunVDjx49sHLlSuTn52P8+PFwc3PDhAkTEBUVBU9PT7i6uuKNN95Az549dRLuQYMG4dlnn8XUqVMBAG+99Rb69++Pjz76CE8++SS2bduGEydOYMOGDQAAiUSCadOmYdGiRWjevDlCQ0Px3nvvITAwEMOGDTPHy0BEREREREQWoN4l3SNGjEB6ejrmzZuHlJQUdOrUCbt379YucrZixQpIpVIMHz4cSqUSkZGR+OSTT3TauHbtGjIyMrSPe/Xqha1bt+Ldd9/FnDlz0Lx5c+zatUtnr72ZM2ciPz8fkyZNQnZ2Nvr06YPdu3drt64iIiIiIiKihqfeDS8nIiIiIiIishT1asswIiIiIiIiIkvCpJuIiIiIiIjISJh0ExERERERERkJk24iIiIiIiIiI2HSTURERERERGQk9SrpXrt2LUJCQiCXyxEeHo5jx45pj23YsAEDBgyAq6srJBIJsrOz9Wpzy5YtcHd3N07AREREREREVK/Vm6R7+/btiIqKQnR0NE6dOoWOHTsiMjISaWlpAICCggIMHjwYc+bMMXOkRERERERE1FDUm6R7+fLlmDhxIsaPH482bdpg/fr1cHR0xKZNmwAA06ZNwzvvvINHHnmkTte5du0annnmGfj5+cHZ2Rndu3fHvn37dOqEhITggw8+wD//+U+4uLigSZMm2LBhQ52uS0RERERERNanXiTdKpUKJ0+eREREhLZMKpUiIiICCQkJBr1WXl4ennjiCcTGxuL06dMYPHgwnn76ady6dUun3kcffYRu3brh9OnTeP311zF58mRc+v/27i6kyTaO4/hvmMZgmZi6QVZESkmSkRVZIFjisIishOrIJVHkLLSEEaUlEQVFFEREBHogRgRFLwtDfBlU6yQo8hWCpIO4hx2oZJrSfA7kuR/2WCHhUuf3c6TX/ed/XdfOflz3S3f3lK4FAAAAADCzRUTo/vLli378+CG73R4ybrfbZRjGlM6VkZGhI0eOKD09XampqTp//rxWrFihx48fh9Rt375dJSUlSklJkcfjUUJCglpaWqZ0LQAAAACAmS0iQvdUyM/Pl81mk81m0+rVq39Z9/XrV1VUVCgtLU1xcXGy2Wzq7OyccNK9Zs0a82+LxSKHw2E+Xw4AAAAAmBvmTfcCpkJCQoKioqIUCARCxgOBgBwOx6R63LlzR0NDQ5Kk6OjoX9ZVVFSosbFRV65cUUpKiqxWqwoLCzUyMhJS9/8eFotFwWBwUmsBAAAAAESGiAjdMTExyszMVFNTkwoKCiRJwWBQTU1NKi0tnVSPxYsXT6ru5cuXcrlc2r17t6Txk++enp4/WTYAAAAAIMJFROiWpBMnTqioqEjr16/Xxo0bde3aNQ0ODurgwYOSJMMwZBiGPnz4IEl6//69+Wbx+Pj4Sc+TmpqqBw8eaOfOnbJYLKqsrOQEGwAAAADwUxETuvft26fe3l5VVVXJMAytXbtWDQ0N5svVbt26perqarM+OztbklRTUyOXy/XLvsFgUPPm/fczXb16VcXFxdq8ebMSEhLk8Xg0MDAQnk0BAAAAAGY1y9jY2Nh0L2Imu3Tpkurq6tTW1jbdSwEAAAAAzDIRc9I91b59+6auri7V1NQoPz9/upcDAAAAAJiF+GTYL9y+fVu5ubnKyMhQVVXVdC8HAAAAADALcXs5AAAAAABhwkk3AAAAAABhQugGAAAAACBMIjZ0X7x4URs2bNCCBQuUlJSkgoICdXd3h9QMDw/L7XZr0aJFstls2rt3rwKBgHn93bt3OnDggJYsWSKr1aq0tDRdv359wlytra1at26d5s+fr5SUFNXW1oZ7ewAAAACAWSBiQ7fP55Pb7dbr16/V2Nio0dFR5eXlaXBw0KwpLy/XkydPdP/+ffl8Pn3+/Fl79uwxr79580ZJSUmqq6tTe3u7Tp8+rVOnTunGjRtmzcePH7Vjxw7l5OTo7du3Kisr06FDh/T8+fO/ul8AAAAAwMwzZ16k1tvbq6SkJPl8PmVnZ6u/v1+JiYmqr69XYWGhJKmrq0tpaWny+/3atGnTT/u43W51dnaqublZkuTxeOT1ekO+471//3719fWpoaEh/BsDAAAAAMxYEXvS/X/9/f2SpPj4eEnjp9ijo6PKzc01a1atWqWlS5fK7/f/ts+/PSTJ7/eH9JAkp9P52x4AAAAAgLlh3nQv4G8IBoMqKyvTli1blJ6eLkkyDEMxMTGKi4sLqbXb7TIM46d9Xr16pXv37snr9ZpjhmHIbrdP6DEwMKChoSFZrdap3QwAAAAAYNaYE6Hb7Xarra1NL168+OMebW1t2rVrl86ePau8vLwpXB0AAAAAIFJF/O3lpaWlevr0qVpaWpScnGyOOxwOjYyMqK+vL6Q+EAjI4XCEjHV0dGjbtm06fPiwzpw5E3LN4XCEvPH83x6xsbGccgMAAADAHBexoXtsbEylpaV6+PChmpubtXz58pDrmZmZio6OVlNTkznW3d2tT58+KSsryxxrb29XTk6OioqKdOHChQnzZGVlhfSQpMbGxpAeAAAAAIC5KWLfXl5SUqL6+no9evRIK1euNMcXLlxonkAfPXpUz549U21trWJjY3Xs2DFJ489uS+O3lG/dulVOp1OXL182e0RFRSkxMVHS+CfD0tPT5Xa7VVxcrObmZh0/flxer1dOp/NvbRcAAAAAMANFbOi2WCw/Ha+pqZHL5ZIkDQ8P6+TJk7p7966+f/8up9OpmzdvmreXnzt3TtXV1RN6LFu2TD09Peb/ra2tKi8vV0dHh5KTk1VZWWnOAQAAAACYuyI2dAMAAAAAMN0i9pluAAAAAACmG6EbAAAAAIAwIXQDAAAAABAmhG4AAAAAAMKE0A0AAAAAQJgQugEAAAAACBNCNwAAAAAAYULoBgAAAAAgTAjdAAAAAACECaEbAAAAAIAwIXQDAAAAABAmhG4AAAAAAMLkH+tq0hv8xcL3AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# time_series rows are indexed by integer; use name column to get the storage results\n", - "res1_idx = res1[res1['name'] == 'tank_power_only'].index[0]\n", - "df_hs1 = res1.data_source.loc[res1_idx].df\n", - "\n", - "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", - "df_hs1.soc.plot(ax=axes[0], color='C0')\n", - "axes[0].set_ylabel('SOC (-)')\n", - "axes[0].set_title('Part 1 (GenericMapping): Heat storage SOC')\n", - "axes[0].grid(True, alpha=0.3)\n", - "df_hs1.q_delivered_kw.plot(ax=axes[1], color='C1')\n", - "axes[1].set_ylabel('Power (kW)')\n", - "axes[1].set_title('Delivered power')\n", - "axes[1].grid(True, alpha=0.3)\n", - "plt.tight_layout()\n", - "plt.show()" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmA1JREFUeJzs3Xd8U+X+B/BPkrZpmzYd0AltWcoU2chexbIFuRdRkIJcXKBARcZPBBGkiIpwkSFXBEGRJS4UkFFAFJElQwQVCkXoADrSQUeS5/dHyYHQlua0STP4vF+vvm7z5OScb3NSL99+n+f7KIQQAkRERERERERkdUp7B0BERERERETkqph0ExEREREREdkIk24iIiIiIiIiG2HSTURERERERGQjTLqJiIiIiIiIbIRJNxEREREREZGNMOkmIiIiIiIishEm3UREREREREQ2wqSbiIiIiIiIyEaYdBMRUZWYP38+GjRoAKPRaO9QrG7v3r1QKBTYu3evvUOpEgqFAm+88YZNr7F8+XJERkaioKDAptdxFqtXr4ZCocDFixftHYpNde3aFV27drV3GEREVsWkm4jIQZj+UW368vT0xIMPPohx48YhNTXVatfJy8vDG2+8IStBfOuttzBgwACEhIRUKOHS6XR4++23MWXKFCiV5v/XU1BQgMWLF6Njx44ICAiAh4cHwsPDMWDAAHz++ecwGAyyruVM3njjDSgUCiiVSly+fLnE8zqdDl5eXlAoFBg3bpwdIrSfkSNHorCwEB9++GGlzlOrVi3069ev1OdMfyzZvHlzpa5xLxX5fSMiItfiZu8AiIjI3JtvvonatWsjPz8fBw4cwLJly/D999/j9OnT8Pb2rvT58/LyMGvWLACwuKI0ffp0hIaGonnz5tixY4fsa3788cfQ6/V48sknzcavXbuG3r174+jRo4iJicH06dMRGBiIlJQU7Nq1C0899RT+/vtvvP7667KvWZU6d+6MmzdvwsPDo0KvV6vV+PzzzzF58mSz8S1btlgjPKu7efMm3Nxs+08IT09PxMbGYsGCBXjppZegUChsej1bqcjvGxERuRYm3UREDqZ3795o1aoVAOA///kPqlWrhgULFuDrr78ukbTKYTQaUVhYWKHXJiYmolatWrh+/TqCgoJkv37VqlUYMGAAPD09zcaffvppHD9+HF988QUef/xxs+emTZuGI0eO4Ny5cxWKuSrk5+fDw8MDSqWyxM8mR58+fUpNutetW4e+ffviiy++qGyoVlWZn1WOIUOGYP78+UhISED37t2r5JpERETWxunlREQOzpRsJCYmAgDeffddtG/fHtWqVYOXlxdatmxZ6vRY05Tkzz77DI0bN4Zarcby5culpHnWrFnSVPbypovXqlWrwvEnJibi5MmTiI6ONhs/ePAgduzYgWeffbZEwm3SqlUrDBs2zGysoKAAM2fORL169aBWqxEREYHJkyeXWPtr+vm/+uorNGnSBGq1Go0bN8b27dtLXOfKlSt45plnEBISIh338ccfmx1jmoq8fv16TJ8+HTVq1IC3tzd0Ol2Za7oPHTqEPn36ICAgABqNBk2bNsWiRYtKXP+pp57Cb7/9hrNnz0pjKSkp2LNnD5566qkSxxcWFmLGjBlo2bIl/Pz8oNFo0KlTJyQkJJgdd/HiRSgUCrz77rt4//33ERUVBS8vL3Tp0gWnT582O3bkyJHw8fHBhQsXEBMTA41Gg/DwcLz55psQQpR4b+/8zJimyf/9998YOXIk/P394efnh1GjRiEvL8/stTdv3sTLL7+M6tWrw9fXFwMGDMCVK1dK/Ry2bNkSgYGB+Prrr83Gr1+/jrNnz5Y4t7VY8nmw5B5cvHixQr9vv//+O7p37w4vLy/UrFkTc+bMKbMXwrZt29CpUydoNBr4+vqib9+++P33382OMd3bpKQk9OvXDz4+PqhRowaWLFkCADh16hS6d+8OjUaDqKgorFu3zuz16enpmDRpEh566CH4+PhAq9Wid+/eOHHihNlxpt+DjRs34q233kLNmjXh6emJHj164O+//y4R+4oVK1C3bl14eXmhTZs2+PHHH+/5vhAROStWuomIHNz58+cBANWqVQMALFq0CAMGDMCwYcNQWFiI9evX49///je2bt2Kvn37mr12z5492LhxI8aNG4fq1avj4YcfxrJly/DCCy9g0KBBUrLbtGlTm8X/888/AwBatGhhNv7tt98CAIYPH27xuYxGIwYMGIADBw7g2WefRcOGDXHq1Cm8//77+PPPP/HVV1+ZHX/gwAFs2bIFL774Inx9ffHf//4XgwcPRlJSkvR+pqam4pFHHpGS9KCgIGzbtg2jR4+GTqfDhAkTzM45e/ZseHh4YNKkSSgoKChzSvnOnTvRr18/hIWFYfz48QgNDcUff/yBrVu3Yvz48WbHdu7cGTVr1sS6devw5ptvAgA2bNgAHx+fEvcUKF7r/dFHH+HJJ5/EmDFjkJ2djZUrVyImJga//vormjVrZnb8mjVrkJ2djbFjxyI/Px+LFi1C9+7dcerUKYSEhEjHGQwG9OrVC4888gjmz5+P7du3Y+bMmdDr9VJc9zJkyBDUrl0b8fHxOHbsGD766CMEBwfj7bfflo4ZOXIkNm7ciKeffhqPPPII9u3bV+rPaNKiRQv89NNPZmMffPABZs2ahYSEBIumbBcVFeH69eslxrOyskqMWfp5sOQeBAUFyf59S0lJQbdu3aDX6zF16lRoNBqsWLECXl5eJY5du3YtYmNjERMTg7fffht5eXlYtmwZOnbsiOPHj5v9scxgMKB3797o3Lkz5s+fj88++wzjxo2DRqPBa6+9hmHDhuHxxx/H8uXLMWLECLRr1w61a9cGAFy4cAFfffUV/v3vf6N27dpITU3Fhx9+iC5duuDMmTMIDw83i2vevHlQKpWYNGkSsrKyMH/+fAwbNgyHDh2Sjlm5ciWee+45tG/fHhMmTMCFCxcwYMAABAYGIiIiouybSUTkjAQRETmEVatWCQBi165d4tq1a+Ly5cti/fr1olq1asLLy0v8888/Qggh8vLyzF5XWFgomjRpIrp37242DkAolUrx+++/m41fu3ZNABAzZ86UHWNFXjt9+nQBQGRnZ5uNDxo0SAAQmZmZZuM3b94U165dk74yMjKk59auXSuUSqX48ccfzV6zfPlyAUD89NNP0hgA4eHhIf7++29p7MSJEwKAWLx4sTQ2evRoERYWJq5fv252zqFDhwo/Pz/p/U5ISBAARJ06dUrcA9NzCQkJQggh9Hq9qF27toiKijKLXwghjEaj9P3MmTMFAHHt2jUxadIkUa9ePem51q1bi1GjRkk/y9ixY6Xn9Hq9KCgoMDtvRkaGCAkJEc8884w0lpiYKACYfX6EEOLQoUMCgJg4caI0FhsbKwCIl156ySzWvn37Cg8PD3Ht2jWz9/bOz4Dp57jz2kIU3+Nq1apJj48ePSoAiAkTJpgdN3LkyDI/V88++6zw8vIyGzNdz/R+30tUVJQAcM+vTZs2Scdb+nmw9B7I/Z2ZMGGCACAOHTokjaWlpQk/Pz8BQCQmJgohhMjOzhb+/v5izJgxZq9PSUkRfn5+ZuOmezt37lyzWL28vIRCoRDr16+Xxs+ePVsi3vz8fGEwGMyuk5iYKNRqtXjzzTelMdPvQcOGDc3em0WLFgkA4tSpU0KI4v9mBQcHi2bNmpkdt2LFCgFAdOnSxaL3iojIWVRoenlSUhJ+/PFH7NixA8eOHeN2HkREVhQdHY2goCBERERg6NCh8PHxwZdffokaNWoAgFnFKyMjA1lZWejUqROOHTtW4lxdunRBo0aNqiz20ty4cQNubm7w8fExG9fpdABQYtw0Bd701bFjR+m5TZs2oWHDhmjQoAGuX78ufZmm4N89vTo6Ohp169aVHjdt2hRarRYXLlwAAAgh8MUXX6B///4QQpidMyYmBllZWSXe19jY2FKrjnc6fvw4EhMTMWHCBPj7+5s9V1ZDMFPTuMOHD0v/W9rUcgBQqVRShd1oNCI9PR16vR6tWrUq9XMwcOBA6fMDAG3atEHbtm3x/ffflzj2zi7ppmpvYWEhdu3adc+fGQCef/55s8edOnXCjRs3pHttmtr/4osvmh330ksvlXnOgIAA3Lx502wq+RtvvAEhhMWNydq2bYudO3eW+Hr33XfNjpPzeZB7Dyz1/fff45FHHkGbNm2ksaCgoBLLLHbu3InMzEw8+eSTZnGqVCq0bdu2xO8CUNwjwsTf3x/169eHRqPBkCFDpPH69evD399f+h0Bihv9mXYdMBgMuHHjBnx8fFC/fv1Sf9ZRo0aZzQDp1KkTAEjnPHLkCNLS0vD888+bHTdy5Ej4+flZ9kYRETkRi6eXX7x4EcuWLcP69evxzz//mK3v8vDwQKdOnfDss89i8ODBJbaDISIiyy1ZsgQPPvgg3NzcEBISgvr165v9d3Xr1q2YM2cOfvvtN7M/epaWzJmmhzoiX19fAEBOTo7ZP7QHDx6MJk2aAABeeeUVsy3D/vrrL/zxxx9lNnNLS0szexwZGVnimICAAGRkZAAo7p6emZmJFStWYMWKFRad05L31LQkwPRzWKJ58+Zo0KAB1q1bB39/f4SGht6zedgnn3yC9957D2fPnkVRUdE943vggQdKjD344IPYuHGj2ZhSqUSdOnVKHAfAov2h736/AwICABT/cUir1eLSpUtQKpUlYqxXr16Z5zT9e6My3curV69eoqcAgBId2OV+HuTcA0tdunQJbdu2LTFev359s8d//fUXAJT5GdFqtWaPPT09S/ze+Pn5oWbNmiXeWz8/P+l3BCj+o8KiRYuwdOlSJCYmmv1OmpZp3OlenwPTzwiU/Fy6u7uX+PwREbkCi5Lul19+GZ988gliYmIwZ84ctGnTBuHh4fDy8kJ6ejpOnz6NH3/8ETNmzMCsWbOwatUqtG7d2taxExG5pDZt2kjdy+/2448/YsCAAejcuTOWLl2KsLAwuLu7Y9WqVSWaHwEotyJbFapVqwa9Xo/s7Gwp0QaABg0aAABOnz6NDh06SOMRERHSms6AgACztbhGoxEPPfQQFixYUOq17l4LqlKpSj3OlMiZmlMNHz4csbGxpR579/pbW76nTz31FJYtWwZfX1888cQTZf4R+9NPP8XIkSMxcOBAvPrqqwgODoZKpUJ8fLyU8NtDee93RWRkZMDb27tKPstyPg/2vgemWNeuXYvQ0NASz9/9B4Wy7o0l92zu3Ll4/fXX8cwzz2D27NkIDAyEUqnEhAkTSm3wZovPARGRM7Mo6dZoNLhw4UKpf80MDg5G9+7d0b17d8ycORPbt2/H5cuXmXQTEdnAF198AU9PT+zYsQNqtVoaX7VqlcXnqOr9jk3JdWJiolkC269fP8ybNw+fffaZWdJ9L3Xr1sWJEyfQo0cPq/wcQUFB8PX1hcFgKLUSWlGmKe2nT5+Wdd6nnnoKM2bMQHJyMtauXVvmcZs3b0adOnWwZcsWs/dh5syZpR5vqore6c8//yzRld5oNOLChQtSddt0HFC5DvYmUVFRMBqNSExMNKtyltbZ2iQxMRENGzas9LUtIefzYOk9kPs5jYqKKvV+3b11nukzFhwcbNXPbmk2b96Mbt26YeXKlWbjmZmZqF69uuzzRUVFASj+XN5ZqS8qKkJiYiIefvjhygVMRORgLJoHHh8fX2rCXZpevXqVufULERFVjkqlgkKhMJveefHixRJdu+/F29sbQPE/mKtCu3btABSv47xThw4d0LNnT6xYsaLEllAmd1fGhgwZgitXruB///tfiWNv3ryJ3NxcWbGpVCoMHjwYX3zxRYkttIDi6cYV0aJFC9SuXRsLFy4s8T7fq9pXt25dLFy4EPHx8WZrekuL++5zHTp0CAcPHiz1+K+++gpXrlyRHv/66684dOgQevfuXeLYDz74wCzWDz74AO7u7ujRo0eZ8VgqJiYGALB06VKz8cWLF5f5mmPHjqF9+/ZmY7baMkzO58HSeyD3961Pnz745Zdf8Ouvv5pd97PPPjM7LiYmBlqtFnPnzjWb2l5arJWlUqlKfG43bdpk9pmSo1WrVggKCsLy5ctRWFgoja9evbrK/rtERFSVLF7TPXPmTPTo0QOPPPJImdujEBGRbfXt2xcLFixAr1698NRTTyEtLQ1LlixBvXr1cPLkSYvO4eXlhUaNGmHDhg148MEHERgYiCZNmtxz/fHatWtx6dIlKcnZv38/5syZAwB4+umnpcpVaerUqYMmTZpg165deOaZZ8ye+/TTT9GrVy8MHDgQvXv3RnR0NAICApCSkoJdu3Zh//79Zonh008/jY0bN+L5559HQkICOnToAIPBgLNnz2Ljxo3YsWNHmVPzyzJv3jwkJCSgbdu2GDNmDBo1aoT09HQcO3YMu3btQnp6uqzzAcVro5ctW4b+/fujWbNmGDVqFMLCwnD27Fn8/vvv2LFjR5mvvXs7sdL069cPW7ZswaBBg9C3b18kJiZi+fLlaNSoEXJyckocX69ePXTs2BEvvPACCgoKsHDhQlSrVg2TJ082O87T0xPbt29HbGws2rZti23btuG7777D//3f/5W5jl6Oli1bYvDgwVi4cCFu3LghbRlmqqbfXRU+evQo0tPT8dhjj5mNy90yTA5LPw+W3gO5v2+TJ0/G2rVr0atXL4wfP17aMiwqKsrsd1yr1WLZsmV4+umn0aJFCwwdOhRBQUFISkrCd999hw4dOpj9AaUy+vXrhzfffBOjRo1C+/btcerUKXz22WcVXn/t7u6OOXPm4LnnnkP37t3xxBNPIDExEatWreKabiJyTZa2Oa9Vq5ZQKBTCy8tLdO/eXcyePVscOHBAFBUVWbGZOhHR/cu0Zdjhw4fvedzKlSvFAw88INRqtWjQoIFYtWqVtIXSnXDXNlN3+vnnn0XLli2Fh4eHRdsZdenSpcztlizZtmnBggXCx8enxFZbQhRvEbZw4ULRrl07odVqhZubmwgNDRX9+vUTn332mdDr9WbHFxYWirfffls0btxYqNVqERAQIFq2bClmzZolsrKyyv35o6KiRGxsrNlYamqqGDt2rIiIiBDu7u4iNDRU9OjRQ6xYsUI6xrQd0p3bS9393N3vxYEDB0TPnj2Fr6+v0Gg0omnTpmbbld25Zdi93P2zGI1GMXfuXBEVFSXUarVo3ry52Lp1q4iNjRVRUVHScaYtw9555x3x3nvviYiICKFWq0WnTp3EiRMnzK4RGxsrNBqNOH/+vHj00UeFt7e3CAkJETNnziyxXdTdn5myfg7TZ9q0zZUQQuTm5oqxY8eKwMBA4ePjIwYOHCjOnTsnAIh58+aZvX7KlCkiMjLSbJu1O69n6ZZhffv2LfW5su6pJZ8HS++BEPJ/306ePCm6dOkiPD09RY0aNcTs2bPFypUrS7yXpp8hJiZG+Pn5CU9PT1G3bl0xcuRIceTIEekY0729W5cuXUTjxo3Lfc/y8/PFK6+8IsLCwoSXl5fo0KGDOHjwoOjSpYvZ9l5lvZ+mz+GqVavMxpcuXSpq164t1Gq1aNWqldi/f3+JcxIRuQKFEJZ3tbh48SISEhKwd+9e7Nu3D0lJSdBoNOjQoQO6deuGbt263XM6HBER3Z+ysrJQp04dzJ8/H6NHj7Z3OPeNixcvonbt2njnnXcwadKkex47cuRIbN68udRKua399ttvaN68OT799FNpa6yCggLUqlULU6dOtaj6T0RE5Khk7e1Vq1YtjBo1Cp988gkuXryI8+fPY9GiRQgODsbcuXNLrLkiIiICircgmjx5Mt55551Sux3T/ePmzZslxhYuXAilUonOnTtLY6tWrYK7u3uJvb+JiIicjcVruu926dIl7N+/H/v27cP+/ftRVFRk9n+WREREd5oyZQqmTJli7zDIzubPn4+jR4+iW7ducHNzw7Zt27Bt2zY8++yzZlu+Pf/880y4iYjIJVicdCclJWHv3r3S9PLr16+jffv26NKlC8aMGYM2bdqwwRoRERHdU/v27bFz507Mnj0bOTk5iIyMxBtvvIHXXnvN3qERERHZhMVrupVKJSIjI/HCCy+gW7duaNmypbRdBhERERERERGVZHHSPXToUOzbtw8FBQXo2LEjunTpgm7duqF58+YltvggIiIiIiIiIhlJt8nZs2fNOpjn5+dLSXjXrl3RunVrW8VKRERERERE5FRkJ913O3PmDNatW4fFixcjNzcXer3eWrFZhdFoxNWrV+Hr68uKPBEREREREVmFEALZ2dkIDw+HUln2xmAV6l6empqKvXv3So3V/vzzT6jVanTq1KnCAdvK1atXzbqhEhEREREREVnL5cuXUbNmzTKftzjp3rhxo5Ronzt3Du7u7mjdujWGDBmCbt26oX379lCr1VYJ2pp8fX0BFG9x5u/vb99giIiIiIiIyCVkZmYiKipKyjnLYvH0cg8PD7Rq1QrdunVDt27d0KFDB3h5eVklWFvS6XTw8/NDRkYGk24iIiIiIiKyiszMTAQEBCArKwtarbbM4yyudGdkZECj0dzzmJs3bzpFIk5ERERERERUFcpe7X0XU8L98ssvl/p8bm4u+vTpIzuAK1euYPjw4ahWrRq8vLzw0EMP4ciRI9LzQgjMmDEDYWFh8PLyQnR0NP766y/Z1yEiIiIiIiKqahYn3SbfffcdZs6caTaWm5uLXr16ye5cnpGRgQ4dOsDd3R3btm3DmTNn8N577yEgIEA6Zv78+fjvf/+L5cuX49ChQ9BoNIiJiUF+fr7c0ImIiIiIiIiqlOzu5T/88AM6deqEgIAATJgwAdnZ2YiJiYGbmxu2bdsm61xvv/02IiIisGrVKmmsdu3a0vdCCCxcuBDTp0/HY489BgBYs2YNQkJC8NVXX2Ho0KFywyciIiIiIiKqMrKT7rp162L79u3o1q0blEolPv/8c6jVanz33Xflrvm+2zfffIOYmBj8+9//xr59+1CjRg28+OKLGDNmDAAgMTERKSkpiI6Oll7j5+eHtm3b4uDBg6Um3QUFBSgoKJAe63Q6AMX7dRuNRrk/rs3k6/Mx8+BMpOSmlHush8oDE1pMQONqjasgMiIiIiIiIiqPpfllhfbpbtq0KbZu3YqePXuibdu22Lp1a4UaqF24cAHLli1DXFwc/u///g+HDx/Gyy+/DA8PD8TGxiIlpTghDQkJMXtdSEiI9Nzd4uPjMWvWrBLj165dQ2FhoewYbeXwtcPYfnG7xcdP2DMBy9otg9aj7K54REREREREVDWysrIsOs6ipLt58+ZQKBQlxtVqNa5evYoOHTpIY8eOHbMwxOK/DLRq1Qpz586VrnP69GksX74csbGxFp/nTtOmTUNcXJz0WKfTISIiAkFBQQ61ZZgit/j9fDDgQTzf9PkyjxMQWHRsEZKyk7Dk7yVY0GVBqfeCiIiIiIiIqo6Hh4dFx1mUdA8cOLAysZQpLCwMjRo1Mhtr2LAhvvjiCwBAaGgoACA1NRVhYWHSMampqWjWrFmp51Sr1VCr1SXGlUollErZfeNsJqcoBwAQ6RuJnrV63vPYGr41MPz74dhzeQ82/bUJQxtwLTsREREREZE9WZpfWpR0392t3Fo6dOiAc+fOmY39+eefiIqKAlDcVC00NBS7d++WkmydTodDhw7hhRdesElMVcWUdPt6+JZ7bONqjRHXMg7zD8/HO4ffQfPg5qgfWN/WIRIREREREVElWZSaCyFscvGJEyfil19+wdy5c/H3339j3bp1WLFiBcaOHQsAUCgUmDBhAubMmYNvvvkGp06dwogRIxAeHm6z6ntV0RUWN3jz8fCx6PjhDYejS80uKDQWYtK+ScgryrNleERERERERGQFFiXdjRs3xvr168ttRPbXX3/hhRdewLx58yy6eOvWrfHll1/i888/R5MmTTB79mwsXLgQw4YNk46ZPHkyXnrpJTz77LNo3bo1cnJysH37dnh6elp0DUeVXZgNwLJKN1D8B4jZHWYj2CsYF3UXEf9rvC3DIyIiIiIiIitQCAvK2Lt378aUKVNw4cIF9OzZE61atUJ4eDg8PT2RkZGBM2fO4MCBA/j9998xbtw4/N///R/8/PyqIv5y6XQ6+Pn5ISMjw6Eaqb2671Vsv7gdU9tMxbCGw8p/wS2HUw7jPz/8B0ZhRHynePSr08+GURIREREREVFpMjMzERAQgKysLGi1Ze8yZdGa7h49euDIkSM4cOAANmzYgM8++wyXLl3CzZs3Ub16dTRv3hwjRozAsGHDEBAQYLUfwpWZKt0+7pZNLzdpHdoazzV9DstOLMPsg7PRtHpTRGojbREiERERERERVZKsfbo7duyIjh072iqW+4rc6eV3erbps/g15VccTT2KV/e/ik97fwp3lbu1QyQiIiIiIqJKcpw9tO4z2UUVT7rdlG6Y12ke/NR+OHPjDBYeW2jl6IiIiIiIiMgamHTbSWUq3QAQqgnFnA5zAABrzqzB/n/2Wy02IiIiIiIisg4m3XaSU2j5Pt1l6RrRFcMbDgcATD8wHam5qVaJjYiIiIiIiKyDSbcdFBoKkW/IB1C5pBsAJraciIaBDZFRkIFpB6bBYDRYI0QiIiIiIiKyAllJt16vx5o1a5CayopqZZimlgOAxk1TqXN5qDzwTpd34OXmhcMph3Hi2onKhkdERERERERWIivpdnNzw/PPP4/8/HxbxXNfyCkqnlru4+4DlVJV6fNFaaPQLKgZACApO6nS5yMiIiIiIiLrkD29vE2bNvjtt99sEMr9o7JN1EoT7hMOAEjOSbbaOYmIiIiIiKhyZO3TDQAvvvgi4uLicPnyZbRs2RIajfn06KZNm1otOFelK9QBAHw8fKx2TlPSfSXnitXOSURERERERJUjO+keOnQoAODll1+WxhQKBYQQUCgUMBjYyKs8Uudyd+tVusM0YQCA5FxWuomIiIiIiByF7KQ7MTHRFnHcV2w5vfxqzlWrnZOIiIiIiIgqR3bSHRUVZYs47iu2SLpr+NQAAKTkpsBgNFilQRsRERERERFVToX26V67di06dOiA8PBwXLp0CQCwcOFCfP3111YNzlVlF1k/6Q7yCoKbwg16oce1m9esdl4iIiIiIiKqONlJ97JlyxAXF4c+ffogMzNTWsPt7++PhQsXWjs+l2SqdPu4W6+RmkqpQogmBADXdRMRERERETkK2Un34sWL8b///Q+vvfYaVKrbU5hbtWqFU6dOWTU4V2VKurUeWque19RMjR3MiYiIiIiIHIPspDsxMRHNmzcvMa5Wq5Gbm2uVoFyd1L3citPLAe7VTURERERE5GhkJ921a9fGb7/9VmJ8+/btaNiwoTVicnm22KcbuKODeS47mBMRERERETkC2d3L4+LiMHbsWOTn50MIgV9//RWff/454uPj8dFHH9kiRpdji0ZqABCu4bZhREREREREjkR20v2f//wHXl5emD59OvLy8vDUU08hPDwcixYtwtChQ20Ro8sxTS+39ppu7tVNRERERETkWGQn3QAwbNgwDBs2DHl5ecjJyUFwcLC143JptuheDtyudCfnJkMIAYVCYdXzExERERERkTyy13R//PHHSExMBAB4e3sz4ZbJYDQgp8g2jdRCNaFQQIECQwFu5N+w6rmJiIiIiIhIPtlJd3x8POrVq4fIyEg8/fTT+Oijj/D333/bIjaXlKu/3eHd2km3u8odQd5BANjBnIiIiIiIyBHITrr/+usvJCUlIT4+Ht7e3nj33XdRv3591KxZE8OHD7dFjC7FNLVcrVLDQ+Vh9fNLzdTYwZyIiIiIiMjuZCfdAFCjRg0MGzYM77//PhYtWoSnn34aqampWL9+vbXjczmmpNvaVW6TMJ8wAGymRkRERERE5AhkN1L74YcfsHfvXuzduxfHjx9Hw4YN0aVLF2zevBmdO3e2RYwuxdZJdw2fGgCYdBMRERERETkC2Ul3r169EBQUhFdeeQXff/89/P39bRCW65KSbncbVbo1xZXu5Fyu6SYiIiIiIrI32dPLFyxYgA4dOmD+/Plo3LgxnnrqKaxYsQJ//vmnLeJzObaudJv26r6Sc8Um5yciIiIiIiLLyU66J0yYgC1btuD69evYvn072rdvj+3bt6NJkyaoWbOmLWJ0KbbaLszElHSb9uomIiIiIiIi+5E9vRwAhBA4fvw49u7di4SEBBw4cABGoxFBQUHWjs/l6Ap1AAAfDx+bnN80vTy3KBe6Qh381H42uQ4RERERERGVT3alu3///qhWrRratGmDzz77DA8++CA++eQTXL9+HcePH7dFjC7F1tPLvdy8EOgZCIDruomIiIiIiOxNdqW7QYMGeO6559CpUyf4+bGKKldOYfH0cq2H1mbXCNeEIz0/HVdyrqBBYAObXYeIiIiIiIjuTXbS/c4779gijvuGqdLt426b6eVA8V7dp2+cRnIOK91ERERERET2JHt6OQDs27cP/fv3R7169VCvXj0MGDAAP/74o7Vjc0m2nl4OFFe6AeBqLvfqJiIiIiIisifZSfenn36K6OhoeHt74+WXX8bLL78MLy8v9OjRA+vWrbNFjC4lu6gKku5bHcyv5jDpJiIiIiIisifZ08vfeustzJ8/HxMnTpTGXn75ZSxYsACzZ8/GU089ZdUAXU2VVLqZdBMRERERETkE2ZXuCxcuoH///iXGBwwYgMTERKsE5cqkpNvddkm3adswdi8nIiIiIiKyL9lJd0REBHbv3l1ifNeuXYiIiLBKUK5KCCF1L6+KSndmQSbyivJsdh0iIiIiIiK6N9nTy1955RW8/PLL+O2339C+fXsAwE8//YTVq1dj0aJFVg/QldzU34Re6AHYNun29fCFr4cvsguzcTXnKuoF1LPZtYiIiIiIiKhsspPuF154AaGhoXjvvfewceNGAEDDhg2xYcMGPPbYY1YP0JWYpparFCp4uXnZ9FrhmnCcKzyHq7lMuomIiIiIiOxFdtINAIMGDcKgQYOsHYvLyym6PbVcoVDY9FrhPuE4l3GOzdSIiIiIiIjsqEJJNwAcOXIEf/zxBwCgUaNGaNmypdWCclWmSrePu4/NryV1MOde3URERERERHYju5HaP//8g06dOqFNmzYYP348xo8fj9atW6Njx474559/KhzIvHnzoFAoMGHCBGksPz8fY8eORbVq1eDj44PBgwcjNTW1wtewN12hDoBt13Ob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ERHZmuzu5SNGjEBeXh4efvhheHh4wMvLy+z59PR0qwXn7Exrun3dHbPSHekbCYBJNxERERERka3ITroXLlxogzBckyN3LweAWn61ADDpJiIiIiIishXZSXdsbKwt4nBJpunljpp0m6aXJ+cmI1+fD083TztHRERERERE5Fpkr+kmyzl60h2gDpCmvl/OvmznaIiIiIiIiFwPk24byi5y7KRboVCwmRoREREREZENMem2IanS7aCN1AAgUstmakRERERERLbCpNuGHH16OQDU0tYCwKSbiIiIiIjIFph025Cjdy8HuFc3ERERERGRLVnUvfzxxx+3+IRbtmypcDCuxCiMyCkqTrp9PHzsHE3ZmHQTERERERHZjkWVbj8/P+lLq9Vi9+7dOHLkiPT80aNHsXv3bvj5+dksUGeTW5QLAQHAsSvdpjXdN/JvSJV5IiIiIiIisg6LKt2rVq2Svp8yZQqGDBmC5cuXQ6VSAQAMBgNefPFFaLVa20TphEzrudUqNdQqtZ2jKZuvhy8CPQORnp+OS9mX0LhaY3uHRERERERE5DJkr+n++OOPMWnSJCnhBgCVSoW4uDh8/PHHVg3OmZmSbh93x51abiI1U8viFHMiIiIiIiJrkp106/V6nD17tsT42bNnYTQarRKUK3CGzuUmXNdNRERERERkGxZNL7/TqFGjMHr0aJw/fx5t2rQBABw6dAjz5s3DqFGjrB6gs3KmpFvaqzubSTcREREREZE1yU663333XYSGhuK9995DcnIyACAsLAyvvvoqXnnlFasH6Kyyi5wn6eb0ciIiIiIiItuQnXQrlUpMnjwZkydPhk6nAwA2UCuFs1a6hRBQKBR2joiIiIiIiMg1yF7TfSetVsuEuwzO1Egt0rc46c4uzEZGQYadoyEiIiIiInIdspPu1NRUPP300wgPD4ebmxtUKpXZFxUzJd1aD8f/o4SnmyfCNGEA2EyNiIiIiIjImmRPLx85ciSSkpLw+uuvIywsjFORy5BTlAPAOaaXA8VTzJNzk3FJdwnNg5vbOxwiIiIiIiKXIDvpPnDgAH788Uc0a9bMBuG4Dml6uYfjTy8HipupHUo+xEo3ERERERGRFcmeXh4REQEhhC1icSm6wuImc05T6b61rptJNxERERERkfXITroXLlyIqVOn4uLFizYIx3XkFBZPL3eGNd0AUMuvFgAm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LoT30/XwnroW3k/Xw3vqenhPXQvvp3Mpbxmz7EXOAwYMwJtvvomioiIAgEKhQFJSEqZMmYLBgwdXLEoimcaOHWvvEMiKeD9dD++pa+H9dD28p66H99S18H66Ftndy7OysvCvf/0LR44cQXZ2NsLDw5GSkoJ27drh+++/h0ajsVWsFWLqXl5eRzkiIiIiIiIiS1maa8qeXu7n54edO3fiwIEDOHnyJHJyctCiRQtER0dXKmBbUavVmDlzJtRqtb1DISIiIiIiIhdhaa5ZoX26iYiIiIiIiKh8sirdRqMRq1evxpYtW3Dx4kUoFArUrl0b//rXv/D0009DoVDYKk4iIiIiIiIip2NxpVsIgf79++P777/Hww8/jAYNGkAIgT/++AOnTp3CgAED8NVXX9k4XCIiIiIiIiLnYXGle/Xq1di/fz92796Nbt26mT23Z88eDBw4EGvWrMGIESOsHiQRERERERGRM7K40v3oo4+ie/fumDp1aqnPz507F/v27cOOHTusGiARERERERGRs7J4n+6TJ0+iV69eZT7fu3dvnDhxwipBEREREREREbkCi5Pu9PR0hISElPl8SEgIMjIyrBIUERERERERkSuwOOk2GAxwcyt7CbhKpYJer7dKUERERERERESuwOJGakIIjBw5ssyNvwsKCqwWFBEREREREZErsDjpjo2NLfcYdi4nIiIiIiIius3i7uVEREREREREJI/Fa7qJiIiIiIiISB4m3UREREREREQ2wqSbiIiIiIiIyEaYdBMREdE9jRw5ErVq1arw62vVqoWRI0daLR5HtHfvXigUCuzdu9feoRARkYNh0k1ERC7ljTfegEKhwPXr10t9vkmTJujatWvVBkVERET3LSbdRERERERERDbCpJuIiMhF5ebm2jsEIiKi+x6TbiIiuq+Z1uJu3LgRb731FmrWrAlPT0/06NEDf//9d4njDx06hD59+iAgIAAajQZNmzbFokWLzI7Zs2cPOnXqBI1GA39/fzz22GP4448/pOc3b94MhUKBffv2lTj/hx9+CIVCgdOnT0tjZ8+exb/+9S8EBgbC09MTrVq1wjfffGP2utWrV0vnfPHFFxEcHIyaNWtKz2/btk2KydfXF3379sXvv/9e4vpfffUVmjRpAk9PTzRp0gRffvmlxe+lEAJz5sxBzZo14e3tjW7dupV6DQDIzMzEhAkTEBERAbVajXr16uHtt9+G0WiUjrl48SIUCgXeffddLFmyBHXq1IG3tzceffRRXL58GUIIzJ49GzVr1oSXlxcee+wxpKenm13n66+/Rt++fREeHg61Wo26deti9uzZMBgMZsd17doVTZo0wZkzZ9CtWzd4e3ujRo0amD9/fonY//nnHwwcOBAajQbBwcGYOHEiCgoKLH6fiIjo/uJm7wCIiIgcwbx586BUKjFp0iRkZWVh/vz5GDZsGA4dOiQds3PnTvTr1w9hYWEYP348QkND8ccff2Dr1q0YP348AGDXrl3o3bs36tSpgzfeeAM3b97E4sWL0aFDBxw7dgy1atVC37594ePjg40bN6JLly5mcWzYsAGNGzdGkyZNAAC///47OnTogBo1amDq1KnQaDTYuHEjBg4ciC+++AKDBg0ye/2LL76IoKAgzJgxQ6p0r127FrGxsYiJicHbb7+NvLw8LFu2DB07dsTx48elJmk//PADBg8ejEaNGiE+Ph43btzAqFGjzJL3e5kxYwbmzJmDPn36oE+fPjh27BgeffRRFBYWmh2Xl5eHLl264MqVK3juuecQGRmJn3/+GdOmTUNycjIWLlxodvxnn32GwsJCvPTSS0hPT8f8+fMxZMgQdO/eHXv37sWUKVPw999/Y/HixZg0aRI+/vhj6bWrV6+Gj48P4uLi4OPjgz179mDGjBnQ6XR45513zK6TkZGBXr164fHHH8eQIUOwefNmTJkyBQ899BB69+4NALh58yZ69OiBpKQkvPzyywgPD8fatWuxZ88ei94jIiK6DwkiIiIXMnPmTAFAXLt2rdTnGzduLLp06SI9TkhIEABEw4YNRUFBgTS+aNEiAUCcOnVKCCGEXq8XtWvXFlFRUSIjI8PsnEajUfq+WbNmIjg4WNy4cUMaO3HihFAqlWLEiBHS2JNPPimCg4OFXq+XxpKTk4VSqRRvvvmmNNajRw/x0EMPifz8fLPrtW/fXjzwwAPS2KpVqwQA0bFjR7NzZmdnC39/fzFmzBizmFNSUoSfn5/ZeLNmzURYWJjIzMyUxn744QcBQERFRZV8M++QlpYmPDw8RN++fc3ej//7v/8TAERsbKw0Nnv2bKHRaMSff/5pdo6pU6cKlUolkpKShBBCJCYmCgAiKCjILKZp06YJAOLhhx8WRUVF0viTTz4pPDw8zN6rvLy8ErE+99xzwtvb2+y4Ll26CABizZo10lhBQYEIDQ0VgwcPlsYWLlwoAIiNGzdKY7m5uaJevXoCgEhISLjn+0RERPcfTi8nIiICMGrUKHh4eEiPO3XqBAC4cOECAOD48eNITEzEhAkT4O/vb/ZahUIBAEhOTsZvv/2GkSNHIjAwUHq+adOm6NmzJ77//ntp7IknnkBaWprZFlObN2+G0WjEE088AQBIT0/Hnj17MGTIEGRnZ+P69eu4fv06bty4gZiYGPz111+4cuWKWSxjxoyBSqWSHu/cuROZmZl48sknpddfv34dKpUKbdu2RUJCglnssbGx8PPzk17fs2dPNGrUqNz3b9euXVI12vR+AMCECRNKHLtp0yZ06tQJAQEBZjFFR0fDYDBg//79Zsf/+9//Noupbdu2AIDhw4fDzc3NbLywsNDsPfHy8pK+N72HnTp1Ql5eHs6ePWt2HR8fHwwfPlx67OHhgTZt2kifAQD4/vvvERYWhn/961/SmLe3N5599tly3yMiIro/cXo5ERHdd+5MCk0iIyPNHgcEBAAonnIMAOfPnwcAadp3aS5dugQAqF+/fonnGjZsiB07diA3NxcajQa9evWCn58fNmzYgB49egAonlrerFkzPPjggwCAv//+G0IIvP7663j99ddLvWZaWhpq1KghPa5du7bZ83/99RcAoHv37qW+XqvVmsX+wAMPlDimfv36OHbsWJk/971eHxQUJL2Xd8Z08uRJBAUFlXqutLQ0s8d33xtTAh4REVHquOmeAcXT86dPn449e/ZAp9OZHZ+VlWX2uGbNmiU+GwEBATh58qT0+NKlS6hXr16J40q750RERACTbiIicjGenp4AitfeliYvL0865k53VofvJISwXnB3UKvVGDhwIL788kssXboUqamp+OmnnzB37lzpGFNTsUmTJiEmJqbU89SrV8/s8Z2V3TvPsXbtWoSGhpZ4/Z2V4qpiNBrRs2dPTJ48udTnTX90MCnr3pR3zzIzM9GlSxdotVq8+eabqFu3Ljw9PXHs2DFMmTLFrGmbJecjIiKqCCbdRETkUqKiogAA586dK1EJzcvLw+XLl/Hoo4/KPm/dunUBAKdPn0Z0dHS5177b2bNnUb16dWg0GmnsiSeewCeffILdu3fjjz/+gBBCmloOAHXq1AEAuLu7l3lNS+MODg6+5zlMsZsq43cq7ee51+tNcQPAtWvXzCrPpphycnIq/DNZau/evbhx4wa2bNmCzp07S+OJiYkVPmdUVBROnz4NIYRZtduS94iIiO5PXNNNREQupUePHvDw8MCyZctKVDJXrFgBvV4vdaKWo0WLFqhduzYWLlyIzMxMs+dMldCwsDA0a9YMn3zyidkxp0+fxg8//IA+ffqYvS46OhqBgYHYsGEDNmzYgDZt2phNDw8ODkbXrl3x4YcfIjk5uURM165dKzfumJgYaLVazJ07F0VFRWWe487Y75x2vXPnTpw5c6bc60RHR8Pd3R2LFy82qwzf3YkcAIYMGYKDBw9ix44dJZ7LzMyEXq8v93qWMFWu74ynsLAQS5curfA5+/Tpg6tXr2Lz5s3SWF5eHlasWFHxQImIyKWx0k1ERC4lODgYM2bMwPTp09G5c2cMGDAA3t7e+Pnnn/H555/j0UcfRf/+/WWfV6lUYtmyZejfvz+aNWuGUaNGISwsDGfPnsXvv/8uJZDvvPMOevfujXbt2mH06NHSlmF+fn544403zM7p7u6Oxx9/HOvXr0dubi7efffdEtddsmQJOnbsiIceeghjxoxBnTp1kJqaioMHD+Kff/7BiRMn7hm3VqvFsmXL8PTTT6NFixYYOnQogoKCkJSUhO+++w4dOnTABx98AACIj49H37590bFjRzzzzDNIT0/H4sWL0bhxY+Tk5NzzOkFBQZg0aRLi4+PRr18/9OnTB8ePH8e2bdtQvXp1s2NfffVVfPPNN+jXrx9GjhyJli1bIjc3F6dOncLmzZtx8eLFEq+piPbt2yMgIACxsbF4+eWXoVAosHbt2kpNFx8zZgw++OADjBgxAkePHkVYWBjWrl0Lb2/vSsdLREQuyl5t04mIiGzp008/FY888ojQaDRCrVaLBg0aiFmzZpltEyXE7S3DNm3aZDZu2q5q1apVZuMHDhwQPXv2FL6+vkKj0YimTZuKxYsXmx2za9cu0aFDB+Hl5SW0Wq3o37+/OHPmTKlx7ty5UwAQCoVCXL58udRjzp8/L0aMGCFCQ0OFu7u7qFGjhujXr5/YvHmzdIxpy7DDhw+Xeo6EhAQRExMj/Pz8hKenp6hbt64YOXKkOHLkiNlxX3zxhWjYsKFQq9WiUaNGYsuWLSI2NrbcLcOEEMJgMIhZs2aJsLAw4eXlJbp27SpOnz4toqKizLYME6J4K7Np06aJevXqCQ8PD1G9enXRvn178e6774rCwkIhxO178M4775T4WUq7Z6W9Bz/99JN45JFHhJeXlwgPDxeTJ08WO3bsKLG9V5cuXUTjxo1L/Eyl/eyXLl0SAwYMEN7e3qJ69epi/PjxYvv27dwyjIiISqUQgt1BiIiIiIiIiGyBa7qJiIiIiIiIbIRJNxEREREREZGNMOkmIiIiIiIishEm3UREREREREQ2wqSbiIiIiIiIyEaYdBMRERERERHZiJu9A7A1o9GIq1evwtfXFwqFwt7hEBERERERkQsQQiA7Oxvh4eFQKsuuZ7t80n316lVERETYOwwiIiIiIiJyQZcvX0bNmjXLfN7lk25fX18AwKVLl+Dv72/fYIiIiIiIiMglZGZmIioqSso5y1KppLugoABqtboyp7A505RyrVYLrVZr52iIiIiIiIjIFRiNRgAodxmzrEZq27ZtQ2xsLOrUqQN3d3d4e3tDq9WiS5cueOutt3D16tWKR0xERERERETkYixKur/88ks8+OCDeOaZZ+Dm5oYpU6Zgy5Yt2LFjBz766CN06dIFu3btQp06dfD888/j2rVrto6biIiIiIiIyOEphBCivIPatWuH6dOno3fv3vfsynblyhUsXrwYISEhmDhxolUDrSidTgc/Pz9kZGRwTTcRERERERFZRWZmJgICApCVlXXPpcwWJd3OjEk3ERERERERWZulSbfFa7oTEhJQWFholeDIPoTBgMsvvIiUuXPtHQoREREREdF9weKku0ePHvD390f37t0xe/ZsHDhwAHq93paxkZUVJiUhJyEBGZ+tg4tPcCAiIiIiInIIFifdiYmJWLJkCSIjI7Fy5Up07twZ/v7+iImJwbx583Do0CGpZTo5JkNm5q1vDBB5eXaNhYiIiIiI6H5Q4TXdFy5cwN69e7F3717s27cP//zzD3x9fZFpSuwcBNd035a9dy/+ef4FAEC9vQlwDw21c0RERERERETOydI13W4VvUCdOnWgUqmgUCigUCjw1Vdfcc23gzNmZd3+PjsbYNJNRERERERkU7KS7qSkJOzduxcJCQnYu3cvrl+/jvbt26NTp07YunUr2rZta6s4yQoMd8xCMGRn2y8QIiIiIiKi+4TFSXedOnWQkZGBDh06oHPnznjuuefQqlUruLlVuFhOVcxwR6XboNPZMRIiIiIiIqL7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3zQba9GihXjttdfKPM/SpUtFQECAKCgokMamTJki6tevLz0u799OZB1paWkCgNi3b1+J5xISEixOuvk76vwcfnr5vaZJ5OfnY+zYsahWrRp8fHwwePBgi6Y5ciqyfRQWFuLo0aOIjo6WxpRKJaKjo3Hw4MESx+fm5mLVqlWoXbs2IiIipPFatWrhjTfekB4fPHjQ7JwAEBMTI50zMTERKSkpZsf4+fmhbdu2pV6XLFPe/UxLS8OhQ4cQHByM9u3bIyQkBF26dMGBAwfMztO1a1eMHDlSelze/ZT7OSLLlffeFhQUQKFQmHXo9PT0hFKpNLuvvKfOKysrCwqFAv7+/tIY76fz2bt3L4KDg1G/fn288MILuHHjhtnzvKfOo3379vjmm29w5coVCCGQkJCAP//8E48++qh0zMiRI9G1a1fp8cGDB9G5c2d4eHhIYzExMTh37hwyMjKkY+51z8k6srKyAACBgYGyXsffUdfj0En3hg0bEBcXh5kzZ+LYsWN4+OGHERMTg7S0NADAxIkT8e2332LTpk3Yt28frl69iscff/ye5/z555/x5JNPYvTo0Th+/DgGDhyIgQMH4vTp09Ix8+fPx3//+18sX74chw4dgkajQUxMDPLz823687q669evw2AwICQkxGw8JCQEKSkp0uOlS5fCx8cHPj4+2LZtG3bu3Gn2fxx169ZF9erVpccpKSn3PKfpf8u7LslT3v28cOECAOCNN97AmDFjsH37drRo0QI9evQw+yNWZGQkwsLCpMdl3U+dToebN29a/Dki+cp7bx955BFoNBpMmTIFeXl5yM3NxaRJk2AwGJCcnCwdz3vqnPLz8zFlyhQ8+eSTZnuN8n46l169emHNmjXYvXs33n77bezbtw+9e/eGwWCQjuE9dR6LFy9Go0aNULNmTXh4eKBXr15YsmQJOnfuLB0TFhaGyMhI6XFZ99P03L2O4f20nv9v796Doqz+P4C/AVnAQSAEdgcRRCVFCc0LijqQQuBl8JImWmOApQ3uaogoZlxyLHUmRA01hgqYNNRs8kpDsy6ghVCjrU4okJKXSV28zOAFFJj2/P7gx3594qqxsuD7NePonufs5znPHp51P5yz5+j1esTExGDixInw8fF5qufyHu15enV1A9qSmpqKJUuWICoqCgCQnp6O3NxcZGZmIjo6Gl9//TVycnIwZcoU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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# heat demand results\n", + "res1_idx = res1[res1['name'] == 'heat_consumer'].index[0]\n", + "df_hd1 = res1.data_source.loc[res1_idx].df\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "print(df_hd1)\n", + "df_hd1.q_received_kw.plot(ax=axes[0], color='C2')\n", + "axes[0].set_ylabel('Demand received power (kW)')\n", + "axes[0].set_title('Part 1 (GenericMapping): Heat demand')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hd1.q_uncovered_kw.plot(ax=axes[1], color='C3')\n", + "axes[1].set_ylabel('Uncovered demand (kW)')\n", + "axes[1].set_title('Uncovered demand')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "# Part 2: FluidMixMapping (uniform tank)\n", + "\n", + "Chain: **Const profile** → **Electric boiler** → **Heat storage (uniform tank)** → **Heat demand**.\n", + "\n", + "The electric boiler supplies the storage with fluid (temperature + mass flow); the storage is configured with `capacity_kg`, optional `init_temperature_c`, `min_temp_c`, `max_temp_c` for SOC from temperature." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ + "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", - "2020-01-01 00:00:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:15:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:30:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:45:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 01:00:00+00:00 60.0 0.0 0.0 \n", - "... ... ... ... \n", - "2020-01-01 22:45:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:00:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:15:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:30:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:45:00+00:00 0.0 0.0 0.0 \n", - "\n", - " t_in_c t_out_c \n", - "2020-01-01 00:00:00+00:00 0.0 0.0 \n", - "2020-01-01 00:15:00+00:00 0.0 0.0 \n", - "2020-01-01 00:30:00+00:00 0.0 0.0 \n", - "2020-01-01 00:45:00+00:00 0.0 0.0 \n", - "2020-01-01 01:00:00+00:00 0.0 0.0 \n", - "... ... ... \n", - "2020-01-01 22:45:00+00:00 0.0 0.0 \n", - "2020-01-01 23:00:00+00:00 0.0 0.0 \n", - "2020-01-01 23:15:00+00:00 0.0 0.0 \n", - "2020-01-01 23:30:00+00:00 0.0 0.0 \n", - "2020-01-01 23:45:00+00:00 0.0 0.0 \n", - "\n", - "[96 rows x 5 columns]\n" - ] + "name": "index", + "rawType": "datetime64[ns, UTC]", + "type": "unknown" }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmA1JREFUeJzs3Xd8U+X+B/BPkrZpmzYd0AltWcoU2chexbIFuRdRkIJcXKBARcZPBBGkiIpwkSFXBEGRJS4UkFFAFJElQwQVCkXoADrSQUeS5/dHyYHQlua0STP4vF+vvm7z5OScb3NSL99+n+f7KIQQAkRERERERERkdUp7B0BERERERETkqph0ExEREREREdkIk24iIiIiIiIiG2HSTURERERERGQjTLqJiIiIiIiIbIRJNxEREREREZGNMOkmIiIiIiIishEm3UREREREREQ2wqSbiIiIiIiIyEaYdBMRUZWYP38+GjRoAKPRaO9QrG7v3r1QKBTYu3evvUOpEgqFAm+88YZNr7F8+XJERkaioKDAptdxFqtXr4ZCocDFixftHYpNde3aFV27drV3GEREVsWkm4jIQZj+UW368vT0xIMPPohx48YhNTXVatfJy8vDG2+8IStBfOuttzBgwACEhIRUKOHS6XR4++23MWXKFCiV5v/XU1BQgMWLF6Njx44ICAiAh4cHwsPDMWDAAHz++ecwGAyyruVM3njjDSgUCiiVSly+fLnE8zqdDl5eXlAoFBg3bpwdIrSfkSNHorCwEB9++GGlzlOrVi3069ev1OdMfyzZvHlzpa5xLxX5fSMiItfiZu8AiIjI3JtvvonatWsjPz8fBw4cwLJly/D999/j9OnT8Pb2rvT58/LyMGvWLACwuKI0ffp0hIaGonnz5tixY4fsa3788cfQ6/V48sknzcavXbuG3r174+jRo4iJicH06dMRGBiIlJQU7Nq1C0899RT+/vtvvP7667KvWZU6d+6MmzdvwsPDo0KvV6vV+PzzzzF58mSz8S1btlgjPKu7efMm3Nxs+08IT09PxMbGYsGCBXjppZegUChsej1bqcjvGxERuRYm3UREDqZ3795o1aoVAOA///kPqlWrhgULFuDrr78ukbTKYTQaUVhYWKHXJiYmolatWrh+/TqCgoJkv37VqlUYMGAAPD09zcaffvppHD9+HF988QUef/xxs+em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iKhyZO3TDQAvvvgi4uLicPnyZbRs2RIajfn06KZNm1otOFelK9QBAHw8fKx2TlPSfSXnitXOSURERERERJUjO+keOnQoAODll1+WxhQKBYQQUCgUMBjYyKs8Uudyd+tVusM0YQCA5FxWuomIiIiIiByF7KQ7MTHRFnHcV2w5vfxqzlWrnZOIiIiIiIgqR3bSHRUVZYs47iu2SLpr+NQAAKTkpsBgNFilQRsRERERERFVToX26V67di06dOiA8PBwXLp0CQCwcOFCfP3111YNzlVlF1k/6Q7yCoKbwg16oce1m9esdl4iIiIiIiKqONlJ97JlyxAXF4c+ffogMzNTWsPt7++PhQsXWjs+l2SqdPu4W6+RmkqpQogmBADXdRMRERERETkK2Un34sWL8b///Q+vvfYaVKrbU5hbtWqFU6dOWTU4V2VKurUeWque19RMjR3MiYiIiIiIHIPspDsxMRHNmzcvMa5Wq5Gbm2uVoFyd1L3citPLAe7VTURERERE5GhkJ921a9fGb7/9VmJ8+/btaNiwoTVicnm22KcbuKODeS47mBMRERERETkC2d3L4+LiMHbsWOTn50MIgV9//RWff/454uPj8dFHH9kiRpdji0ZqABCu4bZhREREREREjkR20v2f//wHXl5emD59OvLy8vDUU08hPDwcixYtwtChQ20Ro8sxTS+39ppu7tVNRERERETkWGQn3QAwbNgwDBs2DHl5ecjJyUFwcLC143JptuheDtyudCfnJkMIAYVCYdXzExERERERkTyy13R//PHHSExMBAB4e3sz4ZbJYDQgp8g2jdRCNaFQQIECQwFu5N+w6rmJiIiIiIhIPtlJd3x8POrVq4fIyEg8/fTT+Oijj/D333/bIjaXlKu/3eHd2km3u8odQd5BANjBnIiIiIiIyBHITrr/+usvJCUlIT4+Ht7e3nj33XdRv3591KxZE8OHD7dFjC7FNLVcrVLDQ+Vh9fNLzdTYwZyIiIiIiMjuZCfdAFCjRg0MGzYM77//PhYtWoSnn34aqampWL9+vbXjczmmpNvaVW6TMJ8wAGymRkRERERE5AhkN1L74YcfsHfvXuzduxfHjx9Hw4YN0aVLF2zevBmdO3e2RYwuxdZJdw2fGgCYdBMRERERETkC2Ul3r169EBQUhFdeeQXff/89/P39bRCW65KSbncbVbo1xZXu5Fyu6SYiIiIiIrI32dPLFyxYgA4dOmD+/Plo3LgxnnrqKaxYsQJ//vmnLeJzObaudJv26r6Sc8Um5yciIiIiIiLLyU66J0yYgC1btuD69evYvn072rdvj+3bt6NJkyaoWbOmLWJ0KbbaLszElHSb9uomIiIiIiIi+5E9vRwAhBA4fvw49u7di4SEBBw4cABGoxFBQUHWjs/l6Ap1AAAfDx+bnN80vTy3KBe6Qh381H42uQ4RERERERGVT3alu3///qhWrRratGmDzz77DA8++CA++eQTXL9+HcePH7dFjC7F1tPLvdy8EOgZCIDruomIiIiIiOxNdqW7QYMGeO6559CpUyf4+bGKKldOYfH0cq2H1mbXCNeEIz0/HVdyrqBBYAObXYeIiIiIiIjuTXbS/c4779gijvuGqdLt426b6eVA8V7dp2+cRnIOK91ERERERET2JHt6OQDs27cP/fv3R7169VCvXj0MGDAAP/74o7Vjc0m2nl4OFFe6AeBqLvfqJiIiIiIisifZSfenn36K6OhoeHt74+WXX8bLL78MLy8v9OjRA+vWrbNFjC4lu6gKku5bHcyv5jDpJiIiIiIisifZ08vfeustzJ8/HxMnTpTGXn75ZSxYsACzZ8/GU089ZdUAXU2VVLqZdBMRERERETkE2ZXuCxcuoH///iXGBwwYgMTERKsE5cqkpNvddkm3adswdi8nIiIiIiKyL9lJd0REBHbv3l1ifNeuXYiIiLBKUK5KCCF1L6+KSndmQSbyivJsdh0iIiIiIiK6N9nTy1955RW8/PLL+O2339C+fXsAwE8//YTVq1dj0aJFVg/QldzU34Re6AHYNun29fCFr4cvsguzcTXnKuoF1LPZtYiIiIiIiKhsspPuF154AaGhoXjvvfewceNGAEDDhg2xYcMGPPbYY1YP0JWYpparFCp4uXnZ9FrhmnCcKzyHq7lMuomIiIiIiOxFdtINAIMGDcKgQYOsHYvLyym6PbVcoVDY9FrhPuE4l3GOzdSIiIiIiIjsqEJJNwAcOXIEf/zxBwCgUaNGaNmypdWCclWmSrePu4/NryV1MOde3URERERERHYju5HaP//8g06dOqFNmzYYP348xo8fj9atW6Njx474559/KhzIvHnzoFAoMGHCBGksPz8fY8eORbVq1eDj44PBgwcjNTW1wtewN12hDoBt13Ob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ERHZmuzu5SNGjEBeXh4efvhheHh4wMvLy+z59PR0qwXn7Exrun3dHbPSHekbCYBJNxERERERka3ITroXLlxogzBckyN3LweAWn61ADDpJiIiIiIishXZSXdsbKwt4nBJpunljpp0m6aXJ+cmI1+fD083TztHRERERERE5Fpkr+kmyzl60h2gDpCmvl/OvmznaIiIiIiIiFwPk24byi5y7KRboVCwmRoREREREZENMem2IanS7aCN1AAgUstmakRERERERLbCpNuGHH16OQDU0tYCwKSbiIiIiIjIFph025Cjdy8HuFc3ERERERGRLVnUvfzxxx+3+IRbtmypcDCuxCiMyCkqTrp9PHzsHE3ZmHQTERERERHZjkWVbj8/P+lLq9Vi9+7dOHLkiPT80aNHsXv3bvj5+dksUGeTW5QLAQHAsSvdpjXdN/JvSJV5IiIiIiIisg6LKt2rVq2Svp8yZQqGDBmC5cuXQ6VSAQAMBgNefPFFaLVa20TphEzrudUqNdQqtZ2jKZuvhy8CPQORnp+OS9mX0LhaY3uHRERERERE5DJkr+n++OOPMWnSJCnhBgCVSoW4uDh8/PHHVg3OmZmSbh93x51abiI1U8viFHMiIiIiIiJrkp106/V6nD17tsT42bNnYTQarRKUK3CGzuUmXNdNRERERERkGxZNL7/TqFGjMHr0aJw/fx5t2rQBABw6dAjz5s3DqFGjrB6gs3KmpFvaqzubSTcREREREZE1yU663333XYSGhuK9995DcnIyACAsLAyvvvoqXnnlFasH6Kyyi5wn6eb0ciIiIiIiItuQnXQrlUpMnjwZkydPhk6nAwA2UCuFs1a6hRBQKBR2joiIiIiIiMg1yF7TfSetVsuEuwzO1Egt0rc46c4uzEZGQYadoyEiIiIiInIdspPu1NRUPP300wgPD4ebmxtUKpXZFxUzJd1aD8f/o4SnmyfCNGEA2EyNiIiIiIjImmRPLx85ciSSkpLw+uuvIywsjFORy5BTlAPAOaaXA8VTzJNzk3FJdwnNg5vbOxwiIiIiIiKXIDvpPnDgAH788Uc0a9bMBuG4Dml6uYfjTy8HipupHUo+xEo3ERERERGRFcmeXh4REQEhhC1icSm6wuImc05T6b61rptJNxERERERkfXITroXLlyIqVOn4uLFizYIx3XkFBZPL3eGNd0AUMuvFgAm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LoT30/XwnroW3k/Xw3vqenhPXQvvp3Mpbxmz7EXOAwYMwJtvvomioiIAgEKhQFJSEqZMmYLBgwdXLEoimcaOHWvvEMiKeD9dD++pa+H9dD28p66H99S18H66Ftndy7OysvCvf/0LR44cQXZ2NsLDw5GSkoJ27drh+++/h0ajsVWsFWLqXl5eRzkiIiIiIiIiS1maa8qeXu7n54edO3fiwIEDOHnyJHJyctCiRQtER0dXKmBbUavVmDlzJtRqtb1DISIiIiIiIhdhaa5ZoX26iYiIiIiIiKh8sirdRqMRq1evxpYtW3Dx4kUoFArUrl0b//rXv/D0009DoVDYKk4iIiIiIiIip2NxpVsIgf79++P777/Hww8/jAYNGkAIgT/++AOnTp3CgAED8NVXX9k4XCIiIiIiIiLnYXGle/Xq1di/fz92796Nbt26mT23Z88eDBw4EGvWrMGIESOsHiQRERERERGRM7K40v3oo4+ie/fumDp1aqnPz507F/v27cOOHTusGiARERERERGRs7J4n+6TJ0+iV69eZT7fu3dvnDhxwipBEREREREREbkCi5Pu9PR0hISElPl8SEgIMjIyrBIUERERERERkSuwOOk2GAxwcyt7CbhKpYJer7dKUERERERERESuwOJGakIIjBw5ssyNvwsKCqwWFBEREREREZErsDjpjo2NLfcYdi4nIiIiIiIius3i7uVEREREREREJI/Fa7qJiIiIiIiISB4m3UREREREREQ2wqSbiIiIiIiIyEaYdBMREdE9jRw5ErVq1arw62vVqoWRI0daLR5HtHfvXigUCuzdu9feoRARkYNh0k1ERC7ljTfegEKhwPXr10t9vkmTJujatWvVBkVERET3LSbdRERERERERDbCpJuIiMhF5ebm2jsEIiKi+x6TbiIiuq+Z1uJu3LgRb731FmrWrAlPT0/06NEDf//9d4njDx06hD59+iAgIAAajQZNmzbFokWLzI7Zs2cPOnXqBI1GA39/fzz22GP4448/pOc3b94MhUKBffv2lTj/hx9+CIVCgdOnT0tjZ8+exb/+9S8EBgbC09MTrVq1wjfffGP2utWrV0vnfPHFFxEcHIyaNWtKz2/btk2KydfXF3379sXvv/9e4vpfffUVmjRpAk9PTzRp0gRffvmlxe+lEAJz5sxBzZo14e3tjW7dupV6DQDIzMzEhAkTEBERAbVajXr16uHtt9+G0WiUjrl48SIUCgXeffddLFmyBHXq1IG3tzceffRRXL58GUIIzJ49GzVr1oSXlxcee+wxpKenm13n66+/Rt++fREeHg61Wo26deti9uzZMBgMZsd17doVTZo0wZkzZ9CtWzd4e3ujRo0amD9/fonY//nnHwwcOBAajQbBwcGYOHEiCgoKLH6fiIjo/uJm7wCIiIgcwbx586BUKjFp0iRkZWVh/vz5GDZsGA4dOiQds3PnTvTr1w9hYWEYP348QkND8ccff2Dr1q0YP348AGDXrl3o3bs36tSpgzfeeAM3b97E4sWL0aFDBxw7dgy1atVC37594ePjg40bN6JLly5mcWzYsAGNGzdGkyZNAAC///47OnTogBo1amDq1KnQaDTYuHEjBg4ciC+++AKDBg0ye/2LL76IoKAgzJgxQ6p0r127FrGxsYiJicHbb7+NvLw8LFu2DB07dsTx48elJmk//PADBg8ejEaNGiE+Ph43btzAqFGjzJL3e5kxYwbmzJmDPn36oE+fPjh27BgeffRRFBYWmh2Xl5eHLl264MqVK3juuecQGRmJn3/+GdOmTUNycjIWLlxodvxnn32GwsJCvPTSS0hPT8f8+fMxZMgQdO/eHXv37sWUKVPw999/Y/HixZg0aRI+/vhj6bWrV6+Gj48P4uLi4OPjgz179mDGjBnQ6XR45513zK6TkZGBXr164fHHH8eQIUOwefNmTJkyBQ899BB69+4NALh58yZ69OiBpKQkvPzyywgPD8fatWuxZ88ei94jIiK6DwkiIiIXMnPmTAFAXLt2rdTnGzduLLp06SI9TkhIEABEw4YNRUFBgTS+aNEiAUCcOnVKCCGEXq8XtWvXFlFRUSIjI8PsnEajUfq+WbNmIjg4WNy4cUMaO3HihFAqlWLEiBHS2JNPPimCg4OFXq+XxpKTk4VSqRRvvvmmNNajRw/x0EMPifz8fLPrtW/fXjzwwAPS2KpVqwQA0bFjR7NzZmdnC39/fzFmzBizmFNSUoSfn5/ZeLNmzURYWJjIzMyUxn744QcBQERFRZV8M++QlpYmPDw8RN++fc3ej//7v/8TAERsbKw0Nnv2bKHRaMSff/5pdo6pU6cKlUolkpKShBBCJCYmCgAiKCjILKZp06YJAOLhhx8WRUVF0viTTz4pPDw8zN6rvLy8ErE+99xzwtvb2+y4Ll26CABizZo10lhBQYEIDQ0VgwcPlsYWLlwoAIiNGzdKY7m5uaJevXoCgEhISLjn+0RERPcfTi8nIiICMGrUKHh4eEiPO3XqBAC4cOECAOD48eNITEzEhAkT4O/vb/ZahUIBAEhOTsZvv/2GkSNHIjAwUHq+adOm6NmzJ77//ntp7IknnkBaWprZFlObN2+G0WjEE088AQBIT0/Hnj17MGTIEGRnZ+P69eu4fv06bty4gZiYGPz111+4cuWKWSxjxoyBSqWSHu/cuROZmZl48sknpddfv34dKpUKbdu2RUJCglnssbGx8PPzk17fs2dPNGrUqNz3b9euXVI12vR+AMCECRNKHLtp0yZ06tQJAQEBZjFFR0fDYDBg//79Zsf/+9//Noupbdu2AIDhw4fDzc3NbLywsNDsPfHy8pK+N72HnTp1Ql5eHs6ePWt2HR8fHwwfPlx67OHhgTZt2kifAQD4/vvvERYWhn/961/SmLe3N5599tly3yMiIro/cXo5ERHdd+5MCk0iIyPNHgcEBAAonnIMAOfPnwcAadp3aS5dugQAqF+/fonnGjZsiB07diA3NxcajQa9evWCn58fNmzYgB49egAonlrerFkzPPjggwCAv//+G0IIvP7663j99ddLvWZaWhpq1KghPa5du7bZ83/99RcAoHv37qW+XqvVmsX+wAMPlDimfv36OHbsWJk/971eHxQUJL2Xd8Z08uRJBAUFlXqutLQ0s8d33xtTAh4REVHquOmeAcXT86dPn449e/ZAp9OZHZ+VlWX2uGbNmiU+GwEBATh58qT0+NKlS6hXr16J40q750RERACTbiIicjGenp4AitfeliYvL0865k53VofvJISwXnB3UKvVGDhwIL788kssXboUqamp+OmnnzB37lzpGFNTsUmTJiEmJqbU89SrV8/s8Z2V3TvPsXbtWoSGhpZ4/Z2V4qpiNBrRs2dPTJ48udTnTX90MCnr3pR3zzIzM9GlSxdotVq8+eabqFu3Ljw9PXHs2DFMmTLFrGmbJecjIiKqCCbdRETkUqKiogAA586dK1EJzcvLw+XLl/Hoo4/KPm/dunUBAKdPn0Z0dHS5177b2bNnUb16dWg0GmnsiSeewCeffILdu3fjjz/+gBBCmloOAHXq1AEAuLu7l3lNS+MODg6+5zlMsZsq43cq7ee51+tNcQPAtWvXzCrPpphycnIq/DNZau/evbhx4wa2bNmCzp07S+OJiYkVPmdUVBROnz4NIYRZtduS94iIiO5PXNNNREQupUePHvDw8MCyZctKVDJXrFgBvV4vdaKWo0WLFqhduzYWLlyIzMxMs+dMldCwsDA0a9YMn3zyidkxp0+fxg8//IA+ffqYvS46OhqBgYHYsGEDNmzYgDZt2phNDw8ODkbXrl3x4YcfIjk5uURM165dKzfumJgYaLVazJ07F0VFRWWe487Y75x2vXPnTpw5c6bc60RHR8Pd3R2LFy82qwzf3YkcAIYMGYKDBw9ix44dJZ7LzMyEXq8v93qWMFWu74ynsLAQS5curfA5+/Tpg6tXr2Lz5s3SWF5eHlasWFHxQImIyKWx0k1ERC4lODgYM2bMwPTp09G5c2cMGDAA3t7e+Pnnn/H555/j0UcfRf/+/WWfV6lUYtmyZejfvz+aNWuGUaNGISwsDGfPnsXvv/8uJZDvvPMOevfujXbt2mH06NHSlmF+fn544403zM7p7u6Oxx9/HOvXr0dubi7efffdEtddsmQJOnbsiIceeghjxoxBnTp1kJqaioMHD+Kff/7BiRMn7hm3VqvFsmXL8PTTT6NFixYYOnQogoKCkJSUhO+++w4dOnTABx98AACIj49H37590bFjRzzzzDNIT0/H4sWL0bhxY+Tk5NzzOkFBQZg0aRLi4+PRr18/9OnTB8ePH8e2bdtQvXp1s2NfffVVfPPNN+jXrx9GjhyJli1bIjc3F6dOncLmzZtx8eLFEq+piPbt2yMgIACxsbF4+eWXoVAosHbt2kpNFx8zZgw++OADjBgxAkePHkVYWBjWrl0Lb2/vSsdLREQuyl5t04mIiGzp008/FY888ojQaDRCrVaLBg0aiFmzZpltEyXE7S3DNm3aZDZu2q5q1apVZuMHDhwQPXv2FL6+vkKj0YimTZuKxYsXmx2za9cu0aFDB+Hl5SW0Wq3o37+/OHPmTKlx7ty5UwAQCoVCXL58udRjzp8/L0aMGCFCQ0OFu7u7qFGjhujXr5/YvHmzdIxpy7DDhw+Xeo6EhAQRExMj/Pz8hKenp6hbt64YOXKkOHLkiNlxX3zxhWjYsKFQq9WiUaNGYsuWLSI2NrbcLcOEEMJgMIhZs2aJsLAw4eXlJbp27SpOnz4toqKizLYME6J4K7Np06aJevXqCQ8PD1G9enXRvn178e6774rCwkIhxO178M4775T4WUq7Z6W9Bz/99JN45JFHhJeXlwgPDxeTJ08WO3bsKLG9V5cuXUTjxo1L/Eyl/eyXLl0SAwYMEN7e3qJ69epi/PjxYvv27dwyjIiISqUQgt1BiIiIiIiIiGyBa7qJiIiIiIiIbIRJNxEREREREZGNMOkmIiIiIiIishEm3UREREREREQ2wqSbiIiIiIiIyEaYdBMRERERERHZiJu9A7A1o9GIq1evwtfXFwqFwt7hEBERERERkQsQQiA7Oxvh4eFQKsuuZ7t80n316lVERETYOwwiIiIiIiJyQZcvX0bNmjXLfN7lk25fX18AwKVLl+Dv72/fYIiIiIiIiMglZGZmIioqSso5y1KppLugoABqtboyp7A505RyrVYLrVZr52iIiIiIiIjIFRiNRgAodxmzrEZq27ZtQ2xsLOrUqQN3d3d4e3tDq9WiS5cueOutt3D16tWKR0xERERERETkYixKur/88ks8+OCDeOaZZ+Dm5oYpU6Zgy5Yt2LFjBz766CN06dIFu3btQp06dfD888/j2rVrto6biIiIiIiIyOEphBCivIPatWuH6dOno3fv3vfsynblyhUsXrwYISEhmDhxolUDrSidTgc/Pz9kZGRwTTcRERERERFZRWZmJgICApCVlXXPpcwWJd3OjEk3ERERERERWZulSbfFa7oTEhJQWFholeDIPoTBgMsvvIiUuXPtHQoREREREdF9weKku0ePHvD390f37t0xe/ZsHDhwAHq93paxkZUVJiUhJyEBGZ+tg4tPcCAiIiIiInIIFifdiYmJWLJkCSIjI7Fy5Up07twZ/v7+iImJwbx583Do0CGpZTo5JkNm5q1vDBB5eXaNhYiIiIiI6H5Q4TXdFy5cwN69e7F3717s27cP//zzD3x9fZFpSuwcBNd035a9dy/+ef4FAEC9vQlwDw21c0RERERERETOydI13W4VvUCdOnWgUqmgUCigUCjw1Vdfcc23gzNmZd3+PjsbYNJNRERERERkU7KS7qSkJOzduxcJCQnYu3cvrl+/jvbt26NTp07YunUr2rZta6s4yQoMd8xCMGRn2y8QIiIiIiKi+4TFSXedOnWQkZGBDh06oHPnznjuuefQqlUruLlVuFhOVcxwR6XboNPZMRIiIiIiIqL7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3zQba9GihXjttdfKPM/SpUtFQECAKCgokMamTJki6tevLz0u799OZB1paWkCgNi3b1+J5xISEixOuvk76vwcfnr5vaZJ5OfnY+zYsahWrRp8fHwwePBgi6Y5ciqyfRQWFuLo0aOIjo6WxpRKJaKjo3Hw4MESx+fm5mLVqlWoXbs2IiIipPFatWrhjTfekB4fPHjQ7JwAEBMTI50zMTERKSkpZsf4+fmhbdu2pV6XLFPe/UxLS8OhQ4cQHByM9u3bIyQkBF26dMGBAwfMztO1a1eMHDlSelze/ZT7OSLLlffeFhQUQKFQmHXo9PT0hFKpNLuvvKfOKysrCwqFAv7+/tIY76fz2bt3L4KDg1G/fn288MILuHHjhtnzvKfOo3379vjmm29w5coVCCGQkJCAP//8E48++qh0zMiRI9G1a1fp8cGDB9G5c2d4eHhIYzExMTh37hwyMjKkY+51z8k6srKyAACBgYGyXsffUdfj0En3hg0bEBcXh5kzZ+LYsWN4+OGHERMTg7S0NADAxIkT8e2332LTpk3Yt28frl69iscff/ye5/z555/x5JNPYvTo0Th+/DgGDhyIgQMH4vTp09Ix8+fPx3//+18sX74chw4dgkajQUxMDPLz823687q669evw2AwICQkxGw8JCQEKSkp0uOlS5fCx8cHPj4+2LZtG3bu3Gn2fxx169ZF9erVpccpKSn3PKfpf8u7LslT3v28cOECAOCNN97AmDFjsH37drRo0QI9evQw+yNWZGQkwsLCpMdl3U+dToebN29a/Dki+cp7bx955BFoNBpMmTIFeXl5yM3NxaRJk2AwGJCcnCwdz3vqnPLz8zFlyhQ8+eSTZnuN8n46l169emHNmjXYvXs33n77bezbtw+9e/eGwWCQjuE9dR6LFy9Go0aNULNmTXh4eKBXr15YsmQJOnfuLB0TFhaGyMhI6XFZ99P03L2O4f20nv9v796Doqz+P4C/AVnAQSAEdgcRRCVFCc0LijqQQuBl8JImWmOApQ3uaogoZlxyLHUmRA01hgqYNNRs8kpDsy6ghVCjrU4okJKXSV28zOAFFJj2/P7gx3594qqxsuD7NePonufs5znPHp51P5yz5+j1esTExGDixInw8fF5qufyHu15enV1A9qSmpqKJUuWICoqCgCQnp6O3NxcZGZmIjo6Gl9//TVycnIwZcoU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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# heat demand results\n", - "res1_idx = res1[res1['name'] == 'heat_consumer'].index[0]\n", - "df_hd1 = res1.data_source.loc[res1_idx].df\n", - "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", - "print(df_hd1)\n", - "df_hd1.q_received_kw.plot(ax=axes[0], color='C2')\n", - "axes[0].set_ylabel('Demand received power (kW)')\n", - "axes[0].set_title('Part 1 (GenericMapping): Heat demand')\n", - "axes[0].grid(True, alpha=0.3)\n", - "df_hd1.q_uncovered_kw.plot(ax=axes[1], color='C3')\n", - "axes[1].set_ylabel('Uncovered demand (kW)')\n", - "axes[1].set_title('Uncovered demand')\n", - "axes[1].grid(True, alpha=0.3)\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "# Part 2: FluidMixMapping (uniform tank)\n", - "\n", - "Chain: **Const profile** → **Electric boiler** → **Heat storage (uniform tank)** → **Heat demand**.\n", - "\n", - "The electric boiler supplies the storage with fluid (temperature + mass flow); the storage is configured with `capacity_kg`, optional `init_temperature_c`, `min_temp_c`, `max_temp_c` for SOC from temperature." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.microsoft.datawrangler.viewer.v0+json": { - "columns": [ - { - "name": "index", - "rawType": "datetime64[ns, UTC]", - "type": "unknown" - }, - { - "name": "demand_power", - "rawType": "float64", - "type": "float" - }, - { - "name": "t_feed_demand_c", - "rawType": "float64", - "type": "float" - }, - { - "name": "t_return_demand_c", - "rawType": "float64", - "type": "float" - } - ], - "ref": "749c1397-fb1a-49f0-b1d1-beb417a5e8cd", - "rows": [ - [ - "2020-01-01 00:00:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 00:15:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 00:30:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 00:45:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 01:00:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 01:15:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 01:30:00+00:00", - "60.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 01:45:00+00:00", - "60.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 02:00:00+00:00", - "60.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 02:15:00+00:00", - "60.0", - "55.0", - "25.0" - ] - ], - "shape": { - "columns": 3, - "rows": 10 - } - }, - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
demand_powert_feed_demand_ct_return_demand_c
2020-01-01 00:00:00+00:000.055.025.0
2020-01-01 00:15:00+00:000.055.025.0
2020-01-01 00:30:00+00:000.055.025.0
2020-01-01 00:45:00+00:000.055.025.0
2020-01-01 01:00:00+00:000.055.025.0
2020-01-01 01:15:00+00:000.055.025.0
2020-01-01 01:30:00+00:0060.055.025.0
2020-01-01 01:45:00+00:0060.055.025.0
2020-01-01 02:00:00+00:0060.055.025.0
2020-01-01 02:15:00+00:0060.055.025.0
\n", - "
" - ], - "text/plain": [ - " demand_power t_feed_demand_c t_return_demand_c\n", - "2020-01-01 00:00:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 00:15:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 00:30:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 00:45:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 01:00:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 01:15:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 01:30:00+00:00 60.0 55.0 25.0\n", - "2020-01-01 01:45:00+00:00 60.0 55.0 25.0\n", - "2020-01-01 02:00:00+00:00 60.0 55.0 25.0\n", - "2020-01-01 02:15:00+00:00 60.0 55.0 25.0" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Part 2 input: demand power and feed/return temperatures for the heat demand (same time range as Part 1)\n", - "demand_kw2 = np.zeros(n_steps)\n", - "demand_kw2[6:10] = 60.0\n", - "demand_kw2[14:18] = 30.0\n", - "df2 = pd.DataFrame({\n", - " 'demand_power': demand_kw2,\n", - " 't_feed_demand_c': 55.0,\n", - " 't_return_demand_c': 25.0\n", - "}, index=dur)\n", - "profile2 = DFData(df2)\n", - "df2.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ + "name": "demand_power", + "rawType": "float64", + "type": "float" + }, { - "data": { - "text/plain": [ - "array([, , ], dtype=object)" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" + "name": "t_feed_demand_c", + "rawType": "float64", + "type": "float" }, { - "data": { - "image/png": "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PHhQzzzzjEPf5YwZMzRs2DB9++23uvPOOyVJWVlZWrFihVavXq3Vq1crPT1dc+bMqVR/U6dOVXp6ulauXKn//e9/SktL01dffWXXZsKECcrIyNCyZcv0zTff6C9/+YsGDx6sPXv22NoUFhbq2Wef1bJly5Samqq0tDQNGzZMa9as0Zo1a/Taa6/phRdesIU86eSM06xZs/T1119rxYoV2r9/vy3oneqhhx7SU089pS+//FI+Pj6285akt956SzNmzNDs2bP15ZdfKiYmRs8//3ylv8+FCxcqKSlJd911l7799lutWrVKLVq0qPTnq6rKD+i0Wq2aOHGievXqpfbt20uSfvjhB0knfzjmzp2rTp066dVXX9WAAQO0Y8cOtWzZ8rR+SkpKVFJSYntvsViqWhIAAECdUXSiSN2WdnPJsbeM2KIg3/M/JDQ0NFR+fn4KCgpSdHR0pft/7LHHdOWVV0o6+bvi7NmztW7dOvXo0UOS1KxZM3366ad64YUX1LdvX9s/skdGRiosLMzh8xkxYoRGjx5tt81qtSolJUUhISGSpNtvv13r16/XE088cc6+CgoK9PLLL+v111/XgAEDJElLlixR48aNbW2ys7O1ePFiZWdnKzY2VpI0ZcoUpaamavHixZo9e7akkyFl4cKFat68uSTppptu0muvvaZDhw4pODhYbdu21RVXXKGNGzfqlltukSS7gNKsWTM9++yz6tq1qwoKChQcHGzb98QTT6hv376STgbJa665RsXFxQoICND8+fM1ZswYjRkzRpL0+OOPa926dZWetXn88cd177336p///KdtW9euXSv12eqo8oxNUlKSduzYoWXLltm2Wa1WSdLf//53jR49WpdccomefvpptWrVSq+88soZ+0lOTlZoaKjtVZkUDwAAgAtXly5dbP9/7969Kiws1JVXXqng4GDb69VXX1VWVpbTj1chISHBFmokKSYmxu6SrrPJyspSaWmpunX7I3SGh4erVatWtvfffvutysvLddFFF9mdU3p6ut05BQUF2UKNJEVFRSkhIcEuoERFRdnVtXXrVg0ZMkTx8fEKCQmxhZfs7Gy7Ojt06GB3bpJs/ezatcuufkm2UHk+hw8fVk5Oji3U1aYqzdhMmDBBq1ev1scff2yXPiu+lLZt29q1b9OmzWlfZoVp06Zp8uTJtvcWi4VwAwAAcB6B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paXGddddZzRu3NjYvn273VLDp67yxDhU37nG4dixY8aUKVOMjIwMY9++fca6deuMzp07Gy1btrRbhp5xqJ5zjYFhGEbfvn2Ndu3aGRs3bjR++OEHY/HixUZAQIDx/PPP2/p44IEHjNtvv932Pi8vz4iKijJuv/12Y8eOHcayZcuMoKCg05Z7Pt/f43XJ+PHjjdDQUCMtLc3uvzmFhYW2NgcPHjS2bdtmvPTSS4Yk4+OPPza2bdtmHDlyxNaGPw/uxanLPV922WXGhAkTbO/Ly8uNRo0aGcnJyUZeXp7h6+trvPPOO7b9u3fvNiQZGRkZZ+3z5ptvNq699lq7bT169DhtmeG5c+fa9ufn59fpZYYNwzCee+45Iz4+3vDz8zMuu+wyY/PmzYZhGMbPP/9sXHXVVUZkZKTh6+trNG7c2BgxYoSxe/duu883adLEmD59ut22t956y7jooosMPz8/o127dmdddjsqKsrw9/c3BgwYYGRmZtboebq7s41DheTkZKNx48ZGUFCQ0aNHD+OTTz6x29+3b19j5MiRdts2btxodOrUyfDz8zOaNWtmLF682OHj1jXn+j7uv/9+IyoqyvD19TVatmxpPPXUU4bVarX7PONQfRXLpf75NXLkSGPfvn1n3CfJ2Lhxo60PxqH6zjUOhYWFxqBBg4yIiAjD19fXaNKkiTF27NjTftliHKrnXGNgGCd/mR41apQRGxtrBAQEGK1atTrtv0sjR440+vbta9fv119/bVx++eWGv7+/0ahRI2POnDmnHft8f4/XJWf7b86pP7vTp08/bxv+PLgXk2EYhrNmf958802NHDlSL7zwgi677DLNnz9fb731lnbv3q2oqCiNHz9ea9asUUpKisxms+6++25JJ5d0rjBgwAANGzbMdjnaZ599pr59+2rOnDm65pprtGzZMs2ePVtfffWVbeWKJ598UnPmzNGSJUvUtGlTPfLII/rmm2+0c+dO283wAAAAAC5cTls8QJJuueUW/fLLL3r00UeVm5urTp06KTU11XZj/9NPPy0vLy/deOONKikpUWJiop5//nm7Pipu4q3Qs2dPLV26VA8//LAefPBBtWzZUitWrLBbju++++7T8ePHdddddykvL0+XX365UlNTCTUAAABAHeHUGRsAAAAAcAW3WxUNAAAAABxFsAEAAADg8Qg2AAAAADwewQYAAACAxyPYAAAAAPB4Tgs2CxYsUEJCggICAtStWzd9/vnntn0vvvii+vXrJ7PZLJPJpLy8vEr1mZKSorCwMGeVCAAAAOAC5ZRg8+abb2ry5MmaPn26vvrqK3Xs2FGJiYk6fPiwJKmwsFCDBw/Wgw8+6IzDAQAAAIAdpwSbefPmaezYsRo9erTatm2rRYsWKSgoSK+88ookaeLEiXrggQfUvXv3ah0nKytL119/vaKiohQcHKyuXbtq3bp1dm0SEhI0e/Zs3XnnnQoJCVF8fLxefPHFah0XAAAAgHurdrApLS3V1q1bNXDgwD869fLSwIEDlZGRUd3u7RQUFOjqq6/W+vXrtW3bNg0ePFhDhgxRdna2XbunnnpKXbp00bZt2/SPf/xD48ePV2ZmplNrAQAAAOA+qh1sfv31V5WXlysqKspue1RUlHJzc6vbvZ2OHTvq73//u9q3b6+WLVtq1qxZat68uVatWmXX7uqrr9Y//vEPtWjRQvfff78aNmyojRs3OrUWAAAAAO7DLVZFu+qqqxQcHKzg4GC1a9furO0KCgo0ZcoUtWnTRmFhYQoODtauXbtOm7Hp0KGD7f+bTCZFR0fb7vcBAAAAcOHxqW4HDRs2lLe3tw4dOmS3/dChQ4qOjq5UH//3f/+noqIiSZKvr+9Z202ZMkVr167V3Llz1aJFCwUGBuqmm25SaWmpXbs/92EymWS1WitVCwAAAADPU+1g4+fnp0svvVTr16/X0KFDJUlWq1Xr16/XhAkTKtVHo0aNKtVu06ZNGjVqlIYNGybp5AzO/v37q1I2AAAAgAtItYONJE2ePFkjR45Uly5ddNlll2n+/Pk6fvy4Ro8eLUnKzc1Vbm6u9u7dK0n69ttvbSuWhYeHV/o4LVu21HvvvachQ4bIZDLpkUceYSYGAAAAgHOCzS233KJffvlFjz76qHJzc9WpUyelpqbaFhRYtGiRZs6caWvfp08fSdLixYs1atSos/ZrtVrl4/NHifPmzdOdd96pnj17qmHDhrr//vtlsViccQoAAAAAPJjJMAzD1UWczZw5c/T6669rx44dri4FAAAAgBtzyoyNsxUWFmr37t1avHixrrrqKleXAwAAAMDNucVyz3/24osvauDAgerYsaMeffRRV5cDAAAAwM259aVoAAAAAFAZbjljAwAAAACOINgAAAAA8Hg1EmySk5PVtWtXhYSEKDIyUkOHDlVmZqZdm+LiYiUlJalBgwYKDg7WjTfeqEOHDtn2f/311xo+fLji4uIUGBioNm3a6JlnnjntWGlpaercubP8/f3VokULpaSk1MQpAQAAAHBjNRJs0tPTlZSUpM2bN2vt2rUqKyvToEGDdPz4cVubSZMm6f3339fbb7+t9PR05eTk6IYbbrDt37p1qyIjI/X666/ru+++00MPPaRp06bpP//5j63Nvn37dM011+iKK67Q9u3bNXHiRP3tb3/TRx99VBOnBQAAAMBN1criAb/88osiIyOVnp6uPn36KD8/XxEREVq6dKluuukmSdLu3bvVpk0bZWRkqHv37mfsJykpSbt27dKGDRskSffff78++OADu+fc3HrrrcrLy1NqampNnxYAAAAAN1Er99jk5+dLksLDwyWdnI0pKyvTwIEDbW1at26t+Ph4ZWRknLOfij4kKSMjw64PSUpMTDxnHwAAAAAuPDX+gE6r1aqJEyeqV69eat++vSQpNzdXfn5+CgsLs2sbFRWl3NzcM/bz2Wef6c0339QHH3xg25abm6uoqKjT+rBYLCoqKlJgYKBzTwYAAACAW6rxYJOUlKQdO3bo008/rXIfO3bs0PXXX6/p06dr0KBBTqwOAAAAwIWgRi9FmzBhglavXq2NGzeqcePGtu3R0dEqLS1VXl6eXftDhw4pOjrabtvOnTs1YMAA3XXXXXr44Yft9kVHR9utpFbRh9lsZrYGAAAAqENqJNgYhqEJEyZo+fLl2rBhg5o2bWq3/9JLL5Wvr6/Wr19v25aZmans7Gz16NHDtu27777TFVdcoZEjR+qJJ5447Tg9evSw60OS1q5da9cHAAAAgAtfjayK9o9//ENLly7VypUr1apVK9v20NBQ20zK+PHjtWbNGqWkpMhsNuvuu++WdPJeGunk5Wf9+/dXYmKi/v3vf9v68Pb2VkREhKSTyz23b99eSUlJuvPOO7Vhwwbdc889+uCDD5SYmOjs0wIAAADgpmok2JhMpjNuX7x4sUaNGiXp5AM67733Xv33v/9VSUmJEhMT9fzzz9suRZsxY4Zmzpx5Wh9NmjTR/v37be/T0tI0adIk7dy5U40bN9YjjzxiOwYAAACAuqFWnmMDAAAAADWpVp5jAwAAAAA1iWADAAAAwOMRbAAAAAB4PIINAAAAAI9HsAEAAADg8Qg2AAAAADwewQYAAACAxyPYAAAAAPB4BBsAAAAAHo9gAwAAAMDjEWwAAAAAeDyCDQAAAACP9//TlIv53ZIhYgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "t_return_demand_c", + "rawType": "float64", + "type": "float" } + ], + "ref": "749c1397-fb1a-49f0-b1d1-beb417a5e8cd", + "rows": [ + [ + "2020-01-01 00:00:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 00:15:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 00:30:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 00:45:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:00:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:15:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:30:00+00:00", + "60.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:45:00+00:00", + "60.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 02:00:00+00:00", + "60.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 02:15:00+00:00", + "60.0", + "55.0", + "25.0" + ] + ], + "shape": { + "columns": 3, + "rows": 10 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
demand_powert_feed_demand_ct_return_demand_c
2020-01-01 00:00:00+00:000.055.025.0
2020-01-01 00:15:00+00:000.055.025.0
2020-01-01 00:30:00+00:000.055.025.0
2020-01-01 00:45:00+00:000.055.025.0
2020-01-01 01:00:00+00:000.055.025.0
2020-01-01 01:15:00+00:000.055.025.0
2020-01-01 01:30:00+00:0060.055.025.0
2020-01-01 01:45:00+00:0060.055.025.0
2020-01-01 02:00:00+00:0060.055.025.0
2020-01-01 02:15:00+00:0060.055.025.0
\n", + "
" ], - "source": [ - "df2.plot(subplots=True, figsize=(10, 6))" + "text/plain": [ + " demand_power t_feed_demand_c t_return_demand_c\n", + "2020-01-01 00:00:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 00:15:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 00:30:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 00:45:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 01:00:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 01:15:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 01:30:00+00:00 60.0 55.0 25.0\n", + "2020-01-01 01:45:00+00:00 60.0 55.0 25.0\n", + "2020-01-01 02:00:00+00:00 60.0 55.0 25.0\n", + "2020-01-01 02:15:00+00:00 60.0 55.0 25.0" ] - }, + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Part 2 input: demand power and feed/return temperatures for the heat demand (same time range as Part 1)\n", + "demand_kw2 = np.zeros(n_steps)\n", + "demand_kw2[6:10] = 60.0\n", + "demand_kw2[14:18] = 30.0\n", + "df2 = pd.DataFrame({\n", + " 'demand_power': demand_kw2,\n", + " 't_feed_demand_c': 55.0,\n", + " 't_return_demand_c': 25.0\n", + "}, index=dur)\n", + "profile2 = DFData(df2)\n", + "df2.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from pandaprosumer.create_controlled import create_controlled_electric_boiler\n", - "\n", - "prosumer2 = create_empty_prosumer_container()\n", - "period_id2 = create_period(prosumer2, time_resolution_s, start, end, 'utc', 'default')\n", - "\n", - "cp_input2 = ['demand_power', 't_feed_demand_c', 't_return_demand_c']\n", - "cp_result2 = ['qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", - "cp_idx2 = create_controlled_const_profile(prosumer2, cp_input2, cp_result2, profile2, period_id2, 0, 0)\n", - "\n", - "eb_max_p_kw = 150.0\n", - "eb_idx = create_controlled_electric_boiler(prosumer2, max_p_kw=eb_max_p_kw, name='electric_boiler',\n", - " period=period_id2, level=1, order=0)\n", - "\n", - "capacity_kg = 2000.0\n", - "init_t = 45.0\n", - "min_t, max_t = 30.0, 70.0\n", - "hs_idx2 = create_controlled_heat_storage(prosumer2, q_capacity_kwh=50.0, name='tank_fluid_mix',\n", - " capacity_kg=capacity_kg, init_temperature_c=init_t,\n", - " init_temperature=init_t, min_temp_c=min_t, max_temp_c=max_t,\n", - " period=period_id2, level=1, order=1)\n", - "hd_idx2 = create_controlled_heat_demand(prosumer2, period=period_id2, level=1, order=2, name='heat_consumer')" + "data": { + "text/plain": [ + "array([, , ], dtype=object)" ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from pandaprosumer.mapping import GenericMapping, FluidMixMapping\n", - "\n", - "GenericMapping(prosumer2, initiator_id=cp_idx2,\n", - " initiator_column=['qdemand_kw', 't_feed_demand_c', 't_return_demand_c'],\n", - " responder_id=hd_idx2, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=0)\n", - "FluidMixMapping(prosumer2, initiator_id=eb_idx, responder_id=hs_idx2, order=0)\n", - "FluidMixMapping(prosumer2, initiator_id=hs_idx2, responder_id=hd_idx2, order=0)" + "data": { + "image/png": "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PHhQzzzzjEPf5YwZMzRs2DB9++23uvPOOyVJWVlZWrFihVavXq3Vq1crPT1dc+bMqVR/U6dOVXp6ulauXKn//e9/SktL01dffWXXZsKECcrIyNCyZcv0zTff6C9/+YsGDx6sPXv22NoUFhbq2Wef1bJly5Samqq0tDQNGzZMa9as0Zo1a/Taa6/phRdesIU86eSM06xZs/T1119rxYoV2r9/vy3oneqhhx7SU089pS+//FI+Pj6285akt956SzNmzNDs2bP15ZdfKiYmRs8//3ylv8+FCxcqKSlJd911l7799lutWrVKLVq0qPTnq6rKD+i0Wq2aOHGievXqpfbt20uSfvjhB0knfzjmzp2rTp066dVXX9WAAQO0Y8cOtWzZ8rR+SkpKVFJSYntvsViqWhIAAECdUXSiSN2WdnPJsbeM2KIg3/M/JDQ0NFR+fn4KCgpSdHR0pft/7LHHdOWVV0o6+bvi7NmztW7dOvXo0UOS1KxZM3366ad64YUX1LdvX9s/skdGRiosLMzh8xkxYoRGjx5tt81qtSolJUUhISGSpNtvv13r16/XE088cc6+CgoK9PLLL+v111/XgAEDJElLlixR48aNbW2ys7O1ePFiZWdnKzY2VpI0ZcoUpaamavHixZo9e7akkyFl4cKFat68uSTppptu0muvvaZDhw4pODhYbdu21RVXXKGNGzfqlltukSS7gNKsWTM9++yz6tq1qwoKChQcHGzb98QTT6hv376STgbJa665RsXFxQoICND8+fM1ZswYjRkzRpL0+OOPa926dZWetXn88cd177336p///KdtW9euXSv12eqo8oxNUlKSduzYoWXLltm2Wa1WSdLf//53jR49WpdccomefvpptWrVSq+88soZ+0lOTlZoaKjtVZkUDwAAgAtXly5dbP9/7969Kiws1JVXXqng4GDb69VXX1VWVpbTj1chISHBFmokKSYmxu6SrrPJyspSaWmpunX7I3SGh4erVatWtvfffvutysvLddFFF9mdU3p6ut05BQUF2UKNJEVFRSkhIcEuoERFRdnVtXXrVg0ZMkTx8fEKCQmxhZfs7Gy7Ojt06GB3bpJs/ezatcuufkm2UHk+hw8fVk5Oji3U1aYqzdhMmDBBq1ev1scff2yXPiu+lLZt29q1b9OmzWlfZoVp06Zp8uTJtvcWi4VwAwAAcB6B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paXGddddZzRu3NjYvn273VLDp67yxDhU37nG4dixY8aUKVOMjIwMY9++fca6deuMzp07Gy1btrRbhp5xqJ5zjYFhGEbfvn2Ndu3aGRs3bjR++OEHY/HixUZAQIDx/PPP2/p44IEHjNtvv932Pi8vz4iKijJuv/12Y8eOHcayZcuMoKCg05Z7Pt/f43XJ+PHjjdDQUCMtLc3uvzmFhYW2NgcPHjS2bdtmvPTSS4Yk4+OPPza2bdtmHDlyxNaGPw/uxanLPV922WXGhAkTbO/Ly8uNRo0aGcnJyUZeXp7h6+trvPPOO7b9u3fvNiQZGRkZZ+3z5ptvNq699lq7bT169DhtmeG5c+fa9ufn59fpZYYNwzCee+45Iz4+3vDz8zMuu+wyY/PmzYZhGMbPP/9sXHXVVUZkZKTh6+trNG7c2BgxYoSxe/duu883adLEmD59ut22t956y7jooosMPz8/o127dmdddjsqKsrw9/c3BgwYYGRmZtboebq7s41DheTkZKNx48ZGUFCQ0aNHD+OTTz6x29+3b19j5MiRdts2btxodOrUyfDz8zOaNWtmLF682OHj1jXn+j7uv/9+IyoqyvD19TVatmxpPPXUU4bVarX7PONQfRXLpf75NXLkSGPfvn1n3CfJ2Lhxo60PxqH6zjUOhYWFxqBBg4yIiAjD19fXaNKkiTF27NjTftliHKrnXGNgGCd/mR41apQRGxtrBAQEGK1atTrtv0sjR440+vbta9fv119/bVx++eWGv7+/0ahRI2POnDmnHft8f4/XJWf7b86pP7vTp08/bxv+PLgXk2EYhrNmf958802NHDlSL7zwgi677DLNnz9fb731lnbv3q2oqCiNHz9ea9asUUpKisxms+6++25JJ5d0rjBgwAANGzbMdjnaZ599pr59+2rOnDm65pprtGzZMs2ePVtfffWVbeWKJ598UnPmzNGSJUvUtGlTPfLII/rmm2+0c+dO283wAAAAAC5cTls8QJJuueUW/fLLL3r00UeVm5urTp06KTU11XZj/9NPPy0vLy/deOONKikpUWJiop5//nm7Pipu4q3Qs2dPLV26VA8//LAefPBBtWzZUitWrLBbju++++7T8ePHdddddykvL0+XX365UlNTCTUAAABAHeHUGRsAAAAAcAW3WxUNAAAAABxFsAEAAADg8Qg2AAAAADwewQYA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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df2.plot(subplots=True, figsize=(10, 6))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pandaprosumer.create_controlled import create_controlled_electric_boiler\n", + "\n", + "prosumer2 = create_empty_prosumer_container()\n", + "period_id2 = create_period(prosumer2, time_resolution_s, start, end, 'utc', 'default')\n", + "\n", + "cp_input2 = ['demand_power', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_result2 = ['qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_idx2 = create_controlled_const_profile(prosumer2, cp_input2, cp_result2, profile2, period_id2, 0, 0)\n", + "\n", + "eb_max_p_kw = 150.0\n", + "eb_idx = create_controlled_electric_boiler(prosumer2, max_p_kw=eb_max_p_kw, name='electric_boiler',\n", + " period=period_id2, level=1, order=0)\n", + "\n", + "capacity_kg = 2000.0\n", + "init_t = 45.0\n", + "min_t, max_t = 30.0, 70.0\n", + "hs_idx2 = create_controlled_heat_storage(prosumer2, q_capacity_kwh=50.0, name='tank_fluid_mix',\n", + " capacity_kg=capacity_kg, init_temperature_c=init_t,\n", + " min_temp_c=min_t, max_temp_c=max_t,\n", + " period=period_id2, level=1, order=1)\n", + "hd_idx2 = create_controlled_heat_demand(prosumer2, period=period_id2, level=1, order=2, name='heat_consumer')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "run_timeseries(prosumer2, period_id2, verbose=False, max_iter=15, continue_on_divergence=True)" + "data": { + "text/plain": [ + "" ] - }, + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from pandaprosumer.mapping import GenericMapping, FluidMixMapping\n", + "\n", + "GenericMapping(prosumer2, initiator_id=cp_idx2,\n", + " initiator_column=['qdemand_kw', 't_feed_demand_c', 't_return_demand_c'],\n", + " responder_id=hd_idx2, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=0)\n", + "FluidMixMapping(prosumer2, initiator_id=eb_idx, responder_id=hs_idx2, order=0)\n", + "FluidMixMapping(prosumer2, initiator_id=hs_idx2, responder_id=hd_idx2, order=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "run_timeseries(prosumer2, period_id2, verbose=False, max_iter=15, continue_on_divergence=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "res2 = prosumer2.time_series.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "res2 = prosumer2.time_series.copy()" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Electric boiler results\n", + "res2_idx = res2[res2['name'] == 'electric_boiler'].index[0]\n", + "df_eb2 = res2.data_source.loc[res2_idx].df\n", + "fig, ax = plt.subplots(figsize=(10, 3))\n", + "df_eb2.p_kw.plot(ax=ax, color='C4')\n", + "ax.set_ylabel('Electric boiler power (kW)')\n", + "ax.set_title('Electric boiler power')\n", + "ax.grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Electric boiler results\n", - "res2_idx = res2[res2['name'] == 'electric_boiler'].index[0]\n", - "df_eb2 = res2.data_source.loc[res2_idx].df\n", - "fig, ax = plt.subplots(figsize=(10, 3))\n", - "df_eb2.p_kw.plot(ax=ax, color='C4')\n", - "ax.set_ylabel('Electric boiler power (kW)')\n", - "ax.set_title('Electric boiler power')\n", - "ax.grid(True, alpha=0.3)\n", - "plt.tight_layout()\n", - "plt.show()" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "res2_idx = res2[res2['name'] == 'tank_fluid_mix'].index[0]\n", + "df_hs2 = res2.data_source.loc[res2_idx].df\n", + "\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "df_hs2.soc.plot(ax=axes[0], color='C0')\n", + "axes[0].set_ylabel('SOC (-)')\n", + "axes[0].set_title('Part 2 (FluidMixMapping): Heat storage SOC (from tank temperature)')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hs2.q_delivered_kw.plot(ax=axes[1], color='C1')\n", + "axes[1].set_ylabel('Power (kW)')\n", + "axes[1].set_title('Delivered power')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "res2_idx = res2[res2['name'] == 'tank_fluid_mix'].index[0]\n", - "df_hs2 = res2.data_source.loc[res2_idx].df\n", - "\n", - "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", - "df_hs2.soc.plot(ax=axes[0], color='C0')\n", - "axes[0].set_ylabel('SOC (-)')\n", - "axes[0].set_title('Part 2 (FluidMixMapping): Heat storage SOC (from tank temperature)')\n", - "axes[0].grid(True, alpha=0.3)\n", - "df_hs2.q_delivered_kw.plot(ax=axes[1], color='C1')\n", - "axes[1].set_ylabel('Power (kW)')\n", - "axes[1].set_title('Delivered power')\n", - "axes[1].grid(True, alpha=0.3)\n", - "plt.tight_layout()\n", - "plt.show()" + "data": { + "text/plain": [ + "" ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAG9CAYAAADp61eNAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOXFJREFUeJzt3Xl8lNXd///3JGQDTGIgC4GEXRZBUrYQF6AkJSwCEayYUlmkYBWwGLSsgtjWWAVBBURqxdtbUYrfioqYNoZViKABqexKERSYBMUkEiCE5Pz+4MfcjmRFhpDD6/l4zEPnXOc61/lMYubttTqMMUYAAACW8KruCQAAAFxOhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKvUqu4JVIeSkhIdPXpU1113nRwOR3VPBwAAVIIxRj/88IMiIyPl5VX2/plrMtwcPXpUUVFR1T0NAABwCb7++ms1atSozOXXZLi57rrrJJ3/cAIDA6t5NgAAoDLy8/MVFRXl+h4vyzUZbi4cigoMDCTcAABQw1R0SgknFAMAAKsQbgAAgFUINwAAwCrX5Dk3AICqKy4uVlFRUXVPAxbz8fGRt7f3zx6HcAMAKJcxRk6nU7m5udU9FVwDgoODFRER8bPuQ0e4AQCU60KwCQsLU+3atbn5KTzCGKNTp04pJydHktSgQYNLHotwAwAoU3FxsSvY1KtXr7qnA8sFBARIknJychQWFnbJh6g4oRgAUKYL59jUrl27mmeCa8WF37Wfc34X4QYAUCEOReFKuRy/a4QbAABgFcINAACwCuEGAABYhXADAACsQrgBAFjprbfeUvv27RUQEKB69eopISFBBQUFKikp0eOPP65GjRrJz89PMTExSktLc1v3m2++UXJyskJCQlSnTh117txZW7ZsqaZKUFXc5wYAUGnGGJ0uKq6WbQf4eFf6Sppjx44pOTlZTz31lO644w798MMP2rhxo4wxevbZZzV37ly9+OKL+sUvfqGXX35ZAwcO1K5du9SyZUudPHlSPXr0UMOGDfXuu+8qIiJC27ZtU0lJiYcrxOVCuAEAVNrpomK1nfmvatn27scTVdu3cl9bx44d07lz5zR48GA1btxYktS+fXtJ0pw5czR58mTdfffdkqS//vWvWrt2rebPn6+FCxdq2bJlOn78uD755BOFhIRIklq0aOGBiuApHJYCAFinQ4cOio+PV/v27fXrX/9af/vb3/T9998rPz9fR48e1S233OLW/5ZbbtGePXskSZ999pl+8YtfuIINah723AAAKi3Ax1u7H0+stm1Xlre3t9LT07V582b9+9//1vPPP6/p06crPT294u38/48AQM1FuAEAVJrD4aj0oaHq5nA4dMstt+iWW27RzJkz1bhxY2VkZCgyMlKbNm1Sjx49XH03bdqkrl27SpJuuukmvfTSSzpx4gR7b2qomvEbCgBAFWzZskUZGRnq3bu3wsLCtGXLFh0/flxt2rTRI488olmzZql58+aKiYnR0qVL9dlnn+n111+XJCUnJ+uJJ55QUlKSUlNT1aBBA23fvl2RkZGKi4ur5spQGYQbAIB1AgMDtWHDBs2fP1/5+flq3Lix5s6dq759+yoxMVF5eXmaNGmScnJy1LZtW7377rtq2bKlJMnX11f//ve/NWnSJPXr10/nzp1T27ZttXDhwmquCpXlMMaY6p7ElZafn6+goCDl5eUpMDCwuqcDAFetM2fO6ODBg2ratKn8/f2rezq4BpT3O1fZ72+ulgIAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACohCZNmmj+/PmV7v/YY48pJibG9X7kyJFKSkq67PO6XBwOh1auXFlhv6+++koOh0OfffaZx+d0qXhwJgAAV8Czzz6ra/BxjtWCcAMAwBUQFBTk8W0UFRXJx8fH49u52nFYCgBQecZIZwuq51XFvR4FBQUaPny46tatqwYNGmju3Lnq2bOnJk6cWOG6OTk5GjBggAICAtS0aVO9/vrrF/XJzc3V7373O4WGhiowMFC9evXSjh07yhzzx4ellixZosjISJWUlLj1GTRokO69917X+3feeUcdO3aUv7+/mjVrptmzZ+vcuXOu5Q6HQy+88IIGDhyoOnXq6C9/+Uul1vviiy/UvXt3+fv7q23btkpPT6/wMylLcXGx7r33XrVu3VqHDx/Www8/rNtvv921fP78+XI4HEpLS3O1tWjRQi+99NIlb7Mi7LkBAFRe0Snpicjq2fa0o5JvnUp3f+SRR7R+/Xq98847CgsL07Rp07Rt2za382DKMnLkSB09elRr166Vj4+PHnzwQeXk5Lj1+fWvf62AgAB98MEH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Cl6/fn15e3srOzvbrT07O1sRERGVGuOll17S6dOnJUk+Pj5l9nv44YeVnp6uOXPmqEWLFgoICNCdd96ps2fPuvX76RgOh0MlJSWVmgsAAPCcGhFufH191alTJ2VkZCgpKUmSVFJSooyMDI0fP75SYzRs2LBS/TZt2qSRI0fqjjvukHR+T85XX311KdMGAADVoEaEG0lKSUnRiBEj1LlzZ3Xt2lXz589XQUGBRo0aJUlyOp1yOp368ssvJUmff/6560qmkJCQSm+nZcuW+uc//6kBAwbI4XDo0UcfZY8MAAA1SI0JN0OHDtXx48c1c+ZMOZ1OxcTEKC0tzXWS8eLFizV79mxX/+7du0uSli5dqpEjR5Y5bklJiWrV+r+P4ZlnntG9996rm2++WfXr19fkyZOVn5/vmaIAAMBl5zDGmOqeRHV68skn9dprr2nnzp3VPRUAAHAZ1Jg9N5fbqVOntHfvXi1dulR9+/at7ukAAIDL5Jq5FPynlixZooSEBHXo0EEzZ86s7ukAAIDL5Jo/LAUAAOxyze65AQAAdiLcAAAAq9TIcJOamqouXbrouuuuU1hYmJKSki56aOWZM2c0btw41atXT3Xr1tWQIUPc7nC8Y8cOJScnKyoqSgEBAWrTpo2effbZi7a1bt06dezYUX5+fmrRooVeeeUVT5cHAAB+hhoZbtavX69x48bp448/Vnp6uoqKitS7d28VFBS4+jz00EN67733tGLFCq1fv15Hjx7V4MGDXcuzsrIUFham1157Tbt27dL06dM1depULViwwNXn4MGD6t+/v375y1/qs88+08SJE/W73/1O//rXv65ovQAAoPKsOKH4+PHjCgsL0/r169W9e3fl5eUpNDRUy5Yt05133ilJ2rt3r9q0aaPMzEx169at1HHGjRunPXv2aM2aNZKkyZMn6/3333e7B87dd9+t3NxcpaWleb4wAABQZTVyz81P5eXlSZLrMQtZWVkqKipSQkKCq0/r1q0VHR2tzMzMcsf58aMaMjMz3caQpMTExHLHAAAA1avG38SvpKREEydO1C233KJ27dpJOv+cKV9fXwUHB7v1DQ8Pl9PpLHWczZs3a/ny5Xr//fddbU6n0/V4hx+PkZ+fr9OnTysgIODyFgMAAH62Gh9uxo0bp507d+qjjz665DF27typQYMGadasWerdu/dlnB0AALjSavRhqfHjx2vVqlVau3atGjVq5GqPiIjQ2bNnlZub69Y/OztbERERbm27d+9WfHy8xo4dqxkzZrgti4iIcLvC6sIYgYGB7LUBAOAqVSPDjTFG48eP19tvv601a9aoadOmbss7deokHx8fZWRkuNr27dunw4cPKy4uztW2a9cu/fKXv9SIESP0l7/85aLtxMXFuY0hSenp6W5jAACAq0uNvFrqgQce0LJly/TOO++oVatWrvagoCDXHpX7779fq1ev1iuvvKLAwEBNmDBB0vlza6Tzh6J69eqlxMREPf30064xvL29FRoaKun8peDt2rXTuHHjdO+992rNmjV68MEH9f777ysxMfFKlQsAAKqgRoYbh8NRavvSpUs1cuRISedv4jdp0iS98cYbKiwsVGJiohYtWuQ6LPXYY49p9uzZF43RuHFjffXVV67369at00MPPaTdu3erUaNGevTRR13bAAAAV58aGW4AAADKUiPPuQEAACgL4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArPL/AXrJYj43/0ivAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df_hs2.plot()" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAG9CAYAAADp61eNAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOXFJREFUeJzt3Xl8lNXd///3JGQDTGIgC4GEXRZBUrYQF6AkJSwCEayYUlmkYBWwGLSsgtjWWAVBBURqxdtbUYrfioqYNoZViKABqexKERSYBMUkEiCE5Pz+4MfcjmRFhpDD6/l4zEPnXOc61/lMYubttTqMMUYAAACW8KruCQAAAFxOhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKvUqu4JVIeSkhIdPXpU1113nRwOR3VPBwAAVIIxRj/88IMiIyPl5VX2/plrMtwcPXpUUVFR1T0NAABwCb7++ms1atSozOXXZLi57rrrJJ3/cAIDA6t5NgAAoDLy8/MVFRXl+h4vyzUZbi4cigoMDCTcAABQw1R0SgknFAMAAKsQbgAAgFUINwAAwCrX5Dk3AICqKy4uVlFRUXVPAxbz8fGRt7f3zx6HcAMAKJcxRk6nU7m5udU9FVwDgoODFRER8bPuQ0e4AQCU60KwCQsLU+3atbn5KTzCGKNTp04pJydHktSgQYNLHotwAwAoU3FxsSvY1KtXr7qnA8sFBARIknJychQWFnbJh6g4oRgAUKYL59jUrl27mmeCa8WF37Wfc34X4QYAUCEOReFKuRy/a4QbAABgFcINAACwCuEGAABYhXADAACsQrgBAFjprbfeUvv27RUQEKB69eopISFBBQUFKikp0eOPP65GjRrJz89PMTExSktLc1v3m2++UXJyskJCQlSnTh117txZW7ZsqaZKUFXc5wYAUGnGGJ0uKq6WbQf4eFf6Sppjx44pOTlZTz31lO644w798MMP2rhxo4wxevbZZzV37ly9+OKL+sUvfqGXX35ZAwcO1K5du9SyZUudPHlSPXr0UMOGDfXuu+8qIiJC27ZtU0lJiYcrxOVCuAEAVNrpomK1nfmvatn27scTVdu3cl9bx44d07lz5zR48GA1btxYktS+fXtJ0pw5czR58mTdfffdkqS//vWvWrt2rebPn6+FCxdq2bJlOn78uD755BOFhIRIklq0aOGBiuApHJYCAFinQ4cOio+PV/v27fXrX/9af/vb3/T9998rPz9fR48e1S233OLW/5ZbbtGePXskSZ999pl+8YtfuIINah723AAAKi3Ax1u7H0+stm1Xlre3t9LT07V582b9+9//1vPPP6/p06crPT294u38/48AQM1FuAEAVJrD4aj0oaHq5nA4dMstt+iWW27RzJkz1bhxY2VkZCgyMlKbNm1Sjx49XH03bdqkrl27SpJuuukmvfTSSzpx4gR7b2qomvEbCgBAFWzZskUZGRnq3bu3wsLCtGXLFh0/flxt2rTRI488olmzZql58+aKiYnR0qVL9dlnn+n111+XJCUnJ+uJJ55QUlKSUlNT1aBBA23fvl2RkZGKi4ur5spQGYQbAIB1AgMDtWHDBs2fP1/5+flq3Lix5s6dq759+yoxMVF5eXmaNGmScnJy1LZtW7377rtq2bKlJMnX11f//ve/NWnSJPXr10/nzp1T27ZttXDhwmquCpXlMMaY6p7ElZafn6+goCDl5eUpMDCwuqcDAFetM2fO6ODBg2ratKn8/f2rezq4BpT3O1fZ72+ulgIAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACohCZNmmj+/PmV7v/YY48pJibG9X7kyJFKSkq67PO6XBwOh1auXFlhv6+++koOh0OfffaZx+d0qXhwJgAAV8Czzz6ra/BxjtWCcAMAwBUQFBTk8W0UFRXJx8fH49u52nFYCgBQecZIZwuq51XFvR4FBQUaPny46tatqwYNGmju3Lnq2bOnJk6cWOG6OTk5GjBggAICAtS0aVO9/vrrF/XJzc3V7373O4WGhiowMFC9evXSjh07yhzzx4ellixZosjISJWUlLj1GTRokO69917X+3feeUcdO3aUv7+/mjVrptmzZ+vcuXOu5Q6HQy+88IIGDhyoOnXq6C9/+Uul1vviiy/UvXt3+fv7q23btkpPT6/wMylLcXGx7r33XrVu3VqHDx/Www8/rNtvv921fP78+XI4HEpLS3O1tWjRQi+99NIlb7Mi7LkBAFRe0Snpicjq2fa0o5JvnUp3f+SRR7R+/Xq98847CgsL07Rp07Rt2za382DKMnLkSB09elRr166Vj4+PHnzwQeXk5Lj1+fWvf62AgAB98MEH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Cl6/fn15e3srOzvbrT07O1sRERGVGuOll17S6dOnJUk+Pj5l9nv44YeVnp6uOXPmqEWLFgoICNCdd96ps2fPuvX76RgOh0MlJSWVmgsAAPCcGhFufH191alTJ2VkZCgpKUmSVFJSooyMDI0fP75SYzRs2LBS/TZt2qSRI0fqjjvukHR+T85XX311KdMGAADVoEaEG0lKSUnRiBEj1LlzZ3Xt2lXz589XQUGBRo0aJUlyOp1yOp368ssvJUmff/6560qmkJCQSm+nZcuW+uc//6kBAwbI4XDo0UcfZY8MAAA1SI0JN0OHDtXx48c1c+ZMOZ1OxcTEKC0tzXWS8eLFizV79mxX/+7du0uSli5dqpEjR5Y5bklJiWrV+r+P4ZlnntG9996rm2++WfXr19fkyZOVn5/vmaIAAMBl5zDGmOqeRHV68skn9dprr2nnzp3VPRUAAHAZ1Jg9N5fbqVOntHfvXi1dulR9+/at7ukAAIDL5Jq5FPynlixZooSEBHXo0EEzZ86s7ukAAIDL5Jo/LAUAAOxyze65AQAAdiLcAAAAq9TIcJOamqouXbrouuuuU1hYmJKSki56aOWZM2c0btw41atXT3Xr1tWQIUPc7nC8Y8cOJScnKyoqSgEBAWrTpo2effbZi7a1bt06dezYUX5+fmrRooVeeeUVT5cHAAB+hhoZbtavX69x48bp448/Vnp6uoqKitS7d28VFBS4+jz00EN67733tGLFCq1fv15Hjx7V4MGDXcuzsrIUFham1157Tbt27dL06dM1depULViwwNXn4MGD6t+/v375y1/qs88+08SJE/W73/1O//rXv65ovQAAoPKsOKH4+PHjCgsL0/r169W9e3fl5eUpNDRUy5Yt05133ilJ2rt3r9q0aaPMzEx169at1HHGjRunPXv2aM2aNZKkyZMn6/3333e7B87dd9+t3NxcpaWleb4wAABQZTVyz81P5eXlSZLrMQtZWVkqKipSQkKCq0/r1q0VHR2tzMzMcsf58aMaMjMz3caQpMTExHLHAAAA1avG38SvpKREEydO1C233KJ27dpJOv+cKV9fXwUHB7v1DQ8Pl9PpLHWczZs3a/ny5Xr//fddbU6n0/V4hx+PkZ+fr9OnTysgIODyFgMAAH62Gh9uxo0bp507d+qjjz665DF27typQYMGadasWerdu/dlnB0AALjSavRhqfHjx2vVqlVau3atGjVq5GqPiIjQ2bNnlZub69Y/OztbERERbm27d+9WfHy8xo4dqxkzZrgti4iIcLvC6sIYgYGB7LUBAOAqVSPDjTFG48eP19tvv601a9aoadOmbss7deokHx8fZWRkuNr27dunw4cPKy4uztW2a9cu/fKXv9SIESP0l7/85aLtxMXFuY0hSenp6W5jAACAq0uNvFrqgQce0LJly/TOO++oVatWrvagoCDXHpX7779fq1ev1iuvvKLAwEBNmDBB0vlza6Tzh6J69eqlxMREPf30064xvL29FRoaKun8peDt2rXTuHHjdO+992rNmjV68MEH9f777ysxMfFKlQsAAKqgRoYbh8NRavvSpUs1cuRISedv4jdp0iS98cYbKiwsVGJiohYtWuQ6LPXYY49p9uzZF43RuHFjffXVV67369at00MPPaTdu3erUaNGevTRR13bAAAAV58aGW4AAADKUiPPuQEAACgL4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArPL/AXrJYj43/0ivAAAAAElFTkSuQmCC", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_hs2.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", - "2020-01-01 00:00:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:15:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:30:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:45:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 01:00:00+00:00 0.0 0.0 0.0 \n", - "... ... ... ... \n", - "2020-01-01 22:45:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:00:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:15:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:30:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:45:00+00:00 0.0 0.0 0.0 \n", - "\n", - " t_in_c t_out_c \n", - "2020-01-01 00:00:00+00:00 55.0 25.0 \n", - "2020-01-01 00:15:00+00:00 55.0 25.0 \n", - "2020-01-01 00:30:00+00:00 55.0 25.0 \n", - "2020-01-01 00:45:00+00:00 55.0 25.0 \n", - "2020-01-01 01:00:00+00:00 55.0 25.0 \n", - "... ... ... \n", - "2020-01-01 22:45:00+00:00 0.0 0.0 \n", - "2020-01-01 23:00:00+00:00 0.0 0.0 \n", - "2020-01-01 23:15:00+00:00 0.0 0.0 \n", - "2020-01-01 23:30:00+00:00 0.0 0.0 \n", - "2020-01-01 23:45:00+00:00 0.0 0.0 \n", - "\n", - "[96 rows x 5 columns]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAHqCAYAAADyGZa5AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAiElJREFUeJzs3XlcVdX+//H3AQQEBRwYRME557RQEecBxSEVs+uQOWXWNTWNNPVmDuWVtDRLTfNW2mSaZlamliKaA5lTmmNWDjmAI5CggLB/f/jjfD0xeM4RUuD1fDx45Fl7rbU/+6yD+Tl77bVMhmEYAgAAAAAA+cLhXgcAAAAAAEBhRuINAAAAAEA+IvEGAAAAACAfkXgDAAAAAJCPSLwBAAAAAMhHJN4AAAAAAOQjEm8AAAAAAPIRiTcAAAAAAPmIxBsAAAAAgHxE4g0AuO/MnDlTNWvWVEZGhk3tpkyZIpPJZNc5lyxZIpPJpJMnT96xbqVKlTRo0CC7zpOffRUE/8T1rl+/XiVKlNDFixfz9TwFxebNm2UymbR58+Z7HUq+GjRokCpVqnSvwwCAbJF4A0ABlJkkZv64urrqgQce0IgRIxQXF5dn50lOTtaUKVOs/gf70aNH9eKLL6pBgwYqWbKkypUrpy5dumj37t1WnzMxMVEzZszQuHHj5ODwf/+buv16b//x8/Oz9bLyXGZiYzKZ9Mknn2Rbp1mzZjKZTKpbt26enPP2z8C2bduyHDcMQwEBATKZTHrkkUfy5JwFRceOHVWtWjVFRkbeVT+tW7fOcbxOnjwpk8mkN954467OcSfTp0/X6tWr8/UcAID853SvAwAA2O+VV15R5cqVdePGDW3btk0LFizQ2rVrdfDgQbm5ud11/8nJyZo6daqkW0nInbz33nt6//331bNnTz377LNKSEjQu+++qyZNmmj9+vUKDQ29Yx8ffPCBbt68qb59+2Y51r59ew0YMMCirHjx4tZdzB30799fffr0kYuLi919uLq6aunSpXriiScsyk+ePKkdO3bI1dU1S5tjx45ZfMFg7zmbN29uUb5lyxadOXPmrq4nP9zt9VrrmWee0ZgxYzR16lSVLFky38+XX6ZPn67HHntM4eHh9zoUAMBdIPEGgAKsU6dOatiwoSTpqaeeUpkyZTR79mx99dVX2Sau1srIyFBqaqrN7fr27aspU6aoRIkS5rInn3xStWrV0pQpU6xKvBcvXqxu3bplm6Q+8MADWZLavOLo6ChHR8e76qNz5876+uuvdenSJZUtW9ZcvnTpUvn6+qp69eq6evWqRZu7TYw7d+6sFStW6O2335aT0//9b33p0qUKCgrSpUuX7qr/vPZPfRHQs2dPjRw5UitWrNCTTz75j5wTAICcMNUcAAqRtm3bSpJOnDghSXrjjTfUtGlTlSlTRsWLF1dQUJBWrlyZpZ3JZNKIESP06aefqk6dOnJxcdHChQvl7e0tSZo6dap5WvOUKVNyPH9QUJBF0i1JZcqUUYsWLXTkyJE7xn/ixAkdOHDAqgTdGpnTgZcsWZLl2N+vJbtnvA3D0LRp01ShQgW5ubmpTZs2OnToUI7n6969u1xcXLRixQqL8qVLl6pXr17ZJva3P/NsGIbatGkjb29vXbhwwVwnNTVV9erVU9WqVZWUlGTRvm/fvrp8+bI2bNhgUX/lypV6/PHHs43Tns9FjRo15OrqqqCgIP3www8W9TKfrT969Kh69eolDw8PlSlTRqNGjdKNGzdyvF7p/9737du3KyIiQt7e3nJ3d1ePHj2yPKOdkZGhKVOmyN/f3zwehw8fzva5cR8fHz344IP66quvLMoTEhJ09OhRJSQkZPve3K34+HiNHj1aAQEBcnFxUbVq1TRjxows6xVYMwYmk0lJSUn68MMPzb9/d3o+/syZMwoPD5e7u7t8fHz0/PPPKyUlJdu6O3fuVMeOHeXp6Sk3Nze1atVK27dvt6iTOba//vqrnnjiCXl6esrb21svv/yyDMPQn3/+qe7du8vDw0N+fn6aNWuWRfvU1FRNmjRJQUFB8vT0lLu7u1q0aKHo6GiLerdP3V+0aJGqVq0qFxcXNWrUSLt27coS++rVq1W3bl25urqqbt26+vLLL3N9XwDgXiPxBoBC5Pfff5d0K9mVpLfeeksPPfSQXnnlFU2fPl1OTk7617/+pW+//TZL202bNun5559X79699dZbb6lRo0ZasGCBJKlHjx76+OOP9fHHH+vRRx+1Oa7Y2FiLO8A52bFjhyTp4Ycfzvb4jRs3dOnSJYufnJKKvDBp0iS9/PLLql+/vl5//XVVqVJFHTp0yJL8ZnJzc1P37t312Wefmcv279+vQ4cO5ZgE385kMumDDz7QjRs39O9//9tcPnnyZB06dEiLFy+Wu7u7RZtKlSopJCTE4pzr1q1TQkKC+vTpk+15bPlcbNmyRaNHj9YTTzyhV155RZcvX1bHjh118ODBLHV79eqlGzduKDIyUp07d9bbb7+tp59++o7XLUkjR47U/v37NXnyZA0bNkzffPONRowYYVFnwoQJmjp1qho2bKjXX39d1atXV1hYWI7jERQUZP5MZfryyy9Vq1YtqxO19PT0LJ+5S5cuZZm5IN16NKNVq1b65JNPNGDAAL399ttq1qyZJkyYoIiICIu61ozBxx9/LBcXF7Vo0cL8+/fMM8/kGOv169fVrl07fffddxoxYoReeuklbd26VS+++GKWups2bVLLli2VmJioyZMna/r06YqPj1fbtm31008/Zanfu3dvZWRk6LXXXlNwcLCmTZumOXPmqH379ipfvrxmzJihatWqacyYMRZfzCQmJuq9995T69atNWPGDE2ZMkUXL15UWFiYfv755yznWbp0qV5//XU988wzmjZtmk6ePKlHH31UaWlp5jrff/+9evbsKZPJpMjISIWHh2vw4ME2rSUBAP84AwBQ4CxevNiQZGzcuNG4ePGi8eeffxrLli0zypQpYxQvXtw4c+aMYRiGkZycbNEuNTXVqFu3rtG2bVuLckmGg4ODcejQIYvyixcvGpKMyZMn2x3rDz/8YJhMJuPll1++Y92JEycakoy//voryzFJ2f4sXrzYXGfy5MnG7f9rO3HiRJY6t/d3+3VlvqcnTpwwDMMwLly4YDg7OxtdunQxMjIyzPX+85//GJKMgQMHmsuio6MNScaKFSuMNWvWGCaTyTh9+rRhGIYxduxYo0qVKoZhGEarVq2MOnXqWMRRsWJFi74MwzDeffddQ5LxySefGD/++KPh6OhojB492qJOZry7du0y5s2bZ5QsWdI83v/617+MNm3amPvv0qWLRVtbPheSjN27d5vLTp06Zbi6uho9evQwl2W+7926dbNo/+yzzxqSjP379+d4vZnXERoaavE+P//884ajo6MRHx9vGIZhxMbGGk5OTkZ4eLjFOaZMmZJlPDJNnz7dkGTExcVlOV92n4m/a9WqVY6fu8yf119/3Vz/1VdfNdzd3Y1ff/3Vop/x48cbjo6O5s+EYVg/Bu7u7tleW3bmzJljSDI+//xzc1lSUpJRrVo1Q5IRHR1tGIZhZGRkGNWrVzfCwsIs3vPk5GSj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2lQuLi53HXRBVLJkSUm3tljz8vK6t8EAAAAAAPJdfHy8KlasaM4Hc2P1VHNnZ2c1bNhQbdq0UZs2bdSsWTMVL178roMtDBITE+Xp6amrV6+SeAMAAABAERAfH69SpUopISFBHh4euda1+o731atX5e7unmud69evk4wDAAAAAHCb3J8Av01m0v3cc89lezwpKUmdO3fOm6gAAAAAACgkrE68M3377beaPHmyRVlSUpI6duxYJFc0BwAAAAAgNzavav7999+rRYsWKlWqlEaPHq2//vpLYWFhcnJy0rp16/IjRgAAAAAACiybE++qVatq/fr1atOmjRwcHPTZZ5/JxcVF33777R2fAQcAAAAAoKixax/vBx98UGvWrFH79u0VHBysNWvWsKgaAAAAAADZsCrxfuihh2QymbKUu7i46Ny5c2rWrJm5bO/evXkXHQAAAAAABZxViXd4eHg+hwEAAAAAQOFkMgzDuNdBFHSJiYny9PTU1atX5eXlda/DAQAAAADks/j4eJUqVUoJCQny8PDIta5V24mRmwMAAAAAYB+rEu86depo2bJlSk1NzbXe8ePHNWzYML322mt5EhwAAAAAAAWdVc94z507V+PGjdOzzz6r9u3bq2HDhvL395erq6uuXr2qw4cPa9u2bTp06JBGjBihYcOG5XfcAAAAAAAUCDY9471t2zYtX75cW7du1alTp3T9+nWVLVtWDz30kMLCwtSvXz+VKlUqP+O9L/GMNwAAAAAULbY8423TPt7NmzdX8+bN7yo4AAAAAACKEque8QYAAAAAAPYh8QYAAAAAIB+ReAMAAAAAkI8KXOI9f/58VapUSa6urgoODtZPP/2Ua/0VK1aoZs2acnV1Vb169bR27doc6/773/+WyWTSnDlz8jhqAAAAAEBRZVPiffPmTX300UeKi4vLr3hytXz5ckVERGjy5Mnau3ev6tevr7CwMF24cCHb+jt27FDfvn01ZMgQ7du3T+Hh4QoPD9fBgwez1P3yyy/1448/yt/fP78vAwAAAABQhNi0nZgkubm56ciRI6pYsWJ+xZSj4OBgNWrUSPPmzZMkZWRkKCAgQCNHjtT48eOz1O/du7eSkpK0Zs0ac1mTJk3UoEEDLVy40Fx29uxZBQcH67vvvlOXLl00evRojR492uq42E4MAAAAAIqWfNtOTJIaN26sn3/++R9P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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Heat demand results\n", - "res2_idx = res2[res2['name'] == 'heat_consumer'].index[0]\n", - "df_hd2 = res2.data_source.loc[res2_idx].df\n", - "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", - "print(df_hd2)\n", - "df_hd2.q_received_kw.plot(ax=axes[0], color='C2')\n", - "axes[0].set_ylabel('Demand received power (kW)')\n", - "axes[0].set_title('Part 2 (FluidMixMapping): Heat demand')\n", - "axes[0].grid(True, alpha=0.3)\n", - "df_hd2.q_uncovered_kw.plot(ax=axes[1], color='C3')\n", - "axes[1].set_ylabel('Uncovered demand (kW)')\n", - "axes[1].set_title('Uncovered demand')\n", - "axes[1].grid(True, alpha=0.3)\n", - "plt.tight_layout()\n", - "plt.show()" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", + "2020-01-01 00:00:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:15:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:30:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:45:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 01:00:00+00:00 0.0 0.0 0.0 \n", + "... ... ... ... \n", + "2020-01-01 22:45:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:00:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:15:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:30:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:45:00+00:00 0.0 0.0 0.0 \n", + "\n", + " t_in_c t_out_c \n", + "2020-01-01 00:00:00+00:00 55.0 25.0 \n", + "2020-01-01 00:15:00+00:00 55.0 25.0 \n", + "2020-01-01 00:30:00+00:00 55.0 25.0 \n", + "2020-01-01 00:45:00+00:00 55.0 25.0 \n", + "2020-01-01 01:00:00+00:00 55.0 25.0 \n", + "... ... ... \n", + "2020-01-01 22:45:00+00:00 0.0 0.0 \n", + "2020-01-01 23:00:00+00:00 0.0 0.0 \n", + "2020-01-01 23:15:00+00:00 0.0 0.0 \n", + "2020-01-01 23:30:00+00:00 0.0 0.0 \n", + "2020-01-01 23:45:00+00:00 0.0 0.0 \n", + "\n", + "[96 rows x 5 columns]\n" + ] }, { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df_hd2.plot()" + "data": { + "image/png": "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u7u7RZtKlSopJCTE4pzr1q1TQkKC+vTpk+15bPlcbNmyRaNHj9YTTzyhV155RZcvX1bHjh118ODBLHV79eqlGzduKDIyUp07d9bbb7+tp59++o7XLUkjR47U/v37NXnyZA0bNkzffPONRowYYVFnwoQJmjp1qho2bKjXX39d1atXV1hYWI7jERQUZP5MZfryyy9Vq1YtqxO19PT0LJ+5S5cuZZm5IN16NKNVq1b65JNPNGDAAL399ttq1qyZJkyYoIiICIu61ozBxx9/LBcXF7Vo0cL8+/fMM8/kGOv169fVrl07fffddxoxYoReeuklbd26VS+++GKWups2bVLLli2VmJioyZMna/r06YqPj1fbtm31008/Zanfu3dvZWRk6LXXXlNwcLCmTZumOXPmqH379ipfvrxmzJihatWqacyYMRZfzCQmJuq9995T69atNWPGDE2ZMkUXL15UWFiYfv755yznWbp0qV5//XU988wzmjZtmk6ePKlHH31UaWlp5jrff/+9evbsKZPJpMjISIWHh2vw4ME2rSUBAP84AwBQ4CxevNiQZGzcuNG4ePGi8eeffxrLli0zypQpYxQvXtw4c+aMYRiGkZycbNEuNTXVqFu3rtG2bVuLckmGg4ODcejQIYvyixcvGpKMyZMn2x3rDz/8YJhMJuPll1++Y92JEycakoy//voryzFJ2f4sXrzYXGfy5MnG7f9rO3HiRJY6t/d3+3VlvqcnTpwwDMMwLly4YDg7OxtdunQxMjIyzPX+85//GJKMgQMHmsuio6MNScaKFSuMNWvWGCaTyTh9+rRhGIYxduxYo0qVKoZhGEarVq2MOnXqWMRRsWJFi74MwzDeffddQ5LxySefGD/++KPh6OhojB492qJOZry7du0y5s2bZ5QsWdI83v/617+MNm3amPvv0qWLRVtbPheSjN27d5vLTp06Zbi6uho9evQwl2W+7926dbNo/+yzzxqSjP379+d4vZnXERoaavE+P//884ajo6MRHx9vGIZhxMbGGk5OTkZ4eLjFOaZMmZJlPDJNnz7dkGTExcVlOV92n4m/a9WqVY6fu8yf119/3Vz/1VdfNdzd3Y1ff/3Vop/x48cbjo6O5s+EYVg/Bu7u7tleW3bmzJljSDI+//xzc1lSUpJRrVo1Q5IRHR1tGIZhZGRkGNWrVzfCwsIs3vPk5GSj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2lQuLi53HXRBVLJkSUm3tljz8vK6t8EAAAAAAPJdfHy8KlasaM4Hc2P1VHNnZ2c1bNhQbdq0UZs2bdSsWTMVL178roMtDBITE+Xp6amrV6+SeAMAAABAERAfH69SpUopISFBHh4euda1+o731atX5e7unmud69evk4wDAAAAAHCb3J8Av01m0v3cc89lezwpKUmdO3fOm6gAAAAAACgkrE68M3377beaPHmyRVlSUpI6duxYJFc0BwAAAAAgNzavav7999+rRYsWKlWqlEaPHq2//vpLYWFhcnJy0rp16/IjRgAAAAAACiybE++qVatq/fr1atOmjRwcHPTZZ5/JxcVF33777R2fAQcAAAAAoKixax/vBx98UGvWrFH79u0VHBysNWvWsKgaAAAAAADZsCrxfuihh2QymbKUu7i46Ny5c2rWrJm5bO/evXkXHQAAAAAABZxViXd4eHg+hwEAAAAAQOFkMgzDuNdBFHSJiYny9PTU1atX5eXlda/DAQAAAADks/j4eJUqVUoJCQny8PDIta5V24mRmwMAAAAAYB+rEu86depo2bJlSk1NzbXe8ePHNWzYML322mt5EhwAAAAAAAWdVc94z507V+PGjdOzzz6r9u3bq2HDhvL395erq6uuXr2qw4cPa9u2bTp06JBGjBihYcOG5XfcAAAAAAAUCDY9471t2zYtX75cW7du1alTp3T9+nWVLVtWDz30kMLCwtSvXz+VKlUqP+O9L/GMNwAAAAAULbY8423TPt7NmzdX8+bN7yo4AAAAAACKEque8QYAAAAAAPYh8QYAAAAAIB+ReAMAAAAAkI8KXOI9f/58VapUSa6urgoODtZPP/2Ua/0VK1aoZs2acnV1Vb169bR27doc6/773/+WyWTSnDlz8jhqAAAAAEBRZVPiffPmTX300UeKi4vLr3hytXz5ckVERGjy5Mnau3ev6tevr7CwMF24cCHb+jt27FDfvn01ZMgQ7du3T+Hh4QoPD9fBgwez1P3yyy/1448/yt/fP78vAwAAAABQhNi0nZgkubm56ciRI6pYsWJ+xZSj4OBgNWrUSPPmzZMkZWRkKCAgQCNHjtT48eOz1O/du7eSkpK0Zs0ac1mTJk3UoEEDLVy40Fx29uxZBQcH67vvvlOXLl00evRojR492uq42E4MAAAAAIqWfNtOTJIaN26sn3/++R9P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", + "text/plain": [ + "
" ] + }, + "metadata": {}, + "output_type": "display_data" } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" + ], + "source": [ + "# Heat demand results\n", + "res2_idx = res2[res2['name'] == 'heat_consumer'].index[0]\n", + "df_hd2 = res2.data_source.loc[res2_idx].df\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "print(df_hd2)\n", + "df_hd2.q_received_kw.plot(ax=axes[0], color='C2')\n", + "axes[0].set_ylabel('Demand received power (kW)')\n", + "axes[0].set_title('Part 2 (FluidMixMapping): Heat demand')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hd2.q_uncovered_kw.plot(ax=axes[1], color='C3')\n", + "axes[1].set_ylabel('Uncovered demand (kW)')\n", + "axes[1].set_title('Uncovered demand')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.15" + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAG9CAYAAAC1YRSpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAUSJJREFUeJzt3XlcVFX/B/DPnRmGRQRCWTRB3MUF3JXcCFE0M7cezfwVmGkqWEaambs9heVurpVilqZZqS1mjw8KluISLrlv4VIKak9AKAIO5/cHzJURkRmYewHn83695pVz58655w7kfDzfc8+VhBACRERERCrRlHcHiIiIyLYwfBAREZGqGD6IiIhIVQwfREREpCqGDyIiIlIVwwcRERGpiuGDiIiIVKUr7w7cLy8vD1evXkXVqlUhSVJ5d4eIiIjMIITAP//8g5o1a0KjefjYRoULH1evXoWPj095d4OIiIhK4cqVK6hVq9ZD96lw4aNq1aoA8jvv4uJSzr0hIiIic2RkZMDHx0f+Hn+YChc+jKUWFxcXhg8iIqJKxpwpE5xwSkRERKpi+CAiIiJVMXwQERGRqircnA8iIirKYDAgNze3vLtBNk6v15d4Ga05GD6IiCowIQRSUlKQlpZW3l0hgkajQZ06daDX68vUDsMHEVEFZgwenp6ecHJy4uKLVG6Mi4Beu3YNvr6+ZfpdZPggIqqgDAaDHDyqVatW3t0hgoeHB65evYq7d+/Czs6u1O1wwikRUQVlnOPh5ORUzj0hymcstxgMhjK1w/BBRFTBsdRCFYW1fhcZPoiIiEhVDB9ERESkKoYPIiIiAMHBwRg3bpyix7h48SIkScKRI0dK3Dc+Ph6SJD2Sl1nzahciIiIA33zzTZmu4CDzVdjwcfaJjnDWahU9hqZqVdT6cDGcWrZU9DhERFR6OTk5ZV7Uyhzu7u6KH4PyVdiyi8jOVvxhuHkTt37ZU96nSkRkFiEEbufcLZeHEMKivt66dQsvvvginJ2dUaNGDcybN8/ssoafnx/eeecdvPjii3BxccHIkSMBAL/88gs6d+4MR0dH+Pj44NVXX8WtW7fk92VnZ2PixInw8fGBvb096tevj1WrVsmvHz9+HL169YKzszO8vLzwwgsv4ObNm/Lrhfv39ttvo3379kX6FhgYiFmzZsnPP/nkE/j7+8PBwQGNGzfGsmXLTPY/cOAAWrZsCQcHB7Rp0waHDx826/N7kNu3b6NXr17o2LEj0tLS8OyzzyIqKkp+fdy4cZAkCadPnwaQH9qqVKmC//73v6U+plIq7MhH3e++hUvVqoq1f2PJUqRv3gyRV7ZrlYmI1JKVa0CTaT+Vy7FPzgqDk978r4wJEyYgISEBW7duhaenJ95++20cOnQILVq0MOv9c+fOxbRp0zB9+nQAwIULF9CzZ0/8+9//xurVq3Hjxg1ERUUhKioKsbGxAIAXX3wRiYmJWLx4MQIDA5GcnCyHi7S0NISEhODll1/GggULkJWVhYkTJ2LQoEHYuXNnkeMPHToUMTExuHDhAurVqwcAOHHiBH777Td8/fXXAIB169Zh2rRpWLJkCVq2bInDhw9jxIgRqFKlCsLDw5GZmYmnn34a3bt3x+eff47k5GS89tprZn+GhaWlpaF3795wdnbGjh074OTkhK5du2LlypXyPgkJCahevTri4+PRuHFjHDx4ELm5uXjiiSdKdUwlVdjwYVezJuxcXBRrX2ts+y7DBxGRNWVmZmLVqlX4/PPP0a1bNwDAp59+ilq1apndRkhICN544w35+csvv4yhQ4fKIxMNGjTA4sWL0bVrVyxfvhyXL1/Gl19+iR07diA0NBQAULduXfn9xoDw3nvvydtWr14NHx8fnD17Fg0bNjQ5ftOmTREYGIj169dj6tSpAPLDRvv27VG/fn0AwPTp0zFv3jwMGDAAAFCnTh2cPHkSK1euRHh4ONavX4+8vDysWrUKDg4OaNq0Kf744w+MHj3a7M8ByF9if/DgwWjQoAHWr18vl6CCg4Px2muv4caNG9DpdDh58iSmTp2K+Ph4jBo1CvHx8Wjbtm2FXKSuwoYPxeny55OIMq7SRkSkFkc7LU7OCiu3Y5vrwoULyMnJMSlbuLu7o1GjRma30aZNG5PnR48exW+//YZ169bJ24QQyMvLQ3JyMo4dOwatVouuXbs+sL2jR49i165dcHZ2fmB/7w8fQP7ox+rVqzF16lQIIfDFF18gOjoaQH5Z6cKFCxg+fDhGjBghv+fu3btwdXUFAJw6dQoBAQFwcHCQXw8KCjL7MzDq3r072rVrh40bN0JbaC5ks2bN4O7ujoSEBOj1erRs2RJPP/00li5dCiB/JCQ4ONji46nBZsOHpC04dcPd8u0IEZGZJEmyqPRRmVWpUsXkeWZmJl555RW8+uqrRfb19fXF+fPnH9peZmYm+vTpg/fff7/IazVq1Hjge4YMGYKJEyfi0KFDyMrKwpUrVzB48GC5PQD4+OOPi8wN0Vr5YonevXvj66+/xsmTJ9G8eXN5uyRJ6NKlC+Lj42Fvb4/g4GAEBAQgOzsbx48fx969ezF+/Hir9sVabOO3+AEk48gHyy5ERFZVr1492NnZYf/+/fD19QUA/P333zh79myxIxMladWqFU6ePCmXPO7XvHlz5OXlISEhQS673P/+r7/+Gn5+ftDpzPvqq1WrFrp27Yp169YhKysL3bt3h6enJwDAy8sLNWvWxO+//46hQ4c+8P3+/v747LPPcOfOHXn0Y9++fWYdu7DZs2fD2dkZ3bp1Q3x8PJo0aSK/1rVrV3z88cewt7fHu+++C41Ggy5dumDOnDnIzs5Gx44dLT6eGirs1S6K0xrLLhz5ICKyJmdnZwwfPhwTJkzAzp07cfz4cURERECjKf1XzsSJE7F3715ERUXhyJEjOHfuHLZu3Spf7eHn54fw8HC89NJL2LJlC5KTkxEfH48vv/wSABAZGYn//e9/GDJkCA4ePIgLFy7gp59+wrBhwx56k7ShQ4diw4YN2LRpU5GQMXPmTMTExGDx4sU4e/Ysjh07htjYWMyfPx8A8Pzzz0OSJIwYMQInT57Etm3bMHfu3FKd/9y5czF06FCEhITIV7MA+fM+Tp48iRMnTqBTp07ytnXr1qFNmzZFRpAqCpsNH/fKLhz5ICKytjlz5qBz587o06cPQkND0alTJ7Ru3brU7QUEBCAhIQFnz55F586d0bJlS0ybNg01a9aU91m+fDmeffZZjBkzBo0bN8aIESPkS3Fr1qyJPXv2wGAwoEePHmjevDnGjRsHNze3h4aiZ599Fn/99Rdu376Nfv36mbz28ssv45NPPkFsbCyaN2+Orl27Ys2aNahTpw6A/BD23Xff4dixY2jZsiUmT578wLKPuRYsWIBBgwYhJCQEZ8+eBZA/4uPm5oYWLVrI81mCg4NhMBgq7HwPAJCEpRdvKywjIwOurq5IT0+Hi4JXu/z1ySe4PnceXPv3R82Y90p+AxGRyu7cuYPk5GTUqVPHZNJiZRUcHIwWLVpg4cKF5d0VKqWH/U5a8v1tsyMfKBj5YNmFiIhIXTYbPiTjbGROOCUiUs2xY8fg7Oxc7MOWjBo1qtjPYdSoUeXdPUXZ7NUuXOeDiEhd8fHxyMrKwp9//lneXakQZs2aVeylsEpOO6gIbDZ8SCy7EBGpztHRsdjLZW2Np6enfOmurbHdsouOZRciIqLyYLPh4946HwwfREREarLZ8MHl1YmIiMqH7YYPLq9ORERULmw2fLDsQkREVD5sNnxIxhsL3WXZhYiIKrYZM2agRYsWZu0bERFRZCn4isZ2wwdHPoiIiMqFzYaPe8urM3wQEZHycnJyyrsLFYbNho9763yw7EJElYQQQM6t8nlYeA/SW7du4cUXX4SzszNq1KiBefPmITg4GOPGjSvxvZIkYcuWLSbb3NzcsGbNGgDAxYsXIUkSvvnmGzz55JNwcnJCYGAgEhMTTd6zZ88eBAcHw8nJCY899hjCwsLw999/AwCys7Px6quvwtPTEw4ODujUqRMOHjwIAMjLy0OtWrWwfPlyk/YOHz4MjUaDS5cuAQDS0tLw8ssvw8PDAy4uLggJCcHRo0fl/Y2lkk8++cTkRmwlvQ8AZs+eDS8vL1StWhXDhw/HnTt3SvzcinPw4EF4eHjg/fffR3p6OrRaLX799Vf5XN3d3dGhQwd5/88//xw+Pj6lPp45bHiFU5ZdiKiSyb0NvFez5P2U8PZVQF/F7N0nTJiAhIQEbN26FZ6ennj77bdx6NAhs+ctmGPy5MmYO3cuGjRogMmTJ2PIkCE4f/48dDodjhw5gm7duuGll17CokWLoNPpsGvXLhgK/s5/88038fXXX+PTTz9F7dq18cEHHyAsLAznz5+Hu7s7hgwZgvXr12P06NHy8datW4eOHTuidu3aAIB//etfcHR0xI8//ghXV1esXLkS3bp1w9mzZ+Hu7g4AOH/+PL7++mt888030BZ875T0vi+//BIzZszA0qVL0alTJ3z22WdYvHgx6tata/FntHPnTgwYMAAffPABRo4cCQBo0aIF4uPj0aZNGxw7dgySJOHw4cPIzMyEs7MzEhIS0LVr1zL9bEpisyMfvKstEZEyMjMzsWrVKsydOxfdunVD8+bN8emnn+KulUeax48fj969e6Nhw4aYOXMmLl26hPPnzwMAPvjgA7Rp0wbLli1DYGAgmjZtiqioKFSvXh23bt3C8uXLMWfOHPTq1QtNmjTBxx9/DEdHR6xatQoAMHToUOzZsweXL18GkD9CsGHDBgwdOhQA8Msvv+DAgQPYtGkT2rRpgwYNGmDu3Llwc3PDV199JfcxJycHa9euRcuWLREQEGDW+xYuXIjhw4dj+PDhaNSoEf7973+jSZMmFn8+mzdvRt++fbFy5Uo5eABAcHAw4uPjAeTfb6d79+7w9/fHL7/8Im9TOnzY7sgHl1cnosrGzil/BKK8jm2mCxcuICcnB+3bt5e3ubu7o1GjRlbtUkBAgPznGjVqAACuX7+Oxo0b48iRI/jXv/5VbP9yc3PRsWNHeZudnR3atWuHU6dOAcgfHfD398f69evx1ltvISEhAdevX5fbPHr0KDIzM1GtWjWTtrOysnDhwgX5ee3ateHh4SE/N+d9p06dKnJX26CgIOzatcu8DwbA/v378f333+Orr74qcuVL165dsWrVKhgMBiQkJKBHjx7w9vZGfHw8AgICcP78eQQHB5t9rNKw2fDBdT6IqNKRJItKH5WVJEkQ980xyc3NLbKfnZ2dyXuA/BEKIP8GdmU1dOhQOXysX78ePXv2lENDZmYmatSoIY8gFObm5ib/uUoV05+Xue8rq3r16qFatWpYvXo1evfubfJZdenSBf/88w8OHTqE3bt347333oO3tzdmz56NwMBA1KxZEw0aNLBaXx7EZssu9+Z8sOxCRGRN9erVg52dHfbv3y9v+/vvv3H27Fmz3u/h4YFr167Jz8+dO4fbt29b1IeAgADExcUV2z+9Xo89e/bI23Jzc3Hw4EGT8sbzzz+P48ePIykpCV999ZVccgGAVq1aISUlBTqdDvXr1zd5VK9evdh+mfM+f39/k88OAPbt22fR+VevXh07d+7E+fPnMWjQIJPw5ubmhoCAACxZsgR2dnZo3LgxunTpgsOHD+P7779XvOQCWBg+ZsyYAUmSTB6NGzeWX79z5w4iIyNRrVo1ODs7Y+DAgUhNTbV6p63BGD5YdiEisi5nZ2cMHz4cEyZMwM6dO3H8+HFERERAozHvKyckJARLlizB4cOH8euvv2LUqFEm/3I3x6RJk3Dw4EGMGTMGv/32G06fPo3ly5fj5s2bqFKlCkaPHo0JEyZg+/btOHnyJEaMGIHbt29j+PDhcht+fn544oknMHz4cBgMBjzzzDPya6GhoQgKCkK/fv3wn//8BxcvXsTevXsxefJk+UqSBzHnfa+99hpWr16N2NhYnD17FtOnT8eJEycsOn8A8PT0xM6dO3H69GkMGTLEZM5NcHAw1q1bJwcNd3d3+Pv7Y+PGjRUvfABA06ZNce3aNflhnKACAK+//jq+++47bNq0CQkJCbh69SoGDBhg1Q5bDdf5ICJSzJw5c9C5c2f06dMHoaGh6NSpE1q3bm3We+fNmwcfHx907twZzz//PMaPHw8nJ/PnnABAw4YN8Z///AdHjx5Fu3btEBQUhK1bt0JXsLr17NmzMXDgQLzwwgto1aoVzp8/j59++gmPPfaYSTtDhw7F0aNH0b9/f5NSjiRJ2LZtG7p06YJhw4ahYcOGeO6553Dp0iV4eXkV2y9z3jd48GBMnToVb775Jlq3bo1Lly6ZXHVjCW9vb+zcuRPHjh3D0KFD5at9unbtCoPBYDK3Izg4uMg2pUji/sLaQ8yYMQNbtmzBkSNHiryWnp4ODw8PrF+/Hs8++ywA4PTp0/D390diYqLJNcQPk5GRAVdXV6Snp8PFxcXcrlks5/JlXOgRBo2TExodSlLsOEREpXXnzh0kJyebrBFRmQUHB6NFixZYuHBheXeFSulhv5OWfH9bPPJx7tw51KxZE3Xr1sXQoUPly5CSkpKQm5uL0NBQed/GjRvD19e3yMIvhWVnZyMjI8PkoQau80FERFQ+LAof7du3x5o1a7B9+3YsX74cycnJ6Ny5M/755x+kpKRAr9cXma3r5eWFlJSUYtuMiYmBq6ur/FB6VTWZjmUXIiK1HTt2DM7OzsU+qGQP+/x+/vnn8u6eWSy61LZXr17ynwMCAtC+fXvUrl0bX375Zakva5o0aRKio6Pl5xkZGaoEkHsTTu9CCCFfpkVERMqIj49HVlYW/vzzz/LuSqX2oKkPRo8//rh6HSmDMq3z4ebmhoYNG+L8+fPo3r07cnJykJaWZjL6kZqaCm9v72LbsLe3h729fVm6UTrG8AEAeXmmz4mISBGOjo6oX79+eXejUnsUPr8yrfORmZmJCxcuoEaNGmjdujXs7OxMrqs+c+YMLl++jKCgoDJ31Nok3b3cxdILERGReiwa+Rg/fjz69OmD2rVr4+rVq5g+fTq0Wi2GDBkCV1dXDB8+HNHR0XB3d4eLiwvGjh2LoKAgs690UZNUeKTj7l1Ary+/zhAREdkQi8LHH3/8gSFDhuCvv/6Ch4cHOnXqhH379snr1i9YsAAajQYDBw5EdnY2wsLCsGzZMkU6XmYc+SAiIioXFoWPDRs2PPR1BwcHLF26FEuXLi1Tp9RgMvLB8EFERKQam723Cwot88uRDyIiIvXYbPiQJOneWh+8vwsRUYUSHx8PSZKQlpam2DHWrFlj1TvJkvlsNnwAhUovvLMtEVGl5+fnx6XbKwmGD7DsQkRElUdubm55d6HMbDp83Cu7cOSDiCo+IQRu594ul4cF9yBFcHAwxo4di3HjxuGxxx6Dl5cXPv74Y9y6dQvDhg1D1apVUb9+ffz444/ye7Zt24aGDRvC0dERTz75JC5evFik3a+//hpNmzaFvb09/Pz8MG/ePJNjXrp0Ca+//jokSSrVqtU3btxAmzZt0L9/f2RnZwMAvv32WzRo0AAODg548skn8emnn5pdDjKWdbZs2SK3ERYWhitXrpjst3XrVrRq1QoODg6oW7cuZs6cibuFvpckScLy5cvxzDPPoEqVKnj33Xcfety///4bQ4cOhYeHBxwdHdGgQQPExsZa/HkoqUwrnFZ298ouHPkgooov624W2q9vXy7H3v/8fjjZmX9b+08//RRvvvkmDhw4gI0bN2L06NHYvHkz+vfvj7fffhsLFizACy+8gMuXL+Ovv/7CgAEDEBkZiZEjR+LXX3/FG2+8YdJeUlISBg0ahBkzZmDw4MHYu3cvxowZg2rVqiEiIgLffPMNAgMDMXLkSIwYMcLi87ty5Qq6d++ODh06YNWqVdBqtUhOTsazzz6L1157DS+//DIOHz6M8ePHW9Tu7du38e6772Lt2rXQ6/UYM2YMnnvuOezZswcA8PPPP+PFF1/E4sWL0blzZ1y4cAEjR44EAEyfPl1uZ8aMGZg9ezYWLlwIne7hX91Tp07FyZMn8eOPP6J69eo4f/48srKyLPxElGXT4QM6ll2IiJQQGBiIKVOmAMi/h9fs2bNRvXp1ORhMmzYNy5cvx2+//YZvv/0W9erVk0cyGjVqhGPHjuH999+X25s/fz66deuGqVOnAgAaNmyIkydPYs6cOYiIiIC7uzu0Wi2qVq360Ft6PMiZM2fQvXt39O/fHwsXLpRHTVauXIlGjRphzpw5cr+OHz9e4shDYbm5uViyZAnat88PjZ9++in8/f1x4MABtGvXDjNnzsRbb72F8PBwAEDdunXxzjvv4M033zQJH88//zyGDRtm1jEvX76Mli1bok2bNgDy58JUNDYdPiQtyy5EVHk46hyx//n95XZsSwQEBMh/1mq1qFatGpo3by5v8/LyAgBcv34dp06dkr+cje6/LcepU6fQt29fk20dO3bEwoULYTAYoC3l/bmysrLQuXNnPP/880Umq545cwZt27Y12dauXTuL2tfpdCZtNG7cGG5ubjh16hTatWuHo0ePYs+ePSaBxmAw4M6dO7h9+zacnPJHm4xBwhyjR4/GwIEDcejQIfTo0QP9+vXDE088YVG/lWbj4YNlFyKqPCRJsqj0UZ7s7OxMnkuSZLLNOLqQl5enar/uZ29vj9DQUHz//feYMGGC6neFzczMxMyZMzFgwIAirzk4OMh/rlKlitlt9urVC5cuXcK2bduwY8cOdOvWDZGRkZg7d65V+mwNNj7htKDswnU+iIjKjbEMUdi+ffuK7GOcJ2G0Z88eNGzYUB710Ov1MFj4j0mNRoPPPvsMrVu3xpNPPomrV6/KrzVq1Ai//vqryf4HDx60qP27d++atHHmzBmkpaXB398fANCqVSucOXMG9evXL/LQaEr/Fe3h4YHw8HB8/vnnWLhwIT766KNSt6UEmw4fxrIL1/kgIio/o0aNwrlz5zBhwgScOXMG69evx5o1a0z2eeONNxAXF4d33nkHZ8+exaeffoolS5aYTAD18/PD7t278eeff+LmzZtmH1+r1WLdunUIDAxESEgIUlJSAACvvPIKTp8+jYkTJ+Ls2bP48ssv5X6ZezWNnZ0dxo4di/379yMpKQkRERHo0KGDXL6ZNm0a1q5di5kzZ+LEiRM4deoUNmzYIM+XKY1p06Zh69atOH/+PE6cOIHvv/9eDjsVhY2HD044JSIqb76+vvj666+xZcsWBAYGYsWKFXjvvfdM9mnVqhW+/PJLbNiwAc2aNcO0adMwa9YsREREyPvMmjULFy9eRL169eQbnppLp9Phiy++QNOmTRESEoLr16+jTp06+Oqrr/DNN98gICAAy5cvx+TJkwHkl2vM4eTkhIkTJ+L5559Hx44d4ezsjI0bN8qvh4WF4fvvv8d//vMftG3bFh06dMCCBQtQu3Zti/pfmF6vx6RJkxAQEIAuXbpAq9WWeG82tUnCkou3VZCRkQFXV1ekp6fDxcVF0WP93n8Ask+dgs8nn8C5U0dFj0VEZKk7d+4gOTkZderUMan/U/l59913sWLFiiJrdTzImjVrMG7cOEWXiFfbw34nLfn+5oRTgGUXIiJ6oGXLlqFt27aoVq0a9uzZgzlz5iAqKqq8u1XpsewCll2IiB5FvXr1grOz8wMf95d1inPu3Dn07dsXTZo0wTvvvIM33ngDM2bMsFr7pTFq1Khijztq1CjFjmtNNl12uTj0/5CVlITHFy+CS48eih6LiMhSLLuUzZ9//lnsyp7u7u5wd3ev0O0X5/r168jIyHjgay4uLvD09FTkuADLLlbBdT6IiB5dSq/ZofaaIEaenp6KBgw12HbZhet8EBERqc6mwweMy6tzwikREZFqbDp8sOxCRESkPpsOH1xenYiISH02HT4kll2IiIhUZ+Pho6DswpEPIqJyEx8fD0mSHqmVQOnhbDp8yGUXzvkgIrKq4OBgjBs3zqx9n3jiCVy7dg2urq7KdooqDBtf54N3tSUiKm96vR7e3t7l3Q1SkU2PfHCdDyKqTIQQyLt9u1weliyGHRERgYSEBCxatAiSJEGSJFy8eLHY/e8vu6xZswZubm746aef4O/vD2dnZ/Ts2RPXrl0zuw+rV69G06ZNYW9vjxo1avB+LBWMTY98QL63C0c+iKjiE1lZONOqdbkcu9GhJEhOTmbtu2jRIpw9exbNmjXDrFmzAMDiW9zfvn0bc+fOxWeffQaNRoP/+7//w/jx47Fu3boS37t8+XJER0dj9uzZ6NWrF9LT07Fnzx6Ljk/Ksunwca/swpEPIiJrcXV1hV6vh5OTU6nLKbm5uVixYgXq1asHAIiKipKDTEn+/e9/44033sBrr70mb2vbtm2p+kHKsO3wwbILEVUikqMjGh1KKrdjq8nJyUkOHgBQo0YNXL9+vcT3Xb9+HVevXkW3bt2U7B6VkU2HDy6vTkSViSRJZpc+Kjs7OzuT55IkmTXvxFHlkESlY9sTTrnOBxGRIvR6PQzlUNKuWrUq/Pz8EBcXp/qxyXy2PfLBdT6IiBTh5+eH/fv34+LFi3B2doa7uzs0GnX+vTtjxgyMGjUKnp6e6NWrF/755x/s2bMHY8eOVeX4VDIbH/lg2YWISAnjx4+HVqtFkyZN4OHhgcuXL6t27PDwcCxcuBDLli1D06ZN8fTTT+PcuXOqHZ9KJglLLt5WQUZGBlxdXZGeng4XFxdFj3VzxQrcWLgIbv/6F2q8Y94saiIitdy5cwfJycmoU6cOHBwcyrs7RA/9nbTk+9umRz7urfPBsgsREZFabDp8cHl1IiLljRo1Cs7Ozg98jBo1yuL2imvL2dkZP//8swJnQNZm0xNOJW1+9uI6H0REypk1axbGjx//wNdKU14/cuRIsa89/vjjFrdH6rPp8HFvnQ+GDyIipXh6esLT09Nq7dWvX99qbVH5sO2yS8Gltiy7EBERqcemw4c84ZRlFyIiItXYdPjgOh9ERETqs+3woePy6kRERGqz6fDBdT6IiIjUZ9Phg2UXIiIi9dl2+GDZhYhIEcHBwRg3bpyqx5QkCVu2bFH1mFQ6Nh0+WHYhIiJSn02HD0nHsgsRVR5CCORmG8rlYck9SCMiIpCQkIBFixZBkiRIkoSLFy8+9D0JCQlo164d7O3tUaNGDbz11lu4e/fe381+fn5YuHChyXtatGiBGTNmyK8DQP/+/SFJkvy8JN999x3atm0LBwcHVK9eHf379zfzLKksbHqFU0nLsgsRVR53c/Lw0WsJ5XLskYu6ws5ea9a+ixYtwtmzZ9GsWTPMmpV/x3APD49i9//zzz/x1FNPISIiAmvXrsXp06cxYsQIODg4yOGiJAcPHoSnpydiY2PRs2dPaLUl9/WHH35A//79MXnyZKxduxY5OTnYtm2bWcejsrHp8CEvr57H8EFEZC2urq7Q6/VwcnKCt7d3ifsvW7YMPj4+WLJkCSRJQuPGjXH16lVMnDgR06ZNg0ZT8iC9Mdy4ubmZdUwAePfdd/Hcc89h5syZ8rbAwECz3ktlY9PhgxNOiagy0ek1GLmoa7kdWymnTp1CUFAQJEmSt3Xs2BGZmZn4448/4Ovrq8hxjxw5ghEjRijSNj1cmX6bZs+eDUmSTGY037lzB5GRkahWrRqcnZ0xcOBApKamlrWfipA44ZSIKhFJkmBnry2XR+FgUB40Gk2ReSe5ubllatPR0bFM76fSK3X4OHjwIFauXImAgACT7a+//jq+++47bNq0CQkJCbh69SoGDBhQ5o4qgut8EBEpQq/Xw2DmP+z8/f2RmJhoEi727NmDqlWrolatWgDyyyrXrl2TX8/IyEBycrJJO3Z2dmYfEwACAgIQFxdn9v5kPaUKH5mZmRg6dCg+/vhjPPbYY/L29PR0rFq1CvPnz0dISAhat26N2NhY7N27F/v27bNap62FZRciImX4+flh//79uHjxIm7evIm8vLxi9x0zZgyuXLmCsWPH4vTp09i6dSumT5+O6Ohoeb5HSEgIPvvsM/z88884duwYwsPDi0wq9fPzQ1xcHFJSUvD333+X2Mfp06fjiy++wPTp03Hq1CkcO3YM77//ftlOnMxSqvARGRmJ3r17IzQ01GR7UlIScnNzTbY3btwYvr6+SExMfGBb2dnZyMjIMHmohmUXIiJFjB8/HlqtFk2aNIGHhwcuX75c7L6PP/44tm3bhgMHDiAwMBCjRo3C8OHDMWXKFHmfSZMmoWvXrnj66afRu3dv9OvXD/Xq1TNpZ968edixYwd8fHzQsmXLEvsYHByMTZs24dtvv0WLFi0QEhKCAwcOlP6kyWwWTzjdsGEDDh06hIMHDxZ5LSUlBXq9Hm5ubibbvby8kJKS8sD2YmJiTGYaq8m4zgfusuxCRGRNDRs2LPYfnQ/StWvXh37xu7i4YMOGDSbbwsPDTZ736dMHffr0saifAwYMqLhTAx5hFo18XLlyBa+99hrWrVsHBwcHq3Rg0qRJSE9Plx9XrlyxSrvm4IRTIiIi9VkUPpKSknD9+nW0atUKOp0OOp0OCQkJWLx4MXQ6Hby8vJCTk4O0tDST96WmphZ73bW9vT1cXFxMHqqRJ5wyfBARKWXUqFFwdnZ+4GPUqFGKHbdp06bFHnfdunWKHZdKZlHZpVu3bjh27JjJtmHDhqFx48aYOHEifHx8YGdnh7i4OAwcOBAAcObMGVy+fBlBQUHW67WV3JtwyrILEZFSZs2ahfHjxz/wNSX/wblt27ZiL8f18vJS7LhUMovCR9WqVdGsWTOTbVWqVEG1atXk7cOHD0d0dDTc3d3h4uKCsWPHIigoCB06dLBer62EZRciIuV5enrC09NT9ePWrl1b9WOSeay+wumCBQug0WgwcOBAZGdnIywsDMuWLbP2YazDOOE0Lw8iLw+SGUv4EhGpzZKbuhEpyVq/i2UOH/Hx8SbPHRwcsHTpUixdurSsTStOKnyNuMEAMHwQUQViZ2cHALh9+zZX46QKIScnBwDMunHfw9j2vV0KfXjCYIBU8D86EVFFoNVq4ebmhuvXrwMAnJycyn2Zc7JdeXl5uHHjBpycnKDTlS0+2HT4QKEPT3CVUyKqgIxXChoDCFF50mg08PX1LXMItunwYVp24RUvRFTxSJKEGjVqwNPTs8w3UiMqK71eLy95XxY2HT5wX9mFiKii0mq1Za6zE1UUNj3DUpKke/d34VofREREqrDp8AEUKr1w5IOIiEgVNh8+jJNOWXYhIiJSh82HD3nkg2UXIiIiVTB8cIl1IiIiVdl8+JDLLlzng4iISBU2Hz7uTThl2YWIiEgNDB8suxAREanK5sPHvbILRz6IiIjUYPPhg+t8EBERqYvhQ2dc4ZThg4iISA02Hz6gNS4yxrILERGRGmw+fLDsQkREpC6bDx9g2YWIiEhVNh8+JJZdiIiIVMXwwbILERGRqmw+fLDsQkREpC6bDx/GsguXVyciIlIHw4eWIx9ERERqsvnwIS+vzpEPIiIiVdh8+JA0BR8BJ5wSERGpwubDByecEhERqcvmwwfX+SAiIlIXwwfX+SAiIlKVzYcPll2IiIjUZfPhg2UXIiIidTF8FIx8gCMfREREqrD58AF55IPhg4iISA02Hz7uTThl2YWIiEgNDB+ccEpERKQqmw8fLLsQERGpy+bDB9f5ICIiUpfNhw95nQ+GDyIiIlXYfPjgOh9ERETqYvjgOh9ERESqsvnwAS3LLkRERGqy+fBhLLtwnQ8iIiJ1MHxwnQ8iIiJV2Xz4YNmFiIhIXTYfPuSyy12WXYiIiNTA8MF1PoiIiFRl8+EDXOeDiIhIVTYfPrjOBxERkbpsPnxwwikREZG6bD58cHl1IiIidTF8sOxCRESkKovCx/LlyxEQEAAXFxe4uLggKCgIP/74o/z6nTt3EBkZiWrVqsHZ2RkDBw5Eamqq1TttVSy7EBERqcqi8FGrVi3Mnj0bSUlJ+PXXXxESEoK+ffvixIkTAIDXX38d3333HTZt2oSEhARcvXoVAwYMUKTj1sLl1YmIiNSls2TnPn36mDx/9913sXz5cuzbtw+1atXCqlWrsH79eoSEhAAAYmNj4e/vj3379qFDhw7W67UVcXl1IiIidZV6zofBYMCGDRtw69YtBAUFISkpCbm5uQgNDZX3ady4MXx9fZGYmFhsO9nZ2cjIyDB5qIplFyIiIlVZHD6OHTsGZ2dn2NvbY9SoUdi8eTOaNGmClJQU6PV6uLm5mezv5eWFlJSUYtuLiYmBq6ur/PDx8bH4JMpC0nF5dSIiIjVZHD4aNWqEI0eOYP/+/Rg9ejTCw8Nx8uTJUndg0qRJSE9Plx9XrlwpdVulIXHkg4iISFUWzfkAAL1ej/r16wMAWrdujYMHD2LRokUYPHgwcnJykJaWZjL6kZqaCm9v72Lbs7e3h729veU9txZ5nQ+GDyIiIjWUeZ2PvLw8ZGdno3Xr1rCzs0NcXJz82pkzZ3D58mUEBQWV9TCKubfOB8suREREarBo5GPSpEno1asXfH198c8//2D9+vWIj4/HTz/9BFdXVwwfPhzR0dFwd3eHi4sLxo4di6CgoAp7pQvAsgsREZHaLAof169fx4svvohr167B1dUVAQEB+Omnn9C9e3cAwIIFC6DRaDBw4EBkZ2cjLCwMy5YtU6TjVqNj2YWIiEhNkhBClHcnCsvIyICrqyvS09Ph4uKi+PFyr13D+SdDIOn1aPzbUcWPR0RE9Ciy5Pvb5u/twnU+iIiI1GXz4UNe58NgQAUbBCIiInokMXwUjHwAADj6QUREpDibDx/GdT4All6IiIjUYPPhQ17nA+BaH0RERCpg+ChUduHIBxERkfJsPnyA4YOIiEhVNh8+JI0G0BR8DCy7EBERKc7mwwfAJdaJiIjUxPAB3Fti/S7DBxERkdIYPlBo0qmBZRciIiKlMXyAZRciIiI1MXwA9+7vwgmnREREimP4QOGyC0c+iIiIlMbwAXDCKRERkYoYPsAJp0RERGpi+AAnnBIREamJ4QNg2YWIiEhFDB9g2YWIiEhNDB8AoGPZhYiISC0MHwAkrbHswpEPIiIipTF8gOt8EBERqUlX3h0ozk8fH4eTo7Oix7B31KF937r3yi6ccEpERKS4Chs+Lp34C476O4ofx83LCR4FZRfkMXwQEREprcKGjy6DG8K5SlXF2j+flIorp/5GbvZdrvNBRESkogobPhoH1YCLi4ti7WfczMKVU3/jbk4eyy5EREQqstkJpzp9/qnfzc2Tr3bhOh9ERETKs9nwoS0Y7TDk5kHiyAcREZFqbDZ83Bv5MADGdT448kFERKQ4mw0fWrvCZReu80FERKQWmw0f8shHDssuREREarLd8CHP+WDZhYiISE02Gz60epZdiIiIyoPNhg9dwZwPQy7X+SAiIlKTDYeP/MBxN+feOh8suxARESnPZsPHvatdDPfKLhz5ICIiUpzNho8Hll0454OIiEhxths+uLw6ERFRubDd8FEw5yPPICC0nHBKRESkFpsNH8Y5HwBgkDjhlIiISC02Gz50hcKH0Njl/4FzPoiIiBRns+FD0kjQ6CQAgEFTMPLBsgsREZHibDZ8APfmfRiQP/LBsgsREZHybDp8GOd95Elc54OIiEgtNh0+5LU+5AmnDB9ERERKY/gAkAde7UJERKQW2w4f+oI5H1LBx8CyCxERkeJsOnxodQVlF8Hl1YmIiNRi0+HDuMR6HgomnLLsQkREpDjbDh/GCacFHwPX+SAiIlKeReEjJiYGbdu2RdWqVeHp6Yl+/frhzJkzJvvcuXMHkZGRqFatGpydnTFw4ECkpqZatdPWojWu8yEKwgfLLkRERIqzKHwkJCQgMjIS+/btw44dO5Cbm4sePXrg1q1b8j6vv/46vvvuO2zatAkJCQm4evUqBgwYYPWOW4M88iGM63yw7EJERKQ0nSU7b9++3eT5mjVr4OnpiaSkJHTp0gXp6elYtWoV1q9fj5CQEABAbGws/P39sW/fPnTo0MF6PbcCrXHOh8hfZp0jH0RERMor05yP9PR0AIC7uzsAICkpCbm5uQgNDZX3ady4MXx9fZGYmPjANrKzs5GRkWHyUIs88pHHsgsREZFaSh0+8vLyMG7cOHTs2BHNmjUDAKSkpECv18PNzc1kXy8vL6SkpDywnZiYGLi6usoPHx+f0nbJYvK9XQpGPlh2ISIiUl6pw0dkZCSOHz+ODRs2lKkDkyZNQnp6uvy4cuVKmdqzhFYe+WDZhYiISC0WzfkwioqKwvfff4/du3ejVq1a8nZvb2/k5OQgLS3NZPQjNTUV3t7eD2zL3t4e9vb2pelGmemKhA+OfBARESnNopEPIQSioqKwefNm7Ny5E3Xq1DF5vXXr1rCzs0NcXJy87cyZM7h8+TKCgoKs02MrMi4yJg94cJ0PIiIixVk08hEZGYn169dj69atqFq1qjyPw9XVFY6OjnB1dcXw4cMRHR0Nd3d3uLi4YOzYsQgKCqpwV7oA9+Z83M3Lf86yCxERkfIsCh/Lly8HAAQHB5tsj42NRUREBABgwYIF0Gg0GDhwILKzsxEWFoZly5ZZpbPWJs/5MLDsQkREpBaLwocQosR9HBwcsHTpUixdurTUnVKLPOfDUHBeLLsQEREpzqbv7SKPfBQMeLDsQkREpDybDh86fcGcD3nCKcsuRERESrPt8CGPfOSXXTjyQUREpDybDh/a++Z8MHwQEREpz6bDh3Hk426uccLpXbMm1RIREVHp2Xb4KJjzYTAu9AEAeXnF7E1ERETWYNPhQ6u7N+dDgPd3ISIiUoNNhw/j8uoAkKcpWPKEV7wQEREpyrbDh13h8GEHgCMfRERESrPp8KHRaqDR5Jdb5PDBkQ8iIiJF2XT4AApdbqvV52/ghFMiIiJF2Xz4MM77yLNzAAAI3t+FiIhIUTYfPowjH0Jnn7+Bd7YlIiJSlM2HD51d/lofeXb54YMTTomIiJRl8+HDOPKRpzOWXTjyQUREpCSbDx86OXwUTDjlyAcREZGiGD6ME051LLsQERGpgeHDOOfDGD5YdiEiIlKUzYcPec6HlmUXIiIiNdh8+NDdFz64zgcREZGyGD6KjHyw7EJERKQkmw8fWn3BnA/eWI6IiEgVNh8+dDrTe7uw7EJERKQsmw8fWuOltgUjHyy7EBERKcvmw4c854NlFyIiIlUwfNjdN+eD63wQEREpiuGjoOxikHT5GzjyQUREpCibDx/yImOa/PDBCadERETKsvnwYSy7GEc+BCecEhERKYrhwzjywbILERGRKmw+fBgvtTUgfwSEZRciIiJl2Xz4MC4ylicVhA+WXYiIiBTF8FGwvLpx5AMc+SAiIlKUzYcP49UuctmFcz6IiIgUZfPhQ55wKgpGPlh2ISIiUpTNh497Ix8aCHDCKRERkdJsPnwY53wAEoSk44RTIiIihTF82N37CAxaO67zQUREpDCbDx8arQRJyv9znsaOZRciIiKF2Xz4kCSp0P1d7Fh2ISIiUpjNhw/g3v1d8jR2XOeDiIhIYQwfAHTGJdY1dlzng4iISGEMH7h3uW2eVs+yCxERkcIYPlBooTGNjmUXIiIihTF8ANAWmvPBsgsREZGyGD5wb+TDoNFzeXUiIiKFMXzg3oRTrvNBRESkPIYPAFpd4XU+GD6IiIiUxPCBe/d3ydPasexCRESkMIYPFJ7zwbILERGR0iwOH7t370afPn1Qs2ZNSJKELVu2mLwuhMC0adNQo0YNODo6IjQ0FOfOnbNWfxWh4/LqREREqrE4fNy6dQuBgYFYunTpA1//4IMPsHjxYqxYsQL79+9HlSpVEBYWhjt37pS5s0q5d28XPdf5ICIiUpjO0jf06tULvXr1euBrQggsXLgQU6ZMQd++fQEAa9euhZeXF7Zs2YLnnnuubL1ViDznQ6PjhFMiIiKFWXXOR3JyMlJSUhAaGipvc3V1Rfv27ZGYmPjA92RnZyMjI8PkoTbjyIdBy7ILERGR0qwaPlJSUgAAXl5eJtu9vLzk1+4XExMDV1dX+eHj42PNLplFx7ILERGRasr9apdJkyYhPT1dfly5ckX1PphOOGX4ICIiUpJVw4e3tzcAIDU11WR7amqq/Nr97O3t4eLiYvJQm+m9XVh2ISIiUpJVw0edOnXg7e2NuLg4eVtGRgb279+PoKAgax7KqozLqxs0diy7EBERKcziq10yMzNx/vx5+XlycjKOHDkCd3d3+Pr6Yty4cfj3v/+NBg0aoE6dOpg6dSpq1qyJfv36WbPfViWXXbQsuxARESnN4vDx66+/4sknn5SfR0dHAwDCw8OxZs0avPnmm7h16xZGjhyJtLQ0dOrUCdu3b4eDg4P1em1l2kJzPsDwQUREpCiLw0dwcDCEEMW+LkkSZs2ahVmzZpWpY2rSmcz5YPggIiJSUrlf7VIRFJ7zwQmnREREymL4wH1lF044JSIiUhTDBwpPONWz7EJERKQwhg8UnvOhA+6y7EJERKQkhg/cK7sISQtDXvGTaYmIiKjsGD5wb8IpABgEPxIiIiIl8ZsWgFZXKHzkSeXYEyIiokcfwwfy1ybR6vJDB0c+iIiIlMVv2gLyFS+SDiIvr5x7Q0RE9Ohi+CjAJdaJiIjUwfBRQFcofHCtDyIiIuUwfBTQFqz1YdDYQXCVUyIiIsUwfBQwXm6bX3bhQmNERERKYfgooNMXrHLKJdaJiIgUxfBRwDjnI7/swpEPIiIipTB8FNAWvr8LRz6IiIgUw/BR4N6cD5ZdiIiIlMTwUaDwpba8sy0REZFyGD4KyJfaarnOBxERkZIYPgqYLDLGdT6IiIgUw/BRwKTswnU+iIiIFMPwUaDwImMsuxARESmH4aOAVmdcXl3PdT6IiIgUxPBR4N7IB9f5ICIiUhLDRwGtcc6HlhNOiYiIlMTwUcB0kTGWXYiIiJTC8FFAJ8/5sGPZhYiISEEMHwW0heZ8sOxCRESkHIaPAvfW+WDZhYiISEkMHwV0xrvaall2ISIiUhLDRwHj1S4GLq9ORESkKIaPAlxenYiISB0MHwVMllfnyAcREZFiGD4KGOd8CI0OBi6vTkREpBiGjwLGOR8AYMjNK8eeEBERPdoYPgroCoePHIYPIiIipTB8FJA0EjTIDx25uZzzQUREpBSGj0K0yA8dhrsc+SAiIlIKw0chGik/dNzNEeXcEyIiokcXw0ch2oLwYTBw5IOIiEgpDB+FaDX5Ix6GXI58EBERKYXhoxDjyAeX+SAiIlIOw0ch8siHgSMfRERESmH4KEQOH3cZPoiIiJTC8FGItuDT4K1diIiIlMPwUYhWWzDywYtdiIiIFMPwUYhx5MPACadERESKYfgoRJt/Y1sYhFS+HSEiInqEMXwUotPl/9dgYPggIiJSCsNHIfLIRx7DBxERkVIUCx9Lly6Fn58fHBwc0L59exw4cECpQ1mNVpsfOlh2ISIiUo4i4WPjxo2Ijo7G9OnTcejQIQQGBiIsLAzXr19X4nBWo9MVhA+OfBARESlGp0Sj8+fPx4gRIzBs2DAAwIoVK/DDDz9g9erVeOutt8xq439pqcjNu61E94plENkAqiLXIPBXWoqqxyYiIqrM/sn4x+x9rR4+cnJykJSUhEmTJsnbNBoNQkNDkZiYWGT/7OxsZGdny88zMjIAAE9t6wuto9ba3XuovlfbowaeRwp88OWEI6oem4iIqDLLyrll9r5WDx83b96EwWCAl5eXyXYvLy+cPn26yP4xMTGYOXOmtbtRKsnV/0DNP3IhNHbI0+rLuztERESVRp421+x9FSm7WGLSpEmIjo6Wn2dkZMDHxwfbntqKqi5VVe/PnZsZyPnL/KEjIiIiAv65pcWEWPP2tXr4qF69OrRaLVJTU022p6amwtvbu8j+9vb2sLe3L7Ld3c0LLi4u1u5eydy8gfrqH5aIiKgyM06bMIfVr3bR6/Vo3bo14uLi5G15eXmIi4tDUFCQtQ9HRERElYwiZZfo6GiEh4ejTZs2aNeuHRYuXIhbt27JV78QERGR7VIkfAwePBg3btzAtGnTkJKSghYtWmD79u1FJqESERGR7ZGEEKK8O1FYRkYGXF1dkZ6eXj5zPoiIiMhilnx/894uREREpCqGDyIiIlIVwwcRERGpiuGDiIiIVMXwQURERKpi+CAiIiJVMXwQERGRqhg+iIiISFUMH0RERKQqRZZXLwvjgquW3B2PiIiIypfxe9uchdMrXPj466+/AAA+Pj7l3BMiIiKy1F9//QVXV9eH7lPhwoe7uzsA4PLlyyV2/lHUtm1bHDx4sLy7US5s9dxt9bwBnrstnrutnjfw6J97eno6fH195e/xh6lw4UOjyZ+G4urqapM3ltNqtTZ53oDtnrutnjfAc7fFc7fV8wZs59yN3+MP3UeFfpAFIiMjy7sL5cZWz91WzxvgudsiWz1vwLbP/X6SMGdmiIosuSUvERERVQyWfH9XuJEPe3t7TJ8+Hfb29uXdFSIiIjKTJd/fFW7kg4iIiB5tFW7kg4iIiB5tDB9ERESkKoYPK1q6dCn8/Pzg4OCA9u3b48CBA/Jrr7zyCurVqwdHR0d4eHigb9++OH36dIltbtq0CY0bN4aDgwOaN2+Obdu2mbwuhMC0adNQo0YNODo6IjQ0FOfOnbP6uZXkYecOAImJiQgJCUGVKlXg4uKCLl26ICsr66FtxsfHo1WrVrC3t0f9+vWxZs0ai4+rtIcd/8KFC+jfvz88PDzg4uKCQYMGITU1tcQ2K8N57969G3369EHNmjUhSRK2bNkiv5abm4uJEyeiefPmqFKlCmrWrIkXX3wRV69eLbHdin7uDztvAIiIiIAkSSaPnj17lthuRT9voORzz8zMRFRUFGrVqgVHR0c0adIEK1asKLHd3377DZ07d4aDgwN8fHzwwQcfFNmnpL8HlRQTE4O2bduiatWq8PT0RL9+/XDmzBmTfT766CMEBwfDxcUFkiQhLS3NrLYrw89dMYKsYsOGDUKv14vVq1eLEydOiBEjRgg3NzeRmpoqhBBi5cqVIiEhQSQnJ4ukpCTRp08f4ePjI+7evVtsm3v27BFarVZ88MEH4uTJk2LKlCnCzs5OHDt2TN5n9uzZwtXVVWzZskUcPXpUPPPMM6JOnToiKytL8XM2Kunc9+7dK1xcXERMTIw4fvy4OH36tNi4caO4c+dOsW3+/vvvwsnJSURHR4uTJ0+KDz/8UGi1WrF9+3azj6u0hx0/MzNT1K1bV/Tv31/89ttv4rfffhN9+/YVbdu2FQaDodg2K8N5CyHEtm3bxOTJk8U333wjAIjNmzfLr6WlpYnQ0FCxceNGcfr0aZGYmCjatWsnWrdu/dA2K8O5P+y8hRAiPDxc9OzZU1y7dk1+/O9//3tom5XhvIUo+dxHjBgh6tWrJ3bt2iWSk5PFypUrhVarFVu3bi22zfT0dOHl5SWGDh0qjh8/Lr744gvh6OgoVq5cKe9jzt+DSgoLCxOxsbHi+PHj4siRI+Kpp54Svr6+IjMzU95nwYIFIiYmRsTExAgA4u+//y6x3cryc1eK1cPHkiVLRO3atYW9vb1o166d2L9/v/xaVlaWGDNmjHB3dxdVqlQRAwYMECkpKSW2+eWXX4pGjRoJe3t70axZM/HDDz+YvJ6XlyemTp0qvL29hYODg+jWrZs4e/astU/todq1ayciIyPl5waDQdSsWVPExMQ8cP+jR48KAOL8+fPFtjlo0CDRu3dvk23t27cXr7zyihAi/7y9vb3FnDlz5NfT0tKEvb29+OKLL8pyOhYp6dzbt28vpkyZYlGbb775pmjatKnJtsGDB4uwsDCzj6u0hx3/p59+EhqNRqSnp8uvp6WlCUmSxI4dO4ptszKc9/0e9EV0vwMHDggA4tKlS8XuU9nOvbjw0bdvX4vaqWznLcSDz71p06Zi1qxZJttatWolJk+eXGw7y5YtE4899pjIzs6Wt02cOFE0atRIfl7S34Nqu379ugAgEhISiry2a9cus8NHZfy5W5NVyy4bN25EdHQ0pk+fjkOHDiEwMBBhYWG4fv06AOD111/Hd999h02bNiEhIQFXr17FgAEDHtrm3r17MWTIEAwfPhyHDx9Gv3790K9fPxw/flze54MPPsDixYuxYsUK7N+/H1WqVEFYWBju3LljzdMrVk5ODpKSkhAaGipv02g0CA0NRWJiYpH9b926hdjYWNSpU8fkHjZ+fn6YMWOG/DwxMdGkTQAICwuT20xOTkZKSorJPq6urmjfvv0Dj6uEks79+vXr2L9/Pzw9PfHEE0/Ay8sLXbt2xS+//GLSTnBwMCIiIuTnJZ27pZ+5tZV0/OzsbEiSZHLJmYODAzQajcm5V7bzLq309HRIkgQ3Nzd526N67vHx8fD09ESjRo0wevRo+X5VRo/qeT/xxBP49ttv8eeff0IIgV27duHs2bPo0aOHvE9ERASCg4Pl54mJiejSpQv0er28LSwsDGfOnMHff/8t7/Owz0dt6enpAGDWEuKFPao/99KyaviYP38+RowYgWHDhsn1PicnJ6xevRrp6elYtWoV5s+fj5CQELRu3RqxsbHYu3cv9u3bV2ybixYtQs+ePTFhwgT4+/vjnXfeQatWrbBkyRIA+XMeFi5ciClTpqBv374ICAjA2rVrcfXq1SI1SaXcvHkTBoMBXl5eJtu9vLyQkpIiP1+2bBmcnZ3h7OyMH3/8ETt27DD5n65evXqoXr26/DwlJeWhbRr/W9JxlVTSuf/+++8AgBkzZmDEiBHYvn07WrVqhW7dupnMTfH19UWNGjXk58Wde0ZGBrKyssz+zJVS0vE7dOiAKlWqYOLEibh9+zZu3bqF8ePHw2Aw4Nq1a/L+le28S+POnTuYOHEihgwZYrLw0KN47j179sTatWsRFxeH999/HwkJCejVqxcMBoO8z6N43gDw4YcfokmTJqhVqxb0ej169uyJpUuXokuXLvI+NWrUgK+vr/y8uHM3vvawfcrj3PPy8jBu3Dh07NgRzZo1s+i9j+rPvbSsdm8XY0qbNGmSvK1wSmvXrh1yc3NNUlzjxo3h6+uLxMREdOjQAUD+v/4jIiLkEYDExERER0ebHCssLEwOFiX96/+5556z1imW2dChQ9G9e3dcu3YNc+fOxaBBg7Bnzx44ODgAAOLi4sq5h9aXl5cHIH/C7bBhwwAALVu2RFxcHFavXo2YmBgAwNq1a8utj0rw8PDApk2bMHr0aCxevBgajQZDhgxBq1atTO578Kid9/1yc3MxaNAgCCGwfPlyk9cexXMv/PdN8+bNERAQgHr16iE+Ph7dunUD8GieN5AfPvbt24dvv/0WtWvXxu7duxEZGYmaNWvKfz8b/3+vrCIjI3H8+PEiI7fmeFR/7qVltfDxsJR2+vRppKSkQK/Xmwy7Gl8vnOIq47/+q1evDq1WW+RKhtTUVHh7e8vPXV1d4erqigYNGqBDhw547LHHsHnzZgwZMuSB7Xp7ez+0TeN/U1NTTRJ1amoqWrRoYY1TK1FJ527sV5MmTUxe9/f3x+XLl4ttt7hzd3FxgaOjI7RarVmfuVLM+Zn36NEDFy5cwM2bN6HT6eDm5gZvb2/UrVu32HYr+nlbwhg8Ll26hJ07d5a43PKjdO5GdevWRfXq1XH+/Hk5fNzvUTjvrKwsvP3229i8eTN69+4NAAgICMCRI0cwd+7cIuUFo+LO3fjaw/ZR+9yjoqLw/fffY/fu3ahVq1aZ23sUfu5lUeEutY2Li0NUVFR5d8Mier0erVu3Nhm5yMvLQ1xcHIKCgh74HpE/2RfZ2dnFthsUFFRkNGTHjh1ym3Xq1IG3t7fJPhkZGdi/f3+xx7W2ks7dz88PNWvWLHJp2tmzZ1G7du1i2y3p3EvzmVuTJcevXr063NzcsHPnTly/fh3PPPNMse1W9PM2lzF4nDt3Dv/9739RrVq1Et/zqJx7YX/88Qf++usvk38c3O9ROO/c3Fzk5uYWuZupVquVRz8fJCgoCLt370Zubq68bceOHWjUqBEee+wxeZ+HfT5KE0IgKioKmzdvxs6dO1GnTh2rtPso/NzLxFozV7Ozs4VWqy0yA/rFF18UzzzzjIiLi3vgLGBfX18xf/78Ytv18fERCxYsMNk2bdo0ERAQIIQQ4sKFCwKAOHz4sMk+Xbp0Ea+++mppT8diGzZsEPb29mLNmjXi5MmTYuTIkcLNzU2kpKSICxcuiPfee0/8+uuv4tKlS2LPnj2iT58+wt3d3eSSqZCQEPHhhx/Kz/fs2SN0Op2YO3euOHXqlJg+ffoDL7V1c3MTW7dulS/nLI9LbYs7dyHyL0NzcXERmzZtEufOnRNTpkwRDg4OJlf6vPDCC+Ktt96SnxsvQ5swYYI4deqUWLp06QMvQ3vYccv7vFevXi0SExPF+fPnxWeffSbc3d1FdHS0SRuV8byFEOKff/4Rhw8fFocPHxYAxPz588Xhw4fFpUuXRE5OjnjmmWdErVq1xJEjR0wuOy18VUNlPPeHnfc///wjxo8fLxITE0VycrL473//K1q1aiUaNGhgcll5ZTzvks5dCCG6du0qmjZtKnbt2iV+//13ERsbKxwcHMSyZcvkNt566y3xwgsvyM/T0tKEl5eXeOGFF8Tx48fFhg0bhJOTU5FLbUv6e1BJo0ePFq6uriI+Pt7kd/n27dvyPteuXROHDx8WH3/8sQAgdu/eLQ4fPiz++usveZ/K+nNXilUvtW3Xrp2IioqSnxsMBvH444+LmJgYkZaWJuzs7MRXX30lv3769GkBQCQmJhbb5qBBg8TTTz9tsi0oKKjI5aZz586VX09PT1f9clMhhPjwww+Fr6+v0Ov1ol27dmLfvn1CCCH+/PNP0atXL+Hp6Sns7OxErVq1xPPPPy9Onz5t8v7atWuL6dOnm2z78ssvRcOGDYVerxdNmzYt9jJjLy8vYW9vL7p16ybOnDmj6Hk+SHHnbhQTEyNq1aolnJycRFBQkPj5559NXu/atasIDw832bZr1y7RokULodfrRd26dUVsbKzFx1Xaw44/ceJE4eXlJezs7ESDBg3EvHnzRF5ensn7K+t5Gy8pvP8RHh4ukpOTH/gaALFr1y65jcp47g8779u3b4sePXoIDw8PYWdnJ2rXri1GjBhR5IuiMp63sY/FnbsQ+V/AERERombNmsLBwUE0atSoyO98eHi46Nq1q0m7R48eFZ06dRL29vbi8ccfF7Nnzy5y7JL+HlRScb/LhX9G06dPL3GfyvpzV4pVw0dJKW3UqFHC19dX7Ny5U/z6668iKChIBAUFmbRRWf/1T0REROax2oRTABg8eDBu3LiBadOmISUlBS1atMD27dvlyaALFiyARqPBwIEDkZ2djbCwMCxbtsykDeMEPaMnnngC69evx5QpU/D222+jQYMG2LJli8llTm+++SZu3bqFkSNHIi0tDZ06dcL27dvlq0iIiIio4pCEEKK8O0FERES2o8Jd7UJERESPNoYPIiIiUhXDBxEREamK4YOIiIhUxfBBREREqmL4ICIiIlVZLXwsXboUfn5+cHBwQPv27XHgwAH5tY8++gjBwcFwcXGBJElIS0szq801a9YUuREdERERVW5WCR8bN25EdHQ0pk+fjkOHDiEwMBBhYWG4fv06AOD27dvo2bMn3n77bWscjoiIiCoxq4SP+fPnY8SIERg2bBiaNGmCFStWwMnJCatXrwYAjBs3Dm+99RY6dOhQpuNcuHABffv2hZeXF5ydndG2bVv897//NdnHz88P7733Hl566SVUrVoVvr6++Oijj8p0XCIiIrKeMoePnJwcJCUlITQ09F6jGg1CQ0ORmJhY1uZNZGZm4qmnnkJcXBwOHz6Mnj17ok+fPrh8+bLJfvPmzUObNm1w+PBhjBkzBqNHjy5yS3ciIiIqH2UOHzdv3oTBYJDv32Lk5eWFlJSUsjZvIjAwEK+88gqaNWuGBg0a4J133kG9evXw7bffmuz31FNPYcyYMahfvz4mTpyI6tWrY9euXVbtCxEREZVOhbjapVevXnB2doazszOaNm1a7H6ZmZkYP348/P394ebmBmdnZ5w6darIyEdAQID8Z0mS4O3tLc8/ISIiovJV5rvaVq9eHVqtFqmpqSbbU1NT4e3tbVYbn3zyCbKysgAAdnZ2xe43fvx47NixA3PnzkX9+vXh6OiIZ599Fjk5OSb73d+GJEnIy8szqy9ERESkrDKHD71ej9atWyMuLg79+vUDAOTl5SEuLg5RUVFmtfH444+btd+ePXsQERGB/v37A8gfCbl48WJpuk1ERETlpMzhAwCio6MRHh6ONm3aoF27dli4cCFu3bqFYcOGAQBSUlKQkpKC8+fPAwCOHTsmX4ni7u5u9nEaNGiAb775Bn369IEkSZg6dSpHNIiIiCoZq4SPwYMH48aNG5g2bRpSUlLQokULbN++XZ6EumLFCsycOVPev0uXLgCA2NhYREREFNtuXl4edLp7XZw/fz5eeuklPPHEE6hevTomTpyIjIwMa5wCERERqUQSQojy7kRxZs+ejc8//xzHjx8v764QERGRlVhl5MPabt++jdOnTyM2Nha9evUq7+4QERGRFVWIS23v99FHHyE0NBSBgYGYNm1aeXeHiIiIrKhCl12IiIjo0VMhRz6IiIjo0cXwQURERKpSJHzExMSgbdu2qFq1Kjw9PdGvX78iN3a7c+cOIiMjUa1aNTg7O2PgwIEmq6QePXoUQ4YMgY+PDxwdHeHv749FixYVOVZ8fDxatWoFe3t71K9fH2vWrFHilIiIiMhKFAkfCQkJiIyMxL59+7Bjxw7k5uaiR48euHXrlrzP66+/ju+++w6bNm1CQkICrl69igEDBsivJyUlwdPTE59//jlOnDiByZMnY9KkSViyZIm8T3JyMnr37o0nn3wSR44cwbhx4/Dyyy/jp59+UuK0iIiIyApUmXB648YNeHp6IiEhAV26dEF6ejo8PDywfv16PPvsswCA06dPw9/fH4mJiejQocMD24mMjMSpU6ewc+dOAMDEiRPxww8/mKwD8txzzyEtLQ3bt29X+rSIiIioFFSZ85Geng4A8lLqSUlJyM3NRWhoqLxP48aN4evri8TExIe2U3g59sTERJM2ACAsLOyhbRAREVH5UnyRsby8PIwbNw4dO3ZEs2bNAOTf60Wv18PNzc1kXy8vL6SkpDywnb1792Ljxo344Ycf5G0pKSnyEu6F28jIyEBWVhYcHR2tezJERERUZoqHj8jISBw/fhy//PJLqds4fvw4+vbti+nTp6NHjx5W7B0RERGpTdGyS1RUFL7//nvs2rULtWrVkrd7e3sjJycHaWlpJvunpqbC29vbZNvJkyfRrVs3jBw5ElOmTDF5zdvb2+QKGWMbLi4uHPUgIiKqoBQJH0IIREVFYfPmzdi5cyfq1Klj8nrr1q1hZ2eHuLg4eduZM2dw+fJlBAUFydtOnDiBJ598EuHh4Xj33XeLHCcoKMikDQDYsWOHSRtERERUsShytcuYMWOwfv16bN26FY0aNZK3u7q6yiMSo0ePxrZt27BmzRq4uLhg7NixAPLndgD5pZaQkBCEhYVhzpw5chtarRYeHh4A8i+1bdasGSIjI/HSSy9h586dePXVV/HDDz8gLCzM2qdFREREVqBI+JAk6YHbY2NjERERASB/kbE33ngDX3zxBbKzsxEWFoZly5bJZZcZM2Zg5syZRdqoXbs2Ll68KD+Pj4/H66+/jpMnT6JWrVqYOnWqfAwiIiKqeHhjOSIiIlIV7+1CREREqmL4ICIiIlUxfBAREZGqGD6IiIhIVQwfREREpCqGDyIiIlIVwwcRERGpiuGDiIiIVMXwQURERKpi+CAiIiJVMXwQERGRqv4fshgRC8y5xw4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } + ], + "source": [ + "df_hd2.plot()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" }, - "nbformat": 4, - "nbformat_minor": 4 + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.15" + } + }, + "nbformat": 4, + "nbformat_minor": 4 } From 2a6ada9fde69495df11db6eec0af9a8423ae68bb Mon Sep 17 00:00:00 2001 From: mena138 Date: Fri, 6 Mar 2026 11:37:02 +0100 Subject: [PATCH 15/33] wip hs --- .../controller/models/heat_storage.py | 42 +- tests/models/test_simple_heat_storage.py | 54 + tutorials/heat_storage_tutorial.ipynb | 4039 ++++++++++++----- tutorials/hp_elb_hd.ipynb | 952 ++-- 4 files changed, 3598 insertions(+), 1489 deletions(-) diff --git a/src/pandaprosumer/controller/models/heat_storage.py b/src/pandaprosumer/controller/models/heat_storage.py index 7ce7acb..bb69895 100644 --- a/src/pandaprosumer/controller/models/heat_storage.py +++ b/src/pandaprosumer/controller/models/heat_storage.py @@ -58,11 +58,17 @@ def _use_fluid_mix_mode(self, prosumer): return cap is not None and not (isinstance(cap, float) and np.isnan(cap)) and cap > 0 def _init_fluid_state_from_element(self, prosumer): - """Initialize uniform tank temperature from element or keep existing.""" - init_t = self._get_element_param(prosumer, "init_temperature_c") - if init_t is not None and not (isinstance(init_t, float) and np.isnan(init_t)): - self._temperature = float(init_t) - if self._temperature is None: + """Initialize uniform tank temperature from element if not already set.""" + # Only (re)initialize when we don't yet have a valid internal temperature. + needs_init = ( + self._temperature is None + or (isinstance(self._temperature, float) and np.isnan(self._temperature)) + ) + if needs_init: + init_t = self._get_element_param(prosumer, "init_temperature_c") + if init_t is not None and not (isinstance(init_t, float) and np.isnan(init_t)): + self._temperature = float(init_t) + if self._temperature is None or (isinstance(self._temperature, float) and np.isnan(self._temperature)): self._temperature = 40.0 # default fallback @property @@ -172,6 +178,32 @@ def q_to_deliver_kw(self, prosumer): for responder in self._get_generic_mapped_responders(prosumer): q_to_deliver_kw += responder.q_to_receive_kw(prosumer) return q_to_deliver_kw + + def _t_m_to_receive_init(self, prosumer): + """ + Return the expected received Feed temperature, return temperature and mass flow in °C and kg/s + + :param prosumer: The prosumer object + :return: A Tuple (Feed temperature, return temperature and mass flow) + """ + # FIXME + t_feed_c = self._get_element_param(prosumer, "max_temp_c") + t_return_c = self._get_element_param(prosumer, "min_temp_c") + q_to_receive_kw = self.q_to_receive_kw(prosumer) + mdot_kg_per_s = q_to_receive_kw * 1000 / (4180.0 * (t_feed_c - t_return_c)) if (t_feed_c is not None and t_return_c is not None and t_feed_c > t_return_c) else 0.0 + return t_feed_c, t_return_c, mdot_kg_per_s + + def t_m_to_receive_for_t(self, prosumer, t_feed_c): + """ + For a given feed temperature in °C, calculate the required feed mass flow and the expected return temperature + if this feed temperature is provided. + + :param prosumer: The prosumer object + :param t_feed_c: The feed temperature + :return: A Tuple (Feed temperature, return temperature and mass flow) + """ + # FIXME + return super().t_m_to_receive_for_t(prosumer, t_feed_c) def _save_state(self): """Backup states before run.""" diff --git a/tests/models/test_simple_heat_storage.py b/tests/models/test_simple_heat_storage.py index 3aa7b9d..417c1b2 100644 --- a/tests/models/test_simple_heat_storage.py +++ b/tests/models/test_simple_heat_storage.py @@ -366,3 +366,57 @@ def test_fluid_mix_mode_with_heat_losses(self): assert ctrl.result_mass_flow_with_temp[0][FluidMixMapping.MASS_FLOW_KEY] == 0.0 assert ctrl.result_mass_flow_with_temp[0][FluidMixMapping.TEMPERATURE_KEY] == pytest.approx(t_tank_expected_c) assert ctrl.applied is True + + def test_fluid_mix_mode_simple_charge_discharge(self): + """Simple direct FluidMix charge then discharge example.""" + prosumer = create_empty_prosumer_container(fluid="water") + resol_s = 60 * 5 + start = "2020-01-01 00:00:00" + end = "2020-01-01 02:00:00" + period = create_period( + prosumer, + resol_s, + name="foo", + start=start, + end=end, + timezone="utc", + ) + + idx = create_controlled_heat_storage( + prosumer, + q_capacity_kwh=10.0, + capacity_kg=1000.0, + init_temperature_c=50.0, + min_temp_c=50.0, + max_temp_c=70.0, + period=period, + ) + ctrl = prosumer.controller.iloc[idx].object + + # Build a time index consistent with the period definition + times = pd.date_range(start=start, end=end, freq=f"{resol_s}S", tz="utc", inclusive="left") + + mdot = np.zeros(len(times)) + t_in = np.full(len(times), 50.0) + half = len(times) // 2 + mdot[:half] = 0.5 + t_in[:half] = 70.0 + mdot[half:] = 0.5 + t_in[half:] = 50.0 + + socs = [] + q_del = [] + for ts, md, ti in zip(times, mdot, t_in): + ctrl.time_step(prosumer, ts) + ctrl.input_mass_flow_with_temp = { + FluidMixMapping.TEMPERATURE_KEY: float(ti), + FluidMixMapping.MASS_FLOW_KEY: float(md), + } + ctrl.control_step(prosumer) + soc, qk = ctrl.step_results[0] + socs.append(soc) + q_del.append(qk) + + assert max(socs) > min(socs) + assert any(q != 0.0 for q in q_del) # Check that at least one timestep has a non-zero delivery + \ No newline at end of file diff --git a/tutorials/heat_storage_tutorial.ipynb b/tutorials/heat_storage_tutorial.ipynb index 8e04ffb..5772b6d 100644 --- a/tutorials/heat_storage_tutorial.ipynb +++ b/tutorials/heat_storage_tutorial.ipynb @@ -1,1091 +1,3068 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# PANDAPROSUMER EXAMPLE: SIMPLE HEAT STORAGE (TWO MODES)\n", - "\n", - "## DESCRIPTION\n", - "This tutorial illustrates the **Simple Heat Storage** controller, which can be used in two ways:\n", - "\n", - "1. **GenericMapping (power-only)**: The storage receives and delivers power only (`q_received_kw` in; `soc`, `q_delivered_kw` out). Suitable when upstream/downstream elements work with power only.\n", - "\n", - "2. **FluidMixMapping (uniform tank)**: The storage is modelled as a uniform-temperature tank with temperature and mass-flow in/out. Use when connecting to fluid-based elements (e.g. heat pump, heat demand with fluid). Optional `min_temp_c` and `max_temp_c` on the element allow SOC to be derived from tank temperature.\n", - "\n", - "Time series data is defined in the notebook (no external files). After each part we run the timeseries and plot SOC and delivered power." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Glossary\n", - "- **Network**: A configuration of connected energy generators and consumers.\n", - "- **Element**: A single generator or consumer.\n", - "- **Controller**: The logic that defines an element's behaviour.\n", - "- **Prosumer**: Container holding elements and their controllers.\n", - "- **Const Profile Controller**: Distributes time-dependent input data to element controllers.\n", - "- **Mapping**: Connection between two controllers (GenericMapping for power/data; FluidMixMapping for temperature and mass flow)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "# Part 1: Power-only mode (GenericMapping)\n", - "\n", - "Chain: **Const profile (supply power)** → **Heat storage** → **Heat demand**.\n", - "\n", - "The const profile provides a supply power and demand data; the storage receives power and delivers to the demand." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "import os\n", - "import numpy as np\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "from pandapower.timeseries.data_sources.frame_data import DFData\n", - "\n", - "current_directory = os.getcwd()\n", - "parent_directory = os.path.dirname(current_directory)\n", - "sys.path.insert(0, parent_directory)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# Time range and resolution\n", - "start = '2020-01-01 00:00:00'\n", - "end = '2020-01-01 23:59:59'\n", - "time_resolution_s = 900\n", - "dur = pd.date_range(start=start, end=end, freq=f'{time_resolution_s}s', tz='utc')\n", - "n_steps = len(dur)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ + "cells": [ { - "data": { - "application/vnd.microsoft.datawrangler.viewer.v0+json": { - "columns": [ - { - "name": "index", - "rawType": "datetime64[ns, UTC]", - "type": "unknown" - }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# PANDAPROSUMER EXAMPLE: SIMPLE HEAT STORAGE (TWO MODES)\n", + "\n", + "## DESCRIPTION\n", + "This tutorial illustrates the **Simple Heat Storage** controller, which can be used in two ways:\n", + "\n", + "1. **GenericMapping (power-only)**: The storage receives and delivers power only (`q_received_kw` in; `soc`, `q_delivered_kw` out). Suitable when upstream/downstream elements work with power only.\n", + "\n", + "2. **FluidMixMapping (uniform tank)**: The storage is modelled as a uniform-temperature tank with temperature and mass-flow in/out. Use when connecting to fluid-based elements (e.g. heat pump, heat demand with fluid). Optional `min_temp_c` and `max_temp_c` on the element allow SOC to be derived from tank temperature.\n", + "\n", + "Time series data is defined in the notebook (no external files). After each part we run the timeseries and plot SOC and delivered power." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Glossary\n", + "- **Network**: A configuration of connected energy generators and consumers.\n", + "- **Element**: A single generator or consumer.\n", + "- **Controller**: The logic that defines an element's behaviour.\n", + "- **Prosumer**: Container holding elements and their controllers.\n", + "- **Const Profile Controller**: Distributes time-dependent input data to element controllers.\n", + "- **Mapping**: Connection between two controllers (GenericMapping for power/data; FluidMixMapping for temperature and mass flow)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "# Part 1: Power-only mode (GenericMapping)\n", + "\n", + "Chain: **Const profile (supply power)** → **Heat storage** → **Heat demand**.\n", + "\n", + "The const profile provides a supply power and demand data; the storage receives power and delivers to the demand." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from pandapower.timeseries.data_sources.frame_data import DFData\n", + "\n", + "current_directory = os.getcwd()\n", + "parent_directory = os.path.dirname(current_directory)\n", + "sys.path.insert(0, parent_directory)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Time range and resolution\n", + "start = '2020-01-01 00:00:00'\n", + "end = '2020-01-01 23:59:59'\n", + "time_resolution_s = 900\n", + "dur = pd.date_range(start=start, end=end, freq=f'{time_resolution_s}s', tz='utc')\n", + "n_steps = len(dur)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ { - "name": "supply_power", - "rawType": "float64", - "type": "float" - }, + "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ + { + "name": "index", + "rawType": "datetime64[ns, UTC]", + "type": "unknown" + }, + { + "name": "supply_power", + "rawType": "float64", + "type": "float" + }, + { + "name": "demand_power", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_feed_demand_c", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_return_demand_c", + "rawType": "float64", + "type": "float" + } + ], + "ref": "a846ae5b-31c7-4a02-b4a6-05a3509dee6c", + "rows": [ + [ + "2020-01-01 00:00:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 00:15:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 00:30:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 00:45:00+00:00", + "25.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:00:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:15:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:30:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 01:45:00+00:00", + "25.0", + "60.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 02:00:00+00:00", + "0.0", + "0.0", + "80.0", + "20.0" + ], + [ + "2020-01-01 02:15:00+00:00", + "0.0", + "0.0", + "80.0", + "20.0" + ] + ], + "shape": { + "columns": 4, + "rows": 10 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
supply_powerdemand_powert_feed_demand_ct_return_demand_c
2020-01-01 00:00:00+00:0025.00.080.020.0
2020-01-01 00:15:00+00:0025.00.080.020.0
2020-01-01 00:30:00+00:0025.00.080.020.0
2020-01-01 00:45:00+00:0025.00.080.020.0
2020-01-01 01:00:00+00:0025.060.080.020.0
2020-01-01 01:15:00+00:0025.060.080.020.0
2020-01-01 01:30:00+00:0025.060.080.020.0
2020-01-01 01:45:00+00:0025.060.080.020.0
2020-01-01 02:00:00+00:000.00.080.020.0
2020-01-01 02:15:00+00:000.00.080.020.0
\n", + "
" + ], + "text/plain": [ + " supply_power demand_power t_feed_demand_c \\\n", + "2020-01-01 00:00:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 00:15:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 00:30:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 00:45:00+00:00 25.0 0.0 80.0 \n", + "2020-01-01 01:00:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 01:15:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 01:30:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 01:45:00+00:00 25.0 60.0 80.0 \n", + "2020-01-01 02:00:00+00:00 0.0 0.0 80.0 \n", + "2020-01-01 02:15:00+00:00 0.0 0.0 80.0 \n", + "\n", + " t_return_demand_c \n", + "2020-01-01 00:00:00+00:00 20.0 \n", + "2020-01-01 00:15:00+00:00 20.0 \n", + "2020-01-01 00:30:00+00:00 20.0 \n", + "2020-01-01 00:45:00+00:00 20.0 \n", + "2020-01-01 01:00:00+00:00 20.0 \n", + "2020-01-01 01:15:00+00:00 20.0 \n", + "2020-01-01 01:30:00+00:00 20.0 \n", + "2020-01-01 01:45:00+00:00 20.0 \n", + "2020-01-01 02:00:00+00:00 20.0 \n", + "2020-01-01 02:15:00+00:00 20.0 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Part 1 input: supply power (to storage) and demand (for heat demand element)\n", + "supply_kw = np.zeros(n_steps)\n", + "supply_kw[0:8] = 25.0 # charge 25 kW for first 2 h\n", + "supply_kw[20:24] = 20.0 # charge again later\n", + "demand_kw = np.zeros(n_steps)\n", + "demand_kw[4:8] = 60.0 # demand spike 60 kW for 4 steps\n", + "demand_kw[12:16] = 25.0\n", + "df1 = pd.DataFrame({\n", + " 'supply_power': supply_kw,\n", + " 'demand_power': demand_kw,\n", + " 't_feed_demand_c': 80.0,\n", + " 't_return_demand_c': 20.0\n", + "}, index=dur)\n", + "profile1 = DFData(df1)\n", + "df1.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ { - "name": "demand_power", - "rawType": "float64", - "type": "float" + "data": { + "text/plain": [ + "array([, , , ], dtype=object)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" }, { - "name": "t_feed_demand_c", - "rawType": "float64", - "type": "float" - }, + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0MAAAIaCAYAAADiNpZkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdMVJREFUeJzt3XlcVmX+//H3DbKvoqwKrmlquZvZopYmOo1le9av1BybCiszK51yywprymwxq5nUNrNs0hb9OhkJToaWa5k7aVayqAkIKCCc3x94H70TkRu4F7hfz8fjfsh9zrmvcx0uTN5d1/kci2EYhgAAAADAw3i5ugMAAAAA4AqEIQAAAAAeiTAEAAAAwCMRhgAAAAB4JMIQAAAAAI9EGAIAAADgkQhDAAAAADwSYQgAAACAR2rk6g7UhfLych04cEAhISGyWCyu7g4AAAAAFzEMQ0ePHlVcXJy8vKqe+2kQYejAgQOKj493dTcAAAAAuIlff/1VzZs3r/KYBhGGQkJCJFVccGhoqIt7AwAAAMBV8vPzFR8fb2aEqjSIMGRdGhcaGkoYAgAAAFCt22caRBiymvbZT/ILDHZ1NxzGr5GX7rq0lRKaBLq6KwAAAEC916DC0McbfpOXX8MOCsUnypR8fWdXdwMAAACo9xpUGBp7RVsFBDXMmaHtWfla/mOWDuQed3VXAAAAgAahQYWhe/q3abD3DK3akaPlP2bpUEGxq7sCAABQZ8rKylRaWurqbqCe8fHxkbe3d63baVBhqCFrGuwnSYQhAADQIBiGoaysLOXm5rq6K6inwsPDFRMTU6vnjBKG6ommIb6SpMMFJSovN+TlxcNlAQBA/WUNQlFRUQoMDKzVL7TwLIZhqKioSDk5OZKk2NjYGrdFGKonmgRVzAydKDeUd6xUjYN8XdwjAACAmikrKzODUJMmTVzdHdRDAQEBkqScnBxFRUXVeMmcV112Co7j28hLYQE+klgqBwAA6jfrPUKBgQ27CjAcy/rzU5t7zghD9UjT4IrZoEMFJS7uCQAAQO2xNA61URc/P4SheoQiCgAAAEDdIQzVI4QhAAAAz7Zv3z5ZLBZt3rzZ1V1pEAhD9cipZXKEIQAAAKC2CEP1iDkzdJR7hgAAAOAZSkoc97svYageaRrCMjkAAABX+vjjj3XhhRcqICBATZo00cCBA1VYWKj+/ftr3LhxNscOGzZMI0eONN+3bNlSM2bM0PDhwxUUFKRmzZppzpw5Np+xWCyaO3euhgwZooCAALVu3Voff/xxpX0xDENt27bV888/b7N98+bNslgs2rNnzzmvpzrn+/HHH3XllVea13z33XeroKBAkrR161Z5eXnp4MGDkqQ//vhDXl5euvXWW83PP/XUU7rsssvM91u3btWQIUMUHBys6Oho3XHHHTp06JC5v3///ho7dqzGjRunpk2bKjEx8ZzXUVOEoXqEe4YAAEBDZBiGikpOuORlGEa1+5mZmanhw4frrrvu0vbt25Wamqrrr7/erjb++c9/qkuXLtq0aZMmTpyoBx98UCtXrrQ5ZvLkybrhhhu0ZcsW3X777br11lu1ffv2M9qyWCy66667NH/+fJvt8+fPV9++fdW2bdtq9amq8xUWFioxMVGNGzfW999/r8WLF+urr77S2LFjJUmdOnVSkyZNlJaWJkn63//+Z/NektLS0tS/f39JUm5urq688kp169ZN69ev14oVK5Sdna2bb77Zpk9vv/22fH19tWbNGr3++uvVuo6acPhDV5OTk/XJJ59ox44dCggI0CWXXKJnn31W7du3N485fvy4Hn74YS1atEjFxcVKTEzUa6+9pujoaEd3r16htDYAAGiIjpWWqeOU/7rk3NueTFSgb/V+Jc7MzNSJEyd0/fXXq0WLFpKkCy+80K7zXXrppZo4caIkqV27dlqzZo1efPFFXXXVVeYxN910k/72t79JkmbMmKGVK1fqlVde0WuvvXZGeyNHjtSUKVP03Xff6aKLLlJpaakWLlx4xmxRVao638KFC3X8+HG98847CgoKkiS9+uqrGjp0qJ599llFR0erb9++Sk1N1Y033qjU1FSNGjVK//73v7Vjxw61adNG3377rR599FHzs926ddMzzzxjnn/evHmKj4/Xrl271K5dO0nSeeedp+eee86eb22NOHxmKC0tTUlJSVq7dq1Wrlyp0tJSDRo0SIWFheYxDz30kD7//HMtXrxYaWlpOnDggK6//npHd63eOX1myJ7/AwEAAIDa69KliwYMGKALL7xQN910k/71r3/pyJEjdrXRp0+fM97/edanOsdYxcXF6eqrr9a8efMkSZ9//rmKi4t100031Umftm/fri5duphBSKoIdOXl5dq5c6ckqV+/fkpNTZVU8bv/lVdeaQak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atu2rV3fz2effVb//ve/9dNPPykqyjGTDk556GqjRo0UExNzxva8vDy99dZbWrhwoa688kpJ0vz589WhQwetXbtWF198sTO6VzvWJWt+YY5/EKp1GR7PGQIAAO6utEh6Js415/7HAck3qFqHFhQU6K233tJ7772nAQMGSJLefvttNW/eXJK0f/9+zZ8/X/v371dcXMX1TJgwQStWrND8+fP1zDPPSKoINnPnzlWbNm0kSTfeeKPeffddZWdnKzg4WB07dtQVV1yhVatW6ZZbbpEkm1DTunVrvfzyy+rVq5cKCgoUHBxs7nv66afVr18/SdLEiRN19dVX6/jx4/L399fs2bM1evRojR49WpL01FNP6auvvrJrdsjX11fz5s1TYGCgOnXqpCeffFKPPPKIZsyYoWPHjmnu3LlasGCBhgwZIkn617/+pZUrV+qtt97SI488ov79++utt95SWVmZtm7dKl9fX91yyy1KTU3V4MGDlZqaavbfnu/na6+9pi5dulT7OmrCKTNDu3fvVlxcnFq3bq3bb7/dnObasGGDSktLNXDgQPPY888/XwkJCUpPTz9re8XFxcrPz7d5uYz5wFUHzwpJzAwBAADUsYyMDJWUlKh3797mtoiICLVv316S9OOPP6qsrEzt2rVTcHCw+UpLS1NGRob5mcDAQDMISVJ0dLRatmxpE2qio6NtlsFt2LBBQ4cOVUJCgkJCQmwCw+k6d+5sfh0bGytJZjvbt2+36bsk9enTx67vQZcuXWwemNunTx8VFBTo119/VUZGhkpLS3XppZea+318fHTRRRdp+/btkqTLL79cR48e1aZNm5SWlqZ+/fqpf//+5mxRWlqa+vfvL6n6309fX1+b63YUh88M9e7dWwsWLFD79u2VmZmp6dOn6/LLL9fWrVuVlZUlX19fhYeH23wmOjpaWVlZZ20zOTnZZurOpcz7hZwQhqz3DB37Qyo7IXk7ZWIPAADAfj6BFTM0rjp3HSkoKJC3t7c2bNggb29vm32nBx0fHx+bfRaLpdJt1kIAhYWFSkxMVGJiot5//31FRkZq//79SkxMtLlf589tWx806qiCAjURHh6uLl26KDU1Venp6brqqqvUt29f3XLLLdq1a5d2795tBr3qfj8DAgKc8hBfh/82bZ1OkypSbe/evdWiRQt99NFHCggIqFGbkyZN0vjx4833+fn5io+Pr3Vfa6TAiWEooLFk8ZKMcqnokBRy5tJDAAAAt2CxVHupmiu1adNGPj4+WrdunRISEiRJR44c0a5du9SvXz9169ZNZWVlysnJ0eWXX15n592xY4cOHz6smTNnmr/Hrl+/3u52OnTooHXr1unOO+80t61du9auNrZs2aJjx46Zv5uvXbtWwcHBio+PV9OmTeXr66s1a9aoRYsWkiqWsH3//fc2z2Hq16+fVq1ape+++05PP/20IiIi1KFDBz399NOKjY1Vu3btJMlh38+acnpp7fDwcLVr10579uxRTEyMSkpKlJuba3NMdnZ2pfcYWfn5+Sk0NNTm5TLmMjkHV5KTJC9vKbBpxdcslQMAAKi14OBgjR49Wo888oi+/vprbd26VSNHjpSXV8Wvye3atdPtt9+uO++8U5988on27t2r7777TsnJyVq2bFmNz5uQkCBfX1+98sor+vnnn/XZZ59pxowZdrfz4IMPat68eZo/f7527dqlqVOn6qeffrKrjZKSEo0ePVrbtm3T8uXLNXXqVI0dO1ZeXl4KCgrSvffeq0ceeUQrVqzQtm3bNGbMGBUVFZn3KUkVD6n973//q0aNGpmVo/v376/333/fnBWSHPf9rCmnh6GCggJlZGQoNjZWPXr0kI+Pj1JSUsz9O3fu1P79++1e6+gyznrgqhXltQEAAOrUP//5T11++eUaOnSoBg4cqMsuu0w9evQw98+fP1933nmnHn74YbVv317Dhg3T999/b84k1URkZKQWLFigxYsXq2PHjpo5c6ZNeerquuWWWzR58mQ9+uij6tGjh3755Rfde++9drUxYMAAnXfeeebStmuuuUbTpk0z98+cOVM33HCD7rjjDnXv3l179uzRf//7XzVu3Ng85vLLL1d5eblN8Onfv7/KysrM+4WsHPH9rCmLYdhZe9BOEyZM0NChQ9WiRQsdOHBAU6dO1ebNm7Vt2zZFRkbq3nvv1fLly7VgwQKFhobq/vvvlyR9++231T5Hfn6+wsLClJeX5/xZog+GSzuXS399Uep517mPr613hkk/r5KGvS51He748wEAAJzD8ePHtXfvXrVq1Ur+/g6uros6NXLkSOXm5mrp0qWu7ordzvZzZ082cPg9Q7/99puGDx+uw4cPKzIyUpdddpnWrl2ryMiKe2xefPFFeXl56YYbblBxcbESExPt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wak6tm/fruuuu+6Mz58ehrZs2aI1a9bo6aefNreVlZXp+PHjKioqMh9C2rlzZ3N/dHS0JOnCCy+02Xb8+HHl5+crNDRUBQUFmjZtmpYtW6bMzEydOHFCx44d0/79+236c3q7FotFMTExysnJMfvfuXNn+fv71+j6N2/erMsvv9wMQs5iVxi65JJL9Oabb2rXrl1q166dtmzZom+++UazZs0662fy8vJksVjOeXPa7t27FRcXJ39/f/Xp00fJyclVhicAAAA4VkCjAK27bZ3Lzu0sBQUFGjp0aKWzOLGxsdq6daskadmyZWrWrJnNfj8/P6f0Uaro5/Tp03X99defse/0EHJ6oLA+mLSybeXl5ZKkCRMmaOXKlXr++efVtm1bBQQE6MYbb1RJSYnNOf4cVCwWi9lGbQUEOG+8T2dXGJo4caLy8/N1/vnny9vbW2VlZXr66ad1++23V3r88ePH9dhjj2n48OEKDQ09a7u9e/fWggUL1L59e2VmZmr69Om6/PLLtXXrVoWEhJxxfHFxsYqLi833+fn59lwGAAAAqsFisVRrqZqr+fr6qqysrMaf7969u/7zn/+oZcuWld6q0bFjR/n5+Wn//v3q169fpW106NBBn332mc22tWvXVrsPHTp00Lp1tsHzz5/v3r27du7cqbZt21a73epYs2aNRo4cac5MFRQU2F38oUOHDnr33Xd1/PhxM5jZc/2dO3fW22+/rdLSUqfODtlVTe6jjz7S+++/r4ULF2rjxo16++239fzzz+vtt98+49jS0lLdfPPNMgxDc+fOrbLdIUOG6KabblLnzp2VmJio5cuXKzc3Vx999FGlxycnJyssLMx8xcfH23MZAAAAaEBatmypdevWad++fTp06JDdsxVJSUn6448/NHz4cH3//ffKyMjQf//7X40aNUplZWUKCQnRhAkT9NBDD+ntt99WRkaGNm7cqFdeecX8Pfiee+7R7t279cgjj2jnzp1auHChXc8weuCBB7RixQo9//zz2r17t1599VWbJXKSNGXKFL3zzjuaPn26fvrpJ23fvl2LFi3SE088Ydf1/tl5552nTz75RJs3b9aWLVt022232f09vO2222SxWDRmzBht27ZNy5cv1/PPP1/tz48dO1b5+fm69dZbtX79eu3evVvvvvuudu7cae/l2MWuMPTII49o4sSJuvXWW3XhhRfqjjvu0EMPPaTk5GSb46xB6JdfftHKlSurnBWqTHh4uNq1a6c9e/ZUun/SpEnKy8szX7/++qtd7QMAAKDhmDBhgry9vdWxY0dFRkaeca/LucTFxWnNmjUqKyvToEGDdOGFF2rcuHEKDw+Xl1fFr8szZszQ5MmTlZycrA4dOmjw4MFatmyZWrVqJUlKSEjQf/7zHy1dulRdunTR66+/blOQ4Vwuvvhi/etf/9JLL72kLl266Msvvzwj5CQmJuqLL77Ql19+qV69euniiy/Wiy++qBYtWth1vX82a9YsNW7cWJdccomGDh2qxMREde/e3a42goOD9fnnn+vHH39Ut27d9Pjjj1e7eIQkNWnSRF9//bUKCgrUr18/9ejRQ//6178cPktkOVmCr1qaNGmip556yqYqRHJysubPn69du3ZJOhWEdu/erVWrVikyMtLuThUUFCghIUHTpk3TAw88cM7j8/PzFRYWpry8PLuDFwAAACpub9i7d69atWplc/8J4K7O9jNrTzawa2Zo6NChevrpp7Vs2TLt27dPS5Ys0axZs8z1haWlpbrxxhu1fv16vf/++yorK1NWVpaysrJsbsAaMGCAXn31VfP9hAkTlJaWpn379unbb7/VddddJ29vbw0fPtye7gEAAABAtdkVhl555RXdeOONuu+++9ShQwdNmDBBf//73zVjxgxJ0u+//67PPvtMv/32m7p27arY2Fjz9e2335rtZGRk2DzR97ffftPw4cPVvn173XzzzWrSpInWrl1bo1klAAAAeK577rlHwcHBlb7uuecel/VryJAhZ+2XPcvp6it3HRe7lsm5K5bJAQAA1E5DWSaXk5Nz1krDoaGhioqKcnKPKvz+++86duxYpfsiIiIUERHh5B45lyPGpS6WydlVWhsAAABwZ1FRUS4LPFX58/OJPI27jotdy+QAAADQsDWARUPwEHXxs0oYAgAAgFnCuKioyMU9AarH+rNam/LbLJMDAACAvL29FR4erpycHElSYGCgLBaLi3sFnMkwDBUVFSknJ0fh4eHy9vaucVuEIQAAAEiSYmJiJMkMRIA7Cw8PN39ma4owBAAAAEmSxWJRbGysoqKiVFpa6uruAGfl4+NTqxkhK8IQAAAAbHh7e9fJL5qAu6OAAgAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADw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+uKLL7R69epzlrg7Fz8/P/n5+dVRzwAAABouwzCUlZWl3NxcV3cFqFPh4eGKiYmp1XNGHR6GDMPQ/fffryVLlig1NVWtWrVy9CkBAABwkjUIRUVFKTAwkAfUo94zDENFRUXKycmRJMXGxta4LYeHoaSkJC1cuFCffvqpQkJClJWVJUkKCwtTQECApIq/pFlZWdqzZ48k6ccff1RISIgSEhJqVWgBAADAk5WVlZlBqEmTJq7uDlBnrDkiJydHUVFRNV4y5/ACCnPnzlVeXp769++v2NhY8/Xhhx+ax7z++uvq1q2bxowZI0nq27evunXrps8++8zR3QMAAGiwrPcIBQYGurgnQN2z/lzX5l44pyyTO5dp06Zp2rRpju4KAACAR2JpHBqiuvi5dmppbQAAAABwF4QhAAAAwE31799f48aNc3U3amzatGnq2rWrq7txVoQhAAAAuB1nhIDU1FRZLBbKjnswwhAAAAAaFMMwdOLECaeekwfa1k+EIQAAALiVkSNHKi0tTS+99JIsFossFov27dt31uOtMzz/93//px49esjPz0/ffPONysvLlZycrFatWikgIEBdunTRxx9/LEnat2+frrjiCklS48aNZbFYNHLkSElSy5YtNXv2bJtzdO3a1abgl8Vi0dy5c3XNNdcoKChITz/9tLkk7N1331XLli0VFhamW2+9VUePHq3WdRcWFurOO+9UcHCwYmNj9cILL5xxTHFxsSZMmKBmzZopKChIvXv3Vmpqqrl/wYIFCg8P1xdffKH27dsrMDBQN954o4qKivT222+rZcuWaty4sR544AGVlZWZn3v33XfVs2dPhYSEKCYmRrfddpv5HJ/Tv8cpKSnq2bOnAgMDdckll2jnzp02/Zs5c6aio6MVEhKi0aNH6/jx49W6dqt58+apU6dO8vPzU2xsrMaOHWvX5+1FGAIAAPAQhmGovKjIJa/qVBi2eumll9SnTx+NGTNGmZmZyszMVHx8/Dk/N3HiRM2cOVPbt29X586dlZycrHfeeUevv/66fvrpJz300EP6f//v/yktLU3x8fH6z3/+I0nauXOnMjMz9dJLL9n1/Zw2bZquu+46/fjjj7rrrrskSRkZGVq6dKm++OILffHFF0pLS9PMmTOr1d4jjzyitLQ0ffrpp/ryyy+VmpqqjRs32hwzduxYpaena9GiRfrhhx90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KYqNjVVAQIAGDhyo3bt31/m11SdVjYMkpaen68orr1RQUJBCQ0PVt29fHTt2rMo2U1NT1b17d/n5+alt27ZasGCB3ef1NFV9PzIyMnTdddcpMjJSoaGhuvnmm5WdnX3ONhkH+6xevVpDhw5VXFycLBaLli5dau4rLS3VY489pgsvvFBBQUGKi4vTnXfeqQMHDpyzXcbBPlWNgySNHDlSFovF5jV48OBztss4VN+5xqCgoEBjx45V8+bNFRAQoI4dO+r1118/Z7s//PCDLr/8cvn7+ys+Pl7PPffcGcec699xT5KcnKxevXopJCREUVFRGjZsmHbu3GlzzJtvvqn+/fsrNDRUFotFubm51Wqbvw8udM7HssIjLFq0yPD19TXmzZtn/PTTT8aYMWOM8PBwIzs72zAMw3jjjTeMtLQ0Y+/evcaGDRuMoUOHGvHx8caJEyfO2uaaNWsMb29v47nnnjO2bdtmPPHEE4aPj4/x448/msfMnDnTCAsLM5YuXWps2bLFuOaaa4xWrVoZx44dc/g1u6NzjcO3335rhIaGGsnJycbWrVuNHTt2GB9++KFx/Pjxs7b5888/G4GBgcb48eONbdu2Ga+88orh7e1trFixotrn9TRVfT8KCgqM1q1bG9ddd53xww8/GD/88INx7bXXGr169TLKysrO2ibjYL/ly5cbjz/+uPHJJ58YkowlS5aY+3Jzc42BAwcaH374obFjxw4jPT3duOiii4wePXpU2SbjYL+qxsEwDGPEiBHG4MGDjczMTPP1xx9/VNkm42Cfc43BmDFjjDZt2hirVq0y9u7da7zxxhuGt7e38emnn561zby8PCM6Otq4/fbbja1btxoffPCBERAQYLzxxhvmMdX5d9yTJCYmGvPnzze2bt1qbN682fjLX/5iJCQkGAUFBeYxL774opGcnGwkJycbkowjR46cs13+PriW24ShV1991WjRooXh5+dnXHTRRca6devMfceOHTPuu+8+IyIiwggKCjKuv/56Iysr65xtfvTRR0b79u0NPz8/44ILLjCWLVtms7+8vNyYPHmyERMTY/j7+xsDBgwwdu3aVefXVh9cdNFFRlJSkvm+rKzMiIuLM5KTkys9fsuWLYYkY8+ePWdt8+abbzauvvpqm229e/c2/v73vxuGUfH9j4mJMf75z3+a+3Nzcw0/Pz/jgw8+qM3l1FvnGofevXsbTzzxhF1tPvroo0anTp1stt1yyy1GYmJitc/raar6fvz3v/81vLy8jLy8PHN/bm6uYbFYjJUrV561Tcahdir7BfDPvvvuO0OS8csvv5z1GMahds4Whq699lq72mEcaq6yMejUqZPx5JNP2mzr3r278fjjj5+1nddee81o3LixUVxcbG577LHHjPbt25vvz/XvuKfLyckxJBlpaWln7Fu1alW1wxB/H1zLLZbJffjhhxo/frymTp2qjRs3qkuXLkpMTFROTo4k6aGHHtLnn3+uxYsXKy0tTQcOHND1119fZZvffvuthg8frtGjR2vTpk0aNmyYhg0bpq1bt5rHPPfcc3r55Zf1+uuva926dQoKClJiYqKOHz/u0Ot1NyUlJdqwYYMGDhxobvPy8tLAgQOVnp5+xvGFhYWaP3++WrVqpfj4eHN7y5YtNW3aNPN9enq6TZuSlJiYaLa5d+9eZWVl2RwTFham3r17V3rehu5c45CTk6N169YpKipKl1xyiaKjo9WvXz998803Nu30799fI0eONN+faxzsHf+G7lzfj+LiYlksFptynf7+/vLy8rIZC8bB+fLy8mSxWBQeHm5uYxycIzU1VVFRUWrfvr3uvfdeHT582GY/4+BYl1xyiT777DP9/vvvMgxDq1at0q5duzRo0CDzmJEjR6p///7m+/T0dPXt21e+vr7mtsTERO3cuVNHjhwxj6lqnDxdXl6eJCkiIsKuz/H3wb24RRiaNWuWxowZo1GjRpnrXAMDAzVv3jzl5eXprbfe0qxZs3TllVeqR48emj9/vr799lutXbv2rG2+9NJLGjx4sB555BF16NBBM2bMUPfu3fXqq69KqrhXZfbs2XriiSd07bXXqnPnznrnnXd04MCBM9biNnSHDh1SWVmZoqOjbbZHR0crKyvLfP/aa68pODhYwcHB+r//+z+tXLnS5j+ibdq0UdOmTc33WVlZVbZp/fNc5/UU5xqHn3/+WZI0bdo0jRkzRitWrFD37t01YMAAm/usEhISFBsba74/2zjk5+fr2LFj1R5/T3Gu78fFF1+soKAgPfbYYyoqKlJhYaEmTJigsrIyZWZmmsczDs51/PhxPfbYYxo+fLjNA/YYB8cbPHiw3nnnHaWkpOjZZ59VWlqahgwZorKyMvMYxsGxXnnlFXXs2FHNmzeXr6+vBg8erDlz5qhv377mMbGxsUpISDDfn20MrPuqOoYxkMrLyzVu3DhdeumluuCCC+z6LH8f3EsjV3fAmnYnTZpkbjs97V500UUqLS21ScPnn3++EhISlJ6erosvvlhSxazEyJEjzZmJ9PR0jR8/3uZciYmJZtA516zErbfe6qArrr9uv/12XXXVVcrMzNTzzz+vm2++WWvWrJG/v78kKSUlxcU9bNjKy8slVRSzGDVqlCSpW7duSklJ0bx585ScnCxJeuedd1zWR08QGRmpxYsX695779XLL78sLy8vDR8+XN27d5eX16n/v8Q4OE9paaluvvlmGYahuXPn2uxjHBzv9H8vL7zwQnXu3Flt2rRRamqqBgwYIIlxcLRXXnlFa9eu1WeffaYWLVpo9erVSkpKUlxcnPl7jvXfCNSNpKQkbd269YzVGdXB3wf34vIwVFXa3bFjh7KysuTr62uz7MG6//Q0zKxEzTVt2lTe3t5nVMPKzs5WTEyM+T4sLExhYWE677zzdPHFF6tx48ZasmSJhg8fXmm7MTExVbZp/TM7O9vm/5BkZ2era9eudXFp9cq5xsH6PerYsaPN/g4dOmj//v1nbfds4xAaGqqAgAB5e3tXa/w9RXX+PgwaNEgZGRk6dOiQGjVqpPDwcMXExKh169ZnbZdxcAxrEPrll1/09ddf28wKVYZxcLzWrVuradOm2rNnjxmG/oxxqDvHjh3TP/7xDy1ZskRXX321JKlz587avHmznn/++TOWX1mdbQys+6o6xtPHYOzYsfriiy+0evVqNW/evNbt8ffBtdximVxdSElJ0dixY13djXrJ19dXPXr0sJnZKS8vV0pKivr06VPpZ4yK4hsqLi4+a7t9+vQ5Y7Zo5cqVZputWrVSTEyMzTH5+flat27dWc/bkJ1rHFq2bKm4uLgzynju2rVLLVq0OGu75xqHmox/Q2bP96Np06YKDw/X119/rZycHF1zzTVnbZdxqHvWILR792599dVXatKkyTk/wzg43m+//abDhw/b/E+uP2Mc6k5paalKS0ttZqYlydvb21xRUJk+ffpo9erVKi0tNbetXLlS7du3V+PGjc1jqhonT2MYhsaOHaslS5bo66+/VqtWreqkXf4+uJgrqzcYhmEUFxcb3t7eZ1RGufPOO41rrrnGSElJqbQaR0JCgjFr1qyzthsfH2+8+OKLNtumTJlidO7c2TAMw8jIyDAkGZs2bbI5pm/fvsYDDzxQ08uptxYtWmT4+fkZCxYsMLZt22bcfffdRnh4uJGVlWVkZGQYzzzzjLF+/Xrjl19+MdasWWMMHTrUiIiIsCnpeOWVVxqvvPKK+X7NmjVGo0aNjOeff97Yvn27MXXq1EpLa4eHhxuffvqpWaLY00trn20cDKOiZGdoaKixePFiY/fu3cYTTzxh+Pv721T1u+OOO4yJEyea760lOx955BFj+/btxpw5cyot2VnVeT3Nub4f8+bNM9LT0409e/YY7777rhEREWGMHz/epg3GofaOHj1qbNq0ydi0aZMhyZg1a5axadMm45dffjFKSkqMa665xmjevLmxefNmm7LOp1fHYhxqr6pxOHr0qDFhwgQjPT3d2Lt3r/HVV18Z3bt3N8477zybkv+MQ+1UNQaGYRj9+vUzOnXqZKxatcr4+eefjfnz5xv+/v7Ga6+9ZrYxceJE44477jDf5+bmGtHR0cYdd9xhbN261Vi0aJERGBh4Rmntc/077knuvfdeIywszEhNTbX5b05RUZF5TGZmprFp0ybjX//6lyHJWL16tbFp0ybj8OHD5jH8fXAvLg9DhlFRLnDs2LHm+7KyMqNZs2ZGcnKykZuba/j4+Bgff/yxuX/Hjh2GJCM9Pf2sbd58883GX//6V5ttffr0OaOs8/PPP2/uz8vL8+iyzq+88oqRkJBg+Pr6GhdddJGxdu1awzAM4/fffzeGDBliREVFGT4+Pkbz5s2N2267zdixY4fN51u0aGFMnTrVZttHH31ktGvXzvD19TU6dep01vLm0dHRhp+fnzFgwABj586dDr1Od3e2cbBKTk42mjdvbgQGBhp9+vQx/ve//9ns79evnzFixAibbatWrTK6du1q+Pr6Gq1btzbmz59v93k9TVXfj8cee8yIjo42fHx8jPPOO8944YUXjPLycpvPMw61Zy1N++fXiBEjjL1791a6T5KxatUqsw3GofaqGoeioiJj0KBBRmRkpOHj42O0aNHCGDNmzBm/oDEOtVPVGBhGxS/gI0eONOLi4gx/f3+jffv2Z/x3acSIEUa/fv1s2t2yZYtx2WWXGX5+fkazZs2MmTNnnnHuc/077knO9t+c0392p06des5j+PvgXiyGYRgOnHiqlg8//FAjRozQG2+8oYsuukizZ8/WRx99pB07dig6Olr33nuvli9frgULFig0NFT333+/pIry2VYDBgzQddddZy6V+/bbb9WvXz/NnDlTV199tRYtWqRnnnlGGzduNKt+PPvss5o5c6befvtttWrVSpMnT9YPP/ygbdu2mUUBAAAAADRMLi+gIEm33HKLDh48qClTpigrK0tdu3bVihUrzOIGL774ory8vHTDDTeouLhYiYmJeu2112zasN7MbHXJJZdo4cKFeuKJJ/SPf/xD5513npYuXWpT/vDRRx9VYWGh7r77buXm5uqyyy7TihUrCEIAAACAB3CLmSEAAAAAcLYGU00OAAAAAOxBGAIAAADgkQhDAAAAADwSYQgAAACARyIMAQAAAPBILg1Dc+bMUcuWLeXv76/evXvru+++M/e9+eab6t+/v0JDQ2WxWJSbm1utNhcsWKDw8HDHdBgAAABAg+GyMPThhx9q/Pjxmjp1qjZu3KguXbooMTFROTk5kqSioiINHjxY//jHP1zVRQAAAAANmMvC0KxZszRmzBiNGjVKHTt21Ouvv67AwEDNmzdPkjRu3DhNnDhRF198ca3Ok5GRoWuvvVbR0dEKDg5Wr1699NVXX9kc07JlSz3zzDO66667FBISooSEBL355pu1Oi8AAAAA9+aSMFRSUqINGzZo4MCBpzri5aWBAwcqPT29Ts9VUFCgv/zlL0pJSdGmTZs0ePBgDR06VPv377c57oUXXlDPnj21adMm3Xfffbr33nu1c+fOOu0LAAAAAPfhkjB06NAhlZWVKTo62mZ7dHS0srKy6vRcXbp00d///nddcMEFOu+88zRjxgy1adNGn332mc1xf/nLX3Tfffepbdu2euyxx9S0aVOtWrWqTvsCAAAAwH3U22pyQ4YMUXBwsIKDg9WpU6ezHldQUKAJEyaoQ4cOCg8PV3BwsLZv337GzFDnzp3Nry0Wi2JiYsz7lwAAAAA0PI1ccdKmTZvK29tb2dnZNtuzs7MVExNTrTb+/e9/69ixY5IkHx+fsx43YcIErVy5Us8//7zatm2rgIAA3XjjjSopKbE57s9tWCwWlZeXV6svAAAAAOofl4QhX19f9ejRQykpKRo2bJgkqby8XCkpKRo7dmy12mjWrFm1jluzZo1Gjhyp6667TlLFTNG+fftq0m0AAAAADYhLwpAkjR8/XiNGjFDPnj110UUXafbs2SosLNSoUaMkSVlZWcrKytKePXskST/++KNZ6S0iIqLa5znvvPP0ySefaOjQobJYLJo8eTIzPgAAAABcF4ZuueUWHTx4UFOmTFFWVpa6du2qFStWmEUVXn/9dU2fPt08vm/fvpKk+fPna+TIkWdtt7y8XI0anbqsWbNm6a677tIll1yipk2b6rHHHlN+fr5jLgoAAABAvWExDMNwdSfq0syZM/Xee+9p69atru4KAAAAADfmspmhulZUVKQdO3Zo/vz5GjJkiKu7AwAAAMDN1dvS2n/25ptvauDAgerSpYumTJni6u4AAAAAcHMNbpkcAAAAAFRHg5kZAgAAAAB7EIYAAAAAeCS3CUPJycnq1auXQkJCFBUVpWHDhmnnzp02xxw/flxJSUlq0qSJgoODdcMNNyg7O9vcv2XLFg0fPlzx8fEKCAhQhw4d9NJLL51xrtTUVHXv3l1+fn5q27atFixY4OjLAwAAAOBm3CYMpaWlKSkpSWvXrtXKlStVWlqqQYMGqbCw0DzmoYce0ueff67FixcrLS1NBw4c0PXXX2/u37Bhg6KiovTee+/pp59+0uOPP65Jkybp1VdfNY/Zu3evrr76al1xxRXavHmzxo0bp7/97W/673//69TrBQAAAOBabltA4eDBg4qKilJaWpr69u2rvLw8RUZGauHChbrxxhslSTt27FCHDh2Unp6uiy++uNJ2kpKStH37dn399deSpMcee0zLli2zeQ7RrbfeqtzcXK1YscLxFwYAAADALbjNzNCf5eXlSZIiIiIkVcz6lJaWauDAgeYx559/vhISEpSenl5lO9Y2JCk9Pd2mDUlKTEyssg0AAAAADY9bPnS1vLxc48aN06WXXqoLLrhAkpSVlSVfX1+Fh4fbHBsdHa2srKxK2/n222/14YcfatmyZea2rKwsRUdHn9FGfn6+jh07poCAgLq9GAAAAABuyS3DUFJSkrZu3apvvvmmxm1s3bpV1157raZOnapBgwbVYe8AAAAANARut0xu7Nix+uKLL7Rq1So1b97c3B4TE6OSkhLl5ubaHJ+dna2YmBibbdu2bdOAAQN0991364knnrDZFxMTY1OBztpGaGgos0IAAACAB3GbMGQYhsaOHaslS5bo66+/VqtWrWz29+jRQz4+PkpJSTG37dy5U/v371efPn3MbT/99JOuuOIKjRgxQk8//fQZ5+nTp49NG5K0cuVKmzYAAAAANHxuU03uvvvu08KFC/Xpp5+qffv25vawsDBzxubee+/V8uXLtWDBAoWGhur++++XVHFvkFSxNO7KK69UYmKi/vnPf5pteHt7KzIyUlJFae0LLrhASUlJuuuuu/T111/rgQce0LJly5SYmOisywUAAADgYm4ThiwWS6Xb58+fr5EjR0qqeOjqww8/rA8++EDFxcVKTEzUa6+9Zi6TmzZtmqZPn35GGy1atNC+ffvM96mpqXrooYe0bds2NW/eXJMnTzbPAQAAAMAzuE0YAgAAAABncpt7hgAAAADAmQhDAAAAADwSYQgAAACARyIMAQAAAPBIhCEAAAAAHokwBAAAAMAjEYYAAAAAeCTCEAAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADwSP8f6iwC3DOSfS8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df1.plot(subplots=True, figsize=(10, 6))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from pandaprosumer.create import create_empty_prosumer_container, create_period\n", + "from pandaprosumer.create_controlled import (\n", + " create_controlled_const_profile,\n", + " create_controlled_heat_storage,\n", + " create_controlled_heat_demand\n", + ")\n", + "\n", + "prosumer1 = create_empty_prosumer_container()\n", + "period_id = create_period(prosumer1, time_resolution_s, start, end, 'utc', 'default')\n", + "\n", + "cp_input = ['supply_power', 'demand_power', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_result = ['supply_power', 'qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_idx = create_controlled_const_profile(prosumer1, cp_input, cp_result, profile1, period_id, 0, 0)\n", + "\n", + "hs_idx = create_controlled_heat_storage(prosumer1, q_capacity_kwh=100.0, name='tank_power_only',\n", + " period=period_id, level=1, order=0)\n", + "hd_idx = create_controlled_heat_demand(prosumer1, period=period_id, level=1, order=1, name='heat_consumer')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ { - "name": "t_return_demand_c", - "rawType": "float64", - "type": "float" + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" } - ], - "ref": "8b63f34d-906c-405b-8cb4-374404b8a3d7", - "rows": [ - [ - "2020-01-01 00:00:00+00:00", - "25.0", - "0.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 00:15:00+00:00", - "25.0", - "0.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 00:30:00+00:00", - "25.0", - "0.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 00:45:00+00:00", - "25.0", - "0.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 01:00:00+00:00", - "25.0", - "60.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 01:15:00+00:00", - "25.0", - "60.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 01:30:00+00:00", - "25.0", - "60.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 01:45:00+00:00", - "25.0", - "60.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 02:00:00+00:00", - "0.0", - "0.0", - "80.0", - "20.0" - ], - [ - "2020-01-01 02:15:00+00:00", - "0.0", - "0.0", - "80.0", - "20.0" - ] - ], - "shape": { - "columns": 4, - "rows": 10 - } - }, - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
supply_powerdemand_powert_feed_demand_ct_return_demand_c
2020-01-01 00:00:00+00:0025.00.080.020.0
2020-01-01 00:15:00+00:0025.00.080.020.0
2020-01-01 00:30:00+00:0025.00.080.020.0
2020-01-01 00:45:00+00:0025.00.080.020.0
2020-01-01 01:00:00+00:0025.060.080.020.0
2020-01-01 01:15:00+00:0025.060.080.020.0
2020-01-01 01:30:00+00:0025.060.080.020.0
2020-01-01 01:45:00+00:0025.060.080.020.0
2020-01-01 02:00:00+00:000.00.080.020.0
2020-01-01 02:15:00+00:000.00.080.020.0
\n", - "
" ], - "text/plain": [ - " supply_power demand_power t_feed_demand_c \\\n", - "2020-01-01 00:00:00+00:00 25.0 0.0 80.0 \n", - "2020-01-01 00:15:00+00:00 25.0 0.0 80.0 \n", - "2020-01-01 00:30:00+00:00 25.0 0.0 80.0 \n", - "2020-01-01 00:45:00+00:00 25.0 0.0 80.0 \n", - "2020-01-01 01:00:00+00:00 25.0 60.0 80.0 \n", - "2020-01-01 01:15:00+00:00 25.0 60.0 80.0 \n", - "2020-01-01 01:30:00+00:00 25.0 60.0 80.0 \n", - "2020-01-01 01:45:00+00:00 25.0 60.0 80.0 \n", - "2020-01-01 02:00:00+00:00 0.0 0.0 80.0 \n", - "2020-01-01 02:15:00+00:00 0.0 0.0 80.0 \n", - "\n", - " t_return_demand_c \n", - "2020-01-01 00:00:00+00:00 20.0 \n", - "2020-01-01 00:15:00+00:00 20.0 \n", - "2020-01-01 00:30:00+00:00 20.0 \n", - "2020-01-01 00:45:00+00:00 20.0 \n", - "2020-01-01 01:00:00+00:00 20.0 \n", - "2020-01-01 01:15:00+00:00 20.0 \n", - "2020-01-01 01:30:00+00:00 20.0 \n", - "2020-01-01 01:45:00+00:00 20.0 \n", - "2020-01-01 02:00:00+00:00 20.0 \n", - "2020-01-01 02:15:00+00:00 20.0 " + "source": [ + "from pandaprosumer.mapping import GenericMapping\n", + "\n", + "# Const profile -> Heat storage: supply power as q_received_kw\n", + "GenericMapping(prosumer1, initiator_id=cp_idx, initiator_column='supply_power',\n", + " responder_id=hs_idx, responder_column='q_received_kw', order=0)\n", + "# Const profile -> Heat demand: demand request and temperatures\n", + "GenericMapping(prosumer1, initiator_id=cp_idx,\n", + " initiator_column=['qdemand_kw', 't_feed_demand_c', 't_return_demand_c'],\n", + " responder_id=hd_idx, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=1)\n", + "# Heat storage -> Heat demand: delivered power as q_received_kw\n", + "GenericMapping(prosumer1, initiator_id=hs_idx, initiator_column='q_delivered_kw',\n", + " responder_id=hd_idx, responder_column='q_received_kw', order=0)" ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Part 1 input: supply power (to storage) and demand (for heat demand element)\n", - "supply_kw = np.zeros(n_steps)\n", - "supply_kw[0:8] = 25.0 # charge 25 kW for first 2 h\n", - "supply_kw[20:24] = 20.0 # charge again later\n", - "demand_kw = np.zeros(n_steps)\n", - "demand_kw[4:8] = 60.0 # demand spike 60 kW for 4 steps\n", - "demand_kw[12:16] = 25.0\n", - "df1 = pd.DataFrame({\n", - " 'supply_power': supply_kw,\n", - " 'demand_power': demand_kw,\n", - " 't_feed_demand_c': 80.0,\n", - " 't_return_demand_c': 20.0\n", - "}, index=dur)\n", - "profile1 = DFData(df1)\n", - "df1.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "array([, , , ], dtype=object)" + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from pandaprosumer.run_time_series import run_timeseries\n", + "\n", + "run_timeseries(prosumer1, period_id, verbose=False)" ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0MAAAIaCAYAAADiNpZkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdMVJREFUeJzt3XlcVmX+//H3DbKvoqwKrmlquZvZopYmOo1le9av1BybCiszK51yywprymwxq5nUNrNs0hb9OhkJToaWa5k7aVayqAkIKCCc3x94H70TkRu4F7hfz8fjfsh9zrmvcx0uTN5d1/kci2EYhgAAAADAw3i5ugMAAAAA4AqEIQAAAAAeiTAEAAAAwCMRhgAAAAB4JMIQAAAAAI9EGAIAAADgkQhDAAAAADwSYQgAAACAR2rk6g7UhfLych04cEAhISGyWCyu7g4AAAAAFzEMQ0ePHlVcXJy8vKqe+2kQYejAgQOKj493dTcAAAAAuIlff/1VzZs3r/KYBhGGQkJCJFVccGhoqIt7AwAAAMBV8vPzFR8fb2aEqjSIMGRdGhcaGkoYAgAAAFCt22caRBiymvbZT/ILDHZ1NxzGr5GX7rq0lRKaBLq6KwAAAEC916DC0McbfpOXX8MOCsUnypR8fWdXdwMAAACo9xpUGBp7RVsFBDXMmaHtWfla/mOWDuQed3VXAAAAgAahQYWhe/q3abD3DK3akaPlP2bpUEGxq7sCAABQZ8rKylRaWurqbqCe8fHxkbe3d63baVBhqCFrGuwnSYQhAADQIBiGoaysLOXm5rq6K6inwsPDFRMTU6vnjBKG6ommIb6SpMMFJSovN+TlxcNlAQBA/WUNQlFRUQoMDKzVL7TwLIZhqKioSDk5OZKk2NjYGrdFGKonmgRVzAydKDeUd6xUjYN8XdwjAACAmikrKzODUJMmTVzdHdRDAQEBkqScnBxFRUXVeMmcV112Co7j28hLYQE+klgqBwAA6jfrPUKBgQ27CjAcy/rzU5t7zghD9UjT4IrZoEMFJS7uCQAAQO2xNA61URc/P4SheoQiCgAAAEDdIQzVI4QhAAAAz7Zv3z5ZLBZt3rzZ1V1pEAhD9cipZXKEIQAAAKC2CEP1iDkzdJR7hgAAAOAZSkoc97svYageaRrCMjkAAABX+vjjj3XhhRcqICBATZo00cCBA1VYWKj+/ftr3LhxNscOGzZMI0eONN+3bNlSM2bM0PDhwxUUFKRmzZppzpw5Np+xWCyaO3euhgwZooCAALVu3Voff/xxpX0xDENt27bV888/b7N98+bNslgs2rNnzzmvpzrn+/HHH3XllVea13z33XeroKBAkrR161Z5eXnp4MGDkqQ//vhDXl5euvXWW83PP/XUU7rsssvM91u3btWQIUMUHBys6Oho3XHHHTp06JC5v3///ho7dqzGjRunpk2bKjEx8ZzXUVOEoXqEe4YAAEBDZBiGikpOuORlGEa1+5mZmanhw4frrrvu0vbt25Wamqrrr7/erjb++c9/qkuXLtq0aZMmTpyoBx98UCtXrrQ5ZvLkybrhhhu0ZcsW3X777br11lu1ffv2M9qyWCy66667NH/+fJvt8+fPV9++fdW2bdtq9amq8xUWFioxMVGNGzfW999/r8WLF+urr77S2LFjJUmdOnVSkyZNlJaWJkn63//+Z/NektLS0tS/f39JUm5urq688kp169ZN69ev14oVK5Sdna2bb77Zpk9vv/22fH19tWbNGr3++uvVuo6acPhDV5OTk/XJJ59ox44dCggI0CWXXKJnn31W7du3N485fvy4Hn74YS1atEjFxcVKTEzUa6+9pujoaEd3r16htDYAAGiIjpWWqeOU/7rk3NueTFSgb/V+Jc7MzNSJEyd0/fXXq0WLFpKkCy+80K7zXXrppZo4caIkqV27dlqzZo1efPFFXXXVVeYxN910k/72t79JkmbMmKGVK1fqlVde0WuvvXZGeyNHjtSUKVP03Xff6aKLLlJpaakWLlx4xmxRVao638KFC3X8+HG98847CgoKkiS9+uqrGjp0qJ599llFR0erb9++Sk1N1Y033qjU1FSNGjVK//73v7Vjxw61adNG3377rR599FHzs926ddMzzzxjnn/evHmKj4/Xrl271K5dO0nSeeedp+eee86eb22NOHxmKC0tTUlJSVq7dq1Wrlyp0tJSDRo0SIWFheYxDz30kD7//HMtXrxYaWlpOnDggK6//npHd63eOX1myJ7/AwEAAIDa69KliwYMGKALL7xQN910k/71r3/pyJEjdrXRp0+fM97/edanOsdYxcXF6eqrr9a8efMkSZ9//rmKi4t100031Umftm/fri5duphBSKoIdOXl5dq5c6ckqV+/fkpNTZVU8bv/lVdeaQak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atu2rV3fz2effVb//ve/9dNPPykqyjGTDk556GqjRo0UExNzxva8vDy99dZbWrhwoa688kpJ0vz589WhQwetXbtWF198sTO6VzvWJWt+YY5/EKp1GR7PGQIAAO6utEh6Js415/7HAck3qFqHFhQU6K233tJ7772nAQMGSJLefvttNW/eXJK0f/9+zZ8/X/v371dcXMX1TJgwQStWrND8+fP1zDPPSKoINnPnzlWbNm0kSTfeeKPeffddZWdnKzg4WB07dtQVV1yhVatW6ZZbbpEkm1DTunVrvfzyy+rVq5cKCgoUHBxs7nv66afVr18/SdLEiRN19dVX6/jx4/L399fs2bM1evRojR49WpL01FNP6auvvrJrdsjX11fz5s1TYGCgOnXqpCeffFKPPPKIZsyYoWPHjmnu3LlasGCBhgwZIkn617/+pZUrV+qtt97SI488ov79++utt95SWVmZtm7dKl9fX91yyy1KTU3V4MGDlZqaavbfnu/na6+9pi5dulT7OmrCKTNDu3fvVlxcnFq3bq3bb7/dnObasGGDSktLNXDgQPPY888/XwkJCUpPTz9re8XFxcrPz7d5uYz5wFUHzwpJzAwBAADUsYyMDJWUlKh3797mtoiICLVv316S9OOPP6qsrEzt2rVTcHCw+UpLS1NGRob5mcDAQDMISVJ0dLRatmxpE2qio6NtlsFt2LBBQ4cOVUJCgkJCQmwCw+k6d+5sfh0bGytJZjvbt2+36bsk9enTx67vQZcuXWwemNunTx8VFBTo119/VUZGhkpLS3XppZea+318fHTRRRdp+/btkqTLL79cR48e1aZNm5SWlqZ+/fqpf//+5mxRWlqa+vfvL6n6309fX1+b63YUh88M9e7dWwsWLFD79u2VmZmp6dOn6/LLL9fWrVuVlZUlX19fhYeH23wmOjpaWVlZZ20zOTnZZurOpcz7hZwQhqz3DB37Qyo7IXk7ZWIPAADAfj6BFTM0rjp3HSkoKJC3t7c2bNggb29vm32nBx0fHx+bfRaLpdJt1kIAhYWFSkxMVGJiot5//31FRkZq//79SkxMtLlf589tWx806qiCAjURHh6uLl26KDU1Venp6brqqqvUt29f3XLLLdq1a5d2795tBr3qfj8DAgKc8hBfh/82bZ1OkypSbe/evdWiRQt99NFHCggIqFGbkyZN0vjx4833+fn5io+Pr3Vfa6TAiWEooLFk8ZKMcqnokBRy5tJDAAAAt2CxVHupmiu1adNGPj4+WrdunRISEiRJR44c0a5du9SvXz9169ZNZWVlysnJ0eWXX15n592xY4cOHz6smTNnmr/Hrl+/3u52OnTooHXr1unOO+80t61du9auNrZs2aJjx46Zv5uvXbtWwcHBio+PV9OmTeXr66s1a9aoRYsWkiqWsH3//fc2z2Hq16+fVq1ape+++05PP/20IiIi1KFDBz399NOKjY1Vu3btJMlh38+acnpp7fDwcLVr10579uxRTEyMSkpKlJuba3NMdnZ2pfcYWfn5+Sk0NNTm5TLmMjkHV5KTJC9vKbBpxdcslQMAAKi14OBgjR49Wo888oi+/vprbd26VSNHjpSXV8Wvye3atdPtt9+uO++8U5988on27t2r7777TsnJyVq2bFmNz5uQkCBfX1+98sor+vnnn/XZZ59pxowZdrfz4IMPat68eZo/f7527dqlqVOn6qeffrKrjZKSEo0ePVrbtm3T8uXLNXXqVI0dO1ZeXl4KCgrSvffeq0ceeUQrVqzQtm3bNGbMGBUVFZn3KUkVD6n973//q0aNGpmVo/v376/333/fnBWSHPf9rCmnh6GCggJlZGQoNjZWPXr0kI+Pj1JSUsz9O3fu1P79++1e6+gyznrgqhXltQEAAOrUP//5T11++eUaOnSoBg4cqMsuu0w9evQw98+fP1933nmnHn74YbVv317Dhg3T999/b84k1URkZKQWLFigxYsXq2PHjpo5c6ZNeerquuWWWzR58mQ9+uij6tGjh3755Rfde++9drUxYMAAnXfeeebStmuuuUbTpk0z98+cOVM33HCD7rjjDnXv3l179uzRf//7XzVu3Ng85vLLL1d5eblN8Onfv7/KysrM+4WsHPH9rCmLYdhZe9BOEyZM0NChQ9WiRQsdOHBAU6dO1ebNm7Vt2zZFRkbq3nvv1fLly7VgwQKFhobq/vvvlyR9++231T5Hfn6+wsLClJeX5/xZog+GSzuXS399Uep517mPr613hkk/r5KGvS51He748wEAAJzD8ePHtXfvXrVq1Ur+/g6uros6NXLkSOXm5mrp0qWu7ordzvZzZ082cPg9Q7/99puGDx+uw4cPKzIyUpdddpnWrl2ryMiKe2xefPFFeXl56YYbblBxcbESExPt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wak6tm/fruuuu+6Mz58ehrZs2aI1a9bo6aefNreVlZXp+PHjKioqMh9C2rlzZ3N/dHS0JOnCCy+02Xb8+HHl5+crNDRUBQUFmjZtmpYtW6bMzEydOHFCx44d0/79+236c3q7FotFMTExysnJMfvfuXNn+fv71+j6N2/erMsvv9wMQs5iVxi65JJL9Oabb2rXrl1q166dtmzZom+++UazZs0662fy8vJksVjOeXPa7t27FRcXJ39/f/Xp00fJyclVhicAAAA4VkCjAK27bZ3Lzu0sBQUFGjp0aKWzOLGxsdq6daskadmyZWrWrJnNfj8/P6f0Uaro5/Tp03X99defse/0EHJ6oLA+mLSybeXl5ZKkCRMmaOXKlXr++efVtm1bBQQE6MYbb1RJSYnNOf4cVCwWi9lGbQUEOG+8T2dXGJo4caLy8/N1/vnny9vbW2VlZXr66ad1++23V3r88ePH9dhjj2n48OEKDQ09a7u9e/fWggUL1L59e2VmZmr69Om6/PLLtXXrVoWEhJxxfHFxsYqLi833+fn59lwGAAAAqsFisVRrqZqr+fr6qqysrMaf7969u/7zn/+oZcuWld6q0bFjR/n5+Wn//v3q169fpW106NBBn332mc22tWvXVrsPHTp00Lp1tsHzz5/v3r27du7cqbZt21a73epYs2aNRo4cac5MFRQU2F38oUOHDnr33Xd1/PhxM5jZc/2dO3fW22+/rdLSUqfODtlVTe6jjz7S+++/r4ULF2rjxo16++239fzzz+vtt98+49jS0lLdfPPNMgxDc+fOrbLdIUOG6KabblLnzp2VmJio5cuXKzc3Vx999FGlxycnJyssLMx8xcfH23MZAAAAaEBatmypdevWad++fTp06JDdsxVJSUn6448/NHz4cH3//ffKyMjQf//7X40aNUplZWUKCQnRhAkT9NBDD+ntt99WRkaGNm7cqFdeecX8Pfiee+7R7t279cgjj2jnzp1auHChXc8weuCBB7RixQo9//zz2r17t1599VWbJXKSNGXKFL3zzjuaPn26fvrpJ23fvl2LFi3SE088Ydf1/tl5552nTz75RJs3b9aWLVt022232f09vO2222SxWDRmzBht27ZNy5cv1/PPP1/tz48dO1b5+fm69dZbtX79eu3evVvvvvuudu7cae/l2MWuMPTII49o4sSJuvXWW3XhhRfqjjvu0EMPPaTk5GSb46xB6JdfftHKlSurnBWqTHh4uNq1a6c9e/ZUun/SpEnKy8szX7/++qtd7QMAAKDhmDBhgry9vdWxY0dFRkaeca/LucTFxWnNmjUqKyvToEGDdOGFF2rcuHEKDw+Xl1fFr8szZszQ5MmTlZycrA4dOmjw4MFatmyZWrVqJUlKSEjQf/7zHy1dulRdunTR66+/blOQ4Vwuvvhi/etf/9JLL72kLl266Msvvzwj5CQmJuqLL77Ql19+qV69euniiy/Wiy++qBYtWth1vX82a9YsNW7cWJdccomGDh2qxMREde/e3a42goOD9fnnn+vHH39Ut27d9Pjjj1e7eIQkNWnSRF9//bUKCgrUr18/9ejRQ//6178cPktkOVmCr1qaNGmip556yqYqRHJysubPn69du3ZJOhWEdu/erVWrVikyMtLuThUUFCghIUHTpk3TAw88cM7j8/PzFRYWpry8PLuDFwAAACpub9i7d69atWplc/8J4K7O9jNrTzawa2Zo6NChevrpp7Vs2TLt27dPS5Ys0axZs8z1haWlpbrxxhu1fv16vf/++yorK1NWVpaysrJsbsAaMGCAXn31VfP9hAkTlJaWpn379unbb7/VddddJ29vbw0fPtye7gEAAABAtdkVhl555RXdeOONuu+++9ShQwdNmDBBf//73zVjxgxJ0u+//67PPvtMv/32m7p27arY2Fjz9e2335rtZGRk2DzR97ffftPw4cPVvn173XzzzWrSpInWrl1bo1klAAAAeK577rlHwcHBlb7uuecel/VryJAhZ+2XPcvp6it3HRe7lsm5K5bJAQAA1E5DWSaXk5Nz1krDoaGhioqKcnKPKvz+++86duxYpfsiIiIUERHh5B45lyPGpS6WydlVWhsAAABwZ1FRUS4LPFX58/OJPI27jotdy+QAAADQsDWARUPwEHXxs0oYAgAAgFnCuKioyMU9AarH+rNam/LbLJMDAACAvL29FR4erpycHElSYGCgLBaLi3sFnMkwDBUVFSknJ0fh4eHy9vaucVuEIQAAAEiSYmJiJMkMRIA7Cw8PN39ma4owBAAAAEmSxWJRbGysoqKiVFpa6uruAGfl4+NTqxkhK8IQAAAAbHh7e9fJL5qAu6OAAgAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADwSIQhAAAAAB6JMAQAAADAIxGGAAAAAHgkwhAAAAAAj0QYAgAAAOCRCEMAAAAAPJJdYaisrEyTJ09Wq1atFBAQoDZt2mjGjBkyDMM8xjAMTZkyRbGxsQoICNDAgQO1e/fuc7Y9Z84ctWzZUv7+/urdu7e+++47+68GAAAAAKrJrjD07LPPau7cuXr11Ve1fft2Pfvss3ruuef0yiuvmMc899xzevnll/X6669r3bp1CgoKUmJioo4fP37Wdj/88EONHz9eU6dO1caNG9WlSxclJiYqJyen5lcGAAAAAFWwGKdP65zDX//6V0VHR+utt94yt91www0KCAjQe++9J8MwFBcXp4cfflgTJkyQJOXl5Sk6OloLFizQrbfeWmm7vXv3Vq9evfTqq69KksrLyxUfH6/7779fEydOPGe/8vPzFRYWpsxDmQoNDa3u5QAAAABoYPLz8xXbNFZ5eXnnzAaN7Gn4kksu0Ztvvqldu3apXbt22rJli7755hvNmjVLkrR3715lZWVp4MCB5mfCwsLUu3dvpaenVxqGSkpKtGHDBk2aNMnc5uXlpYEDByo9Pb3SfhQXF6u4uNjmgiXpysVXyjvA255LAgAAANCAlB0rq/axdoWhiRMnKj8/X+eff768vb1VVlamp59+WrfffrskKSsrS5IUHR1t87no6Ghz358dOnRIZWVllX5mx44dlX4mOTlZ06dPt6frAAAAAGDDrjD00Ucf6f3339fChQvVqVMnbd68WePGjVNcXJxGjBjhqD6eYdKkSRo/frz5Pj8/X/Hx8fr6pq9ZJgcAAAB4sPz8fMXeG1utY+0KQ4888ogmTpxoLne78MIL9csvvyg5OVkjRoxQTEyMJCk7O1uxsac6kJ2dra5du1baZtOmTeXt7a3s7Gyb7dnZ2WZ7f+bn5yc/P78ztgf6BCrQJ9CeSwIAAADQgJzwOVHtY+2qJldUVCQvL9uPeHt7q7y8XJLUqlUrxcTEKCUlxdyfn5+vdevWqU+fPpW26evrqx49eth8pry8XCkpKWf9DAAAAADUll0zQ0OHDtXTTz+thIQEderUSZs2bdKsWbN01113SZIsFovGjRunp556Suedd55atWqlyZMnKy4uTsOGDTPbGTBggK677jqNHTtWkjR+/HiNGDFCPXv21EUXXaTZs2ersLBQo0aNqrsrBQAAAIDT2BWGXnnlFU2ePFn33XefcnJyFBcXp7///e+aMmWKecyjjz6qwsJC3X333crNzdVll12mFStWyN/f3zwmIyNDhw4dMt/fcsstOnjwoKZMmaKsrCx17dpVK1asOKOoAgAAAADUFbueM+SurM8Zqk4tcQAAAAANlz3ZwK57hgAAAACgoSAMAQAAAPBIhCEAAAAAHokwBAAAAMAjEYYAAAAAeCTCEAAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADwSIQhAAAAAB6JMAQAAADAIxGGAAAAAHgkwhAAAAAAj0QYAgAAAOCRCEMAAAAAPBJhCAAAAIBHsisMtWzZUhaL5YxXUlKS9u3bV+k+i8WixYsXn7XNkSNHnnH84MGDa31hAAAAAFCVRvYc/P3336usrMx8v3XrVl111VW66aabFB8fr8zMTJvj33zzTf3zn//UkCFDqmx38ODBmj9/vvnez8/Pnm4BAAAAgN3sCkORkZE272fOnKk2bdqoX79+slgsiomJsdm/ZMkS3XzzzQoODq6yXT8/vzM+CwAAAACOVON7hkpKSvTee+/prrvuksViOWP/hg0btHnzZo0ePfqcbaWmpioqKkrt27fXvffeq8OHD9e0WwAAAABQLXbNDJ1u6dKlys3N1ciRIyvd/9Zbb6lDhw665JJLqmxn8ODBuv7669WqVStlZGToH//4h4YMGaL09HR5e3tX+pni4mIVFxeb7/Pz82t6GQAAAAA8lMUwDKMmH0xMTJSvr68+//zzM/YdO3ZMsbGxmjx5sh5++GG72v3555/Vpk0bffXVVxowYEClx0ybNk3Tp08/Y3teXp5CQ0PtOh8AAACAhiM/P19hYWHVygY1Wib3yy+/6KuvvtLf/va3Svd//PHHKioq0p133ml3261bt1bTpk21Z8+esx4zadIk5eXlma9ff/3V7vMAAAAA8Gw1WiY3f/58RUVF6eqrr650/1tvvaVrrrnmjIIL1fHbb7/p8OHDio2NPesxfn5+VJwDAAAAUCt2zwyVl5dr/vz5GjFihBo1OjNL7dmzR6tXrz7rrNH555+vJUuWSJIKCgr0yCOPaO3atdq3b59SUlJ07bXXqm3btkpMTLS3awAAAABQbXaHoa+++kr79+/XXXfdVen+efPmqXnz5ho0aFCl+3fu3Km8vDxJkre3t3744Qddc801ateunUaPHq0ePXrof//7HzM/AAAAAByqxgUU3Ik9N0kBAAAAaLgcXkABAAAAAOo7whAAAAAAj0QYAgAAAOCRCEMAAAAAPBJhCAAAAIBHIgwBAAAA8EiEIQAAAAAeiTAEAAAAwCMRhgAAAAB4JMIQAAAAAI9EGAIAAADgkQhDAAAAADwSYQgAAACARyIMAQAAAPBIjVzdgbpgGIYkKT8/38U9AQAAAOBK1kxgzQhVaRBh6PDhw5Kk+Ph4F/cEAAAAgDs4fPiwwsLCqjymQYShiIgISdL+/fvPecFwrF69eun77793dTc8HuPgHhgH98A4uAfGwT0wDu6BcXCsvLw8JSQkmBmhKg0iDHl5Vdz6FBYWptDQUBf3xrN5e3szBm6AcXAPjIN7YBzcA+PgHhgH98A4OIc1I1R5jBP6AQ+SlJTk6i5AjIO7YBzcA+PgHhgH98A4uAfGwX1YjOrcWeTm8vPzFRYWpry8PFI2AAAA4MHsyQYNYmbIz89PU6dOlZ+fn6u7AgAAAMCF7MkGDWJmCAAAAADs1SBmhgAAAADAXoQhAAAAAB6JMAQAAADAIxGGAAAAAHgkwhAAAAAAj0QYAgAAAOCRCEMAAAAAPBJhCAAAAIBHIgwBAAAA8EiEIQAAAAAeiTAEAAAAwCMRhgAAAAB4pEau7kBdKC8v14EDBxQSEiKLxeLq7gAAAABwEcMwdPToUcXFxcnLq+q5nwYRhg4cOKD4+HhXdwMAAACAm/j111/VvHnzKo9xeBhKTk7WJ598oh07diggIECXXHKJnn32WbVv39485s0339TChQu1ceNGHT16VEeOHFF4eHi1zxESEiKp4oJDQ0Pr+hIAAAAA1BP5+fmKj483M0JVHB6G0tLSlJSUpF69eunEiRP6xz/+oUGDBmnbtm0KCgqSJBUVFWnw4MEaPHiwJk2aZPc5rEvjQkNDCUMAAAAAqnX7jMUwDMMJfTEdPHhQUVFRSktLU9++fW32paam6oorrrB7Zig/P19hYWHKy8sjDAEAAAAezJ5s4PR7hvLy8iRJERERNW6juLhYxcXF5vv8/Pxa9wsAAACAZ3Fqae3y8nKNGzdOl156qS644IIat5OcnKywsDDzRfEEAAAAAPZy6sxQUlKStm7dqm+++aZW7UyaNEnjx48331tvkgIAAEDlysrKVFpa6upuAHXCx8dH3t7etW7HaWFo7Nix+uKLL7R69epzlrg7Fz8/P/n5+dVRzwAAABouwzCUlZWl3NxcV3cFqFPh4eGKiYmp1XNGHR6GDMPQ/fffryVLlig1NVWtWrVy9CkBAABwkjUIRUVFKTAwkAfUo94zDENFRUXKycmRJMXGxta4LYeHoaSkJC1cuFCffvqpQkJClJWVJUkKCwtTQECApIq/pFlZWdqzZ48k6ccff1RISIgSEhJqVWgBAADAk5WVlZlBqEmTJq7uDlBnrDkiJydHUVFRNV4y5/ACCnPnzlVeXp769++v2NhY8/Xhhx+ax7z++uvq1q2bxowZI0nq27evunXrps8++8zR3QMAAGiwrPcIBQYGurgnQN2z/lzX5l44pyyTO5dp06Zp2rRpju4KAACAR2JpHBqiuvi5dmppbQAAAABwF4QhAAAAwE31799f48aNc3U3amzatGnq2rWrq7txVoQhAAAAuB1nhIDU1FRZLBbKjnswwhAAAAAaFMMwdOLECaeekwfa1k+EIQAAALiVkSNHKi0tTS+99JIsFossFov27dt31uOtMzz/93//px49esjPz0/ffPONysvLlZycrFatWikgIEBdunTRxx9/LEnat2+frrjiCklS48aNZbFYNHLkSElSy5YtNXv2bJtzdO3a1abgl8Vi0dy5c3XNNdcoKChITz/9tLkk7N1331XLli0VFhamW2+9VUePHq3WdRcWFurOO+9UcHCwYmNj9cILL5xxTHFxsSZMmKBmzZopKChIvXv3Vmpqqrl/wYIFCg8P1xdffKH27dsrMDBQN954o4qKivT222+rZcuWaty4sR544AGVlZWZn3v33XfVs2dPhYSEKCYmRrfddpv5HJ/Tv8cpKSnq2bOnAgMDdckll2jnzp02/Zs5c6aio6MVEhKi0aNH6/jx49W6dqt58+apU6dO8vPzU2xsrMaOHWvX5+1FGAIAAPAQhmGovKjIJa/qVBi2eumll9SnTx+NGTNGmZmZyszMVHx8/Dk/N3HiRM2cOVPbt29X586dlZycrHfeeUevv/66fvrpJz300EP6f//v/yktLU3x8fH6z3/+I0nauXOnMjMz9dJLL9n1/Zw2bZquu+46/fjjj7rrrrskSRkZGVq6dKm++OILffHFF0pLS9PMmTOr1d4jjzyitLQ0ffrpp/ryyy+VmpqqjRs32hwzduxYpaena9GiRfrhhx90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KYqNjVVAQIAGDhyo3bt31/m11SdVjYMkpaen68orr1RQUJBCQ0PVt29fHTt2rMo2U1NT1b17d/n5+alt27ZasGCB3ef1NFV9PzIyMnTdddcpMjJSoaGhuvnmm5WdnX3ONhkH+6xevVpDhw5VXFycLBaLli5dau4rLS3VY489pgsvvFBBQUGKi4vTnXfeqQMHDpyzXcbBPlWNgySNHDlSFovF5jV48OBztss4VN+5xqCgoEBjx45V8+bNFRAQoI4dO+r1118/Z7s//PCDLr/8cvn7+ys+Pl7PPffcGcec699xT5KcnKxevXopJCREUVFRGjZsmHbu3GlzzJtvvqn+/fsrNDRUFotFubm51Wqbvw8udM7HssIjLFq0yPD19TXmzZtn/PTTT8aYMWOM8PBwIzs72zAMw3jjjTeMtLQ0Y+/evcaGDRuMoUOHGvHx8caJEyfO2uaaNWsMb29v47nnnjO2bdtmPPHEE4aPj4/x448/msfMnDnTCAsLM5YuXWps2bLFuOaaa4xWrVoZx44dc/g1u6NzjcO3335rhIaGGsnJycbWrVuNHTt2GB9++KFx/Pjxs7b5888/G4GBgcb48eONbdu2Ga+88orh7e1trFixotrn9TRVfT8KCgqM1q1bG9ddd53xww8/GD/88INx7bXXGr169TLKysrO2ibjYL/ly5cbjz/+uPHJJ58YkowlS5aY+3Jzc42BAwcaH374obFjxw4jPT3duOiii4wePXpU2SbjYL+qxsEwDGPEiBHG4MGDjczMTPP1xx9/VNkm42Cfc43BmDFjjDZt2hirVq0y9u7da7zxxhuGt7e38emnn561zby8PCM6Otq4/fbbja1btxoffPCBERAQYLzxxhvmMdX5d9yTJCYmGvPnzze2bt1qbN682fjLX/5iJCQkGAUFBeYxL774opGcnGwkJycbkowjR46cs13+PriW24ShV1991WjRooXh5+dnXHTRRca6devMfceOHTPuu+8+IyIiwggKCjKuv/56Iysr65xtfvTRR0b79u0NPz8/44ILLjCWLVtms7+8vNyYPHmyERMTY/j7+xsDBgwwdu3aVefXVh9cdNFFRlJSkvm+rKzMiIuLM5KTkys9fsuWLYYkY8+ePWdt8+abbzauvvpqm229e/c2/v73vxuGUfH9j4mJMf75z3+a+3Nzcw0/Pz/jgw8+qM3l1FvnGofevXsbTzzxhF1tPvroo0anTp1stt1yyy1GYmJitc/raar6fvz3v/81vLy8jLy8PHN/bm6uYbFYjJUrV561Tcahdir7BfDPvvvuO0OS8csvv5z1GMahds4Whq699lq72mEcaq6yMejUqZPx5JNP2mzr3r278fjjj5+1nddee81o3LixUVxcbG577LHHjPbt25vvz/XvuKfLyckxJBlpaWln7Fu1alW1wxB/H1zLLZbJffjhhxo/frymTp2qjRs3qkuXLkpMTFROTo4k6aGHHtLnn3+uxYsXKy0tTQcOHND1119fZZvffvuthg8frtGjR2vTpk0aNmyYhg0bpq1bt5rHPPfcc3r55Zf1+uuva926dQoKClJiYqKOHz/u0Ot1NyUlJdqwYYMGDhxobvPy8tLAgQOVnp5+xvGFhYWaP3++WrVqpfj4eHN7y5YtNW3aNPN9enq6TZuSlJiYaLa5d+9eZWVl2RwTFham3r17V3rehu5c45CTk6N169YpKipKl1xyiaKjo9WvXz998803Nu30799fI0eONN+faxzsHf+G7lzfj+LiYlksFptynf7+/vLy8rIZC8bB+fLy8mSxWBQeHm5uYxycIzU1VVFRUWrfvr3uvfdeHT582GY/4+BYl1xyiT777DP9/vvvMgxDq1at0q5duzRo0CDzmJEjR6p///7m+/T0dPXt21e+vr7mtsTERO3cuVNHjhwxj6lqnDxdXl6eJCkiIsKuz/H3wb24RRiaNWuWxowZo1GjRpnrXAMDAzVv3jzl5eXprbfe0qxZs3TllVeqR48emj9/vr799lutXbv2rG2+9NJLGjx4sB555BF16NBBM2bMUPfu3fXqq69KqrhXZfbs2XriiSd07bXXqnPnznrnnXd04MCBM9biNnSHDh1SWVmZoqOjbbZHR0crKyvLfP/aa68pODhYwcHB+r//+z+tXLnS5j+ibdq0UdOmTc33WVlZVbZp/fNc5/UU5xqHn3/+WZI0bdo0jRkzRitWrFD37t01YMAAm/usEhISFBsba74/2zjk5+fr2LFj1R5/T3Gu78fFF1+soKAgPfbYYyoqKlJhYaEmTJigsrIyZWZmmsczDs51/PhxPfbYYxo+fLjNA/YYB8cbPHiw3nnnHaWkpOjZZ59VWlqahgwZorKyMvMYxsGxXnnlFXXs2FHNmzeXr6+vBg8erDlz5qhv377mMbGxsUpISDDfn20MrPuqOoYxkMrLyzVu3DhdeumluuCCC+z6LH8f3EsjV3fAmnYnTZpkbjs97V500UUqLS21ScPnn3++EhISlJ6erosvvlhSxazEyJEjzZmJ9PR0jR8/3uZciYmJZtA516zErbfe6qArrr9uv/12XXXVVcrMzNTzzz+vm2++WWvWrJG/v78kKSUlxcU9bNjKy8slVRSzGDVqlCSpW7duSklJ0bx585ScnCxJeuedd1zWR08QGRmpxYsX695779XLL78sLy8vDR8+XN27d5eX16n/v8Q4OE9paaluvvlmGYahuXPn2uxjHBzv9H8vL7zwQnXu3Flt2rRRamqqBgwYIIlxcLRXXnlFa9eu1WeffaYWLVpo9erVSkpKUlxcnPl7jvXfCNSNpKQkbd269YzVGdXB3wf34vIwVFXa3bFjh7KysuTr62uz7MG6//Q0zKxEzTVt2lTe3t5nVMPKzs5WTEyM+T4sLExhYWE677zzdPHFF6tx48ZasmSJhg8fXmm7MTExVbZp/TM7O9vm/5BkZ2era9eudXFp9cq5xsH6PerYsaPN/g4dOmj//v1nbfds4xAaGqqAgAB5e3tXa/w9RXX+PgwaNEgZGRk6dOiQGjVqpPDwcMXExKh169ZnbZdxcAxrEPrll1/09ddf28wKVYZxcLzWrVuradOm2rNnjxmG/oxxqDvHjh3TP/7xDy1ZskRXX321JKlz587avHmznn/++TOWX1mdbQys+6o6xtPHYOzYsfriiy+0evVqNW/evNbt8ffBtdximVxdSElJ0dixY13djXrJ19dXPXr0sJnZKS8vV0pKivr06VPpZ4yK4hsqLi4+a7t9+vQ5Y7Zo5cqVZputWrVSTEyMzTH5+flat27dWc/bkJ1rHFq2bKm4uLgzynju2rVLLVq0OGu75xqHmox/Q2bP96Np06YKDw/X119/rZycHF1zzTVnbZdxqHvWILR792599dVXatKkyTk/wzg43m+//abDhw/b/E+uP2Mc6k5paalKS0ttZqYlydvb21xRUJk+ffpo9erVKi0tNbetXLlS7du3V+PGjc1jqhonT2MYhsaOHaslS5bo66+/VqtWreqkXf4+uJgrqzcYhmEUFxcb3t7eZ1RGufPOO41rrrnGSElJqbQaR0JCgjFr1qyzthsfH2+8+OKLNtumTJlidO7c2TAMw8jIyDAkGZs2bbI5pm/fvsYDDzxQ08uptxYtWmT4+fkZCxYsMLZt22bcfffdRnh4uJGVlWVkZGQYzzzzjLF+/Xrjl19+MdasWWMMHTrUiIiIsCnpeOWVVxqvvPKK+X7NmjVGo0aNjOeff97Yvn27MXXq1EpLa4eHhxuffvqpWaLY00trn20cDKOiZGdoaKixePFiY/fu3cYTTzxh+Pv721T1u+OOO4yJEyea760lOx955BFj+/btxpw5cyot2VnVeT3Nub4f8+bNM9LT0409e/YY7777rhEREWGMHz/epg3GofaOHj1qbNq0ydi0aZMhyZg1a5axadMm45dffjFKSkqMa665xmjevLmxefNmm7LOp1fHYhxqr6pxOHr0qDFhwgQjPT3d2Lt3r/HVV18Z3bt3N8477zybkv+MQ+1UNQaGYRj9+vUzOnXqZKxatcr4+eefjfnz5xv+/v7Ga6+9ZrYxceJE44477jDf5+bmGtHR0cYdd9xhbN261Vi0aJERGBh4Rmntc/077knuvfdeIywszEhNTbX5b05RUZF5TGZmprFp0ybjX//6lyHJWL16tbFp0ybj8OHD5jH8fXAvLg9DhlFRLnDs2LHm+7KyMqNZs2ZGcnKykZuba/j4+Bgff/yxuX/Hjh2GJCM9Pf2sbd58883GX//6V5ttffr0OaOs8/PPP2/uz8vL8+iyzq+88oqRkJBg+Pr6GhdddJGxdu1awzAM4/fffzeGDBliREVFGT4+Pkbz5s2N2267zdixY4fN51u0aGFMnTrVZttHH31ktGvXzvD19TU6dep01vLm0dHRhp+fnzFgwABj586dDr1Od3e2cbBKTk42mjdvbgQGBhp9+vQx/ve//9ns79evnzFixAibbatWrTK6du1q+Pr6Gq1btzbmz59v93k9TVXfj8cee8yIjo42fHx8jPPOO8944YUXjPLycpvPMw61Zy1N++fXiBEjjL1791a6T5KxatUqsw3GofaqGoeioiJj0KBBRmRkpOHj42O0aNHCGDNmzBm/oDEOtVPVGBhGxS/gI0eONOLi4gx/f3+jffv2Z/x3acSIEUa/fv1s2t2yZYtx2WWXGX5+fkazZs2MmTNnnnHuc/077knO9t+c0392p06des5j+PvgXiyGYRgOnHiqlg8//FAjRozQG2+8oYsuukizZ8/WRx99pB07dig6Olr33nuvli9frgULFig0NFT333+/pIry2VYDBgzQddddZy6V+/bbb9WvXz/NnDlTV199tRYtWqRnnnlGGzduNKt+PPvss5o5c6befvtttWrVSpMnT9YPP/ygbdu2mUUBAAAAADRMLi+gIEm33HKLDh48qClTpigrK0tdu3bVihUrzOIGL774ory8vHTDDTeouLhYiYmJeu2112zasN7MbHXJJZdo4cKFeuKJJ/SPf/xD5513npYuXWpT/vDRRx9VYWGh7r77buXm5uqyyy7TihUrCEIAAACAB3CLmSEAAAAAcLYGU00OAAAAAOxBGAIAAADgkQhDAAAAADwSYQgAAACARyIMAQAAAPBILg1Dc+bMUcuWLeXv76/evXvru+++M/e9+eab6t+/v0JDQ2WxWJSbm1utNhcsWKDw8HDHdBgAAABAg+GyMPThhx9q/Pjxmjp1qjZu3KguXbooMTFROTk5kqSioiINHjxY//jHP1zVRQAAAAANmMvC0KxZszRmzBiNGjVKHTt21Ouvv67AwEDNmzdPkjRu3DhNnDhRF198ca3Ok5GRoWuvvVbR0dEKDg5Wr1699NVXX9kc07JlSz3zzDO66667FBISooSEBL355pu1Oi8AAAAA9+aSMFRSUqINGzZo4MCBpzri5aWBAwcqPT29Ts9VUFCgv/zlL0pJSdGmTZs0ePBgDR06VPv377c57oUXXlDPnj21adMm3Xfffbr33nu1c+fOOu0LAAAAAPfhkjB06NAhlZWVKTo62mZ7dHS0srKy6vRcXbp00d///nddcMEFOu+88zRjxgy1adNGn332mc1xf/nLX3Tfffepbdu2euyxx9S0aVOtWrWqTvsCAAAAwH3U22pyQ4YMUXBwsIKDg9WpU6ezHldQUKAJEyaoQ4cOCg8PV3BwsLZv337GzFDnzp3Nry0Wi2JiYsz7lwAAAAA0PI1ccdKmTZvK29tb2dnZNtuzs7MVExNTrTb+/e9/69ixY5IkHx+fsx43YcIErVy5Us8//7zatm2rgIAA3XjjjSopKbE57s9tWCwWlZeXV6svAAAAAOofl4QhX19f9ejRQykpKRo2bJgkqby8XCkpKRo7dmy12mjWrFm1jluzZo1Gjhyp6667TlLFTNG+fftq0m0AAAAADYhLwpAkjR8/XiNGjFDPnj110UUXafbs2SosLNSoUaMkSVlZWcrKytKePXskST/++KNZ6S0iIqLa5znvvPP0ySefaOjQobJYLJo8eTIzPgAAAABcF4ZuueUWHTx4UFOmTFFWVpa6du2qFStWmEUVXn/9dU2fPt08vm/fvpKk+fPna+TIkWdtt7y8XI0anbqsWbNm6a677tIll1yipk2b6rHHHlN+fr5jLgoAAABAvWExDMNwdSfq0syZM/Xee+9p69atru4KAAAAADfmspmhulZUVKQdO3Zo/vz5GjJkiKu7AwAAAMDN1dvS2n/25ptvauDAgerSpYumTJni6u4AAAAAcHMNbpkcAAAAAFRHg5kZAgAAAAB7EIYAAAAAeCS3CUPJycnq1auXQkJCFBUVpWHDhmnnzp02xxw/flxJSUlq0qSJgoODdcMNNyg7O9vcv2XLFg0fPlzx8fEKCAhQhw4d9NJLL51xrtTUVHXv3l1+fn5q27atFixY4OjLAwAAAOBm3CYMpaWlKSkpSWvXrtXKlStVWlqqQYMGqbCw0DzmoYce0ueff67FixcrLS1NBw4c0PXXX2/u37Bhg6KiovTee+/pp59+0uOPP65Jkybp1VdfNY/Zu3evrr76al1xxRXavHmzxo0bp7/97W/673//69TrBQAAAOBabltA4eDBg4qKilJaWpr69u2rvLw8RUZGauHChbrxxhslSTt27FCHDh2Unp6uiy++uNJ2kpKStH37dn399deSpMcee0zLli2zeQ7RrbfeqtzcXK1YscLxFwYAAADALbjNzNCf5eXlSZIiIiIkVcz6lJaWauDAgeYx559/vhISEpSenl5lO9Y2JCk9Pd2mDUlKTEyssg0AAAAADY9bPnS1vLxc48aN06WXXqoLLrhAkpSVlSVfX1+Fh4fbHBsdHa2srKxK2/n222/14YcfatmyZea2rKwsRUdHn9FGfn6+jh07poCAgLq9GAAAAABuyS3DUFJSkrZu3apvvvmmxm1s3bpV1157raZOnapBgwbVYe8AAAAANARut0xu7Nix+uKLL7Rq1So1b97c3B4TE6OSkhLl5ubaHJ+dna2YmBibbdu2bdOAAQN0991364knnrDZFxMTY1OBztpGaGgos0IAAACAB3GbMGQYhsaOHaslS5bo66+/VqtWrWz29+jRQz4+PkpJSTG37dy5U/v371efPn3MbT/99JOuuOIKjRgxQk8//fQZ5+nTp49NG5K0cuVKmzYAAAAANHxuU03uvvvu08KFC/Xpp5+qffv25vawsDBzxubee+/V8uXLtWDBAoWGhur++++XVHFvkFSxNO7KK69UYmKi/vnPf5pteHt7KzIyUlJFae0LLrhASUlJuuuuu/T111/rgQce0LJly5SYmOisywUAAADgYm4ThiwWS6Xb58+fr5EjR0qqeOjqww8/rA8++EDFxcVKTEzUa6+9Zi6TmzZtmqZPn35GGy1atNC+ffvM96mpqXrooYe0bds2NW/eXJMnTzbPAQAAAMAzuE0YAgAAAABncpt7hgAAAADAmQhDAAAAADwSYQgAAACARyIMAQAAAPBIhCEAAAAAHokwBAAAAMAjEYYAAAAAeCTCEAAAAACPRBgCAAAA4JEIQwAAAAA8EmEIAAAAgEciDAEAAADwSP8f6iwC3DOSfS8AAAAASUVORK5CYII=", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "res1 = prosumer1.time_series.copy()" ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df1.plot(subplots=True, figsize=(10, 6))" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from pandaprosumer.create import create_empty_prosumer_container, create_period\n", - "from pandaprosumer.create_controlled import (\n", - " create_controlled_const_profile,\n", - " create_controlled_heat_storage,\n", - " create_controlled_heat_demand\n", - ")\n", - "\n", - "prosumer1 = create_empty_prosumer_container()\n", - "period_id = create_period(prosumer1, time_resolution_s, start, end, 'utc', 'default')\n", - "\n", - "cp_input = ['supply_power', 'demand_power', 't_feed_demand_c', 't_return_demand_c']\n", - "cp_result = ['supply_power', 'qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", - "cp_idx = create_controlled_const_profile(prosumer1, cp_input, cp_result, profile1, period_id, 0, 0)\n", - "\n", - "hs_idx = create_controlled_heat_storage(prosumer1, q_capacity_kwh=100.0, name='tank_power_only',\n", - " period=period_id, level=1, order=0)\n", - "hd_idx = create_controlled_heat_demand(prosumer1, period=period_id, level=1, order=1, name='heat_consumer')" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "" + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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PMeqHE/K0nl8OZVJNxERERERUX1h9jndI0aMQHp6OubNm4eUlBR06tQJu3fv1i6uduvWLZ1u+3Xr1kGlUuH555/XaSc6Ohrz58+HjY0Nzp49i88//xzZ2dkIDAzE448/joULF1Y4hNzcjiVlAgBc5bZQFJXgUmqemSMiIiIiIiIiQzH7Pt2WyJT7dA9ZdQgX7yowoU8oPjucBH9XOX6fU37eOREREREREVkOfffpNvvw8oYsp6AYiSlle4KPDm8CAEhRFCGnoNicYREREREREZGBMOk2oxM370EIIMzbCWE+zmjk7gAAuJzGed1ERERERET1AZNuMzqWdA8A0D3EEwDQ0t8FAFcwJyIiIiIiqi+YdJvRsRtlSXeP0LKku4VfWdLNFcyJiIiIiIjqBybdZlKgKsGft3MAPEi6W/o7AwAS2dNNRERERERULzDpNpPTt7JRohYIdJOjsUfZXO6He7q5qDwREREREZH1Y9JtJkeTHgwtl0gkAICmPs6QSoDsgmKk5yrNGR4REREREREZAJNuMzmWlAkA6H5/aDkAyO1sEOLtBAC4xHndREREREREVo9JtxmoStQ4fSsbABD+UNINAC39uII5ERERERFRfcGk2wz+TM6GskQNTyd7NPVx1jnGFcyJiIiIiIjqDybdZqCdzx3yYD63RivNXt2peSaPi4iIiIiIiAyLSbcZHLufdHf/29ByAGhxP+m+kpoLtZormBMREREREVkzJt0mVqoWOHkjC0D5+dwAEOzpCHtbKQpUpbidVWjq8IiIiIiIiMiAmHSb2MW7CuQqS+Ass0XrANdyx21tpGh2f543VzAnIiIiIiKybky6TUwztLxbiAdspJIK67T052JqRERERERE9QGTbhPTzucOKT+0XKMFtw0jIiIiIiKqF5h0m5AQAsdvlCXdFc3n1mjpXza8nD3dRERERERE1o1JtwldS89HZr4KMlsp2jd2q7Sepqf7WnoeikvVpgqPiIiIiIiIDIxJtwlphpZ3buIOma1NpfUauTvAWWaL4lKBGxn5pgqPiIiIiIiIDIxJtwkdS8oEAPSoYj43AEgkErTw4wrmRERERERE1o5Jtwkdv78/d49Qr2rralcw52JqREREREREVssiku61a9ciJCQEcrkc4eHhOHbsWKV1N27ciL59+8LDwwMeHh6IiIgoV18IgXnz5iEgIAAO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x6tXrwZQtie65joAdFZOB6DtmX7yySe1ZaGhoWjUqBFWrFiB4uJi9O7dG0BZMn7t2jV8/fXXeOSRR2Br+6C/oa6vGRERkT7Y001ERKSHX3/9FYmJiSgpKUFqair279+PvXv3Ijg4GD/88APkcrm27tq1a9GnTx+0b98eEydORFhYGFJTU5GQkIDbt2/jzJkzNb7+iBEjsHr1akRHR6N9+/Y6Pb9A2dZlO3bswGuvvYa4uDj07t0bpaWlSExMxI4dO7Bnzx5069atymssXrwYcXFxCA8Px8SJE9GmTRvcu3cPp06dwr59+3Dv3j0AwMSJE7FmzRqMGTMGJ0+eREBAAL788ks4OjrW6DklJSVh6NChGDx4MBISEvCf//wHL774onbYfMeOHTF27Fhs2LAB2dnZ6N+/P44dO4bPP/8cw4YNw6OPPqrTXt++fbFt2za0b98eHh4eAIAuXbrAyckJly9f1pnPbajXjIiIqDpMuomIiPQwb948AIC9vT08PT3Rvn17rFy5EuPHj4eLi4tO3TZt2uDEiRNYsGABtmzZgszMTPj6+qJz587admqqV69eCAoKwl9//VXhHtJSqRS7du3CihUr8MUXX+C7776Do6MjwsLC8NZbb6FFixbVXsPPzw/Hjh3D+++/j2+//RaffPIJvLy80LZtW3z44Yfaeo6OjoiNjcUbb7yB1atXw9HREaNHj8aQIUMwePBgvZ/T9u3bMW/ePLzzzjuwtbXF1KlTsXTpUp06//d//4ewsDBs2bIF3333Hfz9/TF79mxER0eXa0+TdPfp00dbZmtri549e2Lfvn0687kN9ZoRERFVRyKEEOYOgoiIiBqO+fPnY8GCBUhPT4e3t7e5wyEiIjIqzukmIiIiIiIiMhIm3URERERERERGwqSbiIiIiIiIyEg4p5uIiIiIiIjISNjTTURERERERGQkTLqJiIiIiIiIjIT7dFdArVbjzp07cHFxgUQiMXc4REREREREZGGEEMjNzUVgYCCk0sr7s5l0V+DOnTsICgoydxhERERERERk4f766y80bty40uNMuivg4uICALh58ybc3d3NGwwRERERERFZnOzsbAQHB2vzx8ow6a6AZki5q6srXF1dzRwNERERERERWRq1Wg0A1U5J5kJqREREREREREZilUl3cnIyXnrpJXh5ecHBwQHt27fHiRMntMeF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eDkREREREVGdmXSf7pkzZyIzMxPdunVDaWkp9uzZY51beZmKdni5CXu63dnTTUREREREZChGTbo//vjjcmWNGjWCo6Mj+vXrh2PHjuHYsWMAgDfffNOYoVgnzT7d5hhezp5uIiIiIiKiOjNq0r1ixYoKy21sbHDkyBEcOXIEACCRSJh0V8Qcw8sfXkhNCEAiMd21iYiIiIiI6hmjJt1JSUnGbL7+M8fwcs2WYcUFQME9wMnLdNcmIiIiIiKqZ0y2ejnVQpEZerrt5ICzX9n3ObdMd10iIiIiIqJ6yKhJ9+LFi1FQUKBX3aNHj3LrsL8zx5ZhAOd1ExERERERGYhRk+4LFy4gODgYr7/+On799Vekp6drj5WUlODs2bP45JNP0KtXL4wYMQIuLi7GDMf6mGNON/DQCua3TXtdIiIiIiKiesaoc7q/+OILnDlzBmvWrMGLL74IhUIBGxsbyGQybQ94586d8corr2DcuHGQy+XGDMe6lJYAqryy702ddLtx2zAiIiIiIiJDMPo+3R07dsTGjRvx6aef4uzZs7h58yYKCwvh7e2NTp06wdvb29ghWCdNLzdgxuHlnNNNRERERERUF0ZPujWkUik6deqETp06meqS1k0zn9vWAbC1N+213dnTTUREREREZAhcvdxSaedzm7iXG+BCakRERERERAbCpNtSmWO7MA1NT3fhPUCVb/rrExERERER1RNMui2VubYLA8oSfdn9ZJ+93URERERERLXGpNtSmWu7MA3O6yYiIiIiIqozkyTdxcXFsLW1xblz50xxufpB09NtjjndALcNIyIiIiIiMgCTJN12dnZo0qQJSktLTXG5+sGcc7qBBz3dHF5ORERERERUayYbXj537lzMmTMH9+7dM9UlrZs553QD7OkmIiIiIiIyAJPt071mzRpcvXoVgYGBCA4OhpOTk87xU6dOmSoU66A08/By9nQTERERERHVmcmS7mHDhpnqUvWDdk63u3muz55uIiIiIiKiOjNZ0h0dHW2qS9UPmjnd5h5ennsXKC0GbOzMEwcREREREZEVM+mWYdnZ2fi///s/zJ49Wzu3+9SpU0hOTjZlGNbB3FuGOfkANjJAqAEF7w8REREREVFtmKyn++zZs4iIiICbmxtu3LiBiRMnwtPTE99++y1u3bqFL774wlShWAdzbxkmlQJujYF718rmdXuE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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# time_series rows are indexed by integer; use name column to get the storage results\n", + "res1_idx = res1[res1['name'] == 'tank_power_only'].index[0]\n", + "df_hs1 = res1.data_source.loc[res1_idx].df\n", + "\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "df_hs1.soc.plot(ax=axes[0], color='C0')\n", + "axes[0].set_ylabel('SOC (-)')\n", + "axes[0].set_title('Part 1 (GenericMapping): Heat storage SOC')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hs1.q_delivered_kw.plot(ax=axes[1], color='C1')\n", + "axes[1].set_ylabel('Power (kW)')\n", + "axes[1].set_title('Delivered power')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from pandaprosumer.mapping import GenericMapping\n", - "\n", - "# Const profile -> Heat storage: supply power as q_received_kw\n", - "GenericMapping(prosumer1, initiator_id=cp_idx, initiator_column='supply_power',\n", - " responder_id=hs_idx, responder_column='q_received_kw', order=0)\n", - "# Const profile -> Heat demand: demand request and temperatures\n", - "GenericMapping(prosumer1, initiator_id=cp_idx,\n", - " initiator_column=['qdemand_kw', 't_feed_demand_c', 't_return_demand_c'],\n", - " responder_id=hd_idx, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=1)\n", - "# Heat storage -> Heat demand: delivered power as q_received_kw\n", - "GenericMapping(prosumer1, initiator_id=hs_idx, initiator_column='q_delivered_kw',\n", - " responder_id=hd_idx, responder_column='q_received_kw', order=0)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "from pandaprosumer.run_time_series import run_timeseries\n", - "\n", - "run_timeseries(prosumer1, period_id, verbose=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "res1 = prosumer1.time_series.copy()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ + }, { - "data": { - "image/png": "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PMeqHE/K0nl8OZVJNxERERERUX1h9jndI0aMQHp6OubNm4eUlBR06tQJu3fv1i6uduvWLZ1u+3Xr1kGlUuH555/XaSc6Ohrz58+HjY0Nzp49i88//xzZ2dkIDAzE448/joULF1Y4hNzcjiVlAgBc5bZQFJXgUmqemSMiIiIiIiIiQzH7Pt2WyJT7dA9ZdQgX7yowoU8oPjucBH9XOX6fU37eOREREREREVkOfffpNvvw8oYsp6AYiSlle4KPDm8CAEhRFCGnoNicYREREREREZGBMOk2oxM370EIIMzbCWE+zmjk7gAAuJzGed1ERERERET1AZNuMzqWdA8A0D3EEwDQ0t8FAFcwJyIiIiIiqi+YdJvRsRtlSXeP0LKku4VfWdLNFcyJiIiIiIjqBybdZlKgKsGft3MAPEi6W/o7AwAS2dNNRERERERULzDpNpPTt7JRohYIdJOjsUfZXO6He7q5qDwREREREZH1Y9JtJkeTHgwtl0gkAICmPs6QSoDsgmKk5yrNGR4REREREREZAJNuMzmWlAkA6H5/aDkAyO1sEOLtBAC4xHndREREREREVo9JtxmoStQ4fSsbABD+UNINAC39uII5ERERERFRfcGk2wz+TM6GskQNTyd7NPVx1jnGFcyJiIiIiIjqDybdZqCdzx3yYD63RivNXt2peSaPi4iIiIiIiAyLSbcZHLufdHf/29ByAGhxP+m+kpoLtZormBMREREREVkzJt0mVqoWOHkjC0D5+dwAEOzpCHtbKQpUpbidVWjq8IiIiIiIiMiAmHSb2MW7CuQqS+Ass0XrANdyx21tpGh2f543VzAnIiIiIiKybky6TUwztLxbiAdspJIK67T052JqRERERERE9QGTbhPTzucOKT+0XKMFtw0jIiIiIiKqF5h0m5AQAsdvlCXdFc3n1mjpXza8nD3dRERERERE1o1JtwldS89HZr4KMlsp2jd2q7Sepqf7WnoeikvVpgqPiIiIiIiIDIxJtwlphpZ3buIOma1NpfUauTvAWWaL4lKBGxn5pgqPiIiIiIiIDIxJtwkdS8oEAPSoYj43AEgkErTw4wrmRERERERE1o5Jtwkdv78/d49Qr2rralcw52JqREREREREVssiku61a9ciJCQEcrkc4eHhOHbsWKV1N27ciL59+8LDwwMeHh6IiIgoV18IgXnz5iEgIAAO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x6tXrwZQtie65joAdFZOB6DtmX7yySe1ZaGhoWjUqBFWrFiB4uJi9O7dG0BZMn7t2jV8/fXXeOSRR2Br+6C/oa6vGRERkT7Y001ERKSHX3/9FYmJiSgpKUFqair279+PvXv3Ijg4GD/88APkcrm27tq1a9GnTx+0b98eEydORFhYGFJTU5GQkIDbt2/jzJkzNb7+iBEjsHr1akRHR6N9+/Y6Pb9A2dZlO3bswGuvvYa4uDj07t0bpaWlSExMxI4dO7Bnzx5069atymssXrwYcXFxCA8Px8SJE9GmTRvcu3cPp06dwr59+3Dv3j0AwMSJE7FmzRqMGTMGJ0+eREBAAL788ks4OjrW6DklJSVh6NChGDx4MBISEvCf//wHL774onbYfMeOHTF27Fhs2LAB2dnZ6N+/P44dO4bPP/8cw4YNw6OPPqrTXt++fbFt2za0b98eHh4eAIAuXbrAyckJly9f1pnPbajXjIiIqDpMuomIiPQwb948AIC9vT08PT3Rvn17rFy5EuPHj4eLi4tO3TZt2uDEiRNYsGABtmzZgszMTPj6+qJz587admqqV69eCAoKwl9//VXhHtJSqRS7du3CihUr8MUXX+C7776Do6MjwsLC8NZbb6FFixbVXsPPzw/Hjh3D+++/j2+//RaffPIJvLy80LZtW3z44Yfaeo6OjoiNjcUbb7yB1atXw9HREaNHj8aQIUMwePBgvZ/T9u3bMW/ePLzzzjuwtbXF1KlTsXTpUp06//d//4ewsDBs2bIF3333Hfz9/TF79mxER0eXa0+TdPfp00dbZmtri549e2Lfvn0687kN9ZoRERFVRyKEEOYOgoiIiBqO+fPnY8GCBUhPT4e3t7e5wyEiIjIqzukmIiIiIiIiMhIm3URERERERERGwqSbiIiIiIiIyEg4p5uIiIiIiIjISNjTTURERERERGQkTLqJiIiIiIiIjIT7dFdArVbjzp07cHFxgUQiMXc4REREREREZGGEEMjNzUVgYCCk0sr7s5l0V+DOnTsICgoydxhERERERERk4f766y80bty40uNMuivg4uICALh58ybc3d3NGwwRERERERFZnOzsbAQHB2vzx8ow6a6AZki5q6srXF1dzRwNERERERERWRq1Wg0A1U5J5kJqREREREREREZilUl3cnIyXnrpJXh5ecHBwQHt27fHiRMntMeF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eDkREREREVGdmXSf7pkzZyIzMxPdunVDaWkp9uzZY51beZmKdni5CXu63dnTTUREREREZChGTbo//vjjcmWNGjWCo6Mj+vXrh2PHjuHYsWMAgDfffNOYoVgnzT7d5hhezp5uIiIiIiKiOjNq0r1ixYoKy21sbHDkyBEcOXIEACCRSJh0V8Qcw8sfXkhNCEAiMd21iYiIiIiI6hmjJt1JSUnGbL7+M8fwcs2WYcUFQME9wMnLdNcmIiIiIiKqZ0y2ejnVQpEZerrt5ICzX9n3ObdMd10iIiIiIqJ6yKhJ9+LFi1FQUKBX3aNHj3LrsL8zx5ZhAOd1ExERERERGYhRk+4LFy4gODgYr7/+On799Vekp6drj5WUlODs2bP45JNP0KtXL4wYMQIuLi7GDMf6mGNON/DQCua3TXtdIiIiIiKiesaoc7q/+OILnDlzBmvWrMGLL74IhUIBGxsbyGQybQ94586d8corr2DcuHGQy+XGDMe6lJYAqryy702ddLtx2zAiIiIiIiJDMPo+3R07dsTGjRvx6aef4uzZs7h58yYKCwvh7e2NTp06wdvb29ghWCdNLzdgxuHlnNNNRERERERUF0ZPujWkUik6deqETp06meqS1k0zn9vWAbC1N+213dnTTUREREREZAhcvdxSaedzm7iXG+BCakRERERERAbCpNtSmWO7MA1NT3fhPUCVb/rrExERERER1RNMui2VubYLA8oSfdn9ZJ+93URERERERLXGpNtSmWu7MA3O6yYiIiIiIqozkyTdxcXFsLW1xblz50xxufpB09NtjjndALcNIyIiIiIiMgCTJN12dnZo0qQJSktLTXG5+sGcc7qBBz3dHF5ORERERERUayYbXj537lzMmTMH9+7dM9UlrZs553QD7OkmIiIiIiIyAJPt071mzRpcvXoVgYGBCA4OhpOTk87xU6dOmSoU66A08/By9nQTERERERHVmcmS7mHDhpnqUvWDdk63u3muz55uIiIiIiKiOjNZ0h0dHW2qS9UPmjnd5h5ennsXKC0GbOzMEwcREREREZEVM+mWYdnZ2fi///s/zJ49Wzu3+9SpU0hOTjZlGNbB3FuGOfkANjJAqAEF7w8REREREVFtmKyn++zZs4iIiICbmxtu3LiBiRMnwtPTE99++y1u3bqFL774wlShWAdzbxkmlQJujYF718rmdXuE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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", + "2020-01-01 00:00:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:15:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:30:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 00:45:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 01:00:00+00:00 60.0 0.0 0.0 \n", + "... ... ... ... \n", + "2020-01-01 22:45:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:00:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:15:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:30:00+00:00 0.0 0.0 0.0 \n", + "2020-01-01 23:45:00+00:00 0.0 0.0 0.0 \n", + "\n", + " t_in_c t_out_c \n", + "2020-01-01 00:00:00+00:00 0.0 0.0 \n", + "2020-01-01 00:15:00+00:00 0.0 0.0 \n", + "2020-01-01 00:30:00+00:00 0.0 0.0 \n", + "2020-01-01 00:45:00+00:00 0.0 0.0 \n", + "2020-01-01 01:00:00+00:00 0.0 0.0 \n", + "... ... ... \n", + "2020-01-01 22:45:00+00:00 0.0 0.0 \n", + "2020-01-01 23:00:00+00:00 0.0 0.0 \n", + "2020-01-01 23:15:00+00:00 0.0 0.0 \n", + "2020-01-01 23:30:00+00:00 0.0 0.0 \n", + "2020-01-01 23:45:00+00:00 0.0 0.0 \n", + "\n", + "[96 rows x 5 columns]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmA1JREFUeJzs3Xd8U+X+B/BPkrZpmzYd0AltWcoU2chexbIFuRdRkIJcXKBARcZPBBGkiIpwkSFXBEGRJS4UkFFAFJElQwQVCkXoADrSQUeS5/dHyYHQlua0STP4vF+vvm7z5OScb3NSL99+n+f7KIQQAkRERERERERkdUp7B0BERERERETkqph0ExEREREREdkIk24iIiIiIiIiG2HSTURERERERGQjTLqJiIiIiIiIbIRJNxEREREREZGNMOkmIiIiIiIishEm3UREREREREQ2wqSbiIiIiIiIyEaYdBMRUZWYP38+GjRoAKPRaO9QrG7v3r1QKBTYu3evvUOpEgqFAm+88YZNr7F8+XJERkaioKDAptdxFqtXr4ZCocDFixftHYpNde3aFV27drV3GEREVsWkm4jIQZj+UW368vT0xIMPPohx48YhNTXVatfJy8vDG2+8IStBfOuttzBgwACEhIRUKOHS6XR4++23MWXKFCiV5v/XU1BQgMWLF6Njx44ICAiAh4cHwsPDMWDAAHz++ecwGAyyruVM3njjDSgUCiiVSly+fLnE8zqdDl5eXlAoFBg3bpwdIrSfkSNHorCwEB9++GGlzlOrVi3069ev1OdMfyzZvHlzpa5xLxX5fSMiItfiZu8AiIjI3JtvvonatWsjPz8fBw4cwLJly/D999/j9OnT8Pb2rvT58/LyMGvWLACwuKI0ffp0hIaGonnz5tixY4fsa3788cfQ6/V48sknzcavXbuG3r174+jRo4iJicH06dMRGBiIlJQU7Nq1C0899RT+/vtvvP7667KvWZU6d+6MmzdvwsPDo0KvV6vV+PzzzzF58mSz8S1btlgjPKu7efMm3Nxs+08IT09PxMbGYsGCBXjppZegUChsej1bqcjvGxERuRYm3UREDqZ3795o1aoVAOA///kPqlWrhgULFuDrr78ukbTKYTQaUVhYWKHXJiYmolatWrh+/TqCgoJkv37VqlUYMGAAPD09zcaffvppHD9+HF988QUef/xxs+em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iKhyZO3TDQAvvvgi4uLicPnyZbRs2RIajfn06KZNm1otOFelK9QBAHw8fKx2TlPSfSXnitXOSURERERERJUjO+keOnQoAODll1+WxhQKBYQQUCgUMBjYyKs8Uudyd+tVusM0YQCA5FxWuomIiIiIiByF7KQ7MTHRFnHcV2w5vfxqzlWrnZOIiIiIiIgqR3bSHRUVZYs47iu2SLpr+NQAAKTkpsBgNFilQRsRERERERFVToX26V67di06dOiA8PBwXLp0CQCwcOFCfP3111YNzlVlF1k/6Q7yCoKbwg16oce1m9esdl4iIiIiIiKqONlJ97JlyxAXF4c+ffogMzNTWsPt7++PhQsXWjs+l2SqdPu4W6+RmkqpQogmBADXdRMRERERETkK2Un34sWL8b///Q+vvfYaVKrbU5hbtWqFU6dOWTU4V2VKurUeWque19RMjR3MiYiIiIiIHIPspDsxMRHNmzcvMa5Wq5Gbm2uVoFyd1L3citPLAe7VTURERERE5GhkJ921a9fGb7/9VmJ8+/btaNiwoTVicnm22KcbuKODeS47mBMRERERETkC2d3L4+LiMHbsWOTn50MIgV9//RWff/454uPj8dFHH9kiRpdji0ZqABCu4bZhREREREREjkR20v2f//wHXl5emD59OvLy8vDUU08hPDwcixYtwtChQ20Ro8sxTS+39ppu7tVNRERERETkWGQn3QAwbNgwDBs2DHl5ecjJyUFwcLC143JptuheDtyudCfnJkMIAYVCYdXzExERERERkTyy13R//PHHSExMBAB4e3sz4ZbJYDQgp8g2jdRCNaFQQIECQwFu5N+w6rmJiIiIiIhIPtlJd3x8POrVq4fIyEg8/fTT+Oijj/D333/bIjaXlKu/3eHd2km3u8odQd5BANjBnIiIiIiIyBHITrr/+usvJCUlIT4+Ht7e3nj33XdRv3591KxZE8OHD7dFjC7FNLVcrVLDQ+Vh9fNLzdTYwZyIiIiIiMjuZCfdAFCjRg0MGzYM77//PhYtWoSnn34aqampWL9+vbXjczmmpNvaVW6TMJ8wAGymRkRERERE5AhkN1L74YcfsHfvXuzduxfHjx9Hw4YN0aVLF2zevBmdO3e2RYwuxdZJdw2fGgCYdBMRERERETkC2Ul3r169EBQUhFdeeQXff/89/P39bRCW65KSbncbVbo1xZXu5Fyu6SYiIiIiIrI32dPLFyxYgA4dOmD+/Plo3LgxnnrqKaxYsQJ//vmnLeJzObaudJv26r6Sc8Um5yciIiIiIiLLyU66J0yYgC1btuD69evYvn072rdvj+3bt6NJkyaoWbOmLWJ0KbbaLszElHSb9uomIiIiIiIi+5E9vRwAhBA4fvw49u7di4SEBBw4cABGoxFBQUHWjs/l6Ap1AAAfDx+bnN80vTy3KBe6Qh381H42uQ4RERERERGVT3alu3///qhWrRratGmDzz77DA8++CA++eQTXL9+HcePH7dFjC7F1tPLvdy8EOgZCIDruomIiIiIiOxNdqW7QYMGeO6559CpUyf4+bGKKldOYfH0cq2H1mbXCNeEIz0/HVdyrqBBYAObXYeIiIiIiIjuTXbS/c4779gijvuGqdLt426b6eVA8V7dp2+cRnIOK91ERERERET2JHt6OQDs27cP/fv3R7169VCvXj0MGDAAP/74o7Vjc0m2nl4OFFe6AeBqLvfqJiIiIiIisifZSfenn36K6OhoeHt74+WXX8bLL78MLy8v9OjRA+vWrbNFjC4lu6gKku5bHcyv5jDpJiIiIiIisifZ08vfeustzJ8/HxMnTpTGXn75ZSxYsACzZ8/GU089ZdUAXU2VVLqZdBMRERERETkE2ZXuCxcuoH///iXGBwwYgMTERKsE5cqkpNvddkm3adswdi8nIiIiIiKyL9lJd0REBHbv3l1ifNeuXYiIiLBKUK5KCCF1L6+KSndmQSbyivJsdh0iIiIiIiK6N9nTy1955RW8/PLL+O2339C+fXsAwE8//YTVq1dj0aJFVg/QldzU34Re6AHYNun29fCFr4cvsguzcTXnKuoF1LPZtYiIiIiIiKhsspPuF154AaGhoXjvvfewceNGAEDDhg2xYcMGPPbYY1YP0JWYpparFCp4uXnZ9FrhmnCcKzyHq7lMuomIiIiIiOxFdtINAIMGDcKgQYOsHYvLyym6PbVcoVDY9FrhPuE4l3GOzdSIiIiIiIjsqEJJNwAcOXIEf/zxBwCgUaNGaNmypdWCclWmSrePu4/NryV1MOde3URERERERHYju5HaP//8g06dOqFNmzYYP348xo8fj9atW6Njx474559/KhzIvHnzoFAoMGHCBGksPz8fY8eORbVq1eDj44PBgwcjNTW1wtewN12hDoBt13ObSB3Mc9jBnIiIiIiIyF5kJ93/+c9/UFRUhD/++APp6elIT0/HH3/8AaPRiP/85z8VCuLw4cP48MMP0bRpU7PxiRMn4ttvv8WmTZuwb98+XL16FY8//niFruEITJ3LtR5am1+rhk8NANyrm4iIiIiIyJ5kJ9379u3DsmXLUL9+fWmsfv36WLx4Mfbv3y87gJycHAwbNgz/+9//EBAQII1nZWVh5cqVWLBgAbp3746WLVti1apV+Pnnn/HLL7/Ivo4jkKaXe9h+enmYT3Glm9PLiYiIiIiI7Ef2mu6IiAgUFRWVGDcYDAgPD5cdwNixY9G3b19ER0djzpw50vjRo0dRVFSE6OhoaaxBgwaIjIzEwYMH8cgjj5R6voKCAhQUFEiPdbriKd1GoxFGo1F2fNakKyiOxcfdx+axhHqFAgCu37yOm0U3oVapbXo9IiIiIiKi+4mlOZ3spPudd97BSy+9hCVLlqBVq1YAipuqjR8/Hu+++66sc61fvx7Hjh3D4cOHSzyXkpICDw8P+Pv7m42HhIQgJSWlzHPGx8dj1qxZJcavXbuGwsJCWfFZW2pW8Xp0N70b0tLSbHotIQQ8VZ7IN+Tj96TfUVNT06bXIyIiIiIiup9kZWVZdJzspHvkyJHIy8tD27Zt4eZW/HK9Xg83Nzc888wzeOaZZ6Rj09PTyzzP5cuXMX78eOzcuROenp5ywyjTtGnTEBcXJz3W6XSIiIhAUFBQiQS+qhkuGAAAwX7BCA4Otvn1wn3CcSHrAgrUBVVyPSIiIiIiovuFh4eHRcfJTroXLlwo9yWlOnr0KNLS0tCiRQtpzGAwYP/+/fjggw+wY8cOFBYWIjMz0yxZTk1NRWhoaJnnVavVUKtLTqVWKpVQKmUvYbcq0z7dWrW2SmIxJd0peSl2/9mJiIiIiIhciaU5luykOzY2VnYwpenRowdOnTplNjZq1Cg0aNAAU6ZMQUREBNzd3bF7924MHjwYAHDu3DkkJSWhXbt2VomhqmUXFTdSq4otwwAgXFO8xv5KzpUquR4RERERERGZk510W4uvry+aNGliNqbRaFCtWjVpfPTo0YiLi0NgYCC0Wi1eeukltGvXrswmao6uKruXA8WVbgBIzuVe3URERERERPZgt6TbEu+//z6USiUGDx6MgoICxMTEYOnSpfYOq8JMSXdV7NMN3E66uVc3ERERERGRfThU0r13716zx56enliyZAmWLFlin4CsLKeweE13VU0vD9Nwr24iIiIiIiJ7YnetKiRNL3evmunlNXxqAADS8tJQZCy5tzoRERERERHZFpPuKlJkKEK+IR9A1VW6q3lVg7vSHUZhRFqebfcFJyIiIiIiopIsml7++OOPW3zCLVu2VDgYV2bqXA5UXaVbqVAiTBOGpOwkXM25KlW+iYiIiIiIqGpYVOn28/OTvrRaLXbv3o0jR45Izx89ehS7d++Gn5+fzQJ1dqap5Rp3DVRKVZVdl83UiIiIiIiI7MeiSveqVauk76dMmYIhQ4Zg+fLlUKmKk0eDwYAXX3wRWm3VdOV2Rqaku6qmlptISTebqREREREREVU52Wu6P/74Y0yaNElKuAFApVIhLi4OH3/8sVWDcyX2SrqlDuasdBMREREREVU52Um3Xq/H2bNnS4yfPXsWRqPRKkG5Iinpdq/apNu0jjs5J7lKr0tEREREREQV2Kd71KhRGD16NM6fP482bdoAAA4dOoR58+Zh1KhRVg/QVdi90s3p5URERERERFVOdtL97rvvIjQ0FO+99x6Sk4urp2FhYXj11VfxyiuvWD1AV5FTlAPAfmu6k3OTYRRGKBXcJY6IiIiIiKiqyE66lUolJk+ejMmTJ0On0wEAG6hZQFdY/F5V1XZhJsHewVApVNAb9biWdw0hmpAqvT4REREREdH9rEJlT71ej127duHzzz+HQqEAAFy9ehU5OTlWDc6V2Gt6uZvSDSHexYl2ci7XdRMREREREVUl2ZXuS5cuoVevXkhKSkJBQQF69uwJX19fvP322ygoKMDy5cttEafTyyks/oOE1qPqZwWE+YThau5VXMm5gmbBzar8+kRERERERPcr2ZXu8ePHo1WrVsjIyICXl5c0PmjQIOzevduqwbkSU6Xbx6Nqp5cDd3QwZ6WbiIiIiIioSsmudP/444/4+eef4eHhYTZeq1YtXLlyxWqBuRrTmu6qnl4OcK9uIiIiIiIie5Fd6TYajTAYDCXG//nnH/j6Vn1C6Szs1b0cuN3BnEk3ERERERFR1ZKddD/66KNYuHCh9FihUCAnJwczZ85Enz59rBmbS5EaqbnbMenmXt1ERERERERVSvb08vfeew8xMTFo1KgR8vPz8dRTT+Gvv/5C9erV8fnnn9siRpdgr+7lABCuubVXd04yhBBSx3kiIiIiIiKyLdlJd82aNXHixAmsX78eJ0+eRE5ODkaPHo1hw4aZNVaj24zCiNyiXAD2SbpDNaEAgHxDPtLz01HNq1qVx0BERERERHQ/kp105+fnw9PTE8OHD7dFPC4ppygHAgKAfZJuD5UHgr2CkXYzDcm5yUy6iYiIiIiIqojsNd3BwcGIjY3Fzp07YTQabRGTyzFNLVer1PBQeZRztG2E+bCDORERERERUVWTnXR/8sknyMvLw2OPPYYaNWpgwoQJOHLkiC1icxk5hfbrXG5iWtfNpJuIiIiIiKjqyE66Bw0ahE2bNiE1NRVz587FmTNn8Mgjj+DBBx/Em2++aYsYnZ5pj24fdx+7xcAO5kRERERERFVPdtJt4uvri1GjRuGHH37AyZMnodFoMGvWLGvG5jJM08u1Hlq7xWBKupNzku0WAxERERER0f2mwkl3fn4+Nm7ciIEDB6JFixZIT0/Hq6++as3YXEZOkf2nl4dpitd0X8m9YrcYiIiIiIiI7jeyu5fv2LED69atw1dffQU3Nzf861//wg8//IDOnTvbIj6XYKp0+3jYb3p5DZ8aAFjpJiIiIiIiqkqyk+5BgwahX79+WLNmDfr06QN3d3dbxOVSTGu67VnpNu3VnVOUA12hzq5T3YmIiIiIiO4XspPu1NRU+PraL3l0Ro7Qvdzb3RsB6gBkFGTgas5VaAOZdBMREREREdmaRUm3TqeDVlucpAkhoNPpyjzWdBzdZppe7utu3z9WhPuES0l3g8AGdo2FiIiIiIjofmBR0h0QEIDk5GQEBwfD398fCoWixDFCCCgUChgMBqsH6eykpNuOlW6gOOn+/cbvSM7lum4iIiIiIqKqYFHSvWfPHgQGBgIAEhISbBqQK8oucoykW+pgnsMO5kRERERERFXBoqS7S5cupX5PlnGkSjfADuZERERERERVpUL7dP/4448YPnw42rdvjytXiquma9euxYEDB6wanKtwmKRbU5x0X829atc4iIiIiIiI7heyk+4vvvgCMTEx8PLywrFjx1BQUAAAyMrKwty5c60eoCuQupc7QCM1ALiaw6SbiIiIiIioKshOuufMmYPly5fjf//7n9ke3R06dMCxY8esGpwrEEJIlW4fDx+7xlLTtyYAILMgU9o7nIiIiIiIiGxHdtJ97tw5dO7cucS4n58fMjMzrRGTS7mpvwm90AMAtB723U5N465Bda/qAIAkXZJdYyEiIiIiIrofyE66Q0ND8ffff5cYP3DgAOrUqWOVoFxJTlHx1HKVQgUvNy87RwNEaaMAABd1F+0bCBERERER0X1AdtI9ZswYjB8/HocOHYJCocDVq1fx2WefYdKkSXjhhRdsEaNTu3NqeWn7m1c1U9LNSjcREREREZHtWbRl2J2mTp0Ko9GIHj16IC8vD507d4ZarcakSZPw0ksv2SJGpyZ1LrdzEzUTVrqJiIiIiIiqjuykW6FQ4LXXXsOrr76Kv//+Gzk5OWjUqBF8fOzbJMxROcp2YSZRvqx0ExERERERVRXZSXdWVhYMBgMCAwPRqFEjaTw9PR1ubm7Qau3bLMzROFzSfavSfUl3CUIIh5jyTkRERERE5Kpkr+keOnQo1q9fX2J848aNGDp0qFWCciWOlnRHaCOggAI5RTm4kX/D3uEQERERERG5NNlJ96FDh9CtW7cS4127dsWhQ4esEpQryS5yrKRbrVIjTBMGgFPMiYiIiIiIbE120l1QUAC9Xl9ivKioCDdv3pR1rvj4eLRu3Rq+vr4IDg7GwIEDce7cObNj8vPzMXbsWFSrVg0+Pj4YPHgwUlNT5YZtN1L3cnfHWfN+5xRzIiIiIiIish3ZSXebNm2wYsWKEuPLly9Hy5YtZZ1r3759GDt2LH755Rfs3LkTRUVFePTRR5GbmysdM3HiRHz77bfYtGkT9u3bh6tXr+Lxxx+XG7bdmJJurYfjrHWP1EYCYNJNRERERERka7Ibqc2ZMwfR0dE4ceIEevToAQDYvXs3Dh8+jB9++EHWubZv3272ePXq1QgODsbRo0fRuXNnZGVlYeXKlVi3bh26d+8OAFi1ahUaNmyIX375BY888ojc8KtcTmEOAMeZXg4AtbS1ADDpJiIiIiIisjXZSXeHDh1w8OBBzJ8/Hxs3boSXlxeaNm2KlStX4oEHHqhUMFlZWQCAwMBAAMDRo0dRVFSE6Oho6ZgGDRogMjISBw8eLDXpLigoQEFBgfRYp9MBAIxGI4xGY6XiqwhdYfH1Ne4au1y/NJG+xZXui7qLDhMTERERERGRM7E0l5KddANAs2bNsG7duoq8tExGoxETJkxAhw4d0KRJEwBASkoKPDw84O/vb3ZsSEgIUlJSSj1PfHw8Zs2aVWL82rVrKCwstGrMlkjPTQcAGPOMSEtLq/Lrl0ZTqAFQ3EgtJTUFSoXsVQZERERERET3NVPRuDwVSrrPnz+PVatW4cKFC1i4cCGCg4Oxbds2REZGonHjxhU5JcaOHYvTp0/jwIEDFXq9ybRp0xAXFyc91ul0iIiIQFBQUInkvSoUoLjqXjOoJoKDg6v8+qUJNAbC7Sc3FBoLIXwEgjWOERcREREREZGz8PDwsOg42Un3vn370Lt3b3To0AH79+/HnDlzEBwcjBMnTmDlypXYvHmz7GDHjRuHrVu3Yv/+/ahZs6Y0HhoaisLCQmRmZpolzKmpqQgNDS31XGq1Gmq1usS4UqmEUln1FV2pkZpaa5frl8ZD6YGavjVxUXcRl3Muo4ZvDXuHRERERERE5FQsze9kZ4FTp07FnDlzsHPnTrPMvnv37vjll19knUsIgXHjxuHLL7/Enj17ULt2bbPnW7ZsCXd3d+zevVsaO3fuHJKSktCuXTu5oduFKel2pEZqwB3bhmWxmRoREREREZGtyK50nzp1qtT13MHBwbh+/bqsc40dOxbr1q3D119/DV9fX2mdtp+fH7y8vODn54fRo0cjLi4OgYGB0Gq1eOmll9CuXTun6FxeZChCviEfgOMm3Rd1F+0bCBERERERkQuTnXT7+/sjOTm5RFX6+PHjqFFD3jTlZcuWAQC6du1qNr5q1SqMHDkSAPD+++9DqVRi8ODBKCgoQExMDJYuXSo3bLvILsqWvvdx97FjJCWZku6k7CQ7R0JEREREROS6ZCfdQ4cOxZQpU7Bp0yYoFAoYjUb89NNPmDRpEkaMGCHrXEKIco/x9PTEkiVLsGTJErmh2p1parnGXQOVUmXnaMxJ08u5VzcREREREZHNyF7TPXfuXDRo0AARERHIyclBo0aN0LlzZ7Rv3x7Tp0+3RYxOK6cwB4DjTS0HbifdV7KvoMhYZOdoiIiIiIiIXJOsSrcQAikpKfjvf/+LGTNm4NSpU8jJyUHz5s3xwAMP2CpGp6Ur1AFwvKnlABDsHQxPlSfyDfm4mnNVSsKJiIiIiIjIemQn3fXq1cPvv/+OBx54ABEREbaKyyVI24V5aO0cSUlKhRKR2kj8mfEnLukuMekmIiIiIiKyAVnTy5VKJR544AHcuHHDVvG4lJwix51eDnBdNxERERERka3JXtM9b948vPrqqzh9+rQt4nEppkq3j4fjTS8HmHQTERERERHZmuzu5SNGjEBeXh4efvhheHh4wMvLy+z59PR0qwXn7Exrun3dHbPSHekbCYBJNxERERERka3ITroXLlxogzBckyN3LweAWn61ADDpJiIiIiIishXZSXdsbKwt4nBJpunljpp0m6aXJ+cmI1+fD083TztHRERERERE5Fpkr+kmyzl60h2gDpCmvl/OvmznaIiIiIiIiFwPk24byi5y7KRboVCwmRoREREREZENMem2IanS7aCN1AAgUstmakRERERERLbCpNuGHH16OQDU0tYCwKSbiIiIiIjIFph025Cjdy8HuFc3ERERERGRLVnUvfzxxx+3+IRbtmypcDCuxCiMyCkqTrp9PHzsHE3ZmHQTERERERHZjkWVbj8/P+lLq9Vi9+7dOHLkiPT80aNHsXv3bvj5+dksUGeTW5QLAQHAsSvdpjXdN/JvSJV5IiIiIiIisg6LKt2rVq2Svp8yZQqGDBmC5cuXQ6VSAQAMBgNefPFFaLVa20TphEzrudUqNdQqtZ2jKZuvhy8CPQORnp+OS9mX0LhaY3uHRERERERE5DJkr+n++OOPMWnSJCnhBgCVSoW4uDh8/PHHVg3OmZmSbh93x51abiI1U8viFHMiIiIiIiJrkp106/V6nD17tsT42bNnYTQarRKUK3CGzuUmXNdNRERERERkGxZNL7/TqFGjMHr0aJw/fx5t2rQBABw6dAjz5s3DqFGjrB6gs3KmpFvaqzubSTcREREREZE1yU663333XYSGhuK9995DcnIyACAsLAyvvvoqXnnlFasH6Kyyi5wn6eb0ciIiIiIiItuQnXQrlUpMnjwZkydPhk6nAwA2UCuFs1a6hRBQKBR2joiIiIiIiMg1yF7TfSetVsuEuwzO1Egt0rc46c4uzEZGQYadoyEiIiIiInIdspPu1NRUPP300wgPD4ebmxtUKpXZFxUzJd1aD8f/o4SnmyfCNGEA2EyNiIiIiIjImmRPLx85ciSSkpLw+uuvIywsjFORy5BTlAPAOaaXA8VTzJNzk3FJdwnNg5vbOxwiIiIiIiKXIDvpPnDgAH788Uc0a9bMBuG4Dml6uYfjTy8HipupHUo+xEo3ERERERGRFcmeXh4REQEhhC1icSm6wuImc05T6b61rptJNxERERERkfXITroXLlyIqVOn4uLFizYIx3XkFBZPL3eGNd0AUMuvFgAm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LoT30/XwnroW3k/Xw3vqenhPXQvvp3Mpbxmz7EXOAwYMwJtvvomioiIAgEKhQFJSEqZMmYLBgwdXLEoimcaOHWvvEMiKeD9dD++pa+H9dD28p66H99S18H66Ftndy7OysvCvf/0LR44cQXZ2NsLDw5GSkoJ27drh+++/h0ajsVWsFWLqXl5eRzkiIiIiIiIiS1maa8qeXu7n54edO3fiwIEDOHnyJHJyctCiRQtER0dXKmBbUavVmDlzJtRqtb1DISIiIiIiIhdhaa5ZoX26iYiIiIiIiKh8sirdRqMRq1evxpYtW3Dx4kUoFArUrl0b//rXv/D0009DoVDYKk4iIiIiIiIip2NxpVsIgf79++P777/Hww8/jAYNGkAIgT/++AOnTp3CgAED8NVXX9k4XCIiIiIiIiLnYXGle/Xq1di/fz92796Nbt26mT23Z88eDBw4EGvWrMGIESOsHiQRERERERGRM7K40v3oo4+ie/fumDp1aqnPz507F/v27cOOHTusGiARERERERGRs7J4n+6TJ0+iV69eZT7fu3dvnDhxwipBEREREREREbkCi5Pu9PR0hISElPl8SEgIMjIyrBIUERERERERkSuwOOk2GAxwcyt7CbhKpYJer7dKUERERERERESuwOJGakIIjBw5ssyNvwsKCqwWFBEREREREZErsDjpjo2NLfcYdi4nIiIiIiIius3i7uVEREREREREJI/Fa7qJiIiIiIiISB4m3UREREREREQ2wqSbiIiIiIiIyEaYdBMREdE9jRw5ErVq1arw62vVqoWRI0daLR5HtHfvXigUCuzdu9feoRARkYNh0k1ERC7ljTfegEKhwPXr10t9vkmTJujatWvVBkVERET3LSbdRERERERERDbCpJuIiMhF5ebm2jsEIiKi+x6TbiIiuq+Z1uJu3LgRb731FmrWrAlPT0/06NEDf//9d4njDx06hD59+iAgIAAajQZNmzbFokWLzI7Zs2cPOnXqBI1GA39/fzz22GP4448/pOc3b94MhUKBffv2lTj/hx9+CIVCgdOnT0tjZ8+exb/+9S8EBgbC09MTrVq1wjfffGP2utWrV0vnfPHFFxEcHIyaNWtKz2/btk2KydfXF3379sXvv/9e4vpfffUVmjRpAk9PTzRp0gRffvmlxe+lEAJz5sxBzZo14e3tjW7dupV6DQDIzMzEhAkTEBERAbVajXr16uHtt9+G0WiUjrl48SIUCgXeffddLFmyBHXq1IG3tzceffRRXL58GUIIzJ49GzVr1oSXlxcee+wxpKenm13n66+/Rt++fREeHg61Wo26deti9uzZMBgMZsd17doVTZo0wZkzZ9CtWzd4e3ujRo0amD9/fonY//nnHwwcOBAajQbBwcGYOHEiCgoKLH6fiIjo/uJm7wCIiIgcwbx586BUKjFp0iRkZWVh/vz5GDZsGA4dOiQds3PnTvTr1w9hYWEYP348QkND8ccff2Dr1q0YP348AGDXrl3o3bs36tSpgzfeeAM3b97E4sWL0aFDBxw7dgy1atVC37594ePjg40bN6JLly5mcWzYsAGNGzdGkyZNAAC///47OnTogBo1amDq1KnQaDTYuHEjBg4ciC+++AKDBg0ye/2LL76IoKAgzJgxQ6p0r127FrGxsYiJicHbb7+NvLw8LFu2DB07dsTx48elJmk//PADBg8ejEaNGiE+Ph43btzAqFGjzJL3e5kxYwbmzJmDPn36oE+fPjh27BgeffRRFBYWmh2Xl5eHLl264MqVK3juuecQGRmJn3/+GdOmTUNycjIWLlxodvxnn32GwsJCvPTSS0hPT8f8+fMxZMgQdO/eHXv37sWUKVPw999/Y/HixZg0aRI+/vhj6bWrV6+Gj48P4uLi4OPjgz179mDGjBnQ6XR45513zK6TkZGBXr164fHHH8eQIUOwefNmTJkyBQ899BB69+4NALh58yZ69OiBpKQkvPzyywgPD8fatWuxZ88ei94jIiK6DwkiIiIXMnPmTAFAXLt2rdTnGzduLLp06SI9TkhIEABEw4YNRUFBgTS+aNEiAUCcOnVKCCGEXq8XtWvXFlFRUSIjI8PsnEajUfq+WbNmIjg4WNy4cUMaO3HihFAqlWLEiBHS2JNPPimCg4OFXq+XxpKTk4VSqRRvvvmmNNajRw/x0EMPifz8fLPrtW/fXjzwwAPS2KpVqwQA0bFjR7NzZmdnC39/fzFmzBizmFNSUoSfn5/ZeLNmzURYWJjIzMyUxn744QcBQERFRZV8M++QlpYmPDw8RN++fc3ej//7v/8TAERsbKw0Nnv2bKHRaMSff/5pdo6pU6cKlUolkpKShBBCJCYmCgAiKCjILKZp06YJAOLhhx8WRUVF0viTTz4pPDw8zN6rvLy8ErE+99xzwtvb2+y4Ll26CABizZo10lhBQYEIDQ0VgwcPlsYWLlwoAIiNGzdKY7m5uaJevXoCgEhISLjn+0RERPcfTi8nIiICMGrUKHh4eEiPO3XqBAC4cOECAOD48eNITEzEhAkT4O/vb/ZahUIBAEhOTsZvv/2GkSNHIjAwUHq+adOm6NmzJ77//ntp7IknnkBaWprZFlObN2+G0WjEE088AQBIT0/Hnj17MGTIEGRnZ+P69eu4fv06bty4gZiYGPz111+4cuWKWSxjxoyBSqWSHu/cuROZmZl48sknpddfv34dKpUKbdu2RUJCglnssbGx8PPzk17fs2dPNGrUqNz3b9euXVI12vR+AMCECRNKHLtp0yZ06tQJAQEBZjFFR0fDYDBg//79Zsf/+9//Noupbdu2AIDhw4fDzc3NbLywsNDsPfHy8pK+N72HnTp1Ql5eHs6ePWt2HR8fHwwfPlx67OHhgTZt2kifAQD4/vvvERYWhn/961/SmLe3N5599tly3yMiIro/cXo5ERHdd+5MCk0iIyPNHgcEBAAonnIMAOfPnwcAadp3aS5dugQAqF+/fonnGjZsiB07diA3NxcajQa9evWCn58fNmzYgB49egAonlrerFkzPPjggwCAv//+G0IIvP7663j99ddLvWZaWhpq1KghPa5du7bZ83/99RcAoHv37qW+XqvVmsX+wAMPlDimfv36OHbsWJk/971eHxQUJL2Xd8Z08uRJBAUFlXqutLQ0s8d33xtTAh4REVHquOmeAcXT86dPn449e/ZAp9OZHZ+VlWX2uGbNmiU+GwEBATh58qT0+NKlS6hXr16J40q750RERACTbiIicjGenp4AitfeliYvL0865k53VofvJISwXnB3UKvVGDhwIL788kssXboUqamp+OmnnzB37lzpGFNTsUmTJiEmJqbU89SrV8/s8Z2V3TvPsXbtWoSGhpZ4/Z2V4qpiNBrRs2dPTJ48udTnTX90MCnr3pR3zzIzM9GlSxdotVq8+eabqFu3Ljw9PXHs2DFMmTLFrGmbJecjIiKqCCbdRETkUqKiogAA586dK1EJzcvLw+XLl/Hoo4/KPm/dunUBAKdPn0Z0dHS5177b2bNnUb16dWg0GmnsiSeewCeffILdu3fjjz/+gBBCmloOAHXq1AEAuLu7l3lNS+MODg6+5zlMsZsq43cq7ee51+tNcQPAtWvXzCrPpphycnIq/DNZau/evbhx4wa2bNmCzp07S+OJiYkVPmdUVBROnz4NIYRZtduS94iIiO5PXNNNREQupUePHvDw8MCyZctKVDJXrFgBvV4vdaKWo0WLFqhduzYWLlyIzMxMs+dMldCwsDA0a9YMn3zyidkxp0+fxg8//IA+ffqYvS46OhqBgYHYsGEDNmzYgDZt2phNDw8ODkbXrl3x4YcfIjk5uURM165dKzfumJgYaLVazJ07F0VFRWWe487Y75x2vXPnTpw5c6bc60RHR8Pd3R2LFy82qwzf3YkcAIYMGYKDBw9ix44dJZ7LzMyEXq8v93qWMFWu74ynsLAQS5curfA5+/Tpg6tXr2Lz5s3SWF5eHlasWFHxQImIyKWx0k1ERC4lODgYM2bMwPTp09G5c2cMGDAA3t7e+Pnnn/H555/j0UcfRf/+/WWfV6lUYtmyZejfvz+aNWuGUaNGISwsDGfPnsXvv/8uJZDvvPMOevfujXbt2mH06NHSlmF+fn544403zM7p7u6Oxx9/HOvXr0dubi7efffdEtddsmQJOnbsiIceeghjxoxBnTp1kJqaioMHD+Kff/7BiRMn7hm3VqvFsmXL8PTTT6NFixYYOnQogoKCkJSUhO+++w4dOnTABx98AACIj49H37590bFjRzzzzDNIT0/H4sWL0bhxY+Tk5NzzOkFBQZg0aRLi4+PRr18/9OnTB8ePH8e2bdtQvXp1s2NfffVVfPPNN+jXrx9GjhyJli1bIjc3F6dOncLmzZtx8eLFEq+piPbt2yMgIACxsbF4+eWXoVAosHbt2kpNFx8zZgw++OADjBgxAkePHkVYWBjWrl0Lb2/vSsdLREQuyl5t04mIiGzp008/FY888ojQaDRCrVaLBg0aiFmzZpltEyXE7S3DNm3aZDZu2q5q1apVZuMHDhwQPXv2FL6+vkKj0YimTZuKxYsXmx2za9cu0aFDB+Hl5SW0Wq3o37+/OHPmTKlx7ty5UwAQCoVCXL58udRjzp8/L0aMGCFCQ0OFu7u7qFGjhujXr5/YvHmzdIxpy7DDhw+Xeo6EhAQRExMj/Pz8hKenp6hbt64YOXKkOHLkiNlxX3zxhWjYsKFQq9WiUaNGYsuWLSI2NrbcLcOEEMJgMIhZs2aJsLAw4eXlJbp27SpOnz4toqKizLYME6J4K7Np06aJevXqCQ8PD1G9enXRvn178e6774rCwkIhxO178M4775T4WUq7Z6W9Bz/99JN45JFHhJeXlwgPDxeTJ08WO3bsKLG9V5cuXUTjxo1L/Eyl/eyXLl0SAwYMEN7e3qJ69epi/PjxYvv27dwyjIiISqUQgt1BiIiIiIiIiGyBa7qJiIiIiIiIbIRJNxEREREREZGNMOkmIiIiIiIishEm3UREREREREQ2wqSbiIiIiIiIyEaYdBMRERERERHZiJu9A7A1o9GIq1evwtfXFwqFwt7hEBERERERkQsQQiA7Oxvh4eFQKsuuZ7t80n316lVERETYOwwiIiIiIiJyQZcvX0bNmjXLfN7lk25fX18AwKVLl+Dv72/fYIiIiIiIiMglZGZmIioqSso5y1KppLugoABqtboyp7A505RyrVYLrVZr52iIiIiIiIjIFRiNRgAodxmzrEZq27ZtQ2xsLOrUqQN3d3d4e3tDq9WiS5cueOutt3D16tWKR0xERERERETkYixKur/88ks8+OCDeOaZZ+Dm5oYpU6Zgy5Yt2LFjBz766CN06dIFu3btQp06dfD888/j2rVrto6biIiIiIiIyOEphBCivIPatWuH6dOno3fv3vfsynblyhUsXrwYISEhmDhxolUDrSidTgc/Pz9kZGRwTTcRERERERFZRWZmJgICApCVlXXPpcwWJd3OjEk3ERERERERWZulSbfFa7oTEhJQWFholeDIPoTBgMsvvIiUuXPtHQoREREREdF9weKku0ePHvD390f37t0xe/ZsHDhwAHq93paxkZUVJiUhJyEBGZ+tg4tPcCAiIiIiInIIFifdiYmJWLJkCSIjI7Fy5Up07twZ/v7+iImJwbx583Do0CGpZTo5JkNm5q1vDBB5eXaNhYiIiIiI6H5Q4TXdFy5cwN69e7F3717s27cP//zzD3x9fZFpSuwcBNd035a9dy/+ef4FAEC9vQlwDw21c0RERERERETOydI13W4VvUCdOnWgUqmgUCigUCjw1Vdfcc23gzNmZd3+PjsbYNJNRERERERkU7KS7qSkJOzduxcJCQnYu3cvrl+/jvbt26NTp07YunUr2rZta6s4yQoMd8xCMGRn2y8QIiIiIiKi+4TFSXedOnWQkZGBDh06oHPnznjuuefQqlUruLlVuFhOVcxwR6XboNPZMRIiIiIiIqL7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3zQba9GihXjttdfKPM/SpUtFQECAKCgokMamTJki6tevLz0u799OZB1paWkCgNi3b1+J5xISEixOuvk76vwcfnr5vaZJ5OfnY+zYsahWrRp8fHwwePBgi6Y5ciqyfRQWFuLo0aOIjo6WxpRKJaKjo3Hw4MESx+fm5mLVqlWoXbs2IiIipPFatWrhjTfekB4fPHjQ7JwAEBMTI50zMTERKSkpZsf4+fmhbdu2pV6XLFPe/UxLS8OhQ4cQHByM9u3bIyQkBF26dMGBAwfMztO1a1eMHDlSelze/ZT7OSLLlffeFhQUQKFQmHXo9PT0hFKpNLuvvKfOKysrCwqFAv7+/tIY76fz2bt3L4KDg1G/fn288MILuHHjhtnzvKfOo3379vjmm29w5coVCCGQkJCAP//8E48++qh0zMiRI9G1a1fp8cGDB9G5c2d4eHhIYzExMTh37hwyMjKkY+51z8k6srKyAACBgYGyXsffUdfj0En3hg0bEBcXh5kzZ+LYsWN4+OGHERMTg7S0NADAxIkT8e2332LTpk3Yt28frl69iscff/ye5/z555/x5JNPYvTo0Th+/DgGDhyIgQMH4vTp09Ix8+fPx3//+18sX74chw4dgkajQUxMDPLz823687q669evw2AwICQkxGw8JCQEKSkp0uOlS5fCx8cHPj4+2LZtG3bu3Gn2fxx169ZF9erVpccpKSn3PKfpf8u7LslT3v28cOECAOCNN97AmDFjsH37drRo0QI9evQw+yNWZGQkwsLCpMdl3U+dToebN29a/Dki+cp7bx955BFoNBpMmTIFeXl5yM3NxaRJk2AwGJCcnCwdz3vqnPLz8zFlyhQ8+eSTZnuN8n46l169emHNmjXYvXs33n77bezbtw+9e/eGwWCQjuE9dR6LFy9Go0aNULNmTXh4eKBXr15YsmQJOnfuLB0TFhaGyMhI6XFZ99P03L2O4f20nv9v796Doqz+P4C/AVnAQSAEdgcRRCVFCc0LijqQQuBl8JImWmOApQ3uaogoZlxyLHUmRA01hgqYNNRs8kpDsy6ghVCjrU4okJKXSV28zOAFFJj2/P7gx3594qqxsuD7NePonufs5znPHp51P5yz5+j1esTExGDixInw8fF5qufyHu15enV1A9qSmpqKJUuWICoqCgCQnp6O3NxcZGZmIjo6Gl9//TVycnIwZcoUAEBWVha8vb1RUlKC8ePHtxhz+/btmDp1KlavXg0A2LBhA9RqNXbs2IH09HQIIbBt2zYkJCRg1qxZAIBvvvkGcrkchw4dwoIFC57Dlb/Y3n77bbz++uu4efMmUlJSMH/+fBQVFcHa2hoAoNFouriF1BF6vR5A4+J4Tffwq6++Co1Gg8zMTGzatAlA4/1F3YOzszMOHDiA6OhofP755zA3N8fChQsxatQomJv/73e47NPup6GhAfPnz4cQAl988YXkGPuze3nyc8orr7wCX19fDBo0CIWFhQgKCgLAPu1O0tLSUFJSgiNHjsDDwwMnT56EUqmEq6urYVSz6f9TMi1KpRKlpaXNZvh1BO/RnsdkR7rbmyZx5swZNDQ0SI4PHToU7u7ukmkUnIpsOpycnGBhYdHsKwBVVVVQKBSGx/b29vDy8kJAQAC+//57lJeX4+DBg63GVSgUbcZs+ru989LTaa8/m35DO2zYMMlxb29vXLt2rdW4rfWnnZ0dbGxsOvxzRE+vI69tSEgIKisrcevWLdy5cwe7d+/G9evXMXDgwFbjsk9NW1PCffXqVajVaskod0vYn93LwIED4eTkhEuXLrVah31qmh49eoR169YhNTUVYWFh8PX1hUqlQnh4OFJSUlp9Xmv92XSsrTrsz86hUqlw7NgxFBQUwM3N7T/H4z3a/Zls0t3eNAmdTgeZTCb53tmTx5twKrLpkMlkGD16tGSkWq/XQ6PRwN/fv8XniMbF/lBXV9dqXH9//2aj32q12hDT09MTCoVCUuf+/fv49ddfWz0vta+9/hwwYABcXV2bbZXx559/wsPDo9W47fXns/wcUcc8zWvr5OQEBwcH5Ofn49atW5g5c2arcdmnpqsp4b548SKOHz+Ovn37tvsc9mf38vfff+Pu3buSqar/xj41TQ0NDWhoaJDMJAIACwsLw2yylvj7++PkyZNoaGgwlKnVagwZMgQvvfSSoU5bfU7PRggBlUqFgwcPIj8/H56enp0Sl/doD9CFi7i16fr16wKAOHXqlKR89erVws/PT3z77bdCJpM1e97YsWPFmjVrWo1raWkpcnJyJGU7d+4ULi4uQojGLRQAiBs3bkjqvPnmm2L+/PnPejn0//bt2yesrKxEdna2uHDhgli6dKlwcHAQOp1OVFZWio0bN4rTp0+Lq1eviqKiIhEWFiYcHR0l2x1MmTJFpKWlGR4XFRWJXr16iZSUFFFWViaSk5Nb3DLMwcFBHD582LDNEbcM++/a6k8hGrfFsLOzEwcOHBAXL14UCQkJwtraWrIa/aJFi8TatWsNj5u2xVi9erUoKysTO3fubHFbjLbOS8+uvdc2MzNTFBcXi0uXLondu3cLR0dHERsbK4nBPjUdDx48EFqtVmi1WgFApKamCq1WK65evSrq6+vFzJkzhZubmzh79qxki6knVz1mf5qWtvr0wYMHIi4uThQXF4vLly+L48ePi1GjRgkvLy/JVo3sU9PRVn8KIURgYKAYPny4KCgoEH/99ZfIysoS1tbWYteuXYYYa9euFYsWLTI8rq6uFnK5XCxatEiUlpaKffv2id69ezfbMqy9z0709KKjo4W9vb0oLCyUvKfW1tYa6ty8eVNotVrx5ZdfCgDi5MmTQqvVirt37xrq8B7teUw26a6rqxMWFhbNtk545513xMyZM4VGo2lxmX13d3eRmpraatz+/fuLrVu3SsqSkpKEr6+vEEKIyspKAUBotVpJnYCAALFixYpnvRx6QlpamnB3dxcymUz4+fmJkpISIUTjL1qmTZsmXFxchKWlpXBzcxNvvfWWKC8vlzzfw8NDJCcnS8q+++478fLLLwuZTCaGDx8ucnNzJcf1er1ITEwUcrlcWFlZiaCgIFFRUWHU63xRtNafTTZt2iTc3NxE7969hb+/v/j5558lxwMDA0VERISkrKCgQIwcOVLIZDIxcOBAkZWV9dTnpWfX1msbHx8v5HK5sLS0FF5eXmLLli1Cr9dLns8+NR1NW9L8+09ERIS4fPlyi8cAiIKCAkMM9qdpaatPa2trRUhIiHB2dhaWlpbCw8NDLFmypNmHbvap6WirP4VoTNAiIyOFq6ursLa2FkOGDGn2vhsRESECAwMlcc+dOycmTZokrKysRL9+/cTmzZubnbu9z0709Fp7T33yfkpOTm63Du/RnsdMCCGMN47+34wbNw5+fn5IS0sD0DhNwt3dHSqVCtHR0XB2dsbevXsxd+5cAEBFRQWGDh2K4uLiVhdSCw8PR21tLY4ePWoomzBhAnx9fQ0Lqbm6uiIuLg6rVq0C0DgV2cXFBdnZ2VxIjYiIiIiIiDrMpFcvj42NRUREBMaMGQM/Pz9s27YNNTU1iIqKgr29Pd59913ExsbC0dERdnZ2WL58Ofz9/SUJd1BQEObMmQOVSgUA+OCDDxAYGIgtW7ZgxowZ2LdvH06fPo2MjAwAgJmZGWJiYvDJJ5/Ay8sLnp6eSExMhKurK2bPnt0VLwMRERERERF1UyaddIeHh+P27dtISkqCTqfDyJEjkZeXZ1jkbOvWrTA3N8fcuXNRV1eH0NBQ7Nq1SxKjsrISd+7cMTyeMGECcnJykJCQgHXr1sHLywuHDh2S7J+3Zs0a1NTUYOnSpaiursakSZOQl5dn2LKKiIiIiIiIqCNMeno5ERERERERUXdmsluGEREREREREXV3TLqJiIiIiIiIjIRJNxEREREREZGRMOkmIiIiIiIiMhIm3URERERERERGYpJJ986dOzFgwABYW1tj3Lhx+O233wzHMjIy8Nprr8HOzg5mZmaorq7uUMzs7Gw4ODgYp8FERERERERELTC5pHv//v2IjY1FcnIyfv/9d4wYMQKhoaG4desWAKC2thZTp07FunXrurilRERERERERG0zuaQ7NTUVS5YsQVRUFIYNG4b09HT07t0bmZmZAICYmBisXbsW48eP/0/nqaysxKxZsyCXy2Fra4uxY8fi+PHjkjoDBgzAxo0bsXjxYvTp0wfu7u7IyMj4T+clIiIiIiKiF4dJJd319fU4c+YMgoODDWXm5uYIDg5GcXFxp57r4cOHmD59OjQaDbRaLaZOnYqwsDBcu3ZNUm/Lli0YM2YMtFotli1bhujoaFRUVHRqW4iIiIiIiKhnMqmk+86dO/jnn38gl8sl5XK5HDqdrlPPNWLECLz//vvw8fGBl5cXNmzYgEGDBuHIkSOSetOnT8eyZcswePBgxMfHw8nJCQUFBZ3aFiIiIiIiIuqZTCrp7gzTpk2Dra0tbG1tMXz48FbrPXz4EHFxcfD29oaDgwNsbW1RVlbWbKTb19fX8G8zMzMoFArD98uJiIiIiIiI2tKrqxvwJCcnJ1hYWKCqqkpSXlVVBYVC0aEYX331FR49egQAsLS0bLVeXFwc1Go1UlJSMHjwYNjY2GDevHmor6+X1Pt3DDMzM+j1+g61hYiIiIiIiF5sJpV0y2QyjB49GhqNBrNnzwYA6PV6aDQaqFSqDsXo169fh+oVFRUhMjISc+bMAdA48n3lypVnaTYRERERERFRi0wq6QaA2NhYREREYMyYMfDz88O2bdtQU1ODqKgoAIBOp4NOp8OlS5cAAH/88YdhZXFHR8cOn8fLyws//PADwsLCYGZmhsTERI5gExERERERUacyuaQ7PDwct2/fRlJSEnQ6HUaOHIm8vDzD4mrp6elYv369oX5AQAAAICsrC5GRka3G1ev16NXrf5ebmpqKxYsXY8KECXByckJ8fDzu379vnIsiIiIiIiKiF5KZEEJ0dSOeh82bN2PPnj0oLS3t6qYQERERERHRC8LkRro7W21tLcrLy5GVlYVp06Z1dXOIiIiIiIjoBdLjtgz7t4yMDAQHB2PEiBFISkrq6uYQERERERHRC+SFmV5ORERERERE9Lz1+JFuIiIiIiIioq7CpJuIiIiIiIjISEw+6d60aRPGjh2LPn36wMXFBbNnz0ZFRYWkzuPHj6FUKtG3b1/Y2tpi7ty5qKqqMhw/d+4cFi5ciP79+8PGxgbe3t7Yvn17s3MVFhZi1KhRsLKywuDBg5GdnW3syyMiIiIiIqIezOST7hMnTkCpVKKkpARqtRoNDQ0ICQlBTU2Noc7KlStx9OhRHDhwACdOnMCNGzfwxhtvGI6fOXMGLi4u2LNnD86fP4+PPvoIH374IXbs2GGoc/nyZcyYMQOTJ0/G2bNnERMTg/feew8//fTTc71eIiIiIiIi6jm63UJqt2/fhouLC06cOIGAgADcu3cPzs7OyMnJwbx58wAA5eXl8Pb2RnFxMcaPH99iHKVSibKyMuTn5wMA4uPjkZubK9nHe8GCBaiurkZeXp7xL4yIiIiIiIh6HJMf6f63e/fuAQAcHR0BNI5iNzQ0IDg42FBn6NChcHd3R3FxcZtxmmIAQHFxsSQGAISGhrYZg4iIiIiIiKgtvbq6AU9Dr9cjJiYGEydOhI+PDwBAp9NBJpPBwcFBUlcul0On07UY59SpU9i/fz9yc3MNZTqdDnK5vFmM+/fv49GjR7CxsenciyEiIiIiIqIer1sl3UqlEqWlpfjll1+eOUZpaSlmzZqF5ORkhISEdGLriIiIiIiIiKS6zfRylUqFY8eOoaCgAG5uboZyhUKB+vp6VFdXS+pXVVVBoVBIyi5cuICgoCAsXboUCQkJkmMKhUKy4nlTDDs7O45yExERERER0TMx+aRbCAGVSoWDBw8iPz8fnp6ekuOjR4+GpaUlNBqNoayiogLXrl2Dv7+/oez8+fOYPHkyIiIi8OmnnzY7j7+/vyQGAKjVakkMIiIiIiIioqdh8quXL1u2DDk5OTh8+DCGDBliKLe3tzeMQEdHR+PHH39EdnY27OzssHz5cgCN390GGqeUT5kyBaGhofjss88MMSwsLODs7AygccswHx8fKJVKLF68GPn5+VixYgVyc3MRGhr6vC6XiIiIiIiIehCTT7rNzMxaLM/KykJkZCQA4PHjx1i1ahX27t2Luro6hIaGYteuXYbp5R9//DHWr1/fLIaHhweuXLlieFxYWIiVK1fiwoULcHNzQ2JiouEcRERERERERE/L5JNuIiIiIiIiou7K5L/TTURERERERNRdMekmIiIiIiIiMhIm3URERERERERGwqSbiIiIiIiIyEiYdBMREREREREZCZNuIiIiIiIiIiNh0k1ERERERERkJEy6iYiIiIiIiIyESTcRERERERGRkTDpJiIiIiIiIjISJt1ERERERERERsKkm4iIiIiIiMhI/g80hryfwagPyAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# heat demand results\n", + "res1_idx = res1[res1['name'] == 'heat_consumer'].index[0]\n", + "df_hd1 = res1.data_source.loc[res1_idx].df\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "print(df_hd1)\n", + "df_hd1.q_received_kw.plot(ax=axes[0], color='C2')\n", + "axes[0].set_ylabel('Demand received power (kW)')\n", + "axes[0].set_title('Part 1 (GenericMapping): Heat demand')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hd1.q_uncovered_kw.plot(ax=axes[1], color='C3')\n", + "axes[1].set_ylabel('Uncovered demand (kW)')\n", + "axes[1].set_title('Uncovered demand')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# time_series rows are indexed by integer; use name column to get the storage results\n", - "res1_idx = res1[res1['name'] == 'tank_power_only'].index[0]\n", - "df_hs1 = res1.data_source.loc[res1_idx].df\n", - "\n", - "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", - "df_hs1.soc.plot(ax=axes[0], color='C0')\n", - "axes[0].set_ylabel('SOC (-)')\n", - "axes[0].set_title('Part 1 (GenericMapping): Heat storage SOC')\n", - "axes[0].grid(True, alpha=0.3)\n", - "df_hs1.q_delivered_kw.plot(ax=axes[1], color='C1')\n", - "axes[1].set_ylabel('Power (kW)')\n", - "axes[1].set_title('Delivered power')\n", - "axes[1].grid(True, alpha=0.3)\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", - "2020-01-01 00:00:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:15:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:30:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:45:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 01:00:00+00:00 60.0 0.0 0.0 \n", - "... ... ... ... \n", - "2020-01-01 22:45:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:00:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:15:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:30:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:45:00+00:00 0.0 0.0 0.0 \n", - "\n", - " t_in_c t_out_c \n", - "2020-01-01 00:00:00+00:00 0.0 0.0 \n", - "2020-01-01 00:15:00+00:00 0.0 0.0 \n", - "2020-01-01 00:30:00+00:00 0.0 0.0 \n", - "2020-01-01 00:45:00+00:00 0.0 0.0 \n", - "2020-01-01 01:00:00+00:00 0.0 0.0 \n", - "... ... ... \n", - "2020-01-01 22:45:00+00:00 0.0 0.0 \n", - "2020-01-01 23:00:00+00:00 0.0 0.0 \n", - "2020-01-01 23:15:00+00:00 0.0 0.0 \n", - "2020-01-01 23:30:00+00:00 0.0 0.0 \n", - "2020-01-01 23:45:00+00:00 0.0 0.0 \n", - "\n", - "[96 rows x 5 columns]\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "# Part 2: FluidMixMapping (uniform tank)\n", + "\n", + "Chain: **Const profile** → **Electric boiler** → **Heat storage (uniform tank)** → **Heat demand**.\n", + "\n", + "The electric boiler supplies the storage with fluid (temperature + mass flow); the storage is configured with `capacity_kg`, optional `init_temperature_c`, `min_temp_c`, `max_temp_c` for SOC from temperature." + ] }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmA1JREFUeJzs3Xd8U+X+B/BPkrZpmzYd0AltWcoU2chexbIFuRdRkIJcXKBARcZPBBGkiIpwkSFXBEGRJS4UkFFAFJElQwQVCkXoADrSQUeS5/dHyYHQlua0STP4vF+vvm7z5OScb3NSL99+n+f7KIQQAkRERERERERkdUp7B0BERERERETkqph0ExEREREREdkIk24iIiIiIiIiG2HSTURERERERGQjTLqJiIiIiIiIbIRJNxEREREREZGNMOkmIiIiIiIishEm3UREREREREQ2wqSbiIiIiIiIyEaYdBMRUZWYP38+GjRoAKPRaO9QrG7v3r1QKBTYu3evvUOpEgqFAm+88YZNr7F8+XJERkaioKDAptdxFqtXr4ZCocDFixftHYpNde3aFV27drV3GEREVsWkm4jIQZj+UW368vT0xIMPPohx48YhNTXVatfJy8vDG2+8IStBfOuttzBgwACEhIRUKOHS6XR4++23MWXKFCiV5v/XU1BQgMWLF6Njx44ICAiAh4cHwsPDMWDAAHz++ecwGAyyruVM3njjDSgUCiiVSly+fLnE8zqdDl5eXlAoFBg3bpwdIrSfkSNHorCwEB9++GGlzlOrVi3069ev1OdMfyzZvHlzpa5xLxX5fSMiItfiZu8AiIjI3JtvvonatWsjPz8fBw4cwLJly/D999/j9OnT8Pb2rvT58/LyMGvWLACwuKI0ffp0hIaGonnz5tixY4fsa3788cfQ6/V48sknzcavXbuG3r174+jRo4iJicH06dMRGBiIlJQU7Nq1C0899RT+/vtvvP7667KvWZU6d+6MmzdvwsPDo0KvV6vV+PzzzzF58mSz8S1btlgjPKu7efMm3Nxs+08IT09PxMbGYsGCBXjppZegUChsej1bqcjvGxERuRYm3UREDqZ3795o1aoVAOA///kPqlWrhgULFuDrr78ukbTKYTQaUVhYWKHXJiYmolatWrh+/TqCgoJkv37VqlUYMGAAPD09zcaffvppHD9+HF988QUef/xxs+em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iKhyZO3TDQAvvvgi4uLicPnyZbRs2RIajfn06KZNm1otOFelK9QBAHw8fKx2TlPSfSXnitXOSURERERERJUjO+keOnQoAODll1+WxhQKBYQQUCgUMBjYyKs8Uudyd+tVusM0YQCA5FxWuomIiIiIiByF7KQ7MTHRFnHcV2w5vfxqzlWrnZOIiIiIiIgqR3bSHRUVZYs47iu2SLpr+NQAAKTkpsBgNFilQRsRERERERFVToX26V67di06dOiA8PBwXLp0CQCwcOFCfP3111YNzlVlF1k/6Q7yCoKbwg16oce1m9esdl4iIiIiIiKqONlJ97JlyxAXF4c+ffogMzNTWsPt7++PhQsXWjs+l2SqdPu4W6+RmkqpQogmBADXdRMRERERETkK2Un34sWL8b///Q+vvfYaVKrbU5hbtWqFU6dOWTU4V2VKurUeWque19RMjR3MiYiIiIiIHIPspDsxMRHNmzcvMa5Wq5Gbm2uVoFyd1L3citPLAe7VTURERERE5GhkJ921a9fGb7/9VmJ8+/btaNiwoTVicnm22KcbuKODeS47mBMRERERETkC2d3L4+LiMHbsWOTn50MIgV9//RWff/454uPj8dFHH9kiRpdji0ZqABCu4bZhREREREREjkR20v2f//wHXl5emD59OvLy8vDUU08hPDwcixYtwtChQ20Ro8sxTS+39ppu7tVNRERERETkWGQn3QAwbNgwDBs2DHl5ecjJyUFwcLC143JptuheDtyudCfnJkMIAYVCYdXzExERERERkTyy13R//PHHSExMBAB4e3sz4ZbJYDQgp8g2jdRCNaFQQIECQwFu5N+w6rmJiIiIiIhIPtlJd3x8POrVq4fIyEg8/fTT+Oijj/D333/bIjaXlKu/3eHd2km3u8odQd5BANjBnIiIiIiIyBHITrr/+usvJCUlIT4+Ht7e3nj33XdRv3591KxZE8OHD7dFjC7FNLVcrVLDQ+Vh9fNLzdTYwZyIiIiIiMjuZCfdAFCjRg0MGzYM77//PhYtWoSnn34aqampWL9+vbXjczmmpNvaVW6TMJ8wAGymRkRERERE5AhkN1L74YcfsHfvXuzduxfHjx9Hw4YN0aVLF2zevBmdO3e2RYwuxdZJdw2fGgCYdBMRERERETkC2Ul3r169EBQUhFdeeQXff/89/P39bRCW65KSbncbVbo1xZXu5Fyu6SYiIiIiIrI32dPLFyxYgA4dOmD+/Plo3LgxnnrqKaxYsQJ//vmnLeJzObaudJv26r6Sc8Um5yciIiIiIiLLyU66J0yYgC1btuD69evYvn072rdvj+3bt6NJkyaoWbOmLWJ0KbbaLszElHSb9uomIiIiIiIi+5E9vRwAhBA4fvw49u7di4SEBBw4cABGoxFBQUHWjs/l6Ap1AAAfDx+bnN80vTy3KBe6Qh381H42uQ4RERERERGVT3alu3///qhWrRratGmDzz77DA8++CA++eQTXL9+HcePH7dFjC7F1tPLvdy8EOgZCIDruomIiIiIiOxNdqW7QYMGeO6559CpUyf4+bGKKldOYfH0cq2H1mbXCNeEIz0/HVdyrqBBYAObXYeIiIiIiIjuTXbS/c4779gijvuGqdLt426b6eVA8V7dp2+cRnIOK91ERERERET2JHt6OQDs27cP/fv3R7169VCvXj0MGDAAP/74o7Vjc0m2nl4OFFe6AeBqLvfqJiIiIiIisifZSfenn36K6OhoeHt74+WXX8bLL78MLy8v9OjRA+vWrbNFjC4lu6gKku5bHcyv5jDpJiIiIiIisifZ08vfeustzJ8/HxMnTpTGXn75ZSxYsACzZ8/GU089ZdUAXU2VVLqZdBMRERERETkE2ZXuCxcuoH///iXGBwwYgMTERKsE5cqkpNvddkm3adswdi8nIiIiIiKyL9lJd0REBHbv3l1ifNeuXYiIiLBKUK5KCCF1L6+KSndmQSbyivJsdh0iIiIiIiK6N9nTy1955RW8/PLL+O2339C+fXsAwE8//YTVq1dj0aJFVg/QldzU34Re6AHYNun29fCFr4cvsguzcTXnKuoF1LPZtYiIiIiIiKhsspPuF154AaGhoXjvvfewceNGAEDDhg2xYcMGPPbYY1YP0JWYpparFCp4uXnZ9FrhmnCcKzyHq7lMuomIiIiIiOxFdtINAIMGDcKgQYOsHYvLyym6PbVcoVDY9FrhPuE4l3GOzdSIiIiIiIjsqEJJNwAcOXIEf/zxBwCgUaNGaNmypdWCclWmSrePu4/NryV1MOde3URERERERHYju5HaP//8g06dOqFNmzYYP348xo8fj9atW6Njx474559/KhzIvHnzoFAoMGHCBGksPz8fY8eORbVq1eDj44PBgwcjNTW1wtewN12hDoBt13ObSB3Mc9jBnIiIiIiIyF5kJ93/+c9/UFRUhD/++APp6elIT0/HH3/8AaPRiP/85z8VCuLw4cP48MMP0bRpU7PxiRMn4ttvv8WmTZuwb98+XL16FY8//niFruEITJ3LtR5am1+rhk8NANyrm4iIiIiIyJ5kJ9379u3DsmXLUL9+fWmsfv36WLx4Mfbv3y87gJycHAwbNgz/+9//EBAQII1nZWVh5cqVWLBgAbp3746WLVti1apV+Pnnn/HLL7/Ivo4jkKaXe9h+enmYT3Glm9PLiYiIiIiI7Ef2mu6IiAgUFRWVGDcYDAgPD5cdwNixY9G3b19ER0djzpw50vjRo0dRVFSE6OhoaaxBgwaIjIzEwYMH8cgjj5R6voKCAhQUFEiPdbriKd1GoxFGo1F2fNakKyiOxcfdx+axhHqFAgCu37yOm0U3oVapbXo9IiIiIiKi+4mlOZ3spPudd97BSy+9hCVLlqBVq1YAipuqjR8/Hu+++66sc61fvx7Hjh3D4cOHSzyXkpICDw8P+Pv7m42HhIQgJSWlzHPGx8dj1qxZJcavXbuGwsJCWfFZW2pW8Xp0N70b0tLSbHotIQQ8VZ7IN+Tj96TfUVNT06bXIyIiIiIiup9kZWVZdJzspHvkyJHIy8tD27Zt4eZW/HK9Xg83Nzc888wzeOaZZ6Rj09PTyzzP5cuXMX78eOzcuROenp5ywyjTtGnTEBcXJz3W6XSIiIhAUFBQiQS+qhkuGAAAwX7BCA4Otvn1wn3CcSHrAgrUBVVyPSIiIiIiovuFh4eHRcfJTroXLlwo9yWlOnr0KNLS0tCiRQtpzGAwYP/+/fjggw+wY8cOFBYWIjMz0yxZTk1NRWhoaJnnVavVUKtLTqVWKpVQKmUvYbcq0z7dWrW2SmIxJd0peSl2/9mJiIiIiIhciaU5luykOzY2VnYwpenRowdOnTplNjZq1Cg0aNAAU6ZMQUREBNzd3bF7924MHjwYAHDu3DkkJSWhXbt2VomhqmUXFTdSq4otwwAgXFO8xv5KzpUquR4RERERERGZk510W4uvry+aNGliNqbRaFCtWjVpfPTo0YiLi0NgYCC0Wi1eeukltGvXrswmao6uKruXA8WVbgBIzuVe3URERERERPZgt6TbEu+//z6USiUGDx6MgoICxMTEYOnSpfYOq8JMSXdV7NMN3E66uVc3ERERERGRfThU0r13716zx56enliyZAmWLFlin4CsLKeweE13VU0vD9Nwr24iIiIiIiJ7YnetKiRNL3evmunlNXxqAADS8tJQZCy5tzoRERERERHZFpPuKlJkKEK+IR9A1VW6q3lVg7vSHUZhRFqebfcFJyIiIiIiopIsml7++OOPW3zCLVu2VDgYV2bqXA5UXaVbqVAiTBOGpOwkXM25KlW+iYiIiIiIqGpYVOn28/OTvrRaLXbv3o0jR45Izx89ehS7d++Gn5+fzQJ1dqap5Rp3DVRKVZVdl83UiIiIiIiI7MeiSveqVauk76dMmYIhQ4Zg+fLlUKmKk0eDwYAXX3wRWm3VdOV2Rqaku6qmlptISTebqREREREREVU52Wu6P/74Y0yaNElKuAFApVIhLi4OH3/8sVWDcyX2SrqlDuasdBMREREREVU52Um3Xq/H2bNnS4yfPXsWRqPRKkG5Iinpdq/apNu0jjs5J7lKr0tEREREREQV2Kd71KhRGD16NM6fP482bdoAAA4dOoR58+Zh1KhRVg/QVdi90s3p5URERERERFVOdtL97rvvIjQ0FO+99x6Sk4urp2FhYXj11VfxyiuvWD1AV5FTlAPAfmu6k3OTYRRGKBXcJY6IiIiIiKiqyE66lUolJk+ejMmTJ0On0wEAG6hZQFdY/F5V1XZhJsHewVApVNAb9biWdw0hmpAqvT4REREREdH9rEJlT71ej127duHzzz+HQqEAAFy9ehU5OTlWDc6V2Gt6uZvSDSHexYl2ci7XdRMREREREVUl2ZXuS5cuoVevXkhKSkJBQQF69uwJX19fvP322ygoKMDy5cttEafTyyks/oOE1qPqZwWE+YThau5VXMm5gmbBzar8+kRERERERPcr2ZXu8ePHo1WrVsjIyICXl5c0PmjQIOzevduqwbkSU6Xbx6Nqp5cDd3QwZ6WbiIiIiIioSsmudP/444/4+eef4eHhYTZeq1YtXLlyxWqBuRrTmu6qnl4OcK9uIiIiIiIie5Fd6TYajTAYDCXG//nnH/j6Vn1C6Szs1b0cuN3BnEk3ERERERFR1ZKddD/66KNYuHCh9FihUCAnJwczZ85Enz59rBmbS5EaqbnbMenmXt1ERERERERVSvb08vfeew8xMTFo1KgR8vPz8dRTT+Gvv/5C9erV8fnnn9siRpdgr+7lABCuubVXd04yhBBSx3kiIiIiIiKyLdlJd82aNXHixAmsX78eJ0+eRE5ODkaPHo1hw4aZNVaj24zCiNyiXAD2SbpDNaEAgHxDPtLz01HNq1qVx0BERERERHQ/kp105+fnw9PTE8OHD7dFPC4ppygHAgKAfZJuD5UHgr2CkXYzDcm5yUy6iYiIiIiIqojsNd3BwcGIjY3Fzp07YTQabRGTyzFNLVer1PBQeZRztG2E+bCDORERERERUVWTnXR/8sknyMvLw2OPPYYaNWpgwoQJOHLkiC1icxk5hfbrXG5iWtfNpJuIiIiIiKjqyE66Bw0ahE2bNiE1NRVz587FmTNn8Mgjj+DBBx/Em2++aYsYnZ5pj24fdx+7xcAO5kRERERERFVPdtJt4uvri1GjRuGHH37AyZMnodFoMGvWLGvG5jJM08u1Hlq7xWBKupNzku0WAxERERER0f2mwkl3fn4+Nm7ciIEDB6JFixZIT0/Hq6++as3YXEZOkf2nl4dpitd0X8m9YrcYiIiIiIiI7jeyu5fv2LED69atw1dffQU3Nzf861//wg8//IDOnTvbIj6XYKp0+3jYb3p5DZ8aAFjpJiIiIiIiqkqyk+5BgwahX79+WLNmDfr06QN3d3dbxOVSTGu67VnpNu3VnVOUA12hzq5T3YmIiIiIiO4XspPu1NRU+PraL3l0Ro7Qvdzb3RsB6gBkFGTgas5VaAOZdBMREREREdmaRUm3TqeDVlucpAkhoNPpyjzWdBzdZppe7utu3z9WhPuES0l3g8AGdo2FiIiIiIjofmBR0h0QEIDk5GQEBwfD398fCoWixDFCCCgUChgMBqsH6eykpNuOlW6gOOn+/cbvSM7lum4iIiIiIqKqYFHSvWfPHgQGBgIAEhISbBqQK8oucoykW+pgnsMO5kRERERERFXBoqS7S5cupX5PlnGkSjfADuZERERERERVpUL7dP/4448YPnw42rdvjytXiquma9euxYEDB6wanKtwmKRbU5x0X829atc4iIiIiIiI7heyk+4vvvgCMTEx8PLywrFjx1BQUAAAyMrKwty5c60eoCuQupc7QCM1ALiaw6SbiIiIiIioKshOuufMmYPly5fjf//7n9ke3R06dMCxY8esGpwrEEJIlW4fDx+7xlLTtyYAILMgU9o7nIiIiIiIiGxHdtJ97tw5dO7cucS4n58fMjMzrRGTS7mpvwm90AMAtB723U5N465Bda/qAIAkXZJdYyEiIiIiIrofyE66Q0ND8ffff5cYP3DgAOrUqWOVoFxJTlHx1HKVQgUvNy87RwNEaaMAABd1F+0bCBERERER0X1AdtI9ZswYjB8/HocOHYJCocDVq1fx2WefYdKkSXjhhRdsEaNTu3NqeWn7m1c1U9LNSjcREREREZHtWbRl2J2mTp0Ko9GIHj16IC8vD507d4ZarcakSZPw0ksv2SJGpyZ1LrdzEzUTVrqJiIiIiIiqjuykW6FQ4LXXXsOrr76Kv//+Gzk5OWjUqBF8fOzbJMxROcp2YSZRvqx0ExERERERVRXZSXdWVhYMBgMCAwPRqFEjaTw9PR1ubm7Qau3bLMzROFzSfavSfUl3CUIIh5jyTkRERERE5Kpkr+keOnQo1q9fX2J848aNGDp0qFWCciWOlnRHaCOggAI5RTm4kX/D3uEQERERERG5NNlJ96FDh9CtW7cS4127dsWhQ4esEpQryS5yrKRbrVIjTBMGgFPMiYiIiIiIbE120l1QUAC9Xl9ivKioCDdv3pR1rvj4eLRu3Rq+vr4IDg7GwIEDce7cObNj8vPzMXbsWFSrVg0+Pj4YPHgwUlNT5YZtN1L3cnfHWfN+5xRzIiIiIiIish3ZSXebNm2wYsWKEuPLly9Hy5YtZZ1r3759GDt2LH755Rfs3LkTRUVFePTRR5GbmysdM3HiRHz77bfYtGkT9u3bh6tXr+Lxxx+XG7bdmJJurYfjrHWP1EYCYNJNRERERERka7Ibqc2ZMwfR0dE4ceIEevToAQDYvXs3Dh8+jB9++EHWubZv3272ePXq1QgODsbRo0fRuXNnZGVlYeXKlVi3bh26d+8OAFi1ahUaNmyIX375BY888ojc8KtcTmEOAMeZXg4AtbS1ADDpJiIiIiIisjXZSXeHDh1w8OBBzJ8/Hxs3boSXlxeaNm2KlStX4oEHHqhUMFlZWQCAwMBAAMDRo0dRVFSE6Oho6ZgGDRogMjISBw8eLDXpLigoQEFBgfRYp9MBAIxGI4xGY6XiqwhdYfH1Ne4au1y/NJG+xZXui7qLDhMTERERERGRM7E0l5KddANAs2bNsG7duoq8tExGoxETJkxAhw4d0KRJEwBASkoKPDw84O/vb3ZsSEgIUlJSSj1PfHw8Zs2aVWL82rVrKCwstGrMlkjPTQcAGPOMSEtLq/Lrl0ZTqAFQ3EgtJTUFSoXsVQZERERERET3NVPRuDwVSrrPnz+PVatW4cKFC1i4cCGCg4Oxbds2REZGonHjxhU5JcaOHYvTp0/jwIEDFXq9ybRp0xAXFyc91ul0iIiIQFBQUInkvSoUoLjqXjOoJoKDg6v8+qUJNAbC7Sc3FBoLIXwEgjWOERcREREREZGz8PDwsOg42Un3vn370Lt3b3To0AH79+/HnDlzEBwcjBMnTmDlypXYvHmz7GDHjRuHrVu3Yv/+/ahZs6Y0HhoaisLCQmRmZpolzKmpqQgNDS31XGq1Gmq1usS4UqmEUln1FV2pkZpaa5frl8ZD6YGavjVxUXcRl3Muo4ZvDXuHRERERERE5FQsze9kZ4FTp07FnDlzsHPnTrPMvnv37vjll19knUsIgXHjxuHLL7/Enj17ULt2bbPnW7ZsCXd3d+zevVsaO3fuHJKSktCuXTu5oduFKel2pEZqwB3bhmWxmRoREREREZGtyK50nzp1qtT13MHBwbh+/bqsc40dOxbr1q3D119/DV9fX2mdtp+fH7y8vODn54fRo0cjLi4OgYGB0Gq1eOmll9CuXTun6FxeZChCviEfgOMm3Rd1F+0bCBERERERkQuTnXT7+/sjOTm5RFX6+PHjqFFD3jTlZcuWAQC6du1qNr5q1SqMHDkSAPD+++9DqVRi8ODBKCgoQExMDJYuXSo3bLvILsqWvvdx97FjJCWZku6k7CQ7R0JEREREROS6ZCfdQ4cOxZQpU7Bp0yYoFAoYjUb89NNPmDRpEkaMGCHrXEKIco/x9PTEkiVLsGTJErmh2p1parnGXQOVUmXnaMxJ08u5VzcREREREZHNyF7TPXfuXDRo0AARERHIyclBo0aN0LlzZ7Rv3x7Tp0+3RYxOK6cwB4DjTS0HbifdV7KvoMhYZOdoiIiIiIiIXJOsSrcQAikpKfjvf/+LGTNm4NSpU8jJyUHz5s3xwAMP2CpGp6Ur1AFwvKnlABDsHQxPlSfyDfm4mnNVSsKJiIiIiIjIemQn3fXq1cPvv/+OBx54ABEREbaKyyVI24V5aO0cSUlKhRKR2kj8mfEnLukuMekmIiIiIiKyAVnTy5VKJR544AHcuHHDVvG4lJwix51eDnBdNxERERERka3JXtM9b948vPrqqzh9+rQt4nEppkq3j4fjTS8HmHQTERERERHZmuzu5SNGjEBeXh4efvhheHh4wMvLy+z59PR0qwXn7Exrun3dHbPSHekbCYBJNxERERERka3ITroXLlxogzBckyN3LweAWn61ADDpJiIiIiIishXZSXdsbKwt4nBJpunljpp0m6aXJ+cmI1+fD083TztHRERERERE5Fpkr+kmyzl60h2gDpCmvl/OvmznaIiIiIiIiFwPk24byi5y7KRboVCwmRoREREREZENMem2IanS7aCN1AAgUstmakRERERERLbCpNuGHH16OQDU0tYCwKSbiIiIiIjIFph025Cjdy8HuFc3ERERERGRLVnUvfzxxx+3+IRbtmypcDCuxCiMyCkqTrp9PHzsHE3ZmHQTERERERHZjkWVbj8/P+lLq9Vi9+7dOHLkiPT80aNHsXv3bvj5+dksUGeTW5QLAQHAsSvdpjXdN/JvSJV5IiIiIiIisg6LKt2rVq2Svp8yZQqGDBmC5cuXQ6VSAQAMBgNefPFFaLVa20TphEzrudUqNdQqtZ2jKZuvhy8CPQORnp+OS9mX0LhaY3uHRERERERE5DJkr+n++OOPMWnSJCnhBgCVSoW4uDh8/PHHVg3OmZmSbh93x51abiI1U8viFHMiIiIiIiJrkp106/V6nD17tsT42bNnYTQarRKUK3CGzuUmXNdNRERERERkGxZNL7/TqFGjMHr0aJw/fx5t2rQBABw6dAjz5s3DqFGjrB6gs3KmpFvaqzubSTcREREREZE1yU663333XYSGhuK9995DcnIyACAsLAyvvvoqXnnlFasH6Kyyi5wn6eb0ciIiIiIiItuQnXQrlUpMnjwZkydPhk6nAwA2UCuFs1a6hRBQKBR2joiIiIiIiMg1yF7TfSetVsuEuwzO1Egt0rc46c4uzEZGQYadoyEiIiIiInIdspPu1NRUPP300wgPD4ebmxtUKpXZFxUzJd1aD8f/o4SnmyfCNGEA2EyNiIiIiIjImmRPLx85ciSSkpLw+uuvIywsjFORy5BTlAPAOaaXA8VTzJNzk3FJdwnNg5vbOxwiIiIiIiKXIDvpPnDgAH788Uc0a9bMBuG4Dml6uYfjTy8HipupHUo+xEo3ERERERGRFcmeXh4REQEhhC1icSm6wuImc05T6b61rptJNxERERERkfXITroXLlyIqVOn4uLFizYIx3XkFBZPL3eGNd0AUMuvFgAm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LoT30/XwnroW3k/Xw3vqenhPXQvvp3Mpbxmz7EXOAwYMwJtvvomioiIAgEKhQFJSEqZMmYLBgwdXLEoimcaOHWvvEMiKeD9dD++pa+H9dD28p66H99S18H66Ftndy7OysvCvf/0LR44cQXZ2NsLDw5GSkoJ27drh+++/h0ajsVWsFWLqXl5eRzkiIiIiIiIiS1maa8qeXu7n54edO3fiwIEDOHnyJHJyctCiRQtER0dXKmBbUavVmDlzJtRqtb1DISIiIiIiIhdhaa5ZoX26iYiIiIiIiKh8sirdRqMRq1evxpYtW3Dx4kUoFArUrl0b//rXv/D0009DoVDYKk4iIiIiIiIip2NxpVsIgf79++P777/Hww8/jAYNGkAIgT/++AOnTp3CgAED8NVXX9k4XCIiIiIiIiLnYXGle/Xq1di/fz92796Nbt26mT23Z88eDBw4EGvWrMGIESOsHiQRERERERGRM7K40v3oo4+ie/fumDp1aqnPz507F/v27cOOHTusGiARERERERGRs7J4n+6TJ0+iV69eZT7fu3dvnDhxwipBEREREREREbkCi5Pu9PR0hISElPl8SEgIMjIyrBIUERERERERkSuwOOk2GAxwcyt7CbhKpYJer7dKUERERERERESuwOJGakIIjBw5ssyNvwsKCqwWFBEREREREZErsDjpjo2NLfcYdi4nIiIiIiIius3i7uVEREREREREJI/Fa7qJiIiIiIiISB4m3UREREREREQ2wqSbiIiIiIiIyEaYdBMREdE9jRw5ErVq1arw62vVqoWRI0daLR5HtHfvXigUCuzdu9feoRARkYNh0k1ERC7ljTfegEKhwPXr10t9vkmTJujatWvVBkVERET3LSbdRERERERERDbCpJuIiMhF5ebm2jsEIiKi+x6TbiIiuq+Z1uJu3LgRb731FmrWrAlPT0/06NEDf//9d4njDx06hD59+iAgIAAajQZNmzbFokWLzI7Zs2cPOnXqBI1GA39/fzz22GP4448/pOc3b94MhUKBffv2lTj/hx9+CIVCgdOnT0tjZ8+exb/+9S8EBgbC09MTrVq1wjfffGP2utWrV0vnfPHFFxEcHIyaNWtKz2/btk2KydfXF3379sXvv/9e4vpfffUVmjRpAk9PTzRp0gRffvmlxe+lEAJz5sxBzZo14e3tjW7dupV6DQDIzMzEhAkTEBERAbVajXr16uHtt9+G0WiUjrl48SIUCgXeffddLFmyBHXq1IG3tzceffRRXL58GUIIzJ49GzVr1oSXlxcee+wxpKenm13n66+/Rt++fREeHg61Wo26deti9uzZMBgMZsd17doVTZo0wZkzZ9CtWzd4e3ujRo0amD9/fonY//nnHwwcOBAajQbBwcGYOHEiCgoKLH6fiIjo/uJm7wCIiIgcwbx586BUKjFp0iRkZWVh/vz5GDZsGA4dOiQds3PnTvTr1w9hYWEYP348QkND8ccff2Dr1q0YP348AGDXrl3o3bs36tSpgzfeeAM3b97E4sWL0aFDBxw7dgy1atVC37594ePjg40bN6JLly5mcWzYsAGNGzdGkyZNAAC///47OnTogBo1amDq1KnQaDTYuHEjBg4ciC+++AKDBg0ye/2LL76IoKAgzJgxQ6p0r127FrGxsYiJicHbb7+NvLw8LFu2DB07dsTx48elJmk//PADBg8ejEaNGiE+Ph43btzAqFGjzJL3e5kxYwbmzJmDPn36oE+fPjh27BgeffRRFBYWmh2Xl5eHLl264MqVK3juuecQGRmJn3/+GdOmTUNycjIWLlxodvxnn32GwsJCvPTSS0hPT8f8+fMxZMgQdO/eHXv37sWUKVPw999/Y/HixZg0aRI+/vhj6bWrV6+Gj48P4uLi4OPjgz179mDGjBnQ6XR45513zK6TkZGBXr164fHHH8eQIUOwefNmTJkyBQ899BB69+4NALh58yZ69OiBpKQkvPzyywgPD8fatWuxZ88ei94jIiK6DwkiIiIXMnPmTAFAXLt2rdTnGzduLLp06SI9TkhIEABEw4YNRUFBgTS+aNEiAUCcOnVKCCGEXq8XtWvXFlFRUSIjI8PsnEajUfq+WbNmIjg4WNy4cUMaO3HihFAqlWLEiBHS2JNPPimCg4OFXq+XxpKTk4VSqRRvvvmmNNajRw/x0EMPifz8fLPrtW/fXjzwwAPS2KpVqwQA0bFjR7NzZmdnC39/fzFmzBizmFNSUoSfn5/ZeLNmzURYWJjIzMyUxn744QcBQERFRZV8M++QlpYmPDw8RN++fc3ej//7v/8TAERsbKw0Nnv2bKHRaMSff/5pdo6pU6cKlUolkpKShBBCJCYmCgAiKCjILKZp06YJAOLhhx8WRUVF0viTTz4pPDw8zN6rvLy8ErE+99xzwtvb2+y4Ll26CABizZo10lhBQYEIDQ0VgwcPlsYWLlwoAIiNGzdKY7m5uaJevXoCgEhISLjn+0RERPcfTi8nIiICMGrUKHh4eEiPO3XqBAC4cOECAOD48eNITEzEhAkT4O/vb/ZahUIBAEhOTsZvv/2GkSNHIjAwUHq+adOm6NmzJ77//ntp7IknnkBaWprZFlObN2+G0WjEE088AQBIT0/Hnj17MGTIEGRnZ+P69eu4fv06bty4gZiYGPz111+4cuWKWSxjxoyBSqWSHu/cuROZmZl48sknpddfv34dKpUKbdu2RUJCglnssbGx8PPzk17fs2dPNGrUqNz3b9euXVI12vR+AMCECRNKHLtp0yZ06tQJAQEBZjFFR0fDYDBg//79Zsf/+9//Noupbdu2AIDhw4fDzc3NbLywsNDsPfHy8pK+N72HnTp1Ql5eHs6ePWt2HR8fHwwfPlx67OHhgTZt2kifAQD4/vvvERYWhn/961/SmLe3N5599tly3yMiIro/cXo5ERHdd+5MCk0iIyPNHgcEBAAonnIMAOfPnwcAadp3aS5dugQAqF+/fonnGjZsiB07diA3NxcajQa9evWCn58fNmzYgB49egAonlrerFkzPPjggwCAv//+G0IIvP7663j99ddLvWZaWhpq1KghPa5du7bZ83/99RcAoHv37qW+XqvVmsX+wAMPlDimfv36OHbsWJk/971eHxQUJL2Xd8Z08uRJBAUFlXqutLQ0s8d33xtTAh4REVHquOmeAcXT86dPn449e/ZAp9OZHZ+VlWX2uGbNmiU+GwEBATh58qT0+NKlS6hXr16J40q750RERACTbiIicjGenp4AitfeliYvL0865k53VofvJISwXnB3UKvVGDhwIL788kssXboUqamp+OmnnzB37lzpGFNTsUmTJiEmJqbU89SrV8/s8Z2V3TvPsXbtWoSGhpZ4/Z2V4qpiNBrRs2dPTJ48udTnTX90MCnr3pR3zzIzM9GlSxdotVq8+eabqFu3Ljw9PXHs2DFMmTLFrGmbJecjIiKqCCbdRETkUqKiogAA586dK1EJzcvLw+XLl/Hoo4/KPm/dunUBAKdPn0Z0dHS5177b2bNnUb16dWg0GmnsiSeewCeffILdu3fjjz/+gBBCmloOAHXq1AEAuLu7l3lNS+MODg6+5zlMsZsq43cq7ee51+tNcQPAtWvXzCrPpphycnIq/DNZau/evbhx4wa2bNmCzp07S+OJiYkVPmdUVBROnz4NIYRZtduS94iIiO5PXNNNREQupUePHvDw8MCyZctKVDJXrFgBvV4vdaKWo0WLFqhduzYWLlyIzMxMs+dMldCwsDA0a9YMn3zyidkxp0+fxg8//IA+ffqYvS46OhqBgYHYsGEDNmzYgDZt2phNDw8ODkbXrl3x4YcfIjk5uURM165dKzfumJgYaLVazJ07F0VFRWWe487Y75x2vXPnTpw5c6bc60RHR8Pd3R2LFy82qwzf3YkcAIYMGYKDBw9ix44dJZ7LzMyEXq8v93qWMFWu74ynsLAQS5curfA5+/Tpg6tXr2Lz5s3SWF5eHlasWFHxQImIyKWx0k1ERC4lODgYM2bMwPTp09G5c2cMGDAA3t7e+Pnnn/H555/j0UcfRf/+/WWfV6lUYtmyZejfvz+aNWuGUaNGISwsDGfPnsXvv/8uJZDvvPMOevfujXbt2mH06NHSlmF+fn544403zM7p7u6Oxx9/HOvXr0dubi7efffdEtddsmQJOnbsiIceeghjxoxBnTp1kJqaioMHD+Kff/7BiRMn7hm3VqvFsmXL8PTTT6NFixYYOnQogoKCkJSUhO+++w4dOnTABx98AACIj49H37590bFjRzzzzDNIT0/H4sWL0bhxY+Tk5NzzOkFBQZg0aRLi4+PRr18/9OnTB8ePH8e2bdtQvXp1s2NfffVVfPPNN+jXrx9GjhyJli1bIjc3F6dOncLmzZtx8eLFEq+piPbt2yMgIACxsbF4+eWXoVAosHbt2kpNFx8zZgw++OADjBgxAkePHkVYWBjWrl0Lb2/vSsdLREQuyl5t04mIiGzp008/FY888ojQaDRCrVaLBg0aiFmzZpltEyXE7S3DNm3aZDZu2q5q1apVZuMHDhwQPXv2FL6+vkKj0YimTZuKxYsXmx2za9cu0aFDB+Hl5SW0Wq3o37+/OHPmTKlx7ty5UwAQCoVCXL58udRjzp8/L0aMGCFCQ0OFu7u7qFGjhujXr5/YvHmzdIxpy7DDhw+Xeo6EhAQRExMj/Pz8hKenp6hbt64YOXKkOHLkiNlxX3zxhWjYsKFQq9WiUaNGYsuWLSI2NrbcLcOEEMJgMIhZs2aJsLAw4eXlJbp27SpOnz4toqKizLYME6J4K7Np06aJevXqCQ8PD1G9enXRvn178e6774rCwkIhxO178M4775T4WUq7Z6W9Bz/99JN45JFHhJeXlwgPDxeTJ08WO3bsKLG9V5cuXUTjxo1L/Eyl/eyXLl0SAwYMEN7e3qJ69epi/PjxYvv27dwyjIiISqUQgt1BiIiIiIiIiGyBa7qJiIiIiIiIbIRJNxEREREREZGNMOkmIiIiIiIishEm3UREREREREQ2wqSbiIiIiIiIyEaYdBMRERERERHZiJu9A7A1o9GIq1evwtfXFwqFwt7hEBERERERkQsQQiA7Oxvh4eFQKsuuZ7t80n316lVERETYOwwiIiIiIiJyQZcvX0bNmjXLfN7lk25fX18AwKVLl+Dv72/fYIiIiIiIiMglZGZmIioqSso5y1KppLugoABqtboyp7A505RyrVYLrVZr52iIiIiIiIjIFRiNRgAodxmzrEZq27ZtQ2xsLOrUqQN3d3d4e3tDq9WiS5cueOutt3D16tWKR0xERERERETkYixKur/88ks8+OCDeOaZZ+Dm5oYpU6Zgy5Yt2LFjBz766CN06dIFu3btQp06dfD888/j2rVrto6biIiIiIiIyOEphBCivIPatWuH6dOno3fv3vfsynblyhUsXrwYISEhmDhxolUDrSidTgc/Pz9kZGRwTTcRERERERFZRWZmJgICApCVlXXPpcwWJd3OjEk3ERERERERWZulSbfFa7oTEhJQWFholeDIPoTBgMsvvIiUuXPtHQoREREREdF9weKku0ePHvD390f37t0xe/ZsHDhwAHq93paxkZUVJiUhJyEBGZ+tg4tPcCAiIiIiInIIFifdiYmJWLJkCSIjI7Fy5Up07twZ/v7+iImJwbx583Do0CGpZTo5JkNm5q1vDBB5eXaNhYiIiIiI6H5Q4TXdFy5cwN69e7F3717s27cP//zzD3x9fZFpSuwcBNd035a9dy/+ef4FAEC9vQlwDw21c0RERERERETOydI13W4VvUCdOnWgUqmgUCigUCjw1Vdfcc23gzNmZd3+PjsbYNJNRERERERkU7KS7qSkJOzduxcJCQnYu3cvrl+/jvbt26NTp07YunUr2rZta6s4yQoMd8xCMGRn2y8QIiIiIiKi+4TFSXedOnWQkZGBDh06oHPnznjuuefQqlUruLlVuFhOVcxwR6XboNPZMRIiIiIiIqL7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3zQba9GihXjttdfKPM/SpUtFQECAKCgokMamTJki6tevLz0u799OZB1paWkCgNi3b1+J5xISEixOuvk76vwcfnr5vaZJ5OfnY+zYsahWrRp8fHwwePBgi6Y5ciqyfRQWFuLo0aOIjo6WxpRKJaKjo3Hw4MESx+fm5mLVqlWoXbs2IiIipPFatWrhjTfekB4fPHjQ7JwAEBMTI50zMTERKSkpZsf4+fmhbdu2pV6XLFPe/UxLS8OhQ4cQHByM9u3bIyQkBF26dMGBAwfMztO1a1eMHDlSelze/ZT7OSLLlffeFhQUQKFQmHXo9PT0hFKpNLuvvKfOKysrCwqFAv7+/tIY76fz2bt3L4KDg1G/fn288MILuHHjhtnzvKfOo3379vjmm29w5coVCCGQkJCAP//8E48++qh0zMiRI9G1a1fp8cGDB9G5c2d4eHhIYzExMTh37hwyMjKkY+51z8k6srKyAACBgYGyXsffUdfj0En3hg0bEBcXh5kzZ+LYsWN4+OGHERMTg7S0NADAxIkT8e2332LTpk3Yt28frl69iscff/ye5/z555/x5JNPYvTo0Th+/DgGDhyIgQMH4vTp09Ix8+fPx3//+18sX74chw4dgkajQUxMDPLz823687q669evw2AwICQkxGw8JCQEKSkp0uOlS5fCx8cHPj4+2LZtG3bu3Gn2fxx169ZF9erVpccpKSn3PKfpf8u7LslT3v28cOECAOCNN97AmDFjsH37drRo0QI9evQw+yNWZGQkwsLCpMdl3U+dToebN29a/Dki+cp7bx955BFoNBpMmTIFeXl5yM3NxaRJk2AwGJCcnCwdz3vqnPLz8zFlyhQ8+eSTZnuN8n46l169emHNmjXYvXs33n77bezbtw+9e/eGwWCQjuE9dR6LFy9Go0aNULNmTXh4eKBXr15YsmQJOnfuLB0TFhaGyMhI6XFZ99P03L2O4f20nv9v796Doqz+P4C/AVnAQSAEdgcRRCVFCc0LijqQQuBl8JImWmOApQ3uaogoZlxyLHUmRA01hgqYNNRs8kpDsy6ghVCjrU4okJKXSV28zOAFFJj2/P7gx3594qqxsuD7NePonufs5znPHp51P5yz5+j1esTExGDixInw8fF5qufyHu15enV1A9qSmpqKJUuWICoqCgCQnp6O3NxcZGZmIjo6Gl9//TVycnIwZcoU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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ + { + "name": "index", + "rawType": "datetime64[ns, UTC]", + "type": "unknown" + }, + { + "name": "demand_power", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_feed_demand_c", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_return_demand_c", + "rawType": "float64", + "type": "float" + } + ], + "ref": "b91711b6-5ce9-472e-b544-2fe5388ced40", + "rows": [ + [ + "2020-01-01 00:00:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 00:15:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 00:30:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 00:45:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:00:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:15:00+00:00", + "0.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:30:00+00:00", + "60.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 01:45:00+00:00", + "60.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 02:00:00+00:00", + "60.0", + "55.0", + "25.0" + ], + [ + "2020-01-01 02:15:00+00:00", + "60.0", + "55.0", + "25.0" + ] + ], + "shape": { + "columns": 3, + "rows": 10 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
demand_powert_feed_demand_ct_return_demand_c
2020-01-01 00:00:00+00:000.055.025.0
2020-01-01 00:15:00+00:000.055.025.0
2020-01-01 00:30:00+00:000.055.025.0
2020-01-01 00:45:00+00:000.055.025.0
2020-01-01 01:00:00+00:000.055.025.0
2020-01-01 01:15:00+00:000.055.025.0
2020-01-01 01:30:00+00:0060.055.025.0
2020-01-01 01:45:00+00:0060.055.025.0
2020-01-01 02:00:00+00:0060.055.025.0
2020-01-01 02:15:00+00:0060.055.025.0
\n", + "
" + ], + "text/plain": [ + " demand_power t_feed_demand_c t_return_demand_c\n", + "2020-01-01 00:00:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 00:15:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 00:30:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 00:45:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 01:00:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 01:15:00+00:00 0.0 55.0 25.0\n", + "2020-01-01 01:30:00+00:00 60.0 55.0 25.0\n", + "2020-01-01 01:45:00+00:00 60.0 55.0 25.0\n", + "2020-01-01 02:00:00+00:00 60.0 55.0 25.0\n", + "2020-01-01 02:15:00+00:00 60.0 55.0 25.0" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Part 2 input: demand power and feed/return temperatures for the heat demand (same time range as Part 1)\n", + "demand_kw2 = np.zeros(n_steps)\n", + "demand_kw2[6:10] = 60.0\n", + "demand_kw2[14:18] = 30.0\n", + "df3 = pd.DataFrame({\n", + " 'demand_power': demand_kw2,\n", + " 't_feed_demand_c': 55.0,\n", + " 't_return_demand_c': 25.0\n", + "}, index=dur)\n", + "profile2 = DFData(df3)\n", + "df3.head(10)" ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# heat demand results\n", - "res1_idx = res1[res1['name'] == 'heat_consumer'].index[0]\n", - "df_hd1 = res1.data_source.loc[res1_idx].df\n", - "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", - "print(df_hd1)\n", - "df_hd1.q_received_kw.plot(ax=axes[0], color='C2')\n", - "axes[0].set_ylabel('Demand received power (kW)')\n", - "axes[0].set_title('Part 1 (GenericMapping): Heat demand')\n", - "axes[0].grid(True, alpha=0.3)\n", - "df_hd1.q_uncovered_kw.plot(ax=axes[1], color='C3')\n", - "axes[1].set_ylabel('Uncovered demand (kW)')\n", - "axes[1].set_title('Uncovered demand')\n", - "axes[1].grid(True, alpha=0.3)\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "# Part 2: FluidMixMapping (uniform tank)\n", - "\n", - "Chain: **Const profile** → **Electric boiler** → **Heat storage (uniform tank)** → **Heat demand**.\n", - "\n", - "The electric boiler supplies the storage with fluid (temperature + mass flow); the storage is configured with `capacity_kg`, optional `init_temperature_c`, `min_temp_c`, `max_temp_c` for SOC from temperature." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ + }, { - "data": { - "application/vnd.microsoft.datawrangler.viewer.v0+json": { - "columns": [ + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ { - "name": "index", - "rawType": "datetime64[ns, UTC]", - "type": "unknown" + "data": { + "text/plain": [ + "array([, , ], dtype=object)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" }, { - "name": "demand_power", - "rawType": "float64", - "type": "float" - }, + "data": { + "image/png": "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PHhQzzzzjEPf5YwZMzRs2DB9++23uvPOOyVJWVlZWrFihVavXq3Vq1crPT1dc+bMqVR/U6dOVXp6ulauXKn//e9/SktL01dffWXXZsKECcrIyNCyZcv0zTff6C9/+YsGDx6sPXv22NoUFhbq2Wef1bJly5Samqq0tDQNGzZMa9as0Zo1a/Taa6/phRdesIU86eSM06xZs/T1119rxYoV2r9/vy3oneqhhx7SU089pS+//FI+Pj6285akt956SzNmzNDs2bP15ZdfKiYmRs8//3ylv8+FCxcqKSlJd911l7799lutWrVKLVq0qPTnq6rKD+i0Wq2aOHGievXqpfbt20uSfvjhB0knfzjmzp2rTp066dVXX9WAAQO0Y8cOtWzZ8rR+SkpKVFJSYntvsViqWhIAAECdUXSiSN2WdnPJsbeM2KIg3/M/JDQ0NFR+fn4KCgpSdHR0pft/7LHHdOWVV0o6+bvi7NmztW7dOvXo0UOS1KxZM3366ad64YUX1LdvX9s/skdGRiosLMzh8xkxYoRGjx5tt81qtSolJUUhISGSpNtvv13r16/XE088cc6+CgoK9PLLL+v111/XgAEDJElLlixR48aNbW2ys7O1ePFiZWdnKzY2VpI0ZcoUpaamavHixZo9e7akkyFl4cKFat68uSTppptu0muvvaZDhw4pODhYbdu21RVXXKGNGzfqlltukSS7gNKsWTM9++yz6tq1qwoKChQcHGzb98QTT6hv376STgbJa665RsXFxQoICND8+fM1ZswYjRkzRpL0+OOPa926dZWetXn88cd177336p///KdtW9euXSv12eqo8oxNUlKSduzYoWXLltm2Wa1WSdLf//53jR49WpdccomefvpptWrVSq+88soZ+0lOTlZoaKjtVZkUDwAAgAtXly5dbP9/7969Kiws1JVXXqng4GDb69VXX1VWVpbTj1chISHBFmokKSYmxu6SrrPJyspSaWmpunX7I3SGh4erVatWtvfffvutysvLddFFF9mdU3p6ut05BQUF2UKNJEVFRSkhIcEuoERFRdnVtXXrVg0ZMkTx8fEKCQmxhZfs7Gy7Ojt06GB3bpJs/ezatcuufkm2UHk+hw8fVk5Oji3U1aYqzdhMmDBBq1ev1scff2yXPiu+lLZt29q1b9OmzWlfZoVp06Zp8uTJtvcWi4VwAwAAcB6B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paXGddddZzRu3NjYvn273VLDp67yxDhU37nG4dixY8aUKVOMjIwMY9++fca6deuMzp07Gy1btrRbhp5xqJ5zjYFhGEbfvn2Ndu3aGRs3bjR++OEHY/HixUZAQIDx/PPP2/p44IEHjNtvv932Pi8vz4iKijJuv/12Y8eOHcayZcuMoKCg05Z7Pt/f43XJ+PHjjdDQUCMtLc3uvzmFhYW2NgcPHjS2bdtmvPTSS4Yk4+OPPza2bdtmHDlyxNaGPw/uxanLPV922WXGhAkTbO/Ly8uNRo0aGcnJyUZeXp7h6+trvPPOO7b9u3fvNiQZGRkZZ+3z5ptvNq699lq7bT169DhtmeG5c+fa9ufn59fpZYYNwzCee+45Iz4+3vDz8zMuu+wyY/PmzYZhGMbPP/9sXHXVVUZkZKTh6+trNG7c2BgxYoSxe/duu883adLEmD59ut22t956y7jooosMPz8/o127dmdddjsqKsrw9/c3BgwYYGRmZtboebq7s41DheTkZKNx48ZGUFCQ0aNHD+OTTz6x29+3b19j5MiRdts2btxodOrUyfDz8zOaNWtmLF682OHj1jXn+j7uv/9+IyoqyvD19TVatmxpPPXUU4bVarX7PONQfRXLpf75NXLkSGPfvn1n3CfJ2Lhxo60PxqH6zjUOhYWFxqBBg4yIiAjD19fXaNKkiTF27NjTftliHKrnXGNgGCd/mR41apQRGxtrBAQEGK1atTrtv0sjR440+vbta9fv119/bVx++eWGv7+/0ahRI2POnDmnHft8f4/XJWf7b86pP7vTp08/bxv+PLgXk2EYhrNmf958802NHDlSL7zwgi677DLNnz9fb731lnbv3q2oqCiNHz9ea9asUUpKisxms+6++25JJ5d0rjBgwAANGzbMdjnaZ599pr59+2rOnDm65pprtGzZMs2ePVtfffWVbeWKJ598UnPmzNGSJUvUtGlTPfLII/rmm2+0c+dO283wAAAAAC5cTls8QJJuueUW/fLLL3r00UeVm5urTp06KTU11XZj/9NPPy0vLy/deOONKikpUWJiop5//nm7Pipu4q3Qs2dPLV26VA8//LAefPBBtWzZUitWrLBbju++++7T8ePHdddddykvL0+XX365UlNTCTUAAABAHeHUGRsAAAAAcAW3WxUNAAAAABxFsAEAAADg8Qg2AAAAADwewQYA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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df3.plot(subplots=True, figsize=(10, 6))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "from pandaprosumer.create_controlled import create_controlled_electric_boiler\n", + "\n", + "prosumer3 = create_empty_prosumer_container()\n", + "\n", + "time_resolution_s = 15 * 60\n", + "\n", + "period_id2 = create_period(prosumer3, time_resolution_s, start, end, 'utc', 'default')\n", + "\n", + "cp_input2 = ['demand_power', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_result2 = ['qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", + "cp_idx2 = create_controlled_const_profile(prosumer3, cp_input2, cp_result2, profile2, period_id2, 0, 0)\n", + "\n", + "eb_max_p_kw = 50.\n", + "eb_idx = create_controlled_electric_boiler(prosumer3, max_p_kw=eb_max_p_kw, name='electric_boiler',\n", + " period=period_id2, level=1, order=0)\n", + "\n", + "# capacity_kg = 2000.0\n", + "# init_t = 45.0\n", + "# min_t, max_t = 30.0, 70.0\n", + "# hs_idx3 = create_controlled_heat_storage(prosumer3, name='tank_fluid_mix',\n", + "# capacity_kg=capacity_kg, init_temperature_c=init_t,\n", + "# min_temp_c=min_t, max_temp_c=max_t,\n", + "# period=period_id2, level=1, order=1)\n", + "q_capacity_kwh = 10.0\n", + "capacity_kg = 1000.0\n", + "t_low_c = 50.0\n", + "t_high_c = 70.0\n", + "\n", + "hs_idx3 = create_controlled_heat_storage(\n", + " prosumer3,\n", + " name='tank_fluid_mix',\n", + " q_capacity_kwh=q_capacity_kwh,\n", + " capacity_kg=capacity_kg,\n", + " init_temperature_c=t_low_c,\n", + " min_temp_c=t_low_c,\n", + " max_temp_c=t_high_c,\n", + " period=period_id2,\n", + " level=1, order=1\n", + ")\n", + "hd_idx2 = create_controlled_heat_demand(prosumer3, period=period_id2, level=1, order=2, name='heat_consumer')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ { - "name": "t_feed_demand_c", - "rawType": "float64", - "type": "float" - }, + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from pandaprosumer.mapping import GenericMapping, FluidMixMapping\n", + "\n", + "# Const profile -> Heat demand: demand request and temperatures\n", + "GenericMapping(prosumer3, initiator_id=cp_idx2,\n", + " initiator_column=['qdemand_kw', 't_feed_demand_c', 't_return_demand_c'],\n", + " responder_id=hd_idx2, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=0)\n", + "# Electric boiler -> Heat storage: fluid (temperature + mass flow)\n", + "FluidMixMapping(prosumer3, initiator_id=eb_idx, responder_id=hs_idx3, order=0)\n", + "# Heat storage -> Heat demand: fluid (temperature + mass flow)\n", + "FluidMixMapping(prosumer3, initiator_id=hs_idx3, responder_id=hd_idx2, order=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "run_timeseries(prosumer3, period_id2, verbose=False, max_iter=15, continue_on_divergence=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "res2 = prosumer3.time_series.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ { - "name": "t_return_demand_c", - "rawType": "float64", - "type": "float" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAEiCAYAAADklbFjAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAUhdJREFUeJzt3XlclWX+//H3ATmAIODCEiMuqeWWljuau4nLuKSN5TSl5Vhfw6VoUdvUmsI2bXGrprRlSrNtpnGyn5GaGVaiWeaSmkulgJaACByWc/3+QE6dED0HD3IOvp6PBw+5r/s61/2571vKD9dmMcYYAQAAAAAAj/Or7gAAAAAAAKipSLoBAAAAAKgiJN0AAAAAAFQRkm4AAAAAAKoISTcAAAAAAFWEpBsAAAAAgCpC0g0AAAAAQBUh6QYAAAAAoIqQdAMAAAAAUEVIugEAFwyLxaLZs2dXdxhOxo8fryZNmnikrT59+qht27YeaavMH5/ZsmXLZLFYdODAAY9eBwCAmoqkGwDg08qSwIq+Nm3adF7iyMvL0+zZs7Vu3brzcj0AAOAbalV3AAAAeMJDDz2kpk2blitv3rz5ebl+Xl6e5syZI6m0x9lVL774oux2exVFde7y8/NVqxb/XAAAoLL4vygAoEYYPHiwOnXqVN1huOzkyZMKCQlRQEBAdYdyRkFBQVXaftlzqKnsdrsKCwur/DkCALwXw8sBABe0n3/+WTfffLOio6MVGBioNm3a6OWXXy5Xr6CgQLNnz9Yll1yioKAgXXTRRRo1apT27dunAwcOKDIyUpI0Z84cx9D2srnQ48ePV2hoqPbt26chQ4aoTp06uv766x3n/jin226365lnntFll12moKAgRUZGatCgQdq8ebNL95SWlqbu3bsrODhYTZs21ZIlS8rVyczM1IQJExQdHa2goCC1b99er7zySrl6rs6D//DDD9WzZ0+FhISoTp06Gjp0qL777junOmd6Dqcze/ZsWSwW7dq1S2PGjFFYWJjq16+vadOmqaCgwKlucXGxHn74YTVr1kyBgYFq0qSJ7r33XtlsNkedpKQk1a9fX8YYR9mUKVNksVj07LPPOsoyMjJksVi0ePFiR5nNZtOsWbPUvHlzBQYGKi4uTvfcc49T+2XPa/LkyfrXv/6lNm3aKDAwUKtXrz7r8wMA1Fz0dAMAaoTs7GwdO3bMqcxisah+/foVfiYjI0PdunVzJEqRkZH68MMPNWHCBOXk5Oj222+XJJWUlOjPf/6zUlJSdN1112natGk6ceKE1qxZo+3bt2vAgAFavHixJk2apKuvvlqjRo2SJLVr185xreLiYiUkJOjKK6/Uk08+qdq1a1cY14QJE7Rs2TINHjxYf//731VcXKwNGzZo06ZNZ+3NP378uIYMGaIxY8Zo7NixeuuttzRp0iRZrVbdfPPNkkqHjPfp00d79+7V5MmT1bRpU61cuVLjx49XVlaWpk2bdsZr/NFrr72mcePGKSEhQY899pjy8vK0ePFiXXnlldq6davTLxXceQ5lxowZoyZNmig5OVmbNm3Ss88+q+PHj+vVV1911Pn73/+uV155Rddcc43uvPNOffHFF0pOTtbOnTv13nvvSZJ69uyp+fPn67vvvnMsOLdhwwb5+flpw4YNmjp1qqNMknr16iWp9Jcgw4cP12effaZbbrlFrVq10rfffqv58+fr+++/1/vvv+8U7yeffKK33npLkydPVoMGDTy2UB4AwEcZAAB82NKlS42k034FBgY61ZVkZs2a5TieMGGCueiii8yxY8ec6l133XUmPDzc5OXlGWOMefnll40kM2/evHLXt9vtxhhjjh49Wq79MuPGjTOSzIwZM057rnHjxo7jTz75xEgyU6dOrfBaFendu7eRZJ566ilHmc1mM5dffrmJiooyhYWFxhhjnn76aSPJvP766456hYWFJj4+3oSGhpqcnBxH+R/vqex579+/3xhjzIkTJ0xERISZOHGiUyzp6ekmPDzcqfxMz+F0Zs2aZSSZ4cOHO5XfdtttRpLZtm2bMcaYr7/+2kgyf//7353q3XXXXUaS+eSTT4wxxmRmZhpJZtGiRcYYY7Kysoyfn5/5y1/+YqKjox2fmzp1qqlXr57jeb/22mvGz8/PbNiwwan9JUuWGElm48aNTs/Lz8/PfPfddy7dIwCg5mN4OQCgRli4cKHWrFnj9PXhhx9WWN8Yo3feeUfDhg2TMUbHjh1zfCUkJCg7O1tbtmyRJL3zzjtq0KCBpkyZUq4di8XicoyTJk06a5133nlHFotFs2bNqtS1atWqpVtvvdVxbLVadeuttyozM1NpaWmSpP/973+KiYnR2LFjHfUCAgI0depU5ebmav369a7cjiRpzZo1ysrK0tixY52eob+/v7p27aq1a9eW+4wrz+H3EhMTnY7L3sP//vc/pz+TkpKc6t15552SpFWrVkmSIiMj1bJlS3366aeSpI0bN8rf31933323MjIytGfPHkmlPd1XXnml43mvXLlSrVq1UsuWLZ3usV+/fpJU7h579+6t1q1bu3WPAICai+HlAIAaoUuXLm4tpHb06FFlZWXphRde0AsvvHDaOpmZmZKkffv26dJLLz2nVbxr1aqlhg0bnrXevn37FBsbq3r16lXqOrGxseUWJrvkkkskSQcOHFC3bt108OBBtWjRQn5+zr97b9WqlSTp4MGDLl+vLFEtS0D/KCwszOnY1efwey1atHA6btasmfz8/Bx7hR88eFB+fn7lVqqPiYlRRESE0/307NnTkaRv2LBBnTp1UqdOnVSvXj1t2LBB0dHR2rZtm/7617863ePOnTsd8/b/qOzvSZnTraIPALhwkXQDAC5IZdt0/e1vf9O4ceNOW+f3c7LPVWBgYLkktyYoe46vvfaaYmJiyp3/4y8qPPEcKurxd2UkwJVXXqkXX3xRP/zwgzZs2KCePXvKYrHoyiuv1IYNGxQbGyu73a6ePXs6PmO323XZZZdp3rx5p20zLi7O6Tg4ONiNuwEA1HQk3QCAC1JkZKTq1KmjkpISDRgw4Ix1mzVrpi+++EJFRUUVbvHlzjDzs13ro48+0q+//lqp3u7Dhw+X24br+++/lyTHgl6NGzfWN998I7vd7pQA79q1y3HenXglKSoq6qzPsbL27Nnj1Hu8d+9e2e12p/ux2+3as2ePo7deKl0oLysry+l+ypLpNWvW6KuvvtKMGTMklS6atnjxYsdIgY4dOzrd47Zt29S/f3+PvWcAwIWj5v3KHQAAF/j7+2v06NF65513tH379nLnjx496vh+9OjROnbsmBYsWFCunjm1/VTZKtxZWVnnFNfo0aNljNGcOXMqvNaZFBcX6/nnn3ccFxYW6vnnn1dkZKQjkRwyZIjS09O1YsUKp88999xzCg0NVe/evV2ONyEhQWFhYXr00UdVVFRU7vzvn2NlLVy40On4ueeek1S6N7tUej+S9PTTTzvVK+uZHjp0qKOsadOm+tOf/qT58+erqKhIPXr0kFSajO/bt09vv/22unXr5tRDP2bMGP3888968cUXy8WWn5+vkydPnuMdAgBqMnq6AQA1wocffujoqf297t276+KLLz7tZ+bOnau1a9eqa9eumjhxolq3bq1ff/1VW7Zs0ccff6xff/1VknTjjTfq1VdfVVJSkr788kv17NlTJ0+e1Mcff6zbbrtNI0aMUHBwsFq3bq0VK1bokksuUb169dS2bVvH1lSu6tu3r2644QY9++yz2rNnjwYNGiS73a4NGzaob9++mjx58hk/Hxsbq8cee0wHDhzQJZdcohUrVujrr7/WCy+84Oilv+WWW/T8889r/PjxSktLU5MmTfT2229r48aNevrpp1WnTh2X4w0LC9PixYt1ww03qEOHDrruuusUGRmpQ4cOadWqVerRo8dpf1nhjv3792v48OEaNGiQUlNT9frrr+uvf/2r2rdvL0lq3769xo0bpxdeeEFZWVnq3bu3vvzyS73yyisaOXKk+vbt69Rez549tXz5cl122WWqW7euJKlDhw4KCQnR999/7zSfW5JuuOEGvfXWW/q///s/rV27Vj169FBJSYl27dqlt956Sx999JFb6wkAAC4w1bp2OgAA5+hMW4ZJMkuXLnXU1Wm29MrIyDCJiYkmLi7OBAQEmJiYGNO/f3/zwgsvONXLy8sz9913n2natKmj3jXXXGP27dvnqPP555+bjh07GqvV6nStcePGmZCQkNPG/8ctw4wxpri42DzxxBOmZcuWxmq1msjISDN48GCTlpZ2xmfRu3dv06ZNG7N582YTHx9vgoKCTOPGjc2CBQvK1c3IyDA33XSTadCggbFareayyy5zelYVPbM/bhlWZu3atSYhIcGEh4eboKAg06xZMzN+/HizefNmp3ut6DmcTtmWYTt27DDXXHONqVOnjqlbt66ZPHmyyc/Pd6pbVFRk5syZ43g/cXFxZubMmaagoKBcuwsXLjSSzKRJk5zKBwwYYCSZlJSUcp8pLCw0jz32mGnTpo0JDAw0devWNR07djRz5swx2dnZTs8rMTHR5XsEANR8FmNcGKsGAABwns2ePVtz5szR0aNH1aBBg+oOBwCASmFONwAAAAAAVYSkGwAAAACAKkLSDQAAAABAFWFONwAAAAAAVYSebgAAAAAAqghJNwAAAAAAVaRWdQdQ1ex2uw4fPqw6derIYrFUdzgAAAAAgBrAGKMTJ04oNjZWfn4V92fX+KT78OHDiouLq+4wAAAAAAA10I8//qiGDRtWeL7GJ9116tSRJB08eFARERHV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JZdURVxVguHlAAAAAIDzye1sbevWrVq/fr3WrVunp556SlarVb1791afPn3Up08fr07Ca9JCasaY361ezvByAAAAAPBGbifd7du3V/v27TV16lRJ0rZt2zR//nwlJibKbrerpKTE40F6Sk3q6S6ylUim9HsrPd0AAAAA4JXcztaMMdq6davWrVundevW6bPPPlNOTo7atWun3r17V0WMHlOTFlIrG1pu8bOoVkCl18MDAAAAAFQht5PuevXqKTc3V+3bt1fv3r01ceJE9ezZUxEREVUQnmfVqKS7bBG1YH9ZLJZqjgYAAAAAcDpuJ92vv/66evbsqbCwsKqIp0rVpOHlrFwOAAAAAN7P7Yxt6NChju9/+uknSVLDhg09F1EVqkkLqRWdGl5O0g0AAAAA3svtycB2u10PPfSQwsPD1bhxYzVu3FgRERF6+OGHZbfbqyJGjykqKFFJsXfH6Cpb/m/DywEAAAAA3sntbtL77rtPL730kubOnasePXpIkj777DPNnj1bBQUFeuSRRzwepCeUTXsuOFmkkPDA6g3GA36b001PNwAAAAB4K7cztldeeUX//Oc/NXz4cEdZu3bt9Kc//Um33Xab1ybdgbUDpKLSxdRqQtJdVMDwcgAAAADwdm4PL//111/VsmXLcuUtW7bUr7/+6pGgqkJgSICkmjOv2zG8PIjh5QAAAADgrdxOutu3b68FCxaUK1+wYIHat2/vkaCqQlBIaY9wTdk2jOHlAAAAAOD93E66H3/8cb388stq3bq1JkyYoAkTJqh169ZatmyZnnjiCbfaWrx4sdq1a6ewsDCFhYUpPj5eH374oeN8QUGBEhMTVb9+fYWGhmr06NHKyMhwN2RJUlDtU0l3Ddk2rCifLcMAAAAAwNu5nXT37t1b33//va6++mplZWUpKytLo0aN0u7du9WzZ0+32mrYsKHmzp2rtLQ0bd68Wf369dOIESP03XffSZLuuOMOffDBB1q5cqXWr1+vw4cPa9SoUe6GLEkKDC0dXl5zerpPzelm9XIAAAAA8FqV6iaNjY31yIJpw4YNczp+5JFHtHjxYm3atEkNGzbUSy+9pDfeeEP9+vWTJC1dulStWrXSpk2b1K1bN7euFRxSw5LufIaXAwAAAIC3q1TGdvz4cb300kvauXOnJKl169a66aabVK9evUoHUlJSopUrV+rkyZOK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AACoDFdzzRrf0w0AAAAAQHWp8T3dAAAAAABUF5JunHcLFy5UkyZNFBQUpK5du+rLL790nLv11lvVrFkzBQcHKzIyUiNGjNCuXbvO2ubKlSvVsmVLBQUF6bLLLtP//vc/p/PGGD344IO66KKLFBwcrAEDBmjPnj0ev7cL0ZnepySlpqaqX79+CgkJUVhYmHr16qX8/Pwztrlu3Tp16NBBgYGBat68uZYtW+b2dVF5Z3q2+/bt09VXX63IyEiFhYVpzJgxysjIOGubvNPq8emnn2rYsGGKjY2VxWLR+++/7zhXVFSk6dOn67LLLlNISIhiY2N144036vDhw2dtl/dZfc70TiVp/PjxslgsTl+DBg06a7u80+pxtveZm5uryZMnq2HDhgoODlbr1q21ZMmSs7b7zTffqGfPngoKClJcXJwef/zxcnXO9m8nuC85OVmdO3dWnTp1FBUVpZEjR2r37t1OdV544QX16dNHYWFhslgsysrKcqltfkZ9nAHOo+XLlxur1Wpefvll891335mJEyeaiIgIk5GRYYwx5vnnnzfr1683+/fvN2lpaWbYsGEmLi7OFBcXV9jmxo0bjb+/v3n88cfNjh07zP33328CAgLMt99+66gzd+5cEx4ebt5//32zbds2M3z4cNO0aVOTn59f5fdck53tfX7++ecmLCzMJCcnm+3bt5tdu3aZFStWmIKCggrb/OGHH0zt2rVNUlKS2bFjh3nuueeMv7+/Wb16tcvXReWd6dnm5uaaiy++2Fx99dXmm2++Md98840ZMWKE6dy5sykpKamwTd5p9fnf//5n7rvvPvPuu+8aSea9995znMvKyjIDBgwwK1asMLt27TKpqammS5cupmPHjmdsk/dZvc70To0xZty4cWbQoEHmyJEjjq9ff/31jG3yTqvP2d7nxIkTTbNmzczatWvN/v37zfPPP2/8/f3Nv//97wrbzM7ONtHR0eb6668327dvN2+++aYJDg42zz//vKOOK/92gvsSEhLM0qVLzfbt283XX39thgwZYho1amRyc3MddebPn2+Sk5NNcnKykWSOHz9+1nb5GfV9JN04r7p06WISExMdxyUlJSY2NtYkJyeftv62bduMJLN3794K2xwzZowZOnSoU1nXrl3Nrbfeaowxxm63m5iYGPPEE084zmdlZZnAwEDz5ptvnsvtXPDO9j67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h7nllltMRESESU9PN/v27TOPPvqo2bx5szl48KDZuHGjGTZsmKlXr57Tdgf9+vUzzz33nON448aNplatWubJJ580O3fuNLNmzTrtlmERERHm3//+t2ObI7YMO3dnep/GlG6LERYWZlauXGn27Nlj7r//fhMUFOS0Gv0NN9xgZsyY4Tgu2xbj7rvvNjt37jQLFy487bYYZ7ouKu9sz/bll182qampZu/evea1114z9erVM0lJSU5t8E69x4kTJ8zWrVvN1q1bjSQzb948s3XrVnPw4EFTWFhohg8fbho2bGi+/vprpy2mfr/qMe/Tu5zpnZ44ccLcddddJjU11ezfv998/PHHpkOHDqZFixZOWzXyTr3Hmd6nMcb07t3btGnTxqxdu9b88MMPZunSpSYoKMgsWrTI0caMGTPMDTfc4DjOysoy0dHR5oYbbjDbt283y5cvN7Vr1y63ZdjZ/u0E902aNMmEh4ebdevWOf03NS8vz1HnyJEjZuvWrebFF180ksynn35qtm7dan755RdHHX5Gax6vTbptNpvx9/cvt3XCjTfeaIYPH25SUlJOu8x+o0aNzLx58ypsNy4uzsyfP9+p7MEHHzTt2rUzxhizb98+I8ls3brVqU6vXr3M1KlTK3s7+J3nnnvONGrUyFitVtOlSxezadMmY0zpL1oGDx5soqKiTEBAgGnYsKH561//anbt2uX0+caNG5tZs2Y5lb311lvmkksuMVar1bRp08asWrXK6bzdbjcPPPCAiY6ONoGBgaZ///5m9+7dVXqfF4qK3meZ5ORk07BhQ1O7dm0THx9vNmzY4HS+d+/eZty4cU5la9euNZdffrmxWq3m4osvNkuXLnX7uqi8Mz3b6dOnm+joaBMQEGBatGhhnnrqKWO3250+zzv1HmVb0vzxa9y4cWb//v2nPSfJrF271tEG79O7nOmd5uXlmYEDB5rIyEgTEBBgGjdubCZOnFjuH928U+9xpvdpTGmCNn78eBMbG2uCgoLMpZdeWu6/u+PGjTO9e/d2anfbtm3myiuvNIGBgeZPf/qTmTt3brlrn+3fTnBfRf9N/f3P06xZs85ah5/RmsdijDFV149+brp27aouXbroueeek1Q6TKJRo0aaPHmyJk2apMjISL355psaPXq0JGn37t1q2bKlUlNTK1xI7dprr1VeXp4++OADR1n37t3Vrl07x0JqsbGxuuuuu3TnnXdKKh2KHBUVpWXLlrGQGgAAAADAZV69enlSUpLGjRunTp06qUuXLnr66ad18uRJ3XTTTQoPD9eECROUlJSkevXqKSwsTFOmTFF8fLxTwt2/f39dffXVmjx5siRp2rRp6t27t5566ikNHTpUy5cv1+bNm/XCCy9IkiwWi26//Xb94x//UIsWLdS0aVM98MADio2N1ciRI6vjMQAAAAAAfJRXJ93XXnutjh49qgcffFDp6em6/PLLtXr1asciZ/Pnz5efn59Gjx4tm82mhIQELVq0yKmNffv26dixY47j7t2764033tD999+ve++9Vy1atND777/vtH/ePffco5MnT+qWW25RVlaWrrzySq1evdqxZRUAAAAAAK7w6uHlAAAAAAD4Mq/dMgwAAAAAAF9H0g0AAAAAQBUh6QYAAAAAoIqQdAMAAAAAUEVIugEAAAAAqCJemXQvXLhQTZo0UVBQkLp27aovv/zSce6FF15Qnz59FBYWJovFoqysLJfaXLZsmSIiIqomYAAAAAAATsPrku4VK1YoKSlJs2bN0pYtW9S+fXslJCQoMzNTkpSXl6dBgwbp3nvvreZIAQAAAAA4M69LuufNm6eJEyfqpptuUuvWrbVkyRLVrl1bL7/8siTp9ttv14wZM9StW7dzus6+ffs0YsQIRUdHKzQ0VJ07d9bHH3/sVKdJkyZ69NFHdfPNN6tOnTpq1KiRXnjhhXO6LgAAAADgwuFVSXdhYaHS0tI0YMAAR5mfn58GDBig1NRUj14rNzdXQ4YMUUpKirZu3apBgwZp2LBhOnTokFO9p556Sp06ddLWrVt12223adKkSdq9e7dHYwEAAAAA1ExelXQfO3ZMJSUlio6OdiqPjo5Wenq6R6/Vvn173XrrrWrbtq1atGihhx9+WM2aNdN//vMfp3pDhgzRbbfdpubNm2v69Olq0KCB1q5d69FYAAAAAAA1k1cl3Z4wePBghYaGKjQ0VG3atKmwXm5uru666y61atVKERERCg0N1c6dO8v1dLdr187xvcViUUxMjGN+OQAAAAAAZ1KrugP4vQYNGsjf318ZGRlO5RkZGYqJiXGpjX/+85/Kz8+XJAUEBFRY76677tKaNWv05JNPqnnz5goODtY111yjwsJCp3p/bMNischut7sUCwAAAADgwuZVSbfValXHjh2VkpKikSNHSpLsdrtSUlI0efJkl9r405/+5FK9jRs3avz48br66qsllfZ8HzhwoDJhAwAAAABwWl6VdEtSUlKSxo0bp06dOqlLly56+umndfLkSd10002SpPT0dKWnp2vv3r2SpG+//daxsni9evVcvk6LFi307rvvatiwYbJYLHrggQfowQYAAAAAeJTXJd3XXnutjh49qgcffFDp6em6/PLLtXr1asfiakuWLNGcOXMc9Xv16iVJWrp0qcaPH19hu3a7XbVq/Xa78+bN080336zu3burQYMGmj59unJycqrmpgAAAAAAFySLMcZUdxDnw9y5c/X6669r+/bt1R0KAAAAAOAC4XU93Z6Wl5enXbt2aenSpRo8eHB1hwMAAAAAuIDUuC3D/uiFF17QgAED1L59ez344IPVHQ4AAAAA4AJywQwvBwAAAADgfKvxPd0AAAAAAFQXkm4AAAAAAKqI1yfdycnJ6ty5s+rUqaOoqCiNHDlSu3fvdqpTUFCgxMRE1a9fX6GhoRo9erQyMjIc57dt26axY8cqLi5OwcHBatWqlZ555ply11q3bp06dOigwMBANW/eXMuWLavq2wMAAAAA1GBen3SvX79eiYmJ2rRpk9asWaOioiINHDhQJ0+edNS544479MEHH2jlypVav369Dh8+rFGjRjnOp6WlKSoqSq+//rq+++473XfffZo5c6YWLFjgqLN//34NHTpUffv21ddff63bb79df//73/XRRx+d1/sFAAAAANQcPreQ2tGjRxUVFaX169erV69eys7OVmRkpN544w1dc801kqRdu3apVatWSk1NVbdu3U7bTmJionbu3KlPPvlEkjR9+nStWrXKaR/v6667TllZWVq9enXV3xgAAAAAoMbx+p7uP8rOzpYk1atXT1JpL3ZRUZEGDBjgqNOyZUs1atRIqampZ2ynrA1JSk1NdWpDkhISEs7YBgAAAAAAZ1KrugNwh91u1+23364ePXqobdu2kqT09HRZrVZFREQ41Y2OjlZ6evpp2/n888+1YsUKrVq1ylGWnp6u6Ojocm3k5OQoPz9fwcHBnr0ZAAAAAECN51NJd2JiorZv367PPvus0m1s375dI0aM0KxZszRw4EAPRgcAAAAAgDOfGV4+efJk/fe//9XatWvVsGFDR3lMTIwKCwuVlZXlVD8jI0MxMTFOZTt27FD//v11yy236P7773c6FxMT47TieVkbYWFh9HIDAAAAACrF65NuY4wmT56s9957T5988omaNm3qdL5jx44KCAhQSkqKo2z37t06dOiQ4uPjHWXfffed+vbtq3HjxumRRx4pd534+HinNiRpzZo1Tm0AAAAAAOAOr1+9/LbbbtMbb7yhf//737r00ksd5eHh4Y4e6EmTJul///ufli1bprCwME2ZMkVS6dxtqXRIeb9+/ZSQkKAnnnjC0Ya/v78iIyMllW4Z1rZtWyUmJurmm2/WJ598oqlTp2rVqlVKSEg4X7cLAAAAAKhBvD7ptlgspy1funSpxo8fL0kqKCjQnXfeqTfffFM2m00JCQlatGiRY3j57NmzNWfOnHJtNG7cWAcOHHAcr1u3TnfccYd27Nihhg0b6oEHHnBcAwAAAAAAd3l90g0AAAAAgK/y+jndAAAAAAD4KpJuAAAAAACqCEk3AAAAAABVhKQbAAAAAIAqQtINAAAAAEAVIekGAAAAAKCKkHQDAAAAAFBFSLoBAAAAAKgiJN0AAAAAAFQRkm4AAAAAAKoISTcAAAAAAFWEpBsAAAAAgCry/wFs3aWIg3w02AAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } - ], - "ref": "749c1397-fb1a-49f0-b1d1-beb417a5e8cd", - "rows": [ - [ - "2020-01-01 00:00:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 00:15:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 00:30:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 00:45:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 01:00:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 01:15:00+00:00", - "0.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 01:30:00+00:00", - "60.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 01:45:00+00:00", - "60.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 02:00:00+00:00", - "60.0", - "55.0", - "25.0" - ], - [ - "2020-01-01 02:15:00+00:00", - "60.0", - "55.0", - "25.0" - ] - ], - "shape": { - "columns": 3, - "rows": 10 - } - }, - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
demand_powert_feed_demand_ct_return_demand_c
2020-01-01 00:00:00+00:000.055.025.0
2020-01-01 00:15:00+00:000.055.025.0
2020-01-01 00:30:00+00:000.055.025.0
2020-01-01 00:45:00+00:000.055.025.0
2020-01-01 01:00:00+00:000.055.025.0
2020-01-01 01:15:00+00:000.055.025.0
2020-01-01 01:30:00+00:0060.055.025.0
2020-01-01 01:45:00+00:0060.055.025.0
2020-01-01 02:00:00+00:0060.055.025.0
2020-01-01 02:15:00+00:0060.055.025.0
\n", - "
" ], - "text/plain": [ - " demand_power t_feed_demand_c t_return_demand_c\n", - "2020-01-01 00:00:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 00:15:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 00:30:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 00:45:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 01:00:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 01:15:00+00:00 0.0 55.0 25.0\n", - "2020-01-01 01:30:00+00:00 60.0 55.0 25.0\n", - "2020-01-01 01:45:00+00:00 60.0 55.0 25.0\n", - "2020-01-01 02:00:00+00:00 60.0 55.0 25.0\n", - "2020-01-01 02:15:00+00:00 60.0 55.0 25.0" + "source": [ + "# Electric boiler results\n", + "res2_idx = res2[res2['name'] == 'electric_boiler'].index[0]\n", + "df_eb2 = res2.data_source.loc[res2_idx].df\n", + "fig, ax = plt.subplots(figsize=(10, 3))\n", + "df_eb2.p_kw.plot(ax=ax, color='C4')\n", + "ax.set_ylabel('Electric boiler power (kW)')\n", + "ax.set_title('Electric boiler power')\n", + "ax.grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Part 2 input: demand power and feed/return temperatures for the heat demand (same time range as Part 1)\n", - "demand_kw2 = np.zeros(n_steps)\n", - "demand_kw2[6:10] = 60.0\n", - "demand_kw2[14:18] = 30.0\n", - "df2 = pd.DataFrame({\n", - " 'demand_power': demand_kw2,\n", - " 't_feed_demand_c': 55.0,\n", - " 't_return_demand_c': 25.0\n", - "}, index=dur)\n", - "profile2 = DFData(df2)\n", - "df2.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "array([, , ], dtype=object)" + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ + { + "name": "index", + "rawType": "datetime64[ns, UTC]", + "type": "unknown" + }, + { + "name": "q_kw", + "rawType": "float64", + "type": "float" + }, + { + "name": "mdot_kg_per_s", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_in_c", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_out_c", + "rawType": "float64", + "type": "float" + }, + { + "name": "p_kw", + "rawType": "float64", + "type": "float" + } + ], + "ref": "98223703-e905-48a9-9c1f-3fbbfe0085bf", + "rows": [ + [ + "2020-01-01 00:00:00+00:00", + "40.04953588516747", + "0.4784688995215311", + "50.0", + "70.0", + "40.04953588516747" + ], + [ + "2020-01-01 00:15:00+00:00", + "4.463798117059708", + "0.05332867224428537", + "50.0", + "70.0", + "4.463798117059708" + ], + [ + "2020-01-01 00:30:00+00:00", + "2.4845933515801892", + "0.029683256507583237", + "50.0", + "70.0", + "2.4845933515801892" + ], + [ + "2020-01-01 00:45:00+00:00", + "1.7287241873251196", + "0.020652942442512513", + "50.0", + "70.0", + "1.7287241873251196" + ], + [ + "2020-01-01 01:00:00+00:00", + "1.3273845167962768", + "0.015858166516947093", + "50.0", + "70.0", + "1.3273845167962768" + ], + [ + "2020-01-01 01:15:00+00:00", + "1.0779936293950507", + "0.012878711679125725", + "50.0", + "70.0", + "1.0779936293950507" + ], + [ + "2020-01-01 01:30:00+00:00", + "50.0", + "0.5973463723692415", + "49.99999999999999", + "70.0", + "50.0" + ], + [ + "2020-01-01 01:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 02:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 02:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 02:30:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 02:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 03:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 03:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 03:30:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 03:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 04:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 04:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 04:30:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 04:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 05:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 05:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 05:30:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 05:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 06:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 06:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 06:30:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 06:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 07:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 07:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 07:30:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 07:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 08:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 08:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 08:30:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 08:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 09:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 09:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 09:30:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 09:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 10:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 10:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 10:30:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 10:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 11:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 11:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 11:30:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 11:45:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 12:00:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ], + [ + "2020-01-01 12:15:00+00:00", + "50.0", + "0.5973463723692417", + "50.0", + "70.0", + "50.0" + ] + ], + "shape": { + "columns": 5, + "rows": 96 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
q_kwmdot_kg_per_st_in_ct_out_cp_kw
2020-01-01 00:00:00+00:0040.0495360.47846950.070.040.049536
2020-01-01 00:15:00+00:004.4637980.05332950.070.04.463798
2020-01-01 00:30:00+00:002.4845930.02968350.070.02.484593
2020-01-01 00:45:00+00:001.7287240.02065350.070.01.728724
2020-01-01 01:00:00+00:001.3273850.01585850.070.01.327385
..................
2020-01-01 22:45:00+00:0050.0000000.59734650.070.050.000000
2020-01-01 23:00:00+00:0050.0000000.59734650.070.050.000000
2020-01-01 23:15:00+00:0050.0000000.59734650.070.050.000000
2020-01-01 23:30:00+00:0050.0000000.59734650.070.050.000000
2020-01-01 23:45:00+00:0050.0000000.59734650.070.050.000000
\n", + "

96 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " q_kw mdot_kg_per_s t_in_c t_out_c \\\n", + "2020-01-01 00:00:00+00:00 40.049536 0.478469 50.0 70.0 \n", + "2020-01-01 00:15:00+00:00 4.463798 0.053329 50.0 70.0 \n", + "2020-01-01 00:30:00+00:00 2.484593 0.029683 50.0 70.0 \n", + "2020-01-01 00:45:00+00:00 1.728724 0.020653 50.0 70.0 \n", + "2020-01-01 01:00:00+00:00 1.327385 0.015858 50.0 70.0 \n", + "... ... ... ... ... \n", + "2020-01-01 22:45:00+00:00 50.000000 0.597346 50.0 70.0 \n", + "2020-01-01 23:00:00+00:00 50.000000 0.597346 50.0 70.0 \n", + "2020-01-01 23:15:00+00:00 50.000000 0.597346 50.0 70.0 \n", + "2020-01-01 23:30:00+00:00 50.000000 0.597346 50.0 70.0 \n", + "2020-01-01 23:45:00+00:00 50.000000 0.597346 50.0 70.0 \n", + "\n", + " p_kw \n", + "2020-01-01 00:00:00+00:00 40.049536 \n", + "2020-01-01 00:15:00+00:00 4.463798 \n", + "2020-01-01 00:30:00+00:00 2.484593 \n", + "2020-01-01 00:45:00+00:00 1.728724 \n", + "2020-01-01 01:00:00+00:00 1.327385 \n", + "... ... \n", + "2020-01-01 22:45:00+00:00 50.000000 \n", + "2020-01-01 23:00:00+00:00 50.000000 \n", + "2020-01-01 23:15:00+00:00 50.000000 \n", + "2020-01-01 23:30:00+00:00 50.000000 \n", + "2020-01-01 23:45:00+00:00 50.000000 \n", + "\n", + "[96 rows x 5 columns]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_eb2" ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" }, { - "data": { - "image/png": "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PHhQzzzzjEPf5YwZMzRs2DB9++23uvPOOyVJWVlZWrFihVavXq3Vq1crPT1dc+bMqVR/U6dOVXp6ulauXKn//e9/SktL01dffWXXZsKECcrIyNCyZcv0zTff6C9/+YsGDx6sPXv22NoUFhbq2Wef1bJly5Samqq0tDQNGzZMa9as0Zo1a/Taa6/phRdesIU86eSM06xZs/T1119rxYoV2r9/vy3oneqhhx7SU089pS+//FI+Pj6285akt956SzNmzNDs2bP15ZdfKiYmRs8//3ylv8+FCxcqKSlJd911l7799lutWrVKLVq0qPTnq6rKD+i0Wq2aOHGievXqpfbt20uSfvjhB0knfzjmzp2rTp066dVXX9WAAQO0Y8cOtWzZ8rR+SkpKVFJSYntvsViqWhIAAECdUXSiSN2WdnPJsbeM2KIg3/M/JDQ0NFR+fn4KCgpSdHR0pft/7LHHdOWVV0o6+bvi7NmztW7dOvXo0UOS1KxZM3366ad64YUX1LdvX9s/skdGRiosLMzh8xkxYoRGjx5tt81qtSolJUUhISGSpNtvv13r16/XE088cc6+CgoK9PLLL+v111/XgAEDJElLlixR48aNbW2ys7O1ePFiZWdnKzY2VpI0ZcoUpaamavHixZo9e7akkyFl4cKFat68uSTppptu0muvvaZDhw4pODhYbdu21RVXXKGNGzfqlltukSS7gNKsWTM9++yz6tq1qwoKChQcHGzb98QTT6hv376STgbJa665RsXFxQoICND8+fM1ZswYjRkzRpL0+OOPa926dZWetXn88cd177336p///KdtW9euXSv12eqo8oxNUlKSduzYoWXLltm2Wa1WSdLf//53jR49WpdccomefvpptWrVSq+88soZ+0lOTlZoaKjtVZkUDwAAgAtXly5dbP9/7969Kiws1JVXXqng4GDb69VXX1VWVpbTj1chISHBFmokKSYmxu6SrrPJyspSaWmpunX7I3SGh4erVatWtvfffvutysvLddFFF9mdU3p6ut05BQUF2UKNJEVFRSkhIcEuoERFRdnVtXXrVg0ZMkTx8fEKCQmxhZfs7Gy7Ojt06GB3bpJs/ezatcuufkm2UHk+hw8fVk5Oji3U1aYqzdhMmDBBq1ev1scff2yXPiu+lLZt29q1b9OmzWlfZoVp06Zp8uTJtvcWi4VwAwAAcB6B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paXGddddZzRu3NjYvn273VLDp67yxDhU37nG4dixY8aUKVOMjIwMY9++fca6deuMzp07Gy1btrRbhp5xqJ5zjYFhGEbfvn2Ndu3aGRs3bjR++OEHY/HixUZAQIDx/PPP2/p44IEHjNtvv932Pi8vz4iKijJuv/12Y8eOHcayZcuMoKCg05Z7Pt/f43XJ+PHjjdDQUCMtLc3uvzmFhYW2NgcPHjS2bdtmvPTSS4Yk4+OPPza2bdtmHDlyxNaGPw/uxanLPV922WXGhAkTbO/Ly8uNRo0aGcnJyUZeXp7h6+trvPPOO7b9u3fvNiQZGRkZZ+3z5ptvNq699lq7bT169DhtmeG5c+fa9ufn59fpZYYNwzCee+45Iz4+3vDz8zMuu+wyY/PmzYZhGMbPP/9sXHXVVUZkZKTh6+trNG7c2BgxYoSxe/duu883adLEmD59ut22t956y7jooosMPz8/o127dmdddjsqKsrw9/c3BgwYYGRmZtboebq7s41DheTkZKNx48ZGUFCQ0aNHD+OTTz6x29+3b19j5MiRdts2btxodOrUyfDz8zOaNWtmLF682OHj1jXn+j7uv/9+IyoqyvD19TVatmxpPPXUU4bVarX7PONQfRXLpf75NXLkSGPfvn1n3CfJ2Lhxo60PxqH6zjUOhYWFxqBBg4yIiAjD19fXaNKkiTF27NjTftliHKrnXGNgGCd/mR41apQRGxtrBAQEGK1atTrtv0sjR440+vbta9fv119/bVx++eWGv7+/0ahRI2POnDmnHft8f4/XJWf7b86pP7vTp08/bxv+PLgXk2EYhrNmf958802NHDlSL7zwgi677DLNnz9fb731lnbv3q2oqCiNHz9ea9asUUpKisxms+6++25JJ5d0rjBgwAANGzbMdjnaZ599pr59+2rOnDm65pprtGzZMs2ePVtfffWVbeWKJ598UnPmzNGSJUvUtGlTPfLII/rmm2+0c+dO283wAAAAAC5cTls8QJJuueUW/fLLL3r00UeVm5urTp06KTU11XZj/9NPPy0vLy/deOONKikpUWJiop5//nm7Pipu4q3Qs2dPLV26VA8//LAefPBBtWzZUitWrLBbju++++7T8ePHdddddykvL0+XX365UlNTCTUAAABAHeHUGRsAAAAAcAW3WxUNAAAAABxFsAEAAADg8Qg2AAAAADwewQYA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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAfypJREFUeJzt3Xd0VMXfx/HPJqQCKZAmEFqQKkVBMEgnEkSlKAI2igiKgGJEAVGKLSKKIFV8BBRFEAt2kC4lioKAVEEpCiYUSUJNQnaeP/hlZUnbTTak+H6dw4GdO3fu3Du7G76ZZjHGGAEAAAAAAJdzK+wKAAAAAABQUhF0AwAAAABQQAi6AQAAAAAoIATdAAAAAAAUEIJuAAAAAAAKCEE3AAAAAAAFhKAbAAAAAIACQtANAAAAAEABIegGAAAAAKCAEHQDKHJeffVV1a5dW1ar1anzxo0bJ4vFkqdrzps3TxaLRQcPHsw1b9WqVdW3b988XacgyyoOrsb9Ll26VGXKlNHx48cL9DqAqzz66KO65ZZb7NISEhLUvXt3lS9fXhaLRZMnTy6cyhUxBw8elMVi0WuvvVbYVUEBGDlypJo1a1bY1QBcjqAbKIYyAsSMP97e3qpZs6aGDBmihIQEl13n3LlzGjdunNasWeNQ/j179ujpp59Wo0aNVLZsWV1zzTW67bbb9PPPPzt8zeTkZE2YMEEjRoyQm9u/X1GX3+/lf8LCwpy9LZdbs2aNrT7vv/9+lnluvvlmWSwWXXfddS655uXvgfXr12c6boxReHi4LBaLbr/9dpdcs7jo2LGjatSoodjY2HyV06ZNm2zb62r9x//ll1/WkiVLXFbexo0bNW7cOCUmJrqszKLMarXqvffeU7NmzVSuXDmVLVtWNWvWVO/evfXDDz9kyn/48GE98sgjqlq1qry8vBQSEqKuXbtqw4YN2V4jISFBw4cPV+3ateXr66vSpUurcePGevHFFx16zgcOHND//d//6ZlnnrFLf+KJJ7Rs2TKNGjVK8+fPV8eOHZ2+/6vl6NGjGjdunLZu3VrYVcmRsz/T/kt27dqlcePGOfSL54I0bNgwbdu2TV988UWh1gNwtVKFXQEAeff888+rWrVqunDhgtavX6+ZM2fqm2++0Y4dO+Tr65vv8s+dO6fx48dLuhSA5Ob//u//9M477+iuu+7So48+qqSkJL311lu66aabtHTpUkVFReVaxpw5c3Tx4kXdc889mY7dcsst6t27t12aj4+PYzeTiwceeEC9evWSl5dXnsvw9vbWggULdP/999ulHzx4UBs3bpS3t3emc/bu3Wv3y4W8XrNFixZ26WvXrtVff/2Vr/spCPm9X0c9/PDDGj58uMaPH6+yZcsW+PUKyssvv6zu3bura9euLilv48aNGj9+vPr27auAgACXlFmUPfbYY5o+fbq6dOmi++67T6VKldLevXv17bffqnr16rrppptseTds2KBOnTpJkh566CHVrVtX8fHxmjdvnlq2bKkpU6Zo6NChduX/9NNP6tSpk86cOaP7779fjRs3liT9/PPPeuWVV/T999/ru+++y7GOU6ZMUbVq1dS2bVu79FWrVqlLly4aPny4Kx5FgTp69KjGjx+vqlWrqlGjRoVdnWw5+zPtv2TXrl0aP3682rRpo6pVqxZaPcLCwtSlSxe99tpr6ty5c6HVA3A1gm6gGLv11lvVpEkTSZf+k1i+fHlNmjRJn3/+eZZBq6OsVqtSU1OdPu+ee+7RuHHjVKZMGVvagw8+qDp16mjcuHEOBd1z585V586dswxQa9asmSmgdRV3d3e5u7vnq4xOnTrpiy++0IkTJxQUFGRLX7BggUJDQ3Xttdfq1KlTdufkNyju1KmTFi9erDfffFOlSv37lb5gwQI1btxYJ06cyFf5rna1fglw1113aejQoVq8eLEefPDBq3LN/ypjjC5cuOCyX4C5SkJCgmbMmKEBAwZo9uzZdscmT55sN/3g1KlT6t69u3x8fLRhwwZFRETYjsXExCg6OlrDhg1T48aN1bx5c0lSYmKiunXrJnd3d/3yyy+qXbu23TVeeuklvf322znWMS0tTR988IEeeeSRTMeOHTvm0C9Gzp49q9KlS+eaD/8tReV9kZd69OjRQ3fffbf++OMPVa9evYBqBlxdDC8HSpB27dpJujRcUZJee+01NW/eXOXLl5ePj48aN26sjz/+ONN5FotFQ4YM0QcffKB69erJy8tLs2bNUnBwsCRp/PjxtqHM48aNy/b6jRs3tgu4Jal8+fJq2bKldu/enWv9Dxw4oO3btzsUnDsiYwjwvHnzMh278l6ymtNtjNGLL76oSpUqydfXV23bttXOnTuzvV6XLl3k5eWlxYsX26UvWLBAPXr0yDKov3yOszFG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HxcXZySZ9957z5a2ePFiI8msXr06U/7snll23+dX1uP06dMmICDADBgwwO78+Ph44+/vnyndGGM6dOhg6tSpkykdKK4YXg4UY1FRUQoODlZ4eLh69eqlMmXK6LPPPlPFihUl2S8ydurUKSUlJally5basmVLprJat26tunXrurR+x44d07333qtq1arp6aefzjX/yZMnVapUqUxD1DN06dJFy5cvt/sTHR3t0jpnWLFihVJTUzV06FC7bciGDRuW43kdOnRQuXLltHDhQhljtHDhQqfn1w8cOFDR0dEaOnSoHnjgAUVEROjll1/ONn+PHj10/vx5ffXVVzp9+rS++uqrbIeWS869LyIjI22LQ0lS5cqV1aVLFy1btizTkM/LezIl2Rad+uabb3K+YV2658ufc8uWLZWenq5Dhw5JklauXKmLFy/q0UcfzfIaWQkMDJQku57qvn37yhjj8LZlVatWzfSeW758eZar1C9evFgtW7ZUYGCgTpw4YfsTFRWl9PR0u2H5zrSBowICAvTXX3/pp59+cvrcjDaKiYmxS3/yySclSV9//bVderVq1bL87F1+X0lJSTpx4oRat26tP/74wzak35m2dOaZZmXu3LmaNm2aqlWrps8++0zDhw9XnTp11L59ex05csSW7/Tp07kuuJdxPDk52fZ3fhfpO3nypO196owBAwbYTVfJ+L4aNmyY3UKFAwYMkJ+fX6b2K1OmjHr16mV7XatWLQUEBKhOnTp22zVl/PuPP/5wuo4ZLn9PnD17VidOnFDz5s1ljNEvv/ySKf+V89tbtmyZ5fVTU1Nto0O++eYbdejQIc91/Oeff7Rq1Sr16NFDp0+ftr3PTp48qejoaO3bt8/u/SJJ/fv3t/vOatasmYwx6t+/vy3N3d1dTZo0ybL+Xbt2tf2slqSmTZuqWbNmts9iXup05ftCsn/+aWlpOnnypGrUqKGAgIB8fd/k5Mp6LF++XImJibrnnnvsPsfu7u5q1qyZVq9enamMjM88UFIwvBwoxqZPn66aNWuqVKlSCg0NVa1atez+w/XVV1/pxRdf1NatW+3mZWa1l3W1atVcWrezZ8/q9ttv1+nTp7V+/fpsA2lnVKpUyWXzvXOTEexde+21dunBwcE5/ifZw8NDd999txYsWKCmTZvqzz//zDEAzs4777yjiIgI7du3Txs3bsxxkarg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xmjz5s055stNVFSUPD099eabb9o9/3feeUdJSUkOtV9+ZPe+yuo9YYzRlClTXHLdqKgoLVy4UEuXLtUDDzyQa89tdj/TQkJC1KZNG7311ltZBpJXbl/oCkuWLLGbk71p0yb9+OOPtu9LV9XJ3d0908+OqVOnZuqlzq4NpUtB85U/R2fPnu3wqLHo6Gj5+fnp5Zdftn0XXe7Ke0lKStLvv/9uWwEfKAno6QZKqNtuu02TJk1Sx44dde+99+rYsWOaPn26atSokevWVRl8fHxUt25dLVq0SDVr1lS5cuV03XXXZTtcfPLkyZoxY4YiIyPl6+ubabGpbt26Zdry6nLVq1fXddddpxUrVujBBx90/GZz8NBDD+mVV17RQw89pCZNmuj777/P8j/IV8rYHzY2Nla33367OnXqpF9++UXffvutQ0PeunTpoi5dujhd37lz5+rrr7/WvHnzbPubTp06Vffff79mzpyZafGpy/Xp0yfX8p19X1x33XWKjo622zJMUpbDlQ8cOKDOnTurY8eOiouL0/vvv697773XJb0VoaGhevzxx/X666/brrFt2zZbe1zZS3Ps2DFt37490+Juzm4Z5oynnnpKX3zxhW6//Xb17dtXjRs31tmzZ/Xrr7/q448/1sGDBxUUFORUGzRu3FgrVqzQpEmTVKFCBVWrVs1uoavLdejQQWFhYbr55psVGhqq3bt3a9q0abrtttts0zUyFsUbPXq0evXqJQ8PD91xxx1q2LCh+vTpo9mzZysxMVGtW7fWpk2b9O6776pr165q27ZtrvefMTLjjjvu0MMPP6wzZ87o7bffVkhIiF3Q4ExbOvpMs/LXX3+padOmateundq3b6+wsDAdO3ZMH374obZt26Zhw4bZzi1fvrw+/vhj3Xbbbbrhhhv00EMPqW7duoqPj9e8efO0f/9+TZkyxS4ICAwM1GeffaZOnTqpUaNGuv/++23Pd8uWLfrwww9znRbSokULlS9fXitWrMh2vqsjgoODNWrUKI0fP14dO3ZU586dtXfvXs2YMUM33nhjlr33rhQREaGAgADNmjVLZcuWVenSpdWsWTPVrl1bERERGj58uI4cOSI/Pz998skn+ZojfqWuXbtq7ty56t27t/z8/Gx7xmclp59p06dPV4sWLVS/fn0NGDBA1atXV0JCguLi4vTXX39p27ZtLquzdGlo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znTpMwMAIDcE3QAA5NEDDzwgSfruu+9saTt37tRNN92k3bt3a+TIkXr99ddVunRpde3aVZ999pnDZXt4eKhbt25asmSJUlNT7Y4tWbJEKSkp6tWrl6RLPa+dO3fWa6+9pjvuuENTp05V165d9cYbb6hnz56Zyl61apWeeOIJ9ezZU1OmTFHVqlWVkJCgm266SStWrNCQIUM0ZcoU1ahRQ/3799fkyZNt554/f17t27fXsmXLNGTIEI0ePVrr1q3T008/7cyjU48ePXThwgXFxsaqU6dOevPNNzVw4EC7PA899JDGjBmjG264QW+88YZat26t2NhY231LUsuWLfXPP/9o586dtrR169bJzc1N69ats0uTpFatWrnsmQEA4BADAACyNHfuXCPJ/PTTT9nm8ff3N9dff73tdfv27U39+vXNhQsXbGlWq9U0b97cXHvttba01atXG0lm9erVtrQ+ffqYKlWq2F4vW7bMSDJffvml3TU7depkqlevbns9f/584+bmZtatW2eXb9asWUaS2bBhgy1NknFzczM7d+60y9u/f39zzTXXmBMnTtil9+rVy/j7+5tz584ZY4yZPHmykWQ++ugjW56zZ8+aGjVqZLqfrIwdO9ZIMp07d7ZLf/TRR40ks23bNmOMMVu3bjWSzEMPPWSXb/jw4UaSWbVqlTHGmGPHjhlJZsaMGcYYYxITE42bm5u5++67TWhoqO28xx57zJQrV85YrVaXPTMAABxBTzcAAPlQpkwZ2yrm//zzj1atWqUePXro9OnTOnHihE6cOKGTJ08qOjpa+/bt05EjRxwuu127dgoKCtKiRYtsaadOndLy5cvtemMXL16sOnXqqHbt2rZrnjhxQu3atZMkrV692q7c1q1bq27durbXxhh98sknuuOOO2SMsSsjOjpaSUlJ2rJliyTpm2++0TXXXKPu3bvbzvf19c3US52bwYMH270eOnSorfzL/46JibHL9+STT0qSvv76a0lScHCwateure+//16StGHDBrm7u+upp55SQkKC9u3bJ+lST3eLFi1ksVhc8swAAHAUC6kBAJAPZ86cUUhIiCRp//79Msboueee03PPPZdl/mPHjqlixYoOlV2qVCndddddWrBggVJSUuTl5aVPP/1UaWlpdkH3vn37tHv3bgUHB2d7zctVq1bN7vXx48eVmJio2bNna/bs2TmWcejQIdWoUcMWvGaoVauWQ/eU4dprr7V7HRERITc3Nx08eNB2HTc3N9WoUcMuX1hYmAICAnTo0CFbWsuWLW1B+rp169SkSRM1adJE5cqV07p16xQaGqpt27bp3nvvtZ2T32cGAICjCLoBAMijv/76S0lJSbbAMGO7r+HDhys6OjrLc64MInPTq1cvvfXWW/r222/VtWtXffTRR6pdu7YaNmxoy2O1WlW/fn1NmjQpyzLCw8PtXl+50npGve+//3716dMnyzJctS1adq4M4nNLv1yLFi309ttv648//tC6devUsmVLWSwWtWjRQuvWrVOFChVktVrVsmVL2zn5fWYAADiKoBsAgDyaP3++JNkC7OrVq0u6tAhaVFSUS67RqlUrXXPNNVq0aJFatGihVatWafTo0XZ5IiIitG3bNrVv396hIPVKwcHBKlu2rNLT03Otd5UqVbRjxw4ZY+yutXfvXqeuuW/fPrve4/3798tqtdoWKKtSpYqsVqv27dunOnXq2PIlJCQoMTFRVapUsaVlBNPLly/XTz/9pJEjR0q69OxmzpypChUqqHTp0mrcuLHtnPw+MwAAHMWcbgAA8mDVqlV64YUXVK1aNd13332SpJCQELVp00ZvvfWW/v7770znHD9+3OnruLm5qXv37vryyy81f/58Xbx4MdPq2j169NCRI0f09ttvZzr//PnzOnv2bI7XcHd311133aVPPvlEO3bsyLHenTp10tGjR/Xxxx/b0s6dO5ftsPTsTJ8+3e711KlTJV3aEz3jOpLsVk6XZOuZvu2222xp1apVU8WKFfXGG28oLS1NN998s6RLwfjvv/+ujz/+WDfddJNKlfq3ryG/zwwAAEfR0w0AQC6+/fZb7dmzRxcvXlRCQoJWrVql5cuXq0qVKvriiy/k7e1tyzt9+nS1aNFC9evX14ABA1S9enUlJCQoLi5Of/31l7Zt2+b09Xv27KmpU6dq7Nixql+/vl3Pr3Rp67KPPvpIjzzyiFavXq2bb75Z6enp2rNnjz766CMtW7ZMTZo0yfEar7zyilavXq1mzZppwIABqlu3rv755x9t2bJFK1as0D///CNJGjBggKZNm6bevXtr8+bNuuaaazR//nz5+vo6dU8HDhxQ586d1bFjR8XFxen999/Xvffeaxs237BhQ/Xp00ezZ89WYmKiWrdurU2bNund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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "res2_idx = res2[res2['name'] == 'tank_fluid_mix'].index[0]\n", + "df_hs2 = res2.data_source.loc[res2_idx].df\n", + "\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "df_hs2.soc.plot(ax=axes[0], color='C0')\n", + "axes[0].set_ylabel('SOC (-)')\n", + "axes[0].set_title('Part 2 (FluidMixMapping): Heat storage SOC (from tank temperature)')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hs2.q_delivered_kw.plot(ax=axes[1], color='C1')\n", + "axes[1].set_ylabel('Power (kW)')\n", + "axes[1].set_title('Delivered power')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df2.plot(subplots=True, figsize=(10, 6))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from pandaprosumer.create_controlled import create_controlled_electric_boiler\n", - "\n", - "prosumer2 = create_empty_prosumer_container()\n", - "period_id2 = create_period(prosumer2, time_resolution_s, start, end, 'utc', 'default')\n", - "\n", - "cp_input2 = ['demand_power', 't_feed_demand_c', 't_return_demand_c']\n", - "cp_result2 = ['qdemand_kw', 't_feed_demand_c', 't_return_demand_c']\n", - "cp_idx2 = create_controlled_const_profile(prosumer2, cp_input2, cp_result2, profile2, period_id2, 0, 0)\n", - "\n", - "eb_max_p_kw = 150.0\n", - "eb_idx = create_controlled_electric_boiler(prosumer2, max_p_kw=eb_max_p_kw, name='electric_boiler',\n", - " period=period_id2, level=1, order=0)\n", - "\n", - "capacity_kg = 2000.0\n", - "init_t = 45.0\n", - "min_t, max_t = 30.0, 70.0\n", - "hs_idx2 = create_controlled_heat_storage(prosumer2, q_capacity_kwh=50.0, name='tank_fluid_mix',\n", - " capacity_kg=capacity_kg, init_temperature_c=init_t,\n", - " min_temp_c=min_t, max_temp_c=max_t,\n", - " period=period_id2, level=1, order=1)\n", - "hd_idx2 = create_controlled_heat_demand(prosumer2, period=period_id2, level=1, order=2, name='heat_consumer')" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "" + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ + { + "name": "index", + "rawType": "datetime64[ns, UTC]", + "type": "unknown" + }, + { + "name": "soc", + "rawType": "float64", + "type": "float" + }, + { + "name": "q_delivered_kw", + "rawType": "float64", + "type": "float" + } + ], + "ref": "c3b828e3-ac3b-4ded-9d6a-5235110471f4", + "rows": [ + [ + "2020-01-01 00:00:00+00:00", + "0.43062200956937813", + "-40.01487081339713" + ], + [ + "2020-01-01 00:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 00:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 00:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 01:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 01:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 01:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 01:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 02:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 02:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 02:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 02:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 03:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 03:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 03:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 03:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 04:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 04:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 04:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 04:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 05:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 05:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 05:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 05:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 06:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 06:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 06:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 06:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 07:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 07:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 07:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 07:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 08:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 08:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 08:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 08:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 09:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 09:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 09:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 09:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 10:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 10:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 10:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 10:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 11:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 11:15:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 11:30:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 11:45:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 12:00:00+00:00", + "0.0", + "0.0" + ], + [ + "2020-01-01 12:15:00+00:00", + "0.0", + "0.0" + ] + ], + "shape": { + "columns": 2, + "rows": 96 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
socq_delivered_kw
2020-01-01 00:00:00+00:000.430622-40.014871
2020-01-01 00:15:00+00:000.0000000.000000
2020-01-01 00:30:00+00:000.0000000.000000
2020-01-01 00:45:00+00:000.0000000.000000
2020-01-01 01:00:00+00:000.0000000.000000
.........
2020-01-01 22:45:00+00:000.0000000.000000
2020-01-01 23:00:00+00:000.0000000.000000
2020-01-01 23:15:00+00:000.0000000.000000
2020-01-01 23:30:00+00:000.0000000.000000
2020-01-01 23:45:00+00:000.0000000.000000
\n", + "

96 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " soc q_delivered_kw\n", + "2020-01-01 00:00:00+00:00 0.430622 -40.014871\n", + "2020-01-01 00:15:00+00:00 0.000000 0.000000\n", + "2020-01-01 00:30:00+00:00 0.000000 0.000000\n", + "2020-01-01 00:45:00+00:00 0.000000 0.000000\n", + "2020-01-01 01:00:00+00:00 0.000000 0.000000\n", + "... ... ...\n", + "2020-01-01 22:45:00+00:00 0.000000 0.000000\n", + "2020-01-01 23:00:00+00:00 0.000000 0.000000\n", + "2020-01-01 23:15:00+00:00 0.000000 0.000000\n", + "2020-01-01 23:30:00+00:00 0.000000 0.000000\n", + "2020-01-01 23:45:00+00:00 0.000000 0.000000\n", + "\n", + "[96 rows x 2 columns]" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hs2" ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from pandaprosumer.mapping import GenericMapping, FluidMixMapping\n", - "\n", - "GenericMapping(prosumer2, initiator_id=cp_idx2,\n", - " initiator_column=['qdemand_kw', 't_feed_demand_c', 't_return_demand_c'],\n", - " responder_id=hd_idx2, responder_column=['q_demand_kw', 't_feed_demand_c', 't_return_demand_c'], order=0)\n", - "FluidMixMapping(prosumer2, initiator_id=eb_idx, responder_id=hs_idx2, order=0)\n", - "FluidMixMapping(prosumer2, initiator_id=hs_idx2, responder_id=hd_idx2, order=0)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "run_timeseries(prosumer2, period_id2, verbose=False, max_iter=15, continue_on_divergence=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "res2 = prosumer2.time_series.copy()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ + }, { - "data": { - "image/png": "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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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RzR06FDNmDFD1113nX766SetW7dOxhg988wzmjVrlubPn6/27dtr4cKFGjhwoLZv366mTZvq1KlT6tmzpy655BJ9+OGHio6O1ldffeX6nCUAAKoSe4KKRXNUjhw5onPnzmnw4MFq0KCBJKl169aSpJkzZ2rChAm66aabJElPPvmkVq9erTlz5mjevHl64403dPz4cf3rX/9S7dq1JUlNmjTxTEcAAPid7Lm6lyKoBPn56ttHEi9CYwo/d2m1bdtWffv2VevWrZWYmKh+/fppyJAh8vX11eHDh3XFFVe4lb/iiiu0detWSec/fbp9+/aukAIAQFVmUVApOQg4HI5S337xJF9fX6WmpmrDhg1asWKF5s6dq8mTJys1NbXEYwte4w4AgA3+UJNpqxKHw6ErrrhC06dP15YtW+Tv76+VK1eqXr16Wr9+vVvZ9evXq2XLlpKkNm3aKD09XSdOnPBEswEAqFD2XN0tejx506ZNWrlypfr166fIyEht2rRJx48fV4sWLfTAAw9o2rRpaty4sdq1a6dFixYpPT1dixcvliQNHTpUjz/+uAYNGqSUlBTVrVtXW7ZsUb169RQfH+/hngEAUDYWBRV7uhISEqLPP/9cc+bMkdPpVIMGDTRr1iz1799fiYmJysrK0vjx43Xs2DG1bNlSH374oZo2bSpJ8vf314oVKzR+/HhdddVVOnfunFq2bKl58+Z5uFcAAJSdw5T1BR9exul0KjQ0VFn/fkchHf/stu/nn3/W3r171ahRIwUGBnqohfgj4W8OAErHdf3OylJISEiR5Syao2LPrR8AAHCePUGlFC98AwAAVYs9QcWiOSoAAOA8ggoAAPBaFgUVbv0AAGAbggoAAPBaFgUVbv0AAGAbggoAAPBaBBUAAOC1LAoqzFEpTsOGDTVnzpxSl3/44YfVrl0713pycrIGDRpU4e2qKA6HQ++//36J5fbt2yeHw6H09PRKbxMA4PezZxiCF75VqmeeeUZV/NMWAABVkD1BhVs/lSo0NLTSz5Gbmys/P79KPw8AoOqw6NZPKYKKMVLOac8sZRyNOH36tIYNG6YaNWqobt26mjVrlnr16qX77ruvxGOPHTumAQMGKCgoSI0aNdLixYsvKHPy5En99a9/VUREhEJCQtSnTx9t3bq1yDp/fetnwYIFqlevnvLz893KXHvttbr99ttd6x988IE6dOigwMBAxcXFafr06Tp37pxrv8Ph0AsvvKCBAweqevXqeuyxx0p13HfffacePXooMDBQLVu2VGpqaok/k6Lk5eXp9ttvV/PmzXXgwAHdf//9uuaaa1z758yZI4fDoeXLl7u2NWnSRC+99FK5zwkAKD17hiFKE1Ryz0iP16v8thTmwcOSf/VSF3/ggQe0du1affDBB4qMjNSDDz6or776ym3eSFGSk5N1+PBhrV69Wn5+frr33nt17NgxtzLXX3+9goKC9Omnnyo0NFTz589X3759tWvXLtWuXbvY+q+//nrdc889Wr16tfr27StJOnHihJYvX65PPvlEkrRu3ToNGzZMzz77rK688krt2bNHo0aNkiRNmzbNVdfDDz+sJ554QnPmzFG1atVKPC4/P1+DBw9WVFSUNm3apKysrFKFt8JkZ2dr6NCh2rdvn9atW6eIiAj17NlTL730kvLy8uTr66u1a9cqPDxca9asUVJSkg4dOqQ9e/aoV69e5TonAKBsLsqISnZ2ttq1a1foJMavv/5aV155pQIDAxUTE6MZM2aU7yQ+9gwOnTp1Si+//LJmzpypvn37qnXr1nr11VfdRhWKsmvXLn366af6+9//rq5du6pjx456+eWXdfbsWVeZL774Ql9++aWWLl2qyy+/XE2bNtXMmTMVFhamd955p8Rz1KpVS/3799cbb7zh2vbOO+8oPDxcvXv3liRNnz5dEydO1PDhwxUXF6c//elPevTRRzV//ny3um6++WbddtttiouLU2xsbInHffbZZ8rIyNBrr72mtm3bqkePHnr88cdL9XP9tVOnTunqq6/W8ePHtXr1akVEREiSrrzySv3000/asmWLjDH6/PPPNX78eK1Zs0aStGbNGl1yySVq0qRJmc8JACi7izKi8re//U316tW74NaC0+lUv379lJCQoBdffFHffPONbr/9doWFhbn+L7rUSjOi4hd8fmTDE/yCS110z549ysnJUZcuXVzbateurWbNmpV47I4dO1StWjV17NjRta158+YKCwtzrW/dulWnTp1SnTp13I49e/as9uzZU6o23nLLLRo5cqSef/55BQQEaPHixbrpppvk87/AuHXrVq1fv951O0c6f5vl559/1pkzZxQcfP7ncfnll7vVW9JxO3bsUExMjOrV+2VkLD4+vlRt/rWhQ4eqfv36WrVq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kCIiInTttdcqIyOjxDqXLl2q5s2bKzAwUK1bt9Ynn3zitt8Yo6lTp6pu3boKCgpSQkKCvvvuuwrvW3GK67ckpaWlqU+fPqpevbpCQkLUo0cPnT17ttg616xZow4dOiggIEBNmjTRK6+8UubzXgzFtWHPnj267rrrFBERoZCQEN1www06evRoiXV6e98///xzDRgwQPXq1ZPD4dD777/v2pebm6sJEyaodevWql69uurVq6dhw4bp8OHDJdbr7f2Wiu+7JCUnJ8vhcLgtSUlJJdZrQ99PnTqlMWPGqH79+goKClLLli314osvlljv119/rSuvvFKBgYGKiYnRjBkzLihT0r+DlSklJUWdOnVSzZo1FRkZqUGDBmnnzp1uZRYsWKBevXopJCREDodDJ0+eLFXdVeH3XikMPOKtt94y/v7+ZuHChWb79u1m5MiRJiwszBw9etQYY8z8+fPN2rVrzd69e83mzZvNgAEDTExMjDl37lyRda5fv974+vqaGTNmmG+//dZMmTLF+Pn5mW+++cZV5oknnjChoaHm/fffN1u3bjUDBw40jRo1MmfPnq30PhtTcr83bNhgQkJCTEpKitm2bZvJyMgwS5YsMT///HORdf7nP/8xwcHBZty4cebbb781c+fONb6+vmb58uWlPu/FUFwbTp06ZeLi4sx1111nvv76a/P111+ba6+91nTq1Mnk5eUVWWdV6Psnn3xiJk+ebN59910jybz33nuufSdPnjQJCQlmyZIlJiMjw6SlpZnOnTubjh07FltnVei3McX33Rhjhg8fbpKSksyRI0dcy4kTJ4qt05a+jxw50jRu3NisXr3a7N2718yfP9/4+vqaDz74oMg6s7KyTFRUlLnlllvMtm3bzJtvvmmCgoLM/PnzXWVK8+9gZUpMTDSLFi0y27ZtM+np6eaqq64ysbGx5tSpU64yTz/9tElJSTEpKSlGkvnxxx9LrLeq/N4rg8eDynPPPWcaNGhgAgICTOfOnc2mTZtc+86ePWvuvvtuU7t2bVO9enUzePBgk5mZWWKdb7/9tmnWrJkJCAgwl112mVm2bJnb/vz8fPPQQw+Z6OhoExgYaPr27Wt27dpV4X0rTufOnc3o0aNd63l5eaZevXomJSWl0PJbt241kszu3buLrPOGG24wV199tdu2Ll26mDvuuMMYc77f0dHR5qmnnnLt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_hs2.plot()" ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Electric boiler results\n", - "res2_idx = res2[res2['name'] == 'electric_boiler'].index[0]\n", - "df_eb2 = res2.data_source.loc[res2_idx].df\n", - "fig, ax = plt.subplots(figsize=(10, 3))\n", - "df_eb2.p_kw.plot(ax=ax, color='C4')\n", - "ax.set_ylabel('Electric boiler power (kW)')\n", - "ax.set_title('Electric boiler power')\n", - "ax.grid(True, alpha=0.3)\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", + "2020-01-01 00:00:00+00:00 67.224425 -67.224425 0.478469 \n", + "2020-01-01 00:15:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 00:30:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 00:45:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 01:00:00+00:00 0.000000 0.000000 0.000000 \n", + "... ... ... ... \n", + "2020-01-01 22:45:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 23:00:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 23:15:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 23:30:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 23:45:00+00:00 0.000000 0.000000 0.000000 \n", + "\n", + " t_in_c t_out_c \n", + "2020-01-01 00:00:00+00:00 58.61244 25.0 \n", + "2020-01-01 00:15:00+00:00 0.00000 0.0 \n", + "2020-01-01 00:30:00+00:00 0.00000 0.0 \n", + "2020-01-01 00:45:00+00:00 0.00000 0.0 \n", + "2020-01-01 01:00:00+00:00 0.00000 0.0 \n", + "... ... ... \n", + "2020-01-01 22:45:00+00:00 0.00000 0.0 \n", + "2020-01-01 23:00:00+00:00 0.00000 0.0 \n", + "2020-01-01 23:15:00+00:00 0.00000 0.0 \n", + "2020-01-01 23:30:00+00:00 0.00000 0.0 \n", + "2020-01-01 23:45:00+00:00 0.00000 0.0 \n", + "\n", + "[96 rows x 5 columns]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAgvRJREFUeJzs3Xd4VMX+x/HPJqQ3AqRQQkeqgNKkgwRCkSaKikpR0StFIVKvSFF+RIpcFEHkKmBDmtilE1AQUamCFEWKAgmhJCEEkpA9vz8we1mTwG6SQwrv1/Pkudk5c2a+u5N4+WbOzFgMwzAEAAAAAADynEt+BwAAAAAAQFFF0g0AAAAAgElIugEAAAAAMAlJNwAAAAAAJiHpBgAAAADAJCTdAAAAAACYhKQbAAAAAACTkHQDAAAAAGASkm4AAAAAAExC0g0AyBfTpk1TjRo1ZLVanbpv4sSJslgsOepz0aJFslgsOnbs2E3rVqxYUf37989RP2a2VRjcive7evVq+fr6Ki4uztR+CotNmzbJYrFo06ZN+R2Kqfr376+KFSvmdxgA4BSSbgAooDISxIwvT09P3XHHHRoyZIhiY2PzrJ/k5GRNnDjR4X+sHzx4UKNGjVL9+vXl5+en0qVLq0uXLvr5558d7jMxMVFTp07V6NGj5eLyv/8ruv79Xv8VGhrq7NvKcxlJjcVi0YcffphlnebNm8tisahOnTp50uf1PwNbtmzJdN0wDIWFhclisei+++7Lkz4Li44dO6pq1aqKiorKVTtt2rTJdryOHTsmi8WiGTNm5KqPm5kyZYo+++wzU/sAAOSfYvkdAADgxl5++WVVqlRJV65c0ZYtW/TWW2/pm2++0b59++Tt7Z3r9pOTkzVp0iRJ1xKQm3nnnXf07rvvqlevXho0aJASEhL09ttv65577tHq1asVHh5+0zYWLFigq1ev6pFHHsl0rX379urbt69dmZeXl2Nv5iYef/xxPfzww/Lw8MhxG56enlq8eLEee+wxu/Jjx47p+++/l6enZ6Z7Dh06ZPfHhZz22aJFC7vyzZs366+//srV+zFDbt+vo5555hmNGDFCkyZNkp+fn+n9mWXKlCl64IEH1KNHj/wOBQBgApJuACjgOnXqpIYNG0qSnnrqKZUsWVIzZ87U559/nmXS6iir1arU1FSn73vkkUc0ceJE+fr62sqeeOIJ1axZUxMnTnQo6V64cKG6deuWZYJ6xx13ZEpo84qrq6tcXV1z1Ubnzp31xRdf6OzZsypVqpStfPHixQoJCVG1atV04cIFu3tymxR37txZy5cv1xtvvKFixf73f92LFy9WgwYNdPbs2Vy1n9du1R8BevXqpaFDh2r58uV64oknbkmfAAA4i8fLAaCQuffeeyVJR48elSTNmDFDzZo1U8mSJeXl5aUGDRpoxYoVme6zWCwaMmSIPvroI9WuXVseHh6aN2+egoKCJEmTJk2yPco8ceLEbPtv0KCBXcItSSVLllTLli114MCBm8Z/9OhR7d2716Hk3BEZjwAvWrQo07V/vpes1nQbhqHJkyerXLly8vb2Vtu2bbV///5s++vevbs8PDy0fPlyu/LFixerd+/eWSb1169xNgxDbdu2VVBQkM6cOWOrk5qaqjvvvFNVqlTRpUuX7O5/5JFHdO7cOa1bt86u/ooVK9SnT58s48zJz0X16tXl6empBg0a6Ntvv7Wrl7GW/uDBg+rdu7f8/f1VsmRJPf/887py5Uq271f63+e+detWRUZGKigoSD4+PurZs2emNdlWq1UTJ05UmTJlbOPx66+/ZrlOPDg4WHXr1tXnn39uV56QkKCDBw8qISEhy88mt+Lj4zVs2DCFhYXJw8NDVatW1dSpUzPtT+DIGFgsFl26dEnvvfee7ffvZuvh//rrL/Xo0UM+Pj4KDg7W8OHDlZKSkmXd7du3q2PHjgoICJC3t7dat26trVu32tXJGNvDhw/rscceU0BAgIKCgvTSSy/JMAz9+eef6t69u/z9/RUaGqrXXnvN7v7U1FSNHz9eDRo0UEBAgHx8fNSyZUtFR0fb1bv+cf358+erSpUq8vDwUKNGjfTTTz9liv2zzz5TnTp15OnpqTp16ujTTz+94ecCAAUVSTcAFDJHjhyRdC3RlaTXX39dd911l15++WVNmTJFxYoV04MPPqivv/46070bN27U8OHD9dBDD+n1119Xo0aN9NZbb0mSevbsqQ8++EAffPCB7r//fqfjiomJsZv5zc73338vSbr77ruzvH7lyhWdPXvW7iu7hCIvjB8/Xi+99JLq1aun6dOnq3LlyurQoUOmxDeDt7e3unfvro8//thWtmfPHu3fvz/bBPh6FotFCxYs0JUrV/Svf/3LVj5hwgTt379fCxculI+Pj909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Dh06ZJqVnDNnjt3r2bNnS7p2nnxutWvXTsWKFbPtqJ/hzTffzPaeHTt2ZHpCwMwjw3r37q1t27ZpzZo1ma7Fx8fr6tWrkpwbAx8fH4d//zp37qxTp07ZHT2WnJys+fPn29Vr0KCBqlSpohkzZigpKSlTO/88qi03Mn5Grv/Z3b59u7Zt25aj9kqXLq369evrvffesxvDdevW6ddff81dsACQD0xb0z1hwgS1a9dO99xzj21zDQBA3urSpYtmzpypjh07qk+fPjpz5ozmzJmjqlWrau/evQ614eXlpVq1amnp0qW64447VKJECdWpUyfbx8VnzZqluXPnqmnTpvL29s602VTPnj0zHXl1vcqVK6tOnTpav369nnjiCcff7A089dRTevXVV/XUU0+pYcOG+vbbb3X48OGb3hcUFKQRI0YoKipK9913nzp37qxdu3Zp1apVDj2u3L17d3Xv3t3peBcuXKivv/5aixYtUrly5SRdS14fe+wxvfXWW5k2ErvejdboZnD256JOnTqKiIjQc889Jw8PD9sfLCZNmpSp7tGjR9WtWzd17NhR27Zt04cffqg+ffqoXr16jr79bIWEhOj555/Xa6+9Zutjz549tvH454zwmTNntHfv3kybu3366acaMGCAFi5c6PBmao4aOXKkvvjiC913333q37+/GjRooEuXLumXX37RihUrdOzYMZUqVcqpMWjQoIHWr1+vmTNnqkyZMqpUqZKaNGmSZf8DBw7Um2++qb59+2rHjh0qXbq0PvjgA9sfzzK4uLjonXfeUadOnVS7dm0NGDBAZcuW1cmTJxUdHS1/f399+eWXefKZ3HfffVq5cqV69uypLl266OjRo5o3b55q1aqVZcLviKioKHXp0kUtWrTQE088ofPnz2v27NmqXbt2jtsEgPxiWtL9/vvv65VXXpGnp6eaNm2qtm3bqm3btmrSpImKFTOtWwC4rdx7771699139eqrr2rYsGGqVKmSpk6dqmPHjjmcdEvSO++8o6FDh2r48OFKTU3VhAkTsk26M87d3bZtW5YzWUePHr1h0i1JTzzxhMaPH6/Lly/nyTrz8ePHKy4uTitWrNCyZcvUqVMnrVq1SsHBwTe9d/LkyfL09NS8efMUHR2tJk2aaO3aterSpUuu48rKX3/9peHDh6tr1652CfSjjz6qTz75RKNGjVKnTp1ytemdsz8XrVu3VtOmTTVp0iSdOHFCtWrV0qJFi7J8/H/p0qUaP368xowZo2LFimnIkCGaPn16jmP9p6lTp8rb21v//e9/tX79ejVt2lRr165VixYt5OnpaVd35cqV8vDwUO/evfOs/5vx9vbW5s2bNWXKFC1fvlzvv/++/P39dccdd2jSpEm23badGYOZM2fq6aef1rhx43T58mX169cv26Tb29tbGzZs0NChQzV79mx5e3vr0UcfVadOndSxY0e7um3atNG2bdv0yiuv6M0331RSUpJCQ0PVpEmTG54F7qz+/fsrJiZGb7/9ttasWaNatWrpww8/1PLly7Vp06YctdmxY0ctX75c48aN09ixY1WlShUtXLhQn3/+eY7bBID8YjFM3LXi2LFjio6O1qZNm7R582adOHFCPj4+at68uS0Jb9y4sVndAwAKqISEBFWuXFnTpk2zO44It57FYtHgwYNv+Ai3JE2cOFGTJk1SXFzcLdu0LEN8fLwCAwM1efJkvfjii7byu+66S23atNF//vOfWxoPAADOMPWsrooVK2rAgAF67733dOzYMR05ckSvv/66goODNWXKFDVr1szM7gEABVRAQIBGjRql6dOnZzorGLe3y5cvZyrLWGPfpk0bW9nq1av122+/aezYsbcoMgAAcuaWPed9/Phxffvtt9q8ebO+/fZbpaWlqVWrVreqewBAATN69GiNHj06v8NAAbN06VItWrRInTt3lq+vr7Zs2aKPP/5YHTp0UPPmzW31OnbsyNpeAEChYFrSfeLECW3atMn2ePnZs2fVrFkztW7dWgMHDlTjxo3ZYA0AANipW7euihUrpmnTpikxMdG2udrkyZPzOzQAAHLEtDXdLi4uKl++vJ599lm1bdtWDRo0yHTsCAAAAAAARZlpSffDDz+szZs3KyUlRS1atFDr1q3Vtm1b3XXXXZmO/AAAAAAAoCgydfdySTp48KDdDuZXrlyxJeFt2rRRo0aNzOweAAAAAIB8Y3rS/U+//vqrFi9erNmzZ+vSpUu6evXqrez+pqxWq06dOiU/Pz9m5AEAAAAAWTIMQxcvXlSZMmXk4pL9wWC3ZPfy2NhYbdq0ybax2uHDh+Xh4aGWLVveiu6dcurUKYWFheV3GAAAAACAQuDPP/9UuXLlsr1uWtK9bNkyW6J96NAhubm5qVGjRurdu7fatm2r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b775RvXq1VONGjVkGIYOHDigX375Rd26ddNnn31mRtcAAAAAABQIps10L1q0SN9++602bNigtm3b2l3buHGjevTooffff199+/Y1KwQAAAAAAPKVaTPdHTp00L333qsxY8ZkeX3KlCnavHmz1qxZY0b3AAAAAADkO9PO6d67d686duyY7fVOnTppz549ZnUPAAAAAEC+My3pPn/+vEJCQrK9HhISogsXLpjVPQAAAAAA+c60pDs9PV3FimW/ZNzV1VVXr141q3sAAAAAAPKdaRupGYah/v37Z3tQeEpKilldAwAAAABQIJiWdPfr1++mddi5HAAAAABQlJm2ezkAAAAAALc709Z0AwAAAABwuyPpBgAAAADAJCTdAAAAAACYhKQbAADkSP/+/VWxYsUc31+xYkX1798/z+IpiDZt2iSLxaJNmzbldygAgHxC0g0AuC1MnDhRFotFZ8+ezfJ6nTp11KZNm1sbFAAAKPJIugEAAAAAMAlJNwAAt5lLly7ldwgAANw2SLoBAMhCxlrcZcuW6f/+7/9Urlw5eXp6ql27dvr9998z1d++fbs6d+6swMBA+fj4qG7dunr99dft6mzcuFEtW7aUj4+Pihcvru7du+vAgQO26ytWrJDFYtHmzZsztf/222/LYrFo3759trKDBw/qgQceUIkSJeTp6amGDRvqiy++sLtv0aJFtjYHDRqk4OBglStXznZ91apVtpj8/PzUpUsX7d+/P1P/n332merUqSNPT0/VqVNHn376qcOfpWEYmjx5ssqVKydvb2+1bds2yz4kKT4+XsOGDVNYWJg8PDxUtWpVTZ06VVar1Vbn2LFjslgsmjFjhubMmaPKlSvL29tbHTp00J9//inDMPTKK6+oXLly8vLyUvfu3XX+/Hm7fj7//HN16dJFZcqUkYeHh6pUqaJXXnlF6enpdvXatGmjOnXq6Ndff1Xbtm3l7e2tsmXLatq0aZli/+uvv9SjRw/5+PgoODhYw4cPV0pKisOfEwCgaCqW3wEAAFCQvfrqq3JxcdGIESOUkJCgadOm6dFHH9X27dttddatW6f77rtPpUuX1vPPP6/Q0FAdOHBAX331lZ5//nlJ0vr169WpUydVrlxZEydO1OXLlzV79mw1b95cO3fuVMWKFdWlSxf5+vpq2bJlat26tV0cS5cuVe3atVWnTh1J0v79+9W8eXOVLVtWY8aMkY+Pj5YtW6YePXrok08+Uc+ePe3uHzRokIKCgjR+/HjbTPcHH3ygfv36KSIiQlOnTlVycrLeeusttWjRQrt27bJtkrZ27Vr16tVLtWrVUlRUlM6dO6cBAwbYJe83Mn78eE2ePFmdO3dW586dtXPnTnXo0EGpqal29ZKTk9W6dWudPHlSzzzzjMqXL6/vv/9eY8eO1enTpzVr1iy7+h999JFSU1M1dOhQnT9/XtOmTVPv3r117733atOmTRo9erR+//13zZ49WyNGjNCCBQts9y5atEi+vr6KjIyUr6+vNm7cqPHjxysxMVHTp0+36+fChQvq2LGj7r//fvXu3VsrVqzQ6NGjdeedd6pTp06SpMuXL6tdu3Y6ceKEnnvuOZUpU0YffPCBNm7c6NBnBAAowgwAAG4DEyZMMCQZcXFxWV6vXbu20bp1a9vr6OhoQ5JRs2ZNIyUlxVb++uuvG5KMX375xTAMw7h69apRqVIlo0KFCsaFCxfs2rRarbbv69evbwQHBxvnzp2zle3Zs8dwcXEx+vbtayt75JFHjODgYOPq1au2stOnTxsuLi7Gyy+/bCtr166dceeddxpXrlyx669Zs2ZGtWrVbGULFy40JBktWrSwa/PixYtG8eLFjYEDB9rFHBMTYwQEBNiV169f3yhdurQRHx9vK1u7dq0hyahQoULmD/M6Z86cMdzd3Y0uXbrYfR7//ve/DUlGv379bGWvvPKK4ePjYxw+fNiujTFjxhiurq7GiRMnDMMwjKNHjxqSjKCgILuYxo4da0gy6tWrZ6SlpdnKH3nkEcPd3d3us0pOTs4U6zPPPGN4e3vb1WvdurUhyXj//fdtZSkpKUZoaKjRq1cvW9msWbMMScayZctsZZcuXTKqVq1qSDKio6Nv+DkBAIouHi8HAOAGBgwYIHd3d9vrli1bSpL++OMPSdKuXbt09OhRDRs2TMWLF7e712KxSJJOnz6t3bt3q3///ipRooTtet26ddW+fXt98803trKHHnpIZ86csTtiasWKFbJarXrooYckSefPn9fGjRvVu3dvXbx4UWfPntXZs2d17tw5RURE6LffftPJkyftYhk4cKBcXV1tr9etW6f4+Hg98sgjtvvPnj0rV1dXNWnSRNHR0Xax9+vXTwEBAbb727dvr1q1at3081u/fr1tNjrj85CkYcOGZaq7fPlytWzZUoGBgXYxhYeHKz09Xd9++61d/QcffNAupiZNmkiSHnvsMRUrVsyuPDU11e4z8fLysn2f8Rm2bNlSycnJOnjwoF0/vr6+euyxx2yv3d3d1bhxY9vPgCR98803Kl26tB544AFbmbe3t55++umbfkYAgKKNx8sBAPjb9UlhhvLly9u9DgwMlHTtkWNJOnLkiCTZHvvOyvHjxyVJ1atXz3StZs2aWrNmjS5duiQfHx917NhRAQEBWrp0qdq1ayfp2qPl9evX1x133CFJ+v3332UYhl566SW99NJLWfZ55swZlS1b1va6UqVKdtd/++03SdK9996b5f3+/v52sVerVi1TnerVq2vnzp3Zvu8b3R8UFGT7LK+Pae/evQoKCsqyrTNnzti9/ufYZCTgYWFhWZZnjJl07fH8cePGaePGjUpMTLSrn5CQYPe6XLlymX42AgMDtXfvXtvr48ePq2rVqpnqZTXmAIDbC0k3AOC24OnpKena2tusJCcn2+pc7/rZ4esZhpF3wV3Hw8NDPXr00Keffqq5c+cqNjZWW7du1ZQpU2x1MjYVGzFihCIiIrJsp2rVqnavr5/Zvb6NDz74QKGhoZnuv36m+FaxWq1q3769Ro0aleX1jD86ZMhubG42ZvHx8WrdurX8/f318ssvq0qVKvL09NTOnTs1evRou03bHGkPAIAbIekGANwWKlSoIEk6dOhQppnQ5ORk/fnnn+rQoYPT7VapUkWStG/fPoWHh9+07386ePCgSpUqJR8fH1vZQw89pPfee08bNmzQgQMHZBiG7dFySapcubIkyc3NLds+HY07ODj4hm1kxJ4xM369rN7Pje7PiFuS4uLi7GaeM2JKSkrK8Xty1KZNm3Tu3DmtXLlSrVq1spUfPXo0x21WqFBB+/btk2EYdrPdjnxGAICijTXdAIDbQrt27eTu7q633nor00zm/PnzdfXqVdtO1M64++67ValSJc2aNUvx8fF21zJmQkuXLq369evrvffes6uzb98+rV27Vp07d7a7Lzw8XCVKlNDSpUu1dOlSNW7c2O7x8ODgYLVp00Zvv/22Tp8+nSmmuLi4m8YdEREhf39/TZkyRWlpadm2cX3s1z92vW7dOv3666837Sc8PFxubm6aPXu23czwP3cil6TevXtr27ZtWrNmTaZr8fHxunr16k37c0TGzPX1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i0mSpGIBAXJxKXQbvQMAAAAATOJojuh0JtmoUSNFRkbazSrHxsZq5MiRaty4sbPNOaR8+fKqU6eO7euOO+6QJFWpUkXlypWTJPXp00fu7u568skntX//fi1dulSvv/663Sy2s6y2jdR8c/8mAAAAAAC3HadnuhcsWKCePXuqfPnyCgsLkyT9+eefqlatmj777LO8js9hAQEBWrt2rQYPHqwGDRqoVKlSGj9+fI6PC5OuPzLMP6/CBAAAAADcRizG9duQO8gwDK1bt04HDx6UJNWsWVPh4eF2u5gXVomJiQoICND58+cV06KllJ6uqps3yy2ENd0AAAAAgGvi4+MVGBiohIQE+d9gotbpmW7p2hFhHTp0UKtWreTh4VEkku1/MpKTpb+PP3P155xuAAAAAIDznF7TbbVa9corr6hs2bLy9fXV0aNHJUkvvfSS3n333TwPML+kJ13bRE3Fisni6Zm/wQAAAAAACiWnk+7Jkydr0aJFmjZtmt0W6XXq1NE777yTp8HlJ2vSJUmSq59fkZzJBwAAAACYz+mk+/3339f8+fP16KOPytXV1VZer1492xrvoiD9YqIkycWPR8sBAAAAADnjdNJ98uRJVa1aNVO51WpVWlpangRVEFw/0w0AAAAAQE44nXTXqlVL3333XabyFStW6K677sqToAoCa9LfZ3STdAMAAAAAcsjp3cvHjx+vfv366eTJk7JarVq5cqUOHTqk999/X1999ZUZMeYL698bqTHTDQAAAADIKadnurt3764vv/xS69evl4+Pj8aPH68DBw7oyy+/VPv27c2IMV9YL15LupnpBgAAAADklFMz3VevXtWUKVP0xBNPaN26dWbFVCBYLzHTDQAAAADIHadmuosVK6Zp06bp6tWrZsVTYKQz0w0AAAAAyCWnHy9v166dNm/ebEYsBUrGRmqufr75HAkAAAAAoLByeiO1Tp06acyYMfrll1/UoEED+fj42F3v1q1bngWXn6wXk+QiycXPP79DAQAAAAAUUk4n3YMGDZIkzZw5M9M1i8Wi9PT03EdVAKRfuvR30s1MNwAAAAAgZ5xOuq1WqxlxFDjWixmPlzPTDQAAAADIGafXdF/vypUreRVHgWMkZWykxkw3AAAAACBnnE6609PT9corr6hs2bLy9fXVH3/8IUl66aWX9O677+Z5gPkl/e+k29WfmW4A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Xdndd99tvPjii9m2M3fuXCMwMNBISUmxlY0ePdqoXr267fXN/n2E3Dtz5owhydi8eXOma9HR0Q4n3fxuFl5F7vHyGz1OceXKFQ0ePFglS5aUr6+vevXq5dCjjzySfGulpqZqx44dCg8Pt5W5uLgoPDxc27Zty1T/0qVLWrhwoSpVqqSwsDBbecWKFTVx4kTb623bttm1KUkRERG2No8ePaqYmBi7OgEBAWrSpEmW/eLmbjaWZ86c0fbt2xUcHKxmzZopJCRErVu31pYtW+zaadOmjfr37297fbOxdPZnCDd3s880JSVFFovFbvdOT09Pubi42I0nY1k4JSQkyGKxqHjx4rYyxrLw2LRpk4KDg1W9enU9++yzOnfunN11xrJwaNasmb744gudPHlShmEoOjpahw8fVocOHWx1+vfvrzZt2theb9u2Ta1atZK7u7utLCIiQocOHdKFCxdsdW403si9hIQESVKJEiWcuo/fzaKjSCXdS5cuVWRkpCZMmKCdO3eqXr16ioiI0JkzZyRJw4cP15dffqnly5dr8+bNOnXqlO6///4btvn999/rkUce0ZNPPqldu3apR48e6tGjh/bt22erM23aNL3xxhuaN2+etm/fLh8fH0VEROjKlSumvt+i6uzZs0pPT1dISIhdeUhIiGJiYmyv586dK19fX/n6+mrVqlVat26d3f+pVKlSRaVKlbK9jomJuWGbGf97s37huJuN5R9//CFJmjhxogYOHKjVq1fr7rvvVrt27ez+cFW+fHmVLl3a9jq7sUxMTNTly5cd/hmC4272md5zzz3y8fHR6NGjlZycrEuXLmnEiBFKT0/X6dOnbfUZy8LnypUrGj16tB555BG7M0gZy8KhY8eOev/997VhwwZNnTpVmzdvVqdOnZSenm6rw1gWDrNnz1atWrVUrlw5ubu7q2PHjpozZ45atWplq1O6dGmVL1/e9jq7scy4dqM6jGXesFqtGjZsmJo3b646deo4dS+/m0VHsfwOIC/NnDlTAwcO1IABAyRJ8+bN09dff60FCxbo2Wef1bvvvqvFixfr3nvvlSQtXLhQNWvW1A8//KB77rknyzZff/11dezYUSNHjpQkvfLKK1q3bp3efPNNzZs3T4ZhaNasWRo3bpy6d+8uSXr//fcVEhKizz77TA8//PAteOe3p0cffVTt27fX6dOnNWPG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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Heat demand results\n", + "res2_idx = res2[res2['name'] == 'heat_consumer'].index[0]\n", + "df_hd2 = res2.data_source.loc[res2_idx].df\n", + "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", + "print(df_hd2)\n", + "df_hd2.q_received_kw.plot(ax=axes[0], color='C2')\n", + "axes[0].set_ylabel('Demand received power (kW)')\n", + "axes[0].set_title('Part 2 (FluidMixMapping): Heat demand')\n", + "axes[0].grid(True, alpha=0.3)\n", + "df_hd2.q_uncovered_kw.plot(ax=axes[1], color='C3')\n", + "axes[1].set_ylabel('Uncovered demand (kW)')\n", + "axes[1].set_title('Uncovered demand')\n", + "axes[1].grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, { - "data": { - "image/png": "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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_hd2.plot()" ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "res2_idx = res2[res2['name'] == 'tank_fluid_mix'].index[0]\n", - "df_hs2 = res2.data_source.loc[res2_idx].df\n", - "\n", - "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", - "df_hs2.soc.plot(ax=axes[0], color='C0')\n", - "axes[0].set_ylabel('SOC (-)')\n", - "axes[0].set_title('Part 2 (FluidMixMapping): Heat storage SOC (from tank temperature)')\n", - "axes[0].grid(True, alpha=0.3)\n", - "df_hs2.q_delivered_kw.plot(ax=axes[1], color='C1')\n", - "axes[1].set_ylabel('Power (kW)')\n", - "axes[1].set_title('Delivered power')\n", - "axes[1].grid(True, alpha=0.3)\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "" + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ + { + "name": "index", + "rawType": "datetime64[ns, UTC]", + "type": "unknown" + }, + { + "name": "q_received_kw", + "rawType": "float64", + "type": "float" + }, + { + "name": "q_uncovered_kw", + "rawType": "float64", + "type": "float" + }, + { + "name": "mdot_kg_per_s", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_in_c", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_out_c", + "rawType": "float64", + "type": "float" + } + ], + "ref": "7c7cd59a-d3fe-44a1-be0a-57888b6afaa2", + "rows": [ + [ + "2020-01-01 00:00:00+00:00", + "67.22442495541021", + "-67.22442495541021", + "0.4784688995215311", + "58.61244019138756", + "25.0" + ], + [ + "2020-01-01 00:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 00:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 00:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 01:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 01:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 01:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 01:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 02:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 02:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 02:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 02:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 03:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 03:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 03:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 03:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 04:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 04:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 04:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 04:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 05:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 05:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 05:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 05:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 06:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 06:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 06:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 06:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 07:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 07:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 07:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 07:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 08:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 08:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 08:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 08:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 09:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 09:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 09:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 09:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 10:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 10:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 10:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 10:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 11:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 11:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 11:30:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 11:45:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 12:00:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "2020-01-01 12:15:00+00:00", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ] + ], + "shape": { + "columns": 5, + "rows": 96 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
q_received_kwq_uncovered_kwmdot_kg_per_st_in_ct_out_c
2020-01-01 00:00:00+00:0067.224425-67.2244250.47846958.6124425.0
2020-01-01 00:15:00+00:000.0000000.0000000.0000000.000000.0
2020-01-01 00:30:00+00:000.0000000.0000000.0000000.000000.0
2020-01-01 00:45:00+00:000.0000000.0000000.0000000.000000.0
2020-01-01 01:00:00+00:000.0000000.0000000.0000000.000000.0
..................
2020-01-01 22:45:00+00:000.0000000.0000000.0000000.000000.0
2020-01-01 23:00:00+00:000.0000000.0000000.0000000.000000.0
2020-01-01 23:15:00+00:000.0000000.0000000.0000000.000000.0
2020-01-01 23:30:00+00:000.0000000.0000000.0000000.000000.0
2020-01-01 23:45:00+00:000.0000000.0000000.0000000.000000.0
\n", + "

96 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", + "2020-01-01 00:00:00+00:00 67.224425 -67.224425 0.478469 \n", + "2020-01-01 00:15:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 00:30:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 00:45:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 01:00:00+00:00 0.000000 0.000000 0.000000 \n", + "... ... ... ... \n", + "2020-01-01 22:45:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 23:00:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 23:15:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 23:30:00+00:00 0.000000 0.000000 0.000000 \n", + "2020-01-01 23:45:00+00:00 0.000000 0.000000 0.000000 \n", + "\n", + " t_in_c t_out_c \n", + "2020-01-01 00:00:00+00:00 58.61244 25.0 \n", + "2020-01-01 00:15:00+00:00 0.00000 0.0 \n", + "2020-01-01 00:30:00+00:00 0.00000 0.0 \n", + "2020-01-01 00:45:00+00:00 0.00000 0.0 \n", + "2020-01-01 01:00:00+00:00 0.00000 0.0 \n", + "... ... ... \n", + "2020-01-01 22:45:00+00:00 0.00000 0.0 \n", + "2020-01-01 23:00:00+00:00 0.00000 0.0 \n", + "2020-01-01 23:15:00+00:00 0.00000 0.0 \n", + "2020-01-01 23:30:00+00:00 0.00000 0.0 \n", + "2020-01-01 23:45:00+00:00 0.00000 0.0 \n", + "\n", + "[96 rows x 5 columns]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hd2" ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAG9CAYAAADp61eNAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOXFJREFUeJzt3Xl8lNXd///3JGQDTGIgC4GEXRZBUrYQF6AkJSwCEayYUlmkYBWwGLSsgtjWWAVBBURqxdtbUYrfioqYNoZViKABqexKERSYBMUkEiCE5Pz+4MfcjmRFhpDD6/l4zEPnXOc61/lMYubttTqMMUYAAACW8KruCQAAAFxOhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKvUqu4JVIeSkhIdPXpU1113nRwOR3VPBwAAVIIxRj/88IMiIyPl5VX2/plrMtwcPXpUUVFR1T0NAABwCb7++ms1atSozOXXZLi57rrrJJ3/cAIDA6t5NgAAoDLy8/MVFRXl+h4vyzUZbi4cigoMDCTcAABQw1R0SgknFAMAAKsQbgAAgFUINwAAwCrX5Dk3AICqKy4uVlFRUXVPAxbz8fGRt7f3zx6HcAMAKJcxRk6nU7m5udU9FVwDgoODFRER8bPuQ0e4AQCU60KwCQsLU+3atbn5KTzCGKNTp04pJydHktSgQYNLHotwAwAoU3FxsSvY1KtXr7qnA8sFBARIknJychQWFnbJh6g4oRgAUKYL59jUrl27mmeCa8WF37Wfc34X4QYAUCEOReFKuRy/a4QbAABgFcINAACwCuEGAABYhXADAACsQrgBAFjprbfeUvv27RUQEKB69eopISFBBQUFKikp0eOPP65GjRrJz89PMTExSktLc1v3m2++UXJyskJCQlSnTh117txZW7ZsqaZKUFXc5wYAUGnGGJ0uKq6WbQf4eFf6Sppjx44pOTlZTz31lO644w798MMP2rhxo4wxevbZZzV37ly9+OKL+sUvfqGXX35ZAwcO1K5du9SyZUudPHlSPXr0UMOGDfXuu+8qIiJC27ZtU0lJiYcrxOVCuAEAVNrpomK1nfmvatn27scTVdu3cl9bx44d07lz5zR48GA1btxYktS+fXtJ0pw5czR58mTdfffdkqS//vWvWrt2rebPn6+FCxdq2bJlOn78uD755BOFhIRIklq0aOGBiuApHJYCAFinQ4cOio+PV/v27fXrX/9af/vb3/T9998rPz9fR48e1S233OLW/5ZbbtGePXskSZ999pl+8YtfuIINah723AAAKi3Ax1u7H0+stm1Xlre3t9LT07V582b9+9//1vPPP6/p06crPT294u38/48AQM1FuAEAVJrD4aj0oaHq5nA4dMstt+iWW27RzJkz1bhxY2VkZCgyMlKbNm1Sjx49XH03bdqkrl27SpJuuukmvfTSSzpx4gR7b2qomvEbCgBAFWzZskUZGRnq3bu3wsLCtGXLFh0/flxt2rTRI488olmzZql58+aKiYnR0qVL9dlnn+n111+XJCUnJ+uJJ55QUlKSUlNT1aBBA23fvl2RkZGKi4ur5spQGYQbAIB1AgMDtWHDBs2fP1/5+flq3Lix5s6dq759+yoxMVF5eXmaNGmScnJy1LZtW7377rtq2bKlJMnX11f//ve/NWnSJPXr10/nzp1T27ZttXDhwmquCpXlMMaY6p7ElZafn6+goCDl5eUpMDCwuqcDAFetM2fO6ODBg2ratKn8/f2rezq4BpT3O1fZ72+ulgIAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACohCZNmmj+/PmV7v/YY48pJibG9X7kyJFKSkq67PO6XBwOh1auXFlhv6+++koOh0OfffaZx+d0qXhwJgAAV8Czzz6ra/BxjtWCcAMAwBUQFBTk8W0UFRXJx8fH49u52nFYCgBQecZIZwuq51XFvR4FBQUaPny46tatqwYNGmju3Lnq2bOnJk6cWOG6OTk5GjBggAICAtS0aVO9/vrrF/XJzc3V7373O4WGhiowMFC9evXSjh07yhzzx4ellixZosjISJWUlLj1GTRokO69917X+3feeUcdO3aUv7+/mjVrptmzZ+vcuXOu5Q6HQy+88IIGDhyoOnXq6C9/+Uul1vviiy/UvXt3+fv7q23btkpPT6/wMylLcXGx7r33XrVu3VqHDx/Www8/rNtvv921fP78+XI4HEpLS3O1tWjRQi+99NIlb7Mi7LkBAFRe0Snpicjq2fa0o5JvnUp3f+SRR7R+/Xq98847CgsL07Rp07Rt2za382DKMnLkSB09elRr166Vj4+PHnzwQeXk5Lj1+fWvf62AgAB98MEH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Cl6/fn15e3srOzvbrT07O1sRERGVGuOll17S6dOnJUk+Pj5l9nv44YeVnp6uOXPmqEWLFgoICNCdd96ps2fPuvX76RgOh0MlJSWVmgsAAPCcGhFufH191alTJ2VkZCgpKUmSVFJSooyMDI0fP75SYzRs2LBS/TZt2qSRI0fqjjvukHR+T85XX311KdMGAADVoEaEG0lKSUnRiBEj1LlzZ3Xt2lXz589XQUGBRo0aJUlyOp1yOp368ssvJUmff/6560qmkJCQSm+nZcuW+uc//6kBAwbI4XDo0UcfZY8MAAA1SI0JN0OHDtXx48c1c+ZMOZ1OxcTEKC0tzXWS8eLFizV79mxX/+7du0uSli5dqpEjR5Y5bklJiWrV+r+P4ZlnntG9996rm2++WfXr19fkyZOVn5/vmaIAAMBl5zDGmOqeRHV68skn9dprr2nnzp3VPRUAAHAZ1Jg9N5fbqVOntHfvXi1dulR9+/at7ukAAIDL5Jq5FPynlixZooSEBHXo0EEzZ86s7ukAAIDL5Jo/LAUAAOxyze65AQAAdiLcAAAAq9TIcJOamqouXbrouuuuU1hYmJKSki56aOWZM2c0btw41atXT3Xr1tWQIUPc7nC8Y8cOJScnKyoqSgEBAWrTpo2effbZi7a1bt06dezYUX5+fmrRooVeeeUVT5cHAAB+hhoZbtavX69x48bp448/Vnp6uoqKitS7d28VFBS4+jz00EN67733tGLFCq1fv15Hjx7V4MGDXcuzsrIUFham1157Tbt27dL06dM1depULViwwNXn4MGD6t+/v375y1/qs88+08SJE/W73/1O//rXv65ovQAAoPKsOKH4+PHjCgsL0/r169W9e3fl5eUpNDRUy5Yt05133ilJ2rt3r9q0aaPMzEx169at1HHGjRunPXv2aM2aNZKkyZMn6/3333e7B87dd9+t3NxcpaWleb4wAABQZTVyz81P5eXlSZLrMQtZWVkqKipSQkKCq0/r1q0VHR2tzMzMcsf58aMaMjMz3caQpMTExHLHAAAA1avG38SvpKREEydO1C233KJ27dpJOv+cKV9fXwUHB7v1DQ8Pl9PpLHWczZs3a/ny5Xr//fddbU6n0/V4hx+PkZ+fr9OnTysgIODyFgMAAH62Gh9uxo0bp507d+qjjz665DF27typQYMGadasWerdu/dlnB0AALjSavRhqfHjx2vVqlVau3atGjVq5GqPiIjQ2bNnlZub69Y/OztbERERbm27d+9WfHy8xo4dqxkzZrgti4iIcLvC6sIYgYGB7LUBAOAqVSPDjTFG48eP19tvv601a9aoadOmbss7deokHx8fZWRkuNr27dunw4cPKy4uztW2a9cu/fKXv9SIESP0l7/85aLtxMXFuY0hSenp6W5jAACAq0uNvFrqgQce0LJly/TOO++oVatWrvagoCDXHpX7779fq1ev1iuvvKLAwEBNmDBB0vlza6Tzh6J69eqlxMREPf30064xvL29FRoaKun8peDt2rXTuHHjdO+992rNmjV68MEH9f777ysxMfFKlQsAAKqgRoYbh8NRavvSpUs1cuRISedv4jdp0iS98cYbKiwsVGJiohYtWuQ6LPXYY49p9uzZF43RuHFjffXVV67369at00MPPaTdu3erUaNGevTRR13bAAAAV58aGW4AAADKUiPPuQEAACgL4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArPL/AXrJYj43/0ivAAAAAElFTkSuQmCC", - "text/plain": [ - "
" + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "# Part 2b: FluidMixMapping (uniform tank, direct example)\n", + "\n", + "In this section we isolate the uniform tank behaviour and drive it directly with a\n", + "prescribed mass flow and inlet temperature, without coupling to a full boiler–storage–demand\n", + "network. This avoids FluidMix convergence issues and makes the charging / discharging\n", + "behaviour clearly visible.\n", + "\n", + "We consider:\n", + "\n", + "- A water tank with a given mass `capacity_kg` and initial temperature.\n", + "- A **charging phase**: hot water in, the tank heats up and SOC increases (negative `q_delivered_kw`,\n", + " i.e. heat is stored in the tank).\n", + "- A **discharging phase**: colder water in, the tank cools down and SOC decreases (positive\n", + " `q_delivered_kw`, i.e. heat is delivered from the tank).\n" ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df_hs2.plot()" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - " q_received_kw q_uncovered_kw mdot_kg_per_s \\\n", - "2020-01-01 00:00:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:15:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:30:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 00:45:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 01:00:00+00:00 0.0 0.0 0.0 \n", - "... ... ... ... \n", - "2020-01-01 22:45:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:00:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:15:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:30:00+00:00 0.0 0.0 0.0 \n", - "2020-01-01 23:45:00+00:00 0.0 0.0 0.0 \n", - "\n", - " t_in_c t_out_c \n", - "2020-01-01 00:00:00+00:00 55.0 25.0 \n", - "2020-01-01 00:15:00+00:00 55.0 25.0 \n", - "2020-01-01 00:30:00+00:00 55.0 25.0 \n", - "2020-01-01 00:45:00+00:00 55.0 25.0 \n", - "2020-01-01 01:00:00+00:00 55.0 25.0 \n", - "... ... ... \n", - "2020-01-01 22:45:00+00:00 0.0 0.0 \n", - "2020-01-01 23:00:00+00:00 0.0 0.0 \n", - "2020-01-01 23:15:00+00:00 0.0 0.0 \n", - "2020-01-01 23:30:00+00:00 0.0 0.0 \n", - "2020-01-01 23:45:00+00:00 0.0 0.0 \n", - "\n", - "[96 rows x 5 columns]\n" - ] + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "from pandaprosumer import create_empty_prosumer_container, create_period, create_controlled_heat_storage\n", + "from pandaprosumer.mapping.fluid_mix import FluidMixMapping\n", + "\n", + "prosumer3 = create_empty_prosumer_container(fluid=\"water\")\n", + "resol_s = 15 * 60\n", + "\n", + "start3 = \"2020-01-01 00:00:00\"\n", + "end3 = \"2020-01-01 05:59:59\"\n", + "period3 = create_period(\n", + " prosumer3,\n", + " resol_s,\n", + " name=\"fluidmix_tank\",\n", + " start=start3,\n", + " end=end3,\n", + " timezone=\"utc\",\n", + ")\n", + "\n", + "q_capacity_kwh = 10.0\n", + "capacity_kg = 1000.0\n", + "t_low_c = 50.0\n", + "t_high_c = 70.0\n", + "\n", + "hs_idx3 = create_controlled_heat_storage(\n", + " prosumer3,\n", + " q_capacity_kwh=q_capacity_kwh,\n", + " capacity_kg=capacity_kg,\n", + " init_temperature_c=t_low_c,\n", + " min_temp_c=t_low_c,\n", + " max_temp_c=t_high_c,\n", + " period=period3,\n", + ")\n", + "ctrl2 = prosumer3.controller.iloc[hs_idx3].object" + ] }, { - "data": { - "image/png": "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u7u7RZtKlSopJCTE4pzr1q1TQkKC+vTpk+15bPlcbNmyRaNHj9YTTzyhV155RZcvX1bHjh118ODBLHV79eqlGzduKDIyUp07d9bbb7+tp59++o7XLUkjR47U/v37NXnyZA0bNkzffPONRowYYVFnwoQJmjp1qho2bKjXX39d1atXV1hYWI7jERQUZP5MZfryyy9Vq1YtqxO19PT0LJ+5S5cuZZm5IN16NKNVq1b65JNPNGDAAL399ttq1qyZJkyYoIiICIu61ozBxx9/LBcXF7Vo0cL8+/fMM8/kGOv169fVrl07fffddxoxYoReeuklbd26VS+++GKWups2bVLLli2VmJioyZMna/r06YqPj1fbtm31008/Zanfu3dvZWRk6LXXXlNwcLCmTZumOXPmqH379ipfvrxmzJihatWqacyYMRZfzCQmJuq9995T69atNWPGDE2ZMkUXL15UWFiYfv755yznWbp0qV5//XU988wzmjZtmk6ePKlHH31UaWlp5jrff/+9evbsKZPJpMjISIWHh2vw4ME2rSUBAP84AwBQ4CxevNiQZGzcuNG4ePGi8eeffxrLli0zypQpYxQvXtw4c+aMYRiGkZycbNEuNTXVqFu3rtG2bVuLckmGg4ODcejQIYvyixcvGpKMyZMn2x3rDz/8YJhMJuPll1++Y92JEycakoy//voryzFJ2f4sXrzYXGfy5MnG7f9rO3HiRJY6t/d3+3VlvqcnTpwwDMMwLly4YDg7OxtdunQxMjIyzPX+85//GJKMgQMHmsuio6MNScaKFSuMNWvWGCaTyTh9+rRhGIYxduxYo0qVKoZhGEarVq2MOnXqWMRRsWJFi74MwzDeffddQ5LxySefGD/++KPh6OhojB492qJOZry7du0y5s2bZ5QsWdI83v/617+MNm3amPvv0qWLRVtbPheSjN27d5vLTp06Zbi6uho9evQwl2W+7926dbNo/+yzzxqSjP379+d4vZnXERoaavE+P//884ajo6MRHx9vGIZhxMbGGk5OTkZ4eLjFOaZMmZJlPDJNnz7dkGTExcVlOV92n4m/a9WqVY6fu8yf119/3Vz/1VdfNdzd3Y1ff/3Vop/x48cbjo6O5s+EYVg/Bu7u7tleW3bmzJljSDI+//xzc1lSUpJRrVo1Q5IRHR1tGIZhZGRkGNWrVzfCwsIs3vPk5GSj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2lQuLi53HXRBVLJkSUm3tljz8vK6t8EAAAAAAPJdfHy8KlasaM4Hc2P1VHNnZ2c1bNhQbdq0UZs2bdSsWTMVL178roMtDBITE+Xp6amrV6+SeAMAAABAERAfH69SpUopISFBHh4euda1+o731atX5e7unmud69evk4wDAAAAAHCb3J8Av01m0v3cc89lezwpKUmdO3fOm6gAAAAAACgkrE68M3377beaPHmyRVlSUpI6duxYJFc0BwAAAAAgNzavav7999+rRYsWKlWqlEaPHq2//vpLYWFhcnJy0rp16/IjRgAAAAAACiybE++qVatq/fr1atOmjRwcHPTZZ5/JxcVF33777R2fAQcAAAAAoKixax/vBx98UGvWrFH79u0VHBysNWvWsKgaAAAAAADZsCrxfuihh2QymbKUu7i46Ny5c2rWrJm5bO/evXkXHQAAAAAABZxViXd4eHg+hwEAAAAAQOFkMgzDuNdBFHSJiYny9PTU1atX5eXlda/DAQAAAADks/j4eJUqVUoJCQny8PDIta5V24mRmwMAAAAAYB+rEu86depo2bJlSk1NzbXe8ePHNWzYML322mt5EhwAAAAAAAWdVc94z507V+PGjdOzzz6r9u3bq2HDhvL395erq6uuXr2qw4cPa9u2bTp06JBGjBihYcOG5XfcAAAAAAAUCDY9471t2zYtX75cW7du1alTp3T9+nWVLVtWDz30kMLCwtSvXz+VKlUqP+O9L/GMNwAAAAAULbY8423TPt7NmzdX8+bN7yo4AAAAAACKEque8QYAAAAAAPYh8QYAAAAAIB+ReAMAAAAAkI8KXOI9f/58VapUSa6urgoODtZPP/2Ua/0VK1aoZs2acnV1Vb169bR27doc6/773/+WyWTSnDlz8jhqAAAAAEBRZVPiffPmTX300UeKi4vLr3hytXz5ckVERGjy5Mnau3ev6tevr7CwMF24cCHb+jt27FDfvn01ZMgQ7du3T+Hh4QoPD9fBgwez1P3yyy/1448/yt/fP78vAwAAAABQhNi0nZgkubm56ciRI6pYsWJ+xZSj4OBgNWrUSPPmzZMkZWRkKCAgQCNHjtT48eOz1O/du7eSkpK0Zs0ac1mTJk3UoEEDLVy40Fx29uxZBQcH67vvvlOXLl00evRojR492uq42E4MAAAAAIqWfNtOTJIaN26sn3/++R9P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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ + { + "name": "time", + "rawType": "datetime64[ns, UTC]", + "type": "unknown" + }, + { + "name": "soc", + "rawType": "float64", + "type": "float" + }, + { + "name": "q_delivered_kw", + "rawType": "float64", + "type": "float" + }, + { + "name": "t_tank_c", + "rawType": "float64", + "type": "float" + }, + { + "name": "mdot_kg_per_s", + "rawType": "float64", + "type": "float" + } + ], + "ref": "a0e43448-9ed5-4e0d-bb50-c7b24b42ada7", + "rows": [ + [ + "2020-01-01 00:00:00+00:00", + "0.45", + "-41.81554", + "59.0", + "0.5" + ], + [ + "2020-01-01 00:15:00+00:00", + "0.6975000000000001", + "-23.016367000000006", + "63.95", + "0.5" + ], + [ + "2020-01-01 00:30:00+00:00", + "0.833625", + "-12.666252774999993", + "66.6725", + "0.5" + ], + [ + "2020-01-01 00:45:00+00:00", + "0.9084937500000002", + "-6.968749101531251", + "68.169875", + "0.5" + ], + [ + "2020-01-01 01:00:00+00:00", + "0.9496715625000001", + "-3.833510803614755", + "68.99343125", + "0.5" + ] + ], + "shape": { + "columns": 4, + "rows": 5 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
socq_delivered_kwt_tank_cmdot_kg_per_s
time
2020-01-01 00:00:00+00:000.450000-41.81554059.0000000.5
2020-01-01 00:15:00+00:000.697500-23.01636763.9500000.5
2020-01-01 00:30:00+00:000.833625-12.66625366.6725000.5
2020-01-01 00:45:00+00:000.908494-6.96874968.1698750.5
2020-01-01 01:00:00+00:000.949672-3.83351168.9934310.5
\n", + "
" + ], + "text/plain": [ + " soc q_delivered_kw t_tank_c mdot_kg_per_s\n", + "time \n", + "2020-01-01 00:00:00+00:00 0.450000 -41.815540 59.000000 0.5\n", + "2020-01-01 00:15:00+00:00 0.697500 -23.016367 63.950000 0.5\n", + "2020-01-01 00:30:00+00:00 0.833625 -12.666253 66.672500 0.5\n", + "2020-01-01 00:45:00+00:00 0.908494 -6.968749 68.169875 0.5\n", + "2020-01-01 01:00:00+00:00 0.949672 -3.833511 68.993431 0.5" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "# Build a simple charge (hot in) then discharge (cold in) profile\n", + "\n", + "times2 = pd.date_range(start=start3, end=end3, freq=f\"{resol_s}s\", tz=\"utc\", inclusive=\"left\")\n", + "\n", + "mdot2 = np.zeros(len(times2))\n", + "t_in2 = np.full(len(times2), t_low_c)\n", + "\n", + "half2 = len(times2) // 2\n", + "# Charge phase: 0.5 kg/s at 70°C\n", + "mdot2[:half2] = 0.5\n", + "t_in2[:half2] = t_high_c\n", + "# Discharge phase: 0.5 kg/s at 50°C\n", + "mdot2[half2:] = 0.5\n", + "t_in2[half2:] = t_low_c\n", + "\n", + "results2 = []\n", + "for ts, md, ti in zip(times2, mdot2, t_in2):\n", + " ctrl2.time_step(prosumer3, ts)\n", + " ctrl2.input_mass_flow_with_temp = {\n", + " FluidMixMapping.TEMPERATURE_KEY: float(ti),\n", + " FluidMixMapping.MASS_FLOW_KEY: float(md),\n", + " }\n", + " ctrl2.control_step(prosumer3)\n", + " soc, qk = ctrl2.step_results[0]\n", + " results2.append(\n", + " {\n", + " \"time\": ts,\n", + " \"soc\": soc,\n", + " \"q_delivered_kw\": qk,\n", + " \"t_tank_c\": ctrl2.last_result.get(\"temperature\", np.nan),\n", + " \"mdot_kg_per_s\": ctrl2.last_result.get(\"mdot_kg_per_s\", np.nan),\n", + " }\n", + " )\n", + "\n", + "df_hs2 = pd.DataFrame(results2).set_index(\"time\")\n", + "df_hs2.head()" ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Heat demand results\n", - "res2_idx = res2[res2['name'] == 'heat_consumer'].index[0]\n", - "df_hd2 = res2.data_source.loc[res2_idx].df\n", - "fig, axes = plt.subplots(2, 1, figsize=(10, 5), sharex=True)\n", - "print(df_hd2)\n", - "df_hd2.q_received_kw.plot(ax=axes[0], color='C2')\n", - "axes[0].set_ylabel('Demand received power (kW)')\n", - "axes[0].set_title('Part 2 (FluidMixMapping): Heat demand')\n", - "axes[0].grid(True, alpha=0.3)\n", - "df_hd2.q_uncovered_kw.plot(ax=axes[1], color='C3')\n", - "axes[1].set_ylabel('Uncovered demand (kW)')\n", - "axes[1].set_title('Uncovered demand')\n", - "axes[1].grid(True, alpha=0.3)\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,\n", + " 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5])" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mdot2" + ] + }, { - "data": { - "text/plain": [ - "" + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 50.,\n", + " 50., 50., 50., 50., 50., 50., 50., 50., 50., 50., 50.])" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t_in2" ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" }, { - "data": { - "image/png": "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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAKxCAYAAABOj88TAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA8mRJREFUeJzs3XdcU1cbB/BfEkjC3ltExL0VFXHhQHHVumdfcdUOtbXWOto6UFu1tu5t3Xu01da2WvfEXXdVVMTJXrJHzvtHJBIDCgIG8Pf9NE3uueee+9xwgzw5954jEUIIEBEREREREVGhk+o7ACIiIiIiIqLSikk3ERERERERURFh0k1ERERERERURJh0ExERERERERURJt1ERERERERERYRJNxEREREREVERYdJNREREREREVESYdBMREREREREVESbdREREREREREWESTcRURFq0aIFatSoUaA2EhISYG9vj02bNuV7W4lEgilTprzRfsuVK4eBAwe+tt7atWshkUhw//79N9pPUbVVEryt423UqBHGjh1bpPsobEeOHIFEIsHOnTv1HUqRyMjIwNixY+Hq6gqpVIouXbroOyQiIioiTLqJqNjKSkiyHkqlEpUqVcKIESMQFhZWaPtJSkrClClTcOTIkTzVv3nzJsaOHYs6derAzMwMTk5O6NixI86fP19oMWU3f/58mJmZoU+fPpqyKVOmaL032R/Lli0rkjjyo0WLFpBIJKhYsWKO6/fv36+Jt7CSqnLlykEikcDX1zfH9StXrtTss6h+VsXVuHHjsHjxYoSGhr7R9lnv7esea9euLdzACyAiIgKff/45qlSpAiMjI9jb26Nhw4YYN24cEhISdOrv2bMH7dq1g42NjeZ3zZgxYxAVFZXrPo4cOYJu3brB0dERcrkc9vb2eO+99/Drr7++Nr7Vq1dj9uzZ6NGjB9atW4cvvviiQMdb1L7//nvs2rVL32EUO0+ePMGUKVNw6dIlfYdCRMWYgb4DICJ6nalTp8Ld3R0pKSk4ceIEli5dir/++gvXrl2DsbFxgdtPSkpCQEAAAHWy+Do///wzVq1ahe7du+PTTz9FXFwcli9fjkaNGmHv3r25Jn1vIj09HfPnz8cXX3wBmUyms37p0qUwNTXVKvPy8iqUfd+6dQtS6Zt/N6tUKnHnzh2cPXsWDRs21Fq3adMmKJVKpKSk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bhMaGppj/dDQUM36rLLc6rxsxowZCAgI0CmPiIhAWlpa3g6GiIiIiIgKjRSA8vkDsucPLZLcVpQYQggIQCsZF9kSctXz9VmvVQLP64uX6mV7jRdlL9rMSvSfv4Zu8p+1n+xxZS2rXlpW18+hjtb653WylameL4jsdbLKsh2bVhua7xaytYWXnsWLpex1Xv5SQ2Tfv9a2uut11uVQJznhGX7A6+n9nu7iYMKECVq95/Hx8XB1dYWdnR0vLyciIiIiIiIdsbGxxT/ptrW1hUwmQ1hYmFZ5WFgYHB0dc9zG0dHxlfWznsPCwuDk5KRVp06dOjm2qVAooFDoXkIjlUohlXLKBCIiIiIiItKW11xRrxmlXC6Hp6cnDh48qClTqVQ4ePAgvL29c9zG29tbqz4A7N+/X1Pf3d0djo6OWnXi4+Nx5syZXNskIiIiIiIiKgp6v7x89OjR8Pf3R/369dGwYUPMmzcPiYmJGDRoEABgwIABcHFxwYwZMwAAn3/+OXx8fPDTTz+hY8eO2Lp1K86fP48VK1YAUI8kN2rUKEyfPh0VK1bUTBnm7OyMLl266OswiYiIiIiI6B2k96S7d+/eiIiIwKRJkxAaGoo6depg7969moHQHjx4oNVt37hxY2zevBnffvstvv76a1SsWBG7du3SzNENAGPHjkViYiKGDRuG2NhYNG3aFHv37uUc3URERERERPRW6X2e7uIoLi4OlpaWCAkJ4UBqREREREREpCM2NhZubm6IjY2FhYVFrvX03tNdHEVFRQEA3Nzc9BwJERERERERFWdRUVFMuvPL2toagPrS9le9eUSFrUGDBjh37py+w6B3EM890geed6QPPO9IH3jelU5xcXEoW7asJn/MDZPuHGTdQ25hYQFzc3M9R0PvEplMxnOO9ILnHukDzzvSB553pA8870q3100dxkmoiYqR4cOH6zsEekfx3CN94HlH+sDzjvSB5927jQOp5SA+Ph4WFhaIi4vjN1JERERERESkI695I3u6c6BQKDB58mQoFAp9h0JERERERETFUF7zRvZ0ExERERERERUR9nQTERERERERFREm3URERERERERFhEk3ERERERERURFh0k1ERERERERURJh0ExERERERERURJt1ERERERERERYRJNxEREREREVERYdJNREREREREVESYdBMREREREREVESbdREREREREREWESTcRERERERFREWHSTURERERERFREmHQTERERERERFREm3URERERERERFhEk3EdE74MiRI5BIJDhy5IimbODAgShXrpzeYiqInI7nXaZSqVCjRg189913+g4FEokEU6ZMyVPdcuXKYeDAgUUaj768fGxFec6WK1cOnTp1KvR2Cyo/58KbWrZsGcqWLYvU1NQi3Q8RUUEw6SYiKibWrl0LiUSieSiVSjg7O8PPzw8LFizAs2fP9B0iFVNbtmzBw4cPMWLECH2HouPUqVOYMmUKYmNj9R0KlUIDBw5EWloali9fru9QiIhyZaDvAIiISNvUqVPh7u6O9PR0hIaG4siRIxg1ahTmzJmD33//HbVq1SqU/axcuRIqlapQ2iL9mj17Nvr06QMLCwt9h4Lk5GQYGLz48+LUqVMICAjAwIEDYWlpqVX31q1bkErfje//mzdvjuTkZMjlcn2H8ta8fC4UBaVSCX9/f8yZMwcjR46ERCIp0v0REb2Jd+NfOiKiEqR9+/b44IMPMGjQIEyYMAH79u3DgQMHEB4ejs6dOyM5OblQ9mNoaAiFQlEobeWVSqVCSkrKW91nSfe69+zff//F5cuX0atXr7cYVe6USmWeEy2FQgFDQ8Mijqh4kEqlUCqVJfZLhpSUlHx/SZefc6EgevXqhZCQEBw+fLjI90VE9CZK5m9+IqJ3TKtWrTBx4kSEhIRg48aNWutu3ryJHj16wNraGkqlEvXr18fvv//+2jaz39Odnp4Oa2trDBo0SKdefHw8lEolxowZoylLTU3F5MmTUaFCBSgUCri6umLs2LE691VKJBKMGDECmzZtQvXq1aFQKLB3714AwOPHjzF48GA4ODhAoVCgevXqWL16tc7+Hz16hC5dusDExAT29vb44osv8nz/5pQpUyCRSHDz5k306tUL5ubmsLGxweeff66TyGZkZGDatGnw8PCAQqFAuXLl8PXXX2vta/To0bCxsYEQQlOW1bu2YMECTVlYWBgkEgmWLl1aqO9ZTnbt2gW5XI7mzZsX6bEDwPnz5+Hn5wdbW1sYGRnB3d0dgwcP1ok/6z7eKVOm4KuvvgIAuLu7a26duH//PgDt+57Pnz8PiUSCdevW6Rzjvn37IJFIsGfPHk1ZXs+foiaEwPTp01GmTBkYGxujZcuWuH79uk69nO7pDgoKQvfu3eHo6AilUokyZcqgT58+iIuL09p248aNaNiwIYyNjWFlZYXmzZvjn3/+0dnHiRMn0LBhQyiVSpQvXx7r16/XWh8dHY0xY8agZs2aMDU1hbm5Odq3b4/Lly/nGOvWrVvx7bffwsXFBcbGxoiPjwcA7NixA9WqVYNSqUSNGjXw22+/5ThGxMv3dGedk3fu3NFc+WBhYYFBgwYhKSlJa9vk5GR89tlnsLW1hZmZGTp37ozHjx/neJ+4p6cnrK2tsXv3bp33hIioOODl5UREJcT//vc/fP311/jnn3/w4YcfAgCuX7+OJk2awMXFBePHj4eJiQm2b9+OLl264JdffkHXrl3z1LahoSG6du2KX3/9FcuXL9e6BHbXrl1ITU1Fnz59AKh7Xjt37owTJ05g2LBhqFq1Kq5evYq5c+fi9u3b2LVrl1bbhw4dwvbt2zFixAjY2tqiXLlyCAsLQ6NGjTQJpp2dHf7++28MGTIE8fHxGDVqFAD1H96tW7fGgwcP8Nlnn8HZ2RkbNmzAoUOH8vXe9erVC+XKlcOMGTNw+vRpLFiwADExMVpJydChQ7Fu3Tr06NEDX375Jc6cOYMZM2bgv//+w2+//QYAaNasGebOnYvr16+jRo0aAIDjx49DKpXi+PHj+OyzzzRlADSJcGG8Z7k5deoUatSokWuPcWEde3h4ONq2bQs7OzuMHz8elpaWuH//Pn799ddcY+vWrRtu376NLVu2YO7cubC1tQUA2NnZ6dStX78+ypcvj+3bt8Pf319r3bZt22BlZQU/Pz8AyPP5k5u4uDikp6e/sg6g7qk1NTV9ZZ1JkyZh+vTp6NChAzp06ICLFy+ibdu2SEtLe+V2aWlp8PPzQ2pqKkaOHAlHR0c8fvwYe/bsQWxsrOZWgYCAAEyZMgWNGzfG1KlTIZfLcebMGRw6dAht27bVtHfnzh306NEDQ4YMgb+/P1avXo2BAwfC09MT1atXBwDcu3cPu3btQs+ePeHu7o6wsDAsX74cPj4+uHHjBpydnbVinDZtGuRyOcaMGYPU1FTI5XL8+eef6N27N2rWrIkZM2YgJiYGQ4YMgYuLy2vfzyy9evWCu7s7ZsyYgYsXL+Lnn3+Gvb09Zs2apakzcOBAbN++Hf/73//QqFEjHD16FB07dsy1zXr16uHkyZN5joGI6K0SRERULKxZs0YAEOfOncu1joWFhahbt65muXXr1qJmzZoiJSVFU6ZSqUTjxo1FxYoVNWWHDx8WAMThw4c1Zf7+/sLNzU2zvG/fPgFA/PHHH1r77NChgyhfvrxmecOGDUIqlYrjx49r1Vu2bJkAIE6ePKkpAyCkUqm4fv26Vt0hQ4YIJycnERkZqVXep08fYWFhIZKSkoQQQsybN08AENu3b9fUSUxMFBUqVNA5npxMnjxZABCdO3fWKv/0008FAHH58mUhhBCXLl0SAMTQoUO16o0ZM0YAEIcOHRJCCBEeHi4AiCVLlgghhIiNjRVSqVT07NlTODg4aLb77LPPhLW1tVCpVIX2nuWmTJkyonv37kV+7L/99ttrz8+s+CdPnqxZnj17tgAggoODdeq6ubkJf39/zfKECROEoaGhiI6O1pSlpqYKS0tLMXjwYE1ZXs+f3Pj4+AgAr31kjy0n4eHhQi6Xi44dO2p+1kII8fXXX+ts//Jn8N9//xUAxI4dO3JtPygoSEilUtG1a1eRmZmptS77/tzc3AQAcezYMa3YFAqF+PLLLzVlKSkpOu0EBwcLhUIhpk6dqhNr+fLldd7LmjVrijJlyohnz55pyo4cOSIAaP0+EUL3XMg6J7P/LIUQomvXrsLGxkazfOHCBQFAjBo1SqvewIEDddrMMmzYMGFkZKRTTkRUHPDyciKiEsTU1FQzinl0dDQOHTqEXr164dmzZ4iMjERkZCSioqLg5+eHoKAgPH78OM9tt2rVCra2tti2bZumLCYmBvv370fv3r01ZTt27EDVqlVRpUoVzT4jIyPRqlUrANC5r9LHxwfVqlXTLAsh8Msvv+C9996DEEKrDT8/P8TFxeHixYsAgL/++gtOTk7o0aOHZntjY2MMGzYsH+8aMHz4cK3lkSNHatrP/jx69Gitel9++SUA4M8//wSg7qGtUqUKjh07BgA4efIkZDIZvvrqK4SFhSEoKAiAuqe7adOmmkGdCvqevUpUVBSsrKyK/NizBkHbs2dPnnqJ30Tv3r2Rnp6u1Xv+zz//IDY2VnMO5uf8yc1PP/2E/fv3v/YxduzYV7Zz4MABpKWl6Qzg9bqedgCanux9+/bpXFqdZdeuXVCpVJg0aZLOveAvDxhWrVo1NGvWTLNsZ2eHypUr4969e5oyhUKhaSczMxNRUVEwNTVF5cqVc3zP/P39YWRkpFl+8uQJrl69igEDBmhdAeDj44OaNWu+9pizfPzxx1rLzZo1Q1RUlOby9azbKT799FOtelnnbk6srKyQnJyc63tJRKRPvLyciKgESUhIgL29PQD15aRCCEycOBETJ07MsX54eHieL/s0MDBA9+7dsXnzZqSmpkKhUODXX39Fenq6VtIdFBSE//77L8dLhLP2mZ27u7vWckREBGJjY7FixQqsWLHilW2EhISgQoUKOglG5cqV83RMWSpWrKi17OHhAalUqrm3OCQkBFKpFBUqVNCq5+joCEtLS4SEhGjKmjVrpklUjx8/jvr166N+/fqwtrbG8ePH4eDggMuXL6Nfv36abQr6nr2OyHaP+csK69h9fHzQvXt3BAQEYO7cuWjRogW6dOmCfv36FdqAfLVr10aVKlWwbds2DBkyBID60nJbW1vNFxT5OX9y4+npWSjxZr03L7/HdnZ2r/wiBFD/jEePHo05c+Zg06ZNaNasGTp37owPPvhAk5DfvXsXUqk0T1/AlC1bVqfMysoKMTExmmWVSoX58+djyZIlCA4ORmZmpmadjY1NjjFml3W8L58rWWWv+7Ijt1iz3quYmBiYm5trzsmX95/TfrNkfQY4ejkRFUdMuomISohHjx4hLi5O84dn1kjCY8aM0dzr+rJX/ZGakz59+mD58uX4+++/0aVLF2zfvh1VqlRB7dq1NXVUKhVq1qyJOXPm5NiGq6ur1nL2nrLscX/wwQc69+5mKaxp0XKT2x/mefmDvWnTpli5ciXu3buH48ePo1mzZpBIJGjatCmOHz8OZ2dnqFQqrV7Hgr5nr2JjY6OVWL3Omx67RCLBzp07cfr0afzxxx/Yt28fBg8ejJ9++gmnT59+7b3PedW7d2989913iIyMhJmZGX7//Xf07dtXMwp2YZw/0dHRr73nGlD/HIpyGraffvoJAwcOxO7du/HPP//gs88+09x7X6ZMmXy1JZPJcizP/oXM999/j4kTJ2Lw4MGYNm0arK2tIZVKMWrUqBxHJs/PeVjYseZXTEwMjI2NiyxmIqKCYNJNRFRCbNiwAQA0CXb58uUBqAdB8/X1LZR9NG/eHE5OTti2bRuaNm2KQ4cO4ZtvvtGq4+HhgcuXL6N169Zv1KtkZ2cHMzMzZGZmvjZuNzc3XLt2DUIIrX3dunUrX/sMCgrS6jW7c+cOVCqVZoAyNzc3qFQqBAUFoWrVqpp6YWFhiI2NhZubm6YsK5nev38/zp07h/HjxwNQv3dLly6Fs7MzTExMtHpTC/qevUqVKlUQHByc6/rCPHYAaNSoERo1aoTvvvsOmzdvRv/+/bF161YMHTo0x/3n93h79+6NgIAA/PLLL3BwcEB8fLxmED8gf+dPbrp164ajR4++tp6/vz/Wrl2b6/qs9yYoKEjzeQTUvfF5/SKkZs2aqFmzJr799lucOnUKTZo0wbJlyzB9+nR4eHhApVLhxo0bqFOnTp7ae5WdO3eiZcuWWLVqlVZ5bGysZpC7V8k63jt37uisy6nsTWWdk8HBwVpXEbxqH8HBwVrnLxFRccJ7uomISoBDhw5h2rRpcHd3R//+/QEA9vb2aNGiBZYvX46nT5/qbBMREZHv/UilUvTo0QN//PEHNmzYgIyMDK1LywH1yMOPHz/GypUrdbZPTk5GYmLiK/chk8nQvXt3/PLLL7h27dor4+7QoQOePHmCnTt3asqSkpJyvaw4N4sXL9ZaXrhwIQD1nOhZ+wGAefPmadXL6pnOPmqyu7s7XFxcMHfuXKSnp6NJkyYA1Mn43bt3sXPnTjRq1EhrfuKCvmev4u3tjWvXruU6jVphHXtMTIxOT2RWIviqKdxMTEwAqBO7vKhatSpq1qyJbdu2Ydu2bXByctKaDi0/509uCuuebl9fXxgaGmLhwoVa783L72VO4uPjkZGRoVVWs2ZNSKVSzfvZpUsXSKVSTJ06Vacn+k16hWUymc52O3bsyPPYD87OzqhRowbWr1+PhIQETfnRo0dx9erVfMeTm6wvFpcsWaJVnnXu5uTixYto3LhxocVARFSY2NNNRFTM/P3337h58yYyMjIQFhaGQ4cOYf/+/XBzc8Pvv/8OpVKpqbt48WI0bdoUNWvWxIcffojy5csjLCwMgYGBePTokc78u3nRu3dvLFy4EJMnT0bNmjV1eo/+97//Yfv27fj4449x+PBhNGnSBJmZmbh58ya2b9+Offv2oX79+q/cx8yZM3H48GF4eXnhww8/RLVq1RAdHY2LFy/iwIEDiI6OBgB8+OGHWLRoEQYMGIALFy7AyckJGzZsgLGxcb6OKTg4GJ07d0a7du0QGBiIjRs3ol+/fprL5mvXrg1/f3+sWLECsbGx8PHxwdmzZ7Fu3Tp06dIFLVu21GqvWbNm2Lp1K2rWrKm5H7VevXowMTHB7du3te7nLqz3LDfvv/8+pk2bhqNHj2pNIVXYx75u3TosWbIEXbt2hYeHB549e4aVK1fC3Nxck7jnJKvH/5tvvkGfPn1gaGiI9957T5OM56R3796YNGkSlEolhgwZojOIWF7Pn9fFVFB2dnYYM2YMZsyYgU6dOqFDhw74999/8ffff7+25/jQoUMYMWIEevbsiUqVKiEjIwMbNmzQfKkAqG8P+eabbzBt2jQ0a9YM3bp1g0KhwLlz5+Ds7IwZM2bkK95OnTph6tSpGDRoEBo3boyrV69i06ZNWr30r/P999/j/fffR5MmTTBo0CDExMRg0aJFqFGjhlYiXhCenp7o3r075s2bh6ioKM2UYbdv3wage/XEhQsXEB0djffff79Q9k9EVOj0MWQ6ERHpypoyLOshl8uFo6OjaNOmjZg/f76Ij4/Pcbu7d++KAQMGCEdHR2FoaChcXFxEp06dxM6dOzV18jJlWBaVSiVcXV0FADF9+vQc95mWliZmzZolqlevLhQKhbCyshKenp4iICBAxMXFaeoBEMOHD8+xjbCwMDF8+HDh6uoqDA0NhaOjo2jdurVYsWKFVr2QkBDRuXNnYWxsLGxtbcXnn38u9u7dm68pw27cuCF69OghzMzMhJWVlRgxYoRITk7Wqpueni4CAgKEu7u7MDQ0FK6urmLChAla07FlWbx4sQAgPvnkE61yX19fAUAcPHiwSN6z3NSqVUsMGTKkSI/94sWLom/fvqJs2bJCoVAIe3t70alTJ3H+/HmttpDDlE7Tpk0TLi4uQiqVak0f9vKUYVmCgoI0n4MTJ07keMx5PX+KWmZmpggICBBOTk7CyMhItGjRQly7dk3n2F7+DN67d08MHjxYeHh4CKVSKaytrUXLli3FgQMHdPaxevVqUbduXc154+PjI/bv369Z7+bmJjp27KiznY+Pj/Dx8dEsp6SkiC+//FITa5MmTURgYKBOvaxYc5vObOvWraJKlSpCoVCIGjVqiN9//110795dVKlSRavey+dC1jkZERGhVS/rd1/2aeUSExPF8OHDhbW1tTA1NRVdunQRt27dEgDEzJkztbYfN26cKFu2rNY0akRExYlEiAKMWkFERFSMTZkyBQEBAYiIiMjTPasl1YYNGzB8+HA8ePBAM7XXu3LsVDzUqVMHdnZ22L9/f5Ht49KlS6hbty42btyouc0mNTUV5cqVw/jx4/H5558X2b6JiAqC93QTERGVcP3790fZsmV17t8mKmzp6ek696IfOXIEly9fRosWLQptP8nJyTpl8+bNg1Qq1brHf82aNTA0NNSZ+5uIqDjhPd1EREQlnFQqzXFQMaLC9vjxY/j6+uKDDz6As7Mzbt68iWXLlsHR0bFQE98ffvgBFy5cQMuWLWFgYIC///4bf//9N4YNG6Y1xd7HH3/MhJuIij0m3URERESUJ1ZWVvD09MTPP/+MiIgImJiYoGPHjpg5cyZsbGwKbT+NGzfG/v37MW3aNCQkJKBs2bKYMmWKzhSGREQlAe/pJiIiIiIiIioivKebiIiIiIiIqIjw8vIcqFQqPHnyBGZmZjpzQRIREREREREJIfDs2TM4OztDKs29P5tJdw6ePHmiNUgHERERERERUU4ePnyIMmXK5LqeSXcOzMzMAAAhISGa+U6JiIiIiIiIssTGxsLNzU2TP+aGSXcOsi4pNzc3h7m5uZ6jISIiIiIiouJGpVIBwGtvSeZAakRERERERERFhEk3ERERERERURFh0k1ERERERERURJh0ExER0dulygTOLAfuHtZ3JEREREWuRCfdM2fOhEQiwahRozRlKSkpGD58OGxsbGBqaoru3bsjLCxMf0ESERGRtvOrgb/HAhu6AMdmA0LoOyIiIqIiU2KT7nPnzmH58uWoVauWVvkXX3yBP/74Azt27MDRo0fx5MkTdOvWTU9REhERkZbUBODoDy+WD00HfvsIyEjVX0xERERFqEQm3QkJCejfvz9WrlwJKysrTXlcXBxWrVqFOXPmoFWrVvD09MSaNWtw6tQpnD59Wo8RExEREQDg9FIgMRywKge0nw1IZMCVbcC694CECH1HR0REVOhK5Dzdw4cPR8eOHeHr64vp06dryi9cuID09HT4+vpqyqpUqYKyZcsiMDAQjRo1yrG91NRUpKa++IY9Pj4egHretay514iIiKiAkqIgOTkfEgCqlt8ANXoANhUg2eEPycMzED+3guizFbCvqu9IiYiIXiuvuWKJS7q3bt2Kixcv4ty5czrrQkNDIZfLYWlpqVXu4OCA0NDQXNucMWMGAgICdMojIiKQlpZW4JiJiIgIMDs1AyZpz5BuWw1Rdk2B8HDAtBpkXbbC6u+PYRD7AGJVG8S2mYe0ss31HS4REdErxcXF5aleiUq6Hz58iM8//xz79++HUqkstHYnTJiA0aNHa5bj4+Ph6uoKOzs7nQSeiIiI3kDcQ0iubwYAyNpOhb2D44t19vaA62GI7f+D9MEpWP39EYTfDKDBh4BEoqeAiYiIXk0ul+epXolKui9cuIDw8HDUq1dPU5aZmYljx45h0aJF2LdvH9LS0hAbG6uVLIeFhcHR0TGHFtUUCgUUCoVOuVQqhVRaIm97JyIiKl6OzgIy04ByzSCt6KubTJvaAgN2A39+Acm/GyHZOw6IvA20nwXIDPUTMxER0SvkNVcsURll69atcfXqVVy6dEnzqF+/Pvr37695bWhoiIMHD2q2uXXrFh48eABvb289Rk5ERPQOC/8PuLxF/dp3Su691wZyoPMioM1UABLg/CpgUw8gOfYtBUpERFT4SlRPt5mZGWrUqKFVZmJiAhsbG035kCFDMHr0aFhbW8Pc3BwjR46Et7d3roOoERERURE7OBUQKqDqe0CZ+q+uK5EATT4HbCoAvwwF7h0BVrUB+m4FbDzeSrhERESFqUT1dOfF3Llz0alTJ3Tv3h3NmzeHo6Mjfv31V32HRURE9G56cBq49RcgkQKtJuV9uyodgcF7AXMX9WXmP7cG7p8oujiJiIiKiEQIIfQdRHETHx8PCwsLxMTEcCA1IiKiNyUEsKY98CAQqDcA6Lww/208CwW29AWeXASkhsB784C6HxR6qERERPkVGxsLKysrxMXFwdzcPNd6pa6nm4iIiIqJoH/UCbeBEvAZ/2ZtmDkCA/8EqnUBVOnA7uHA/klAHudGJSIi0jcm3URERFT4VJnAgQD164bDAAuXN29Lbgz0WAM0H6tePjkf2PYBkJpQ8DiJiIiKGJNuIiIiKnxXdwDh1wGlBdD0i4K3J5UCrb4Buq0EZHLg1p/AmnZA3OOCt01ERFSEmHQTERFR4cpIBQ59p37dZBRgbF14bdfqBfjvAYxtgdCrwMpWwOMLhdc+ERFRIWPSTURERIXr/Gog7gFg5gR4fVz47Zf1Aj48BNhVBRJCgTUdgOu/Ff5+iIiICgGTbiIiIio8qc+AY7PVr33Gqe/HLgpWbsCQf4AKbYCMFGDHQODobPWI6URERMUIk24iIiIqPKcWAUlRgE0FoO7/inZfSnOg71bA6xP18uHpwK/DgPSUot0vERFRPhi86YbBwcE4fvw4QkJCkJSUBDs7O9StWxfe3t5QKpWFGSMRERGVBAkRQOAi9etW3wKyN/4zI+9kBkD7mYBtReCvr4Cr24HYEKD3JsDUruj3T0RE9Br5/tdw06ZNmD9/Ps6fPw8HBwc4OzvDyMgI0dHRuHv3LpRKJfr3749x48bBzc2tKGImIiKi4ujYbCAtAXCuq55X+21qMASwLg9s9wcengF+bgX03QY4VHu7cRAREb0kX5eX161bFwsWLMDAgQMREhKCp0+f4sKFCzhx4gRu3LiB+Ph47N69GyqVCvXr18eOHTuKKm4iIiIqTqKD1QOoAYDvFEAiefsxeLQEhh4ArNyB2AfAqrZA0P63HwcREVE2EiHyPuLIvn374Ofnl6e6UVFRuH//Pjw9Pd84OH2Jj4+HhYUFYmJiYGlpqe9wiIiIir9fPlRf2l2+JTBgl35jSYoGtn0AhJwEJFLAbwbg9ZF+vgggIqJSKzY2FlZWVoiLi4O5uXmu9fKVdL8rmHQTERHlQ+hVYFkzAAIYdkR9ebm+ZaQBf34B/LtRvVx/MND+B0BmqN+4iIio1Mhr0p3v0ct9fHwwdepUHDt2DOnp6QUKkoiIiEqBg1MBCKB61+KRcAOAgRzovAhoMxWARH3p+6YeQHKsviMjIqJ3TL6Tbnd3d6xZswYtWrSApaUlfH198d133yEwMBCZmZlFESMREREVV/dPAkH/AFIDoNVEfUejTSIBmnwO9NkEGBoD944Aq9oAUXf1HRkREb1D8p10r127FsHBwbh37x4WLlwIFxcXrFixAk2aNIGVlRXat2+P2bNnF0WsREREVJwIARyYrH5dbwBg46HfeHJTpSMweC9g7gJE3gZ+bg3cP6HvqIiI6B1RaPd037t3D6tXr8bChQuRkJBQonu9eU83ERFRHvy3B9jWX92L/Nm/gJmjviN6tWehwJa+wJOLgNQQeG8eUPcDfUdFREQlVF7v6c73PN3ZhYSE4MiRI5pHeHg4GjVqBB8fn4I0S0RERMWdKvP5vdwAGn1S/BNuQB3joL+AXZ8A138Ddg9X93y3ngJI833xHxERUZ7kO+lev369JsmOjIxE48aN4ePjgw8//BANGjSAoSFHBSUiIir1Lm8BIm8BRlbq+6ZLCkMjoPtqwLYScHQWcHI+EHkH6LYCUJjqOzoiIiqF8n15uVQqRdmyZTF+/HgMGTKkVCbZvLyciIjoFdJTgIWeQPwjoM00oMln+o7ozVzZDuweAWSmAo41gb7bAAsXfUdFREQlRJFNGbZkyRI0atQIAQEBsLe3x3vvvYeffvoJ58+fB6f8JiIiegecW6lOuM1dgIbD9B3Nm6vVCxi4BzCxU881vrIV8PiCvqMiIqJSpkADqd24cQNHjx7VXG6empqKJk2aoGXLlhgzZkxhxvlWsaebiIgoFylxwPzaQHKMeh7sev/Td0QFFxMCbOkDhN8ADJRA12XqOceJiIheIa893YU2evmTJ0+wZMkSjl5ORERUmh2cChz/CbCtDHxyCpAVaEzW4iMlHvhliHrOcQBo+S3QbDQglek3LiIiKraKfPTy8PBwHD58WNPLffv2bRgaGqJRo0Zo2bLlmzZLRERExdWzUOD0UvXr1pNKT8INAEpzoO9W4J9vgdNLgMPT1YPFNR4J1O4LGCr1HSEREZVQ+f7X8tNPP8WRI0dw69YtGBgYoGHDhujRowdatmyJxo0bQ6nkP0pERESl0tEfgPQkoEwDoEpHfUdT+KQyoN0MwK4KsH8SEH0X2DMKOPw94PUR0GCIerR2IiKifMj35eXe3t5o2bIlWrZsiSZNmsDY2LioYtMbXl5ORET0kqi7wOKGgCoDGPgnUK6pviMqWqkJwL8bgFOL1IPGAYDcFPAcCDT6lKOcExFR0Y1eHhgYiO+//x5eXl65Jtx37tzJb7N5NmPGDDRo0ABmZmawt7dHly5dcOvWLa06KSkpGD58OGxsbGBqaoru3bsjLCysyGIiIiIq9Q5NVyfcFdqU/oQbUM/Z3egT4PNLQNcVgH11IC0BCFwEzK8F/PYJEP6fvqMkIqISIN9Jd5aOHTsiJSVFp/zWrVto0aJFQWJ6paNHj2L48OE4ffo09u/fj/T0dLRt2xaJiYmaOl988QX++OMP7NixA0ePHsWTJ0/QrVu3IouJiIioVHvyL3D9VwASwHeyvqN5u2SGQO3ewCcngf47gXLN1F8+XN4MLGkEbO4NhJwCOG0qERHl4o1HL2/fvj0kEgl+//13GBiobw3/77//0KpVK/Tq1Qvz588v1EBzExERAXt7exw9ehTNmzdHXFwc7OzssHnzZvTo0QMAcPPmTVStWhWBgYFo1KiRThupqalITU3VLMfHx8PV1RVRUVG8vJyIiN55ko3dILl3GKJmT4iuK/Qdjv49vgDJqQXAf39AAvWfUcKlAUSTz4DKHQDJG/dpEBFRCRIbGwsbG5uiG738119/ha+vL/r374+tW7fi+vXraN26Nfr37485c+a8abP5FhcXBwCwtrYGAFy4cAHp6enw9fXV1KlSpQrKli2ba9I9Y8YMBAQE6JRHREQgLS2tiCInIiIq/uSPAmF97zCE1BCRNT9CZni4vkPSP0NXwGc2ZLWHw+TKahjd+g2Sx+cg2f4/ZFiUQ2KdoUiu9D4gk+s7UiIiKkJZuejrFGie7tjYWLRo0QIVK1bEsWPHMGDAAMyePftNm8s3lUqFzp07IzY2FidOnAAAbN68GYMGDdLquQaAhg0bomXLlpg1a5ZOO+zpJiIiyoEQkKzyheTJRYgGH0K0/0HfERVPCWGQnF0BnF8FSYr6DzBh6gDh9THgOQhQWug5QCIiKgpF0tMdHx+vtSyVSrFt2za0adMG3bt3x8SJEzV1XrXTwjJ8+HBcu3ZNk3C/KYVCAYVCoVMulUohlfISMSIiekdd3wU8uQgYmkDiMxYS/puYM3Mn9b3uzUYDF9YBp5dAEv8YkoMBwPE5QP1B6kHZzJ31HSkRERWivOaK+frX09LSElZWVlqPatWq4dGjR1i2bBmsrKw0dYraiBEjsGfPHhw+fBhlypTRlDs6OiItLQ2xsbFa9cPCwuDo6FjkcREREZUKmRnAoWnq141HAKb2+o2nJFCYqd+rzy4BXZYBdlWBtGfAqQXAvFrAruFAxK3XNkNERKVLvnq6Dx8+XFRx5JkQAiNHjsRvv/2GI0eOwN3dXWu9p6cnDA0NcfDgQXTv3h2AekT1Bw8ewNvbWx8hExERlTz/bgCi7gDGNoD3CH1HU7IYyIE6fYFavYE7+4GT84GQk8CljepH5Q5Ak8+BsrrjzBARUelToHu69eHTTz/F5s2bsXv3blSuXFlTbmFhASMjIwDAJ598gr/++gtr166Fubk5Ro4cCQA4depUnvYRHx8PCwsLxMTE8J5uIiJ696QlAQvqAgmhQLuZ6kujqWAengNOzgNu/gk8H/Ecrl5Ak1FApXYAL90nIipxYmNjYWVl9dp7uvOVdD948ABly5bNcxCPHz+Gi4tLnuvnhUQiybF8zZo1GDhwIAAgJSUFX375JbZs2YLU1FT4+flhyZIleb68nEk3ERG9007MBQ5MASzKAiPPAwa6457QG4oMAk4tBC5vATKfz5BiWwlo/BlQqxffayKiEqRIkm4HBwd06dIFQ4cORYMGDXKsExcXh+3bt2P+/PkYNmwYPvvss/xHr2dMuomI6J2VHAPMrw2kxKnvS67TV98RlU7PQoEzy4Bzq4HU51POmDmpryrwHMgRz4mISoAiSbqjoqLw3XffYfXq1VAqlfD09ISzszOUSiViYmJw48YNXL9+HfXq1cPEiRPRoUOHQjmYt41JNxERvbP2T1Lfg2xfDfj4BCCV6Tui0i0lHriwFji9BHj2VF2mMAfqD1Yn4GYcBJaIqLgqkqQ7S3JyMv7880+cOHECISEhSE5Ohq2tLerWrQs/Pz/UqFGjQMHrG5NuIiJ6J8U9BhbWAzJSgL7bgMrt9B3RuyMjDbi6Q/2FR+TzEc5lcqB2H/Wl57YV9RsfERHpKNKku7Rj0k1ERO+k30cCF9cDZb2BQX8DuYyjQkVIpQKC9qmT7weBzwslQJWO6hHPXRvqNTwiInohr0k3h8okIiIiIOI28O9G9WvfKUy49UUqBSq3BwbvBQb/A1TuCEAAN/cAq9oAq9sDt/aqk3MiIioR8jVPNxEREZVSh6YBQgVUas/5o4uLsl5A2c3qL0ROLQAubwUenFI/zF0A9+ZAuWaAezPAMu+zyxAR0dvFy8tzwMvLiYjonfLoAvBzKwAS4JNTgEM1fUdEOYl/CpxZCpxfA6TGa6+zdFMn3+Waq5/NnfUTIxHRO4T3dBcAk24iInpnCAGsew+4fxyo3Q/oulTfEdHrpCUBD08DwcfVP7fHFwGRqV3H2uN5Et5M3SNuaq+fWImISrG8Jt28vJyIiOhddvegOnGTyYGWE/QdDeWF3BjwaKV+AEDqM+DBaSD4mPpn+fQyEH1X/biwVl3HtvKLJLxcM8DERm/hExG9a/KVdP/+++95rtu5c+d8B0NERERvkUoFHJiift1gKO8LLqkUZkDFNuoHACTHqkc+Dz4O3D8GhF5VT0MWeQs497O6jn31bEl4E8DISm/hExGVdvm6vFwq1R7sXCKRIPvmkmwjnWZmvnSZUwnCy8uJiOidcHUn8MsQQG4GfH6ZvZ+lVVI0cP+Euhc8+DgQ8d9LFSSAY031ZejuzdVTxilzv0ySiIjUiuTyclW26SkOHDiAcePG4fvvv4e3tzcAIDAwEN9++y2+//77NwybiIiI3oqMNODQdPXrJp8x4S7NjK2Bap3VDwBIiFAn4FlJeFQQEHpF/QhcBEhkgHOdFyOjuzYCFKZ6PQQiopLsjQdSq1GjBpYtW4amTZtqlR8/fhzDhg3Df/+9/C1qycGebiIiKvXOrgT+GgOY2AOf/cuk6l0W//R5T/gxdRIeE6y9XmoAuHhmS8K9AEMj/cRKRFSMFPlAanfv3s0xIbWwsMD9+/fftFkiIiIqaqkJwNEf1K99xjLhfteZOwG1eqofABD36MXI6MHHgbgHwMMz6sfxH9WD7pVp8CIJL9MAMFDo9xiIiIqxN+7pbt68OZRKJTZs2AAHBwcAQFhYGAYMGICUlBQcPXq0UAN9m9jTTUREpdrR2cDh6YBVOWD4OcBAru+IqDiLua+dhD97or3eQAm4NnwxR7hzPZ5TRPROKPJ5uu/cuYOuXbvi9u3bcHV1BQA8fPgQFStWxK5du1ChQoU3i7wYYNJNRESlVmIUML82kPYM6Pbzi95NorwQAoi+92J6suDjQGK4dh0DI8DGA7B2B6zLv3hYuQPmLsBLA/MSEZVURZ50A4AQAvv378fNmzcBAFWrVoWvr6/WKOYlEZNuIiIqtfZ9ox4sy7EmMOwYEyAqGCGAyNvqJDz4mPre8OTo3OvLFOorLKzLZ0vKnz9blAVkb3znIxHRW/dWku4sKSkpUCgUJT7ZzsKkm4iISqXYh8DCekBmGtD/F6Cir74jotJGpVL3hGd/xAQ/fw4BVOm5bys1ACxctXvHsxJySzfAUPn2joOIKA+KfCA1lUqF7777DsuWLUNYWBhu376N8uXLY+LEiShXrhyGDBnypk0TERFRUTgyQ51wl2sGVGit72ioNJJKAdsK6sfLMjOA+EdAdHC2pDz4RVKekaJ+HRMM3D340sYSwKJMtl7ybEm5lTsHAySiYu2Nk+7p06dj3bp1+OH/7d13eBRV38bxeze9N0ICoST03gUpIgoS0BcLWBALIIJSbCAqihR9FEQFLBSxoDyPKPaOgoAooYp06VUCAQwphIS0nfePJUuWJJCEbDbl+9G9dufM7JnfhrkI956ZM9OmaejQobb2Zs2aaebMmYRuAADKkpM7pS2fWF/3mCRVkLPTUI64uFpDc1CkVPc6+3UWi5QSdyGI242WH7TOQZD0j/Vx6I+8ffuG2V87nvvUda+g0vh0AFCgYofuBQsWaN68eerevbsefvhhW3vLli1t13gDAIAyYtkLkmGRGv2fVKOds6sB7JnNkn916yOyi/06w5BS4/MG8ZzXaaellBPWx5E1efv2CrIfHQ+oIXmHSF7B1mfvEMkrUDK7lMpHBVD5FDt0x8bG5jtDucViUWbmJa7XAQAApevIWmn3T5LJLHWf4OxqgKIxmSSfKtZHzfZ516clXjhF3RbIzy+nxElpCVLsRuuj4J1Yg/fFYdw7KFcwz90ebA3zBHUAhVDs0N2kSRP98ccfql27tl37F198odatW19xYQAAoAQYhvTrJOvrVvdIoQ2dWg5Q4rwCJa/WUvV8/v2Zcdb+uvH4/dKZOOvoeGq89XEuSZJhDedpCUXY8fmgfnEY9w7OP6R7hxDUgUqq2KF7woQJGjhwoGJjY2WxWPTVV19p9+7dWrBggX744YeSrBEAABTX3iXWU25dPaVu45xdDVC63H2k8GbWR0Gys6xhOzXePoynnr7wfHH7uUTZBfXT+wtZkEnyDMg/jOcsu/ta63bztj7cc55ztXGrP6BcKXbovuWWW/T999/rhRdekI+PjyZMmKA2bdro+++/1w033FCSNQIAgOKwZEu/Tra+bj9MCohwbj1AWeTiKvmGWh+FlRPU8w3p8RdCfO72nKB+LtH6KHRQz4er50VB3OvCa3dvyc3nfNv51znBPff6gtpcPZloEShhxQrdWVlZevnll/XAAw9o6dKlJV1TiZg1a5ZeffVVxcXFqWXLlnrrrbfUvn0+1wEBAFBRbftcOrlD8giQujzh7GqAiqO4Qf1cYgEh/fT55dNSRoqUmSplpEqZZ6XMtPOvUyUZ1r6yzlkfaacd8OFMBYywe1mfXdwkF/fzj8u9divi9gW8Nrsxuo9yrVih29XVVdOmTdP9999f0vWUiEWLFmn06NGaO3euOnTooJkzZyo6Olq7d+9W1apVnV0eAACOl5UuLX/J+rrLY9bTVgE4j4vrhQnhisMwrAE8M9U+lOcE8oyzF9ZnnL1EW2r+fWSn5+zofNg/W2IfvUSYXAoI9bnazK7Wa+ZNLtZnu9eu1skkbW2F3NbseqHdZL7ofa7WLwPs3pdPfznbmkznH+YLD120bDJLJuVty7NdPn2VxHZwiGKfXt69e3etXLlSkZGRJVhOyZg+fbqGDh2qwYMHS5Lmzp2rH3/8UR988IGeeeaZPNunp6crPT3dtpycnCzJOhO7xWIpnaIBoLQYhvXWUUa29fRjI/v8ck67Jf9lGZffxjj/d+bFbXbbGbn6K2A7XbR9zr4v+axCbpffs4r5vpz32n64F/o732i6aNn+fcVdp3zW5Syff514RKakIzJ8w2W0f8h6H2QA5Zurp/Xh5YAv0SzZBQT6tPMhPFXKPCdlZ0jZmZIl0/balJ1xoT3f54vaLDnLBW9nMrLt6zOypaw06wMOZSgngF/8rHzacj9fbv0Vvk+yr8O2fPE6XWLbApYvt20B7aZzWfn/EC9S7NDdu3dvPfPMM9q2bZvatm0rHx8fu/U333xzcbu+IhkZGdq4caPGjbswWYzZbFaPHj20Zk0+926UNGXKFE2ePDlP+6lTp5SRkeGwWgGUIYYhWbJkslj/IWHKzrywnJ1x/jlTJtu6TLu2C88ZBWyTZQu3JlvQzZbJYpGMLGu4tGTLZJxftlis/+A4v60pV0g25YRki/V91u2s7zOd78f6npz27Fx9WfL+QwYVWnKb4UpLSJGU4uxSAJQLJkk+kslH8pD14QyW7Dy/h+1+t1qyLiznDuq235UX/Z48v5z796nt92ue35u5f59azv8OP//71O7Lavtl++0u/v2eff4L0pwvmA2ZlPsL55x1FuuXtXZfQFufTbm//La9Vxf1Y32fKedL8GIw2X0hfeV/lBWZKb1wPyCTYRjF+lGaL3FdhclkUna2c/5Rd+zYMUVERGj16tXq2LGjrf2pp57SypUrtW7dujzvyW+ku2bNmoqPj1dgYGBplA1Asv4Fn3XuwrfqGal5r2vLdYqcya49rZDfquf/bbwpmy/Y8mNc8nQ000XPF52mlu8pc/m9v4DT3GS66HVhnlWMb9iv9Bv6S3yzXqhv2QvzrbrJflUhv6U3/MKldkPO/4wBAJVK7rPMCjy7zDj/pUEhzworiTPEivX+8/vO/b5cTfme+ZXv+wrq5xLbXrwu1883KfmMgjveo6SkJPn7++f5I8hR7JHuinTatYeHhzw88n6NZzabL/nlAlApZWfaXxN22evGciaBOVvwKWu5ry+7gm9mS9xlJ4cpwgQwLrmv88p5nXMdWO7rw8wXXT9W0LVmRdm2oGvYzBfWm1zyCccmmS7/U0IZxp8fAFR23BfekUyJiYXartihO7dz587J09OzJLq6YlWqVJGLi4tOnDhh137ixAmFh4c7qSqgDLJYLjOL6kX3KE2Nl9LPWK/hKg0u7vazptrd4sTL/nYn7udvjeLiUXIzqeZMeAIAAABcgWKH7uzsbL388suaO3euTpw4oT179qhOnTp6/vnnFRkZqSFDhpRknYXm7u6utm3batmyZbr11lslWUflly1bplGjRjmlJsDh7AJ0fuE5/sKtSHKWzyVe2aiyyVzAfT7zCcp57hV6mfe5eVtHhgEAAIByrtj/qn3ppZf00Ucfadq0aRo6dKitvVmzZpo5c6bTQrckjR49WgMHDlS7du3Uvn17zZw5U2fPnrXNZg6UabYAXVB4jpdSE+zXpSUUP0B7+FtvJeQdYp0N1Tvk/CP4QnvOOg+/C8HY1YORYAAAAOAyih26FyxYoHnz5ql79+56+OGHbe0tW7bUrl27SqS44rrrrrt06tQpTZgwQXFxcWrVqpV+/vlnhYWFObUuQJJ1MoaUE9LpA3kfSUdLLkDbheh8ArR3iOQVJLm6l+znAwAAAGBT7NAdGxurevXq5Wm3WCzKzCylaz4vYdSoUZxODuexZEvJsbkC9cELzwkHrROGXQ4BGgAAACj3ih26mzRpoj/++EO1a9e2a//iiy/UunXrKy4MKPOyM6XEI7kC9flHwkEp4ZD1dlQFMZmlwFpScJ0Lj6Aoa5tPKAEaAAAAqCCKHbonTJiggQMHKjY2VhaLRV999ZV2796tBQsW6IcffijJGgHnyTxnDdAJB/OeCp74j/W+hgVxcZcCa9sH6+A6UnCUFFCTUA0AAABUAsUO3bfccou+//57vfDCC/Lx8dGECRPUpk0bff/997rhhhtKskbAsdJTLgrVuU4FT46VZBT8XlevC0E6OMo+XPtHWO+HDAAAAKDSMhmGcYlEUTklJycrICBACQkJCgwMdHY5KCkpJ6XDq6V/9144Dfz0AeukZpfi4W8fqINyvfYLZwZvAAAAoBJKTExUUFCQkpKS5O/vX+B2xR7pfvDBB3XvvfeqW7duxe0CcKyz8dLhVdLBP6RDf0inLjGrvldw/qeBB9exTlJGsAYAAABQDMUO3adOnVKvXr0UGhqq/v3765577lGrVq1KsDSgiNISpcMxF0L2ie0XbWCSwppJ1VrkHbn2CnRCwQAAAAAquis6vTwhIUGff/65Fi5cqD/++EONGjXSPffcowEDBigyMrIEyyxdnF5eTqSfkQ6vkQ6utIbs41uV5/rr0MZS1DVS5DVSZBfrrbYAAAAA4AoV9vTyErum++jRo/rkk0/0wQcfaO/evcrKyiqJbp2C0F1GZZyVjqy1BuyDf0jHNuWdPTykfq6QfY3kG+qcWgEAAABUaA6/pju3zMxM/fnnn1q3bp0OHTqksLCwkugWlV1mmvTP+gshO3ajZMm03yYo6nzI7modyfav5pxaAQAAACAfVxS6V6xYoYULF+rLL7+UxWJR37599cMPP+j6668vqfpQmWSlW4P1wd+tIfvoBik73X6bgJrWEeyc0ezAms6pFQAAAAAKodihOyIiQqdPn1avXr00b9489enTRx4eHiVZGyq67EzrKeIHf7eOZh9ZJ2Wl2W/jV80+ZAdFMpM4AAAAgHKj2KF70qRJuuOOO7jmGYVnyZaOb74wu/iRtVJGiv02PqHW08SjulpPGQ+pS8gGAAAAUG4VO3QPHTq0JOtARWSxWG/blTOSfXi1lJ5sv41XkDVkR3a1jmaHNiJkAwAAAKgwihS6+/btqw8//FD+/v7q27fvJbf96quvrqgwlFOJR6Tdi61B+3CMlJZgv94jQIrsfOGU8apNJbPZObUCAAAAgIMVKXQHBATIdH4UMiAgwCEFoZw6vlWKeUPa8bX9bbzcfaVaHS9ck12tpWR2cV6dAAAAAFCKSuw+3RUJ9+kuJMOQDq60hu39yy+01+4s1etuPWW8eivJxc1pJQIAAACAI5TqfbpRyWRnSTu/s4bt45utbSaz1LSv1PlR62g2AAAAAKBoobt169a208sv56+//ipWQSjDMlKlzR9La96WEg5Z21y9pDb3SR1HWm/nBQAAAACwKVLovvXWWx1UBsq01NPShvekdXOl1Hhrm1ew1OEh6aqhkk+Ic+sDAAAAgDKKa7rzwTXd5yUekdbMkv5aIGWmWtsCa0kdH5Fa3yu5ezu3PgAAAABwklK5pjsxMVFffPGF9u/fr7Fjxyo4OFh//fWXwsLCFBERcSVdw5nitkkxb0rbv7wwE3l4c6nz41KTWyUXpgIAAAAAgMIodnraunWrevTooYCAAB06dEhDhw5VcHCwvvrqKx05ckQLFiwoyTrhaIYhHfpDWjVT2r/sQnudblLnx6Q610mFvJ4fAAAAAGBV7NA9evRoDRo0SNOmTZOfn5+t/cYbb9SAAQNKpDiUAkv2hZnIj22ytpnM1hHtzo9K1Vs7tTwAAAAAKM+KHbo3bNigd955J097RESE4uLirqgolILMNGnzQmn1W1LCQWubq5f1Wu2OI6XgKOfWBwAAAAAVgLm4b/Tw8FBycnKe9j179ig0NPSKiirIoUOHNGTIEEVFRcnLy0t169bVxIkTlZGRYbfd1q1bdc0118jT01M1a9bUtGnTHFJPuZR6Wlr5qjSjmfTjaGvg9gqSrn1aemK7dNNrBG4AAAAAKCHFHum++eab9cILL+izzz6TJJlMJh05ckRPP/20+vXrV2IF5rZr1y5ZLBa98847qlevnrZv366hQ4fq7Nmzeu211yRZZx7v2bOnevTooblz52rbtm164IEHFBgYqGHDhjmkrnIh8R9p7Wxp40dS5llrW0AtqdOo8zOR+zi3PgAAAACogIp9y7CkpCTdfvvt+vPPP3XmzBlVr15dcXFx6tixo3766Sf5+JROiHv11Vc1Z84cHThwQJI0Z84cPffcc4qLi5O7u7sk6ZlnntE333yjXbt2FarPCnXLsLjt0uo3pW1fXJiJPKy5dXK0prcxEzkAAAAAFIPDbxkWEBCgpUuXatWqVdq6datSUlLUpk0b9ejRo7hdFktSUpKCg4Nty2vWrFHXrl1tgVuSoqOj9corryghIUFBQUF5+khPT1d6erptOee0eYvFIovF4sDqHcQwpMMxMq1+Q6Z9v15ojuwq4+KZyMvj5wMAAAAAJytsVrziYc4uXbqoS5cuV9pNsezbt09vvfWW7dRySYqLi1NUlP01yWFhYbZ1+YXuKVOmaPLkyXnaT506led68TLNki2PQ7/KZ9O7cj+1TZJkmMw6VydaZ1sOUVbV5tbtTp1yYpEAAAAAUP4lJSUVarsihe4333yz0Ns++uijhd72mWee0SuvvHLJbXbu3KlGjRrZlmNjY9WrVy/dcccdGjp0aKH3lZ9x48Zp9OjRtuXk5GTVrFlToaGh5eP08qxz0pZPZFrztkynrafZG66eUqt7ZFw9Uh7BUfJwcokAAAAAUJHkPrv6UooUumfMmGG3fOrUKaWmptqCaWJiory9vVW1atUihe4xY8Zo0KBBl9ymTp06ttfHjh3Tddddp06dOmnevHl224WHh+vEiRN2bTnL4eHh+fbt4eEhD4+8sdRsNstsLvYE746XliBteF9aN1c6e3702jNQaj9MpvbDJN9QmZxaIAAAAABUTIXNikUK3QcPHrS9XrhwoWbPnq33339fDRs2lCTt3r1bQ4cO1UMPPVSUbhUaGlro24zFxsbquuuuU9u2bTV//vw8H7Rjx4567rnnlJmZKTc3N0nS0qVL1bBhw3xPLS+Xko5Ka2ZLGz/MNRN5Tev9tVvfJ3n4OrU8AAAAAIBVsWcvr1u3rr744gu1bt3arn3jxo26/fbb7QJ6SYmNjVW3bt1Uu3ZtffTRR3JxcbGtyxnFTkpKUsOGDdWzZ089/fTT2r59ux544AHNmDGj0LcMK7OzlxuGdVR7yfOSJdPaFtYs10zkbs6tDwAAAAAqCYfPXn78+HFlZWXlac/Ozs5zendJWbp0qfbt26d9+/apRo0adutyvjsICAjQkiVLNHLkSLVt21ZVqlTRhAkTyv89urMzpZ+etI5uS1LtLlKXJ6R63S/MRA4AAAAAKFOKPdLdp08fxcbG6r333lObNm0kWUe5hw0bpoiICH333XclWmhpKnMj3amnpc8HSgd/l2SSbnhB6vQIYRsAAAAAnKSwI93FniXsgw8+UHh4uNq1a2ebiKx9+/YKCwvTe++9V9xucbF/90nv9bAGbndf6e5PpM6PErgBAAAAoBwo9unloaGh+umnn7R3717t3LlTktSoUSM1aNCgxIqr9A78Jn12v3QuyTpR2t2fSuHNnF0VAAAAAKCQih26c9SvX1/169cvcL2/v782b95sd8svFMKfH0g/PikZ2VKNq6T+CyXfqs6uCgAAAABQBFccui+nmJeMV17ZWdKS8dK6Odbl5ndIN78tuXk6ty4AAAAAQJE5PHSjCM4lSV8MkfYttS5fN17q+iTXbwMAAABAOUXoLisSDkkL75JO7ZJcvaTb5ljvvQ0AAAAAKLcI3WXB4TXSonuk1HjJr5r1+u2INs6uCgAAAABwhRweuk2cGn1pmz+Rvn9Uys6QqrW0zlDuX93ZVQEAAAAASgATqTmLxSItf0FaNcO63LiPdNs7kruPc+sCAAAAAJQYh4fuxYsXKyIiwtG7KV8yzkpfDZN2/WBdvmaMddI0s9m5dQEAAAAASlSxQ/fo0aMLvW2XLl2Ku5uKJ+mo9El/KW6b5OJuvR1Yy7ucXRUAAAAAwAGKHbo3bdqkTZs2KTMzUw0bNpQk7dmzRy4uLmrT5sIkYFzTncvRjdKnd0spJyTvKtYJ02p1cHZVAAAAAAAHKXbo7tOnj/z8/PTRRx8pKChIkpSQkKDBgwfrmmuu0ZgxY0qsyAph+5fSNyOkrHNS1SbWCdOCaju7KgAAAACAA5mMYs50FhERoSVLlqhp06Z27du3b1fPnj117NixEinQGZKTkxUQEKCEhAQFBgZeWWeGIa18RfptinW5frR0+/uSh98V1wkAAAAAcI7ExEQFBQUpKSlJ/v7+BW5X7JHu5ORknTp1Kk/7qVOndObMmeJ2W7FkpknfjrSOcktSx1HSDS9IZhfn1gUAAAAAKBXFDt233XabBg8erNdff13t27eXJK1bt05jx45V3759S6zAcuvMCenTAVLsn5LZVbpputR2oLOrAgAAAACUomKH7rlz5+rJJ5/UgAEDlJmZae3M1VVDhgzRq6++WmIFlktx26SF/aXko5JnoHTXf6Wors6uCgAAAABQyop9TXeOs2fPav/+/ZKkunXrysfHp0QKc6YruqZ710/Slw9KmWelkHrSgM+kkLoOqRMAAAAA4BwOv6Y7h4+Pj1q0aHGl3ZR/hiHFvCH9OkmSIdXpJt3xoeQV5Ny6AAAAAABOc8WhG5Ky0qUfnpA2f2xdbjdE6v2K5OLm3LoAAAAAAE5F6L5SZ+OlRfdKR1ZLJrPU6xWpwzBnVwUAAAAAKAMI3Vfi5C5p4Z1S4mHJw1+6Y75Ur4ezqwIAAAAAlBGE7uLa+6v0xWApPVkKipTuXiRVbeTsqgAAAAAAZQihu6gMQ1o/T/r5GcmwSLU6SXf9T/IJcXZlAAAAAIAyhtBdFNmZ0uKnpT/fty63ukf6vxmSq4dz6wIAAAAAlElmZxdQXOnp6WrVqpVMJpM2b95st27r1q265ppr5OnpqZo1a2ratGlXvsO0BOnj288HbpN0wwvSLbMI3AAAAACAApXb0P3UU0+pevXqedqTk5PVs2dP1a5dWxs3btSrr76qSZMmad68ecXfWfx+6b0bpAO/SW4+Uv+FUufHJJOp+H0CAAAAACq8cnl6+eLFi7VkyRJ9+eWXWrx4sd26jz/+WBkZGfrggw/k7u6upk2bavPmzZo+fbqGDcv/Vl7p6elKT0+3LScnJ0uSLBaLLPtXyvT5/TKdS5ThHyGj/ydSeHPJYnHcBwQAAAAAlGmWQmbCche6T5w4oaFDh+qbb76Rt7d3nvVr1qxR165d5e7ubmuLjo7WK6+8ooSEBAUFBeV5z5QpUzR58uQ87Smr5ilo86syWbKUUbWlEnvNksUcKp08WbIfCgAAAABQriQlJRVqu3IVug3D0KBBg/Twww+rXbt2OnToUJ5t4uLiFBUVZdcWFhZmW5df6B43bpxGjx5tW05OTlbNmjUVuOZlmTxMMpr1k2uft1TFzatkPxAAAAAAoFzKPdB7KWUidD/zzDN65ZVXLrnNzp07tWTJEp05c0bjxo0r0f17eHjIw6OACdG6PSvTtU/JxPXbAAAAAIDzzObCTZFWJkL3mDFjNGjQoEtuU6dOHS1fvlxr1qzJE5DbtWune+65Rx999JHCw8N14sQJu/U5y+Hh4UWqy3LzLKnjfUV6DwAAAAAAOcpE6A4NDVVoaOhlt3vzzTf1n//8x7Z87NgxRUdHa9GiRerQoYMkqWPHjnruueeUmZkpNzc3SdLSpUvVsGHDfE8tv6TGfYq2PQAAAAAAuZSJ0F1YtWrVslv29fWVJNWtW1c1atSQJA0YMECTJ0/WkCFD9PTTT2v79u164403NGPGjFKvFwAAAABQuZWr0F0YAQEBWrJkiUaOHKm2bduqSpUqmjBhQoG3CwMAAAAAwFFMhmEYzi6irElOTlZAQIASEhIUGBjo7HIAAAAAAGVMYmKigoKClJSUJH9//wK3K9x0awAAAAAAoMgI3QAAAAAAOEiFu6a7JOSccZ+cnFzoe68BAAAAACqP5ORkSRfyY0EI3fmIj4+XJNWuXdvJlQAAAAAAyrL4+HgFBAQUuJ7QnY/g4GBJ0pEjRy75wwNK2lVXXaUNGzY4uwxUQhx7cAaOOzgDxx2cgeOuYkpKSlKtWrVs+bEghO585JxSHhAQcMlZ6ICS5uLiwjEHp+DYgzNw3MEZOO7gDBx3FdvlLknmgmWgDBk5cqSzS0AlxbEHZ+C4gzNw3MEZOO4qN+7TnY+c+3Rf7n5rAAAAAIDKqbC5kZHufHh4eGjixIny8PBwdikAAAAAgDKosLmRkW4AAAAAAByEkW4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIO4OruAsshisejYsWPy8/OTyWRydjkAAAAAgDLGMAydOXNG1atXl9lc8Hg2oTsfx44dU82aNZ1dBgAAAACgjPvnn39Uo0aNAtcTuvPh5+cnSTp8+LACAwOdWwwAAAAAoMxJTExU7dq1bfmxIITufOScUu7v7y9/f38nVwMAAAAAKGssFoskXfaSZCZSAwAAAADAQcpd6I6MjJTJZMrzGDlypCTp3LlzGjlypEJCQuTr66t+/frpxIkTTq4aAAAAAFAZlbvQvWHDBh0/ftz2WLp0qSTpjjvukCQ98cQT+v777/X5559r5cqVOnbsmPr27evMkgEAAAAAlZTJMAzD0TtJT0/XunXrdPjwYaWmpio0NFStW7dWVFTUFff9+OOP64cfftDevXuVnJys0NBQLVy4ULfffrskadeuXWrcuLHWrFmjq6++usD60tPTbcvJycmqWbOm4uPjmUgNQJliGIayjWzrw5J9ydcWw6IsS1aBry2GxfYewzBkMSyyyHLhtWGRIetrwzBkkeXC6yvYNs/6869lKN922/vO/2f9//x/xoW2nH0YMmw/q4u3u/g53+3yed+l+pOUZ5uL/8xs63NtZ1t/UVtJ9lXFq4pev/Z1VfGqUpzDDQAAXEJiYqJCQkKUlJR0ybnAHDqRWkxMjN544w19//33yszMVEBAgLy8vHT69Gmlp6erTp06GjZsmB5++OHLzviWn4yMDP3vf//T6NGjZTKZtHHjRmVmZqpHjx62bRo1aqRatWpdMnRPmTJFkydPztN+6tQpZWRkFLkuAGVbtiVbmUamMi2ZyrJkKdNifZ1pWJczLBl52gva1rZ8/pFlZOW7nDvk5g67+b2+VJtFFmf/+FCOHE05qpdjXtYzLZ5xdikAAFQ4SUlJhdrOYaH75ptv1l9//aUBAwZoyZIlateunby8vGzrDxw4oD/++EOffPKJpk+frgULFuiGG24o0j6++eYbJSYmatCgQZKkuLg4ubu75xmdDgsLU1xcXIH9jBs3TqNHj7Yt54x0h4aGMtINlBLDMJSena7UrFSlZqYqLSvN9jo168JyWub59tzrMtOUlpWmDEuGMrIz7EKvbTn7/LIlwzqqWgG5mlxlNpnlYnaRi+n8I9drs8ksV7Nrntcmk8nWZjKZZNb5Z5PZ/rXJLJNMF7a7eH2u1zn9FGpbmS7ZR86zTLJtm/OfrS13+8XPBWwnyb6Gy2xn++z5bCfJtm3O9jltF6/Peb9tfa59FLYf04UOCuznZOpJjf19rJYdX6Z7m9+rNmFtSuIwAwAA57m7uxdqO4eF7ptuuklffvml3Nzc8l1fp04d1alTRwMHDtTff/+t48ePF3kf77//vnr37q3q1atfUa0eHh7y8PDI0242m2U2l7vL3gGHy7Zk5wnFtudcwTgtKy3v+lzPduuzUp0Wht3N7nJzcbM+m92sr12sr3Ovc3VxtW1jW++S6z2XWOdqdrWF4ouDr9lklovJJd/XriZXmc151+cE6pw+c0IqkNua42v05d4vNWXDFC36v0VyNXOnUAAASkphs6LDfvs+9NBDhd62SZMmatKkSZH6P3z4sH799Vd99dVXtrbw8HBlZGQoMTHRboT6xIkTCg8PL1L/QGWRZclSYnqi4tPidfrcaSWcS9Dpc6fzfZzNPKvUzFSdyz7n0Jq8XL3k5eolb1dvebt52z17uXpdeO12YRtPF095uHjkG3hzwnO+YdjkSlhFhfVYm8e09PBS7UnYo8/3fK67G93t7JIAAKh0HPqVd0JCgv73v/9p4MCBeS4sT0pK0oIFC/JdVxjz589X1apVddNNN9na2rZtKzc3Ny1btkz9+vWTJO3evVtHjhxRx44dr+zDAOWExbAoKT0p39CcE6jj0+KVkG59nZReuGtR8uNicskTfi8VlAsK0rmfPV085WJ2KcGfCFB5BXkG6dHWj+o/6/6jtza9pejIaAV7Bju7LAAAKhWHhu63335bW7du1SOPPJJnXUBAgP744w8lJyfrueeeK1K/FotF8+fP18CBA+XqeuEjBAQEaMiQIRo9erSCg4Pl7++vRx55RB07dixwEjWgrDMMQ2cyz+h02oXgHH+u4FHpxPTEIp+mbTaZFegRqGDPYLtHkGeQgj2DFeIZoiDPIPm5+9kFZHezO6PEQBl3e4Pb9cXeL7Tr9C698dcbmtwp78ShAADAcRx6y7BWrVrp9ddfV/fu3fNdv2zZMj355JPatGlTkfpdsmSJoqOjtXv3bjVo0MBu3blz5zRmzBh98sknSk9PV3R0tGbPnl2k08uTk5MVEBCghIQEJlKDQ1kMi06cPaGDyQd1MOmgYlNi7cN02mmdTj+tLEtWkfsO8AhQkMf50OwVYn3tdSFMh3iG2F4HuAcwugxUYJtObtL9i++XJC28caGahzZ3ckUAAJR/iYmJCgoKuuwtwxwauv38/LRjxw7VqlUr3/VHjhxRs2bNlJyc7KgSioXQjZKWmpmqw8mHdTDpoA4lH7I9H0o6VOjro33cfOxGoHOH5otHqAM9A+Vmzn8SQwCV03OrntN3+79T05CmWnjTQplNTBQKAMCVKGzodujp5S4uLjp27FiBofvYsWPMDo4KI/eo9aGkQ3YB+0TqiQLf52pyVU3/mor0j1Qtv1qq4lVFwV7BtpHpnFO7PVzyzrAPAIX1RNsntPzIcu2I36Gv936tfg36ObskAAAqBYeG7tatW+ubb74p8Hrqr7/+Wq1bt3ZkCUCJyxm1to1YJx3SweSDOpx8WGlZaQW+L8gjSFEBUYoMiFSkf6T1tX+kIvwiGJUG4HBVvKpoRKsRmrZhmmb+NVM9avdQgEeAs8sCAKDCc2joHjVqlPr3768aNWpo+PDhcnGxXjOanZ2t2bNna8aMGVq4cKEjSwCKxTAMnUg9oYNJB/OcEh53Nq7A9+UetY4MiFSUf5QtXAd6BpbeBwCAfPRv1F9f7f1K+xL36a1Nb2n81eOdXRIAABWeQ6/plqTnnntOU6ZMkZ+fn+rUqSNJOnDggFJSUjR27FhNnTrVkbsvFq7prjxyj1rnPiX8UPKhy45aXzxiHRUQxag1gDJvQ9wGPfDLAzKbzPr0pk/VOKSxs0sCAKBcKhMTqeVYv369Pv74Y+3bt0+GYahBgwYaMGCA2rdv7+hdFwuhu2I6knxEa4+v1b7EfbZTwi83al3Dr4Z1xDogilFrABXGUyuf0uJDi9UqtJUW9F7Arf8AACiGMhW6yxtCd8WQmpmq9XHrFRMbo5hjMfrnzD/5bhfoEXhhxPr8KeGRAZGq4VeDUWsAFVLc2Tjd/M3NSstK08tdXlafun2cXRIAAOVOmZi9XJKysrKUnp4uHx8fR+8KlZxhGNqTsEerj61WTGyMNp7caHd/a1eTq1pVbaXmVZrbTWgW5BnkxKoBoPSF+4TroRYPaeZfM/X6n6+rW81u8nP3c3ZZAABUSA4N3T/++KOGDx8uNzc3jRgxQmPGjHHk7lAJJaUnac2xNYo5FqPVsat1Mu2k3foI3wh1ieiiTtU7qUO1DvJx48sfAJCk+5rcp2/2faNDyYc0Z8scPXXVU84uCQCACsmhp5c3btxYb7/9tlq2bKkaNWooPj6+XIx4c3p52ZVtydb2+O22U8a3/7tdFsNiW+/p4qmrwq9S54jO6ly9s2r71+ZaRQAoQExsjB7+9WG5mFz0RZ8vVC+onrNLAgCg3CgTp5dbLBaZzWaZzWZZLBZZLJbLvwm4yMnUk7aQvebYGiVnJNutrxdYT52rd1bniM5qE9ZGHi4eTqoUAMqXzhGd1b1Wdy07skxT1k/Rez3f44tKAABKmEND96uvvqqBAwfK1dVV48ePl58f14vh8jKyM7Tp5CbFxMZo1bFV2puw1269n7ufrq52te208XCfcCdVCgDl39irxmpV7Cqtj1uvXw79ol5RvZxdEgAAFYrDZy/PyMhQenp6uQrcnF5e+v5J/kerjq1STGyM1sett7tHtkkmNQ1pqs4RndUloouaVWkmV7PD5wAEgEpjzpY5mr15tqp6V9X3t34vbzdvZ5cEAECZVyZOL5ckd3d3ubu7O3o3KGcudzuvEM8Q23XZHat3ZIZxAHCgwU0H69t93yo2JVbzts7T420fd3ZJAABUGA4L3UeOHFGtWrUKvX1sbKwiIiIcVQ6crLC388oZzW4Q1EBmk9mJFQNA5eHp6qln2j+jR5Y/oo/+/ki31rtVkQGRzi4LAIAKwWGh+6qrrtKtt96qBx98UFdddVW+2yQlJemzzz7TG2+8oWHDhunRRx91VDlwgqLczqt9eHv5uvs6qVIAwLU1rtU1Edfoj9g/NHX9VM3pMYdJ1QAAKAEOC91///23XnrpJd1www3y9PRU27ZtVb16dXl6eiohIUF///23duzYoTZt2mjatGm68cYbHVUKStGBpAP65eAvWnVsFbfzAoByxGQy6en2T2vtt2sVcyxGy/9Zru61uju7LAAAyj2HT6SWlpamH3/8UatWrdLhw4eVlpamKlWqqHXr1oqOjlazZs0cuftiYSK1ojuUdEhztszR4oOLZejCIZVzO69OEZ3UNqwtt/MCgDLuzb/e1Lvb3lV1n+r69tZv5enq6eySAAAokwo7kZrDQ3d5ROguvH+S/9HcrXP1w4EfbKPaXWt0Vfda3bmdFwCUQ6mZqbrl21sUdzZOw1sO14hWI5xdEgAAZVKZmb0cFdOxlGOat3Wevtn3jbKNbElStxrdNKLVCDUOaezk6gAAxeXt5q2x7cZqzMoxen/b++pTt49q+tV0dlkAAJRbhG4USdzZOL279V19te8r2+zjXSK6aGSrkWpWpexdKgAAKLobat+gDtU6aN3xdXp1w6t68/o3nV0SAADlFqEbhXIq9ZTe2/aePt/zuTItmZKkq6tdrZGtRqpV1VbOLQ4AUKJMJpPGtR+n27+7XSv+WaE/jv6ha2pc4+yyAAAolwjduKT4tHi9v/19fbb7M6Vnp0uS2oW108hWI9UuvJ2TqwMAOErdwLq6p/E9+ujvjzR1/VR1qNZB7i7uzi4LAIByh9CNfCWcS9D8HfP16a5PlZaVJklqFdpKo1qPUvvw9tzqCwAqgYdbPqwfD/6oI2eOaMHfC/Rg8wedXRIAAOWOubR29N///ledO3dW9erVdfjwYUnSzJkz9e2335ZWCSiEpPQkvfnXm+r1ZS/N3z5faVlpal6lueb2mKsFvReoQ7UOBG4AqCR83X01pt0YSdK8rfMUdzbOyRUBAFD+lEronjNnjkaPHq0bb7xRiYmJys62znYdGBiomTNnlkYJuIwzGWc0Z/Mc9fqyl97d9q5Ss1LVOLixZnWfpY9v/FidIzoTtgGgErop6ia1qdpGaVlpeu3P15xdDgAA5U6phO633npL7777rp577jm5uLjY2tu1a6dt27aVRgkowNnMs5q3dZ6iv4zW7C2zlZKZogZBDTTzupla9H+L1LVGV8I2AFRiJpNJz3Z4VmaTWb8c+kVrj691dkkAAJQrpRK6Dx48qNatW+dp9/Dw0NmzZ4vcX2xsrO69916FhITIy8tLzZs3159//mlbP2jQIJlMJrtHr169rugzVDSpman6YPsH6vVlL7216S2dyTijugF19dq1r+nzPp+re63uhG0AgCSpYXBD3dXwLknSlHVTbHexAAAAl1cqE6lFRUVp8+bNql27tl37zz//rMaNGxepr4SEBHXu3FnXXXedFi9erNDQUO3du1dBQUF22/Xq1Uvz58+3LXt4eBT/A1Qg57LOadHuRfpg+wc6fe60JCnSP1LDWw5XdGS0XMwul+kBAFAZjWo9Sr8c+kUHkg5o4c6FGth0oLNLAgCgXCiV0D169GiNHDlS586dk2EYWr9+vT755BNNmTJF7733XpH6euWVV1SzZk27QB0VFZVnOw8PD4WHhxeqz/T0dKWnp9uWk5OTJUkWi0UWi6VI9ZVV6dnp+nLvl3p/+/v6N+1fSVIN3xp6uMXD6h3VW65m66FQUT4vAKBk+br66tHWj2rSmkmas2WOetXupVDvUGeXBQCA0xQ2O5VK6H7wwQfl5eWl8ePHKzU1VQMGDFD16tX1xhtvqH///kXq67vvvlN0dLTuuOMOrVy5UhERERoxYoSGDh1qt91vv/2mqlWrKigoSNdff73+85//KCQkJN8+p0yZosmTJ+dpP3XqlDIyMopUX1mTacnUz7E/65MDn+jUuVOSpDDPMN1T9x7dUP0GuZpddfrf006uEgBQHnT066hGAY20K2mXpq6ZqqebP+3skgAAcJqkpKRCbWcyDMNwZCFZWVlauHChoqOjFRYWptTUVKWkpKhq1arF6s/T01OSdfT8jjvu0IYNG/TYY49p7ty5GjjQeqrbp59+Km9vb0VFRWn//v169tln5evrqzVr1thN5JYjv5HumjVrKj4+XoGBgcWq09kyLZn6fv/3enfbuzp29pgkKcw7TEObD9WtdW+Vm4ubkysEAJRH2//drnsX3ytDhuZHz1ebqm2cXRIAAE6RmJiokJAQJSUlyd/fv8DtHB66Jcnb21s7d+7Mc013cbi7u6tdu3ZavXq1re3RRx/Vhg0btGbNmnzfc+DAAdWtW1e//vqrunfvftl9JCcnKyAgQAkJCeUudGdZsvTjgR81d8tcHU05KkkK9QrVg80fVL8G/eThwrXtAIArM2n1JH2590s1CGqgRf+3yHaJEgAAlUliYqKCgoIuG7pLZfby9u3ba9OmTSXSV7Vq1dSkSRO7tsaNG+vIkSMFvqdOnTqqUqWK9u3bVyI1lEXZlmz9eOBH3fbtbRofM15HU44q2DNYY9uN1U99f9KAxgMI3ACAEvFYm8fk7+6vPQl79Pmez51dDgAAZVqpfDU9YsQIjRkzRkePHlXbtm3l4+Njt75FixaF7qtz587avXu3XduePXsuOYp+9OhRxcfHq1q1akUrvBywGBYtObxEczbP0YGkA5KkQI9ADW42WP0b9pe3m7eTKwQAVDRBnkF6tPWj+s+6/+itTW8pOjJawZ7Bzi4LAIAyqVROLzeb8w6om0wmGYYhk8mk7OzsQve1YcMGderUSZMnT9add96p9evXa+jQoZo3b57uuecepaSkaPLkyerXr5/Cw8O1f/9+PfXUUzpz5oy2bdtWqFuHlYfTyw3D0PIjyzVryyztTdgrSfJ399egpoM0oPEA+bj5XKYHAACKL9uSrf4/9teu07vUr34/Teo0ydklAQBQqgp7enmphO7Dhw9fcn1Rr/X+4YcfNG7cOO3du1dRUVEaPXq0bfbytLQ03Xrrrdq0aZMSExNVvXp19ezZUy+++KLCwsIK1X9ZDt2GYej3o79r1uZZ2nl6pyTJ181X9ze5X/c2uVd+7n5OrhAAUFlsOrlJ9y++XyaZ9PGNH6t5aHNnlwQAQKkpU6G7vCmroTvbkq0p66do0e5FkiRvV2/d2+Re3d/kfgV4BDi5OgBAZfTcquf03f7v1DSkqRbetFBmU6lMFwMAgNMVNnSXyjXdCxYsuOT6+++/vzTKKNcyszP17Kpn9fOhn2WSSQObDtQDzR5QkGeQs0sDAFRiT7R9QsuPLNeO+B36eu/X6tegn7NLAgCgTCmVke6gIPtgmJmZqdTUVLm7u8vb21unT592dAlFUtZGulMzUzV65WjFxMbI1eSqKddMUa+oXs4uCwAASdJ///6vpm2YpkCPQP1w2w+cfQUAqBTK1C3DEhIS7B4pKSnavXu3unTpok8++aQ0Sii3ktKT9NDShxQTGyMvVy+91f0tAjcAoEzp36i/6gXWU2J6ot7e9LazywEAoExx2oVX9evX19SpU/XYY485q4Qy71TqKQ3+ZbA2n9osP3c/zbthnrpEdHF2WQAA2HEzu+nZDs9Kkj7b85l2nd7l5IoAACg7nDrbiaurq44dO+bMEsqsf878o/sX36+9CXtVxauK5kfPV6uqrZxdFgAA+boq/Cr1juwti2HRS2tfEvO0AgBgVSoTqX333Xd2y4Zh6Pjx43r77bfVuXPn0iihXNmTsEcPLX1I/6b9qxq+NTSv5zzV9Kvp7LIAALik0e1G67ejv2nzqc364cAP6lO3j7NLAgDA6UplIjWz2X5A3WQyKTQ0VNdff71ef/11VatWzdElFIkzJ1LbfHKzRiwboTMZZ1Q/qL7e6fGOQr1DS7UGAACK6/1t72vmXzMV4hmiH277Qb7uvs4uCQAAhyhTE6lZLBa7R3Z2tuLi4rRw4cIyF7idKSY2RsOWDtOZjDNqFdpK86PnE7gBAOXKfU3uU6R/pOLPxWv2ltnOLgcAAKcrldD9wgsvKDU1NU97WlqaXnjhhdIoocz7+eDPGrV8lNKy0tQ5orPeueEdbrkCACh33F3c9Uz7ZyRJC3cu1L6EfU6uCAAA5yqV0D158mSlpKTkaU9NTdXkyZNLo4Qy7bPdn+mp359SliVLvSN7663r3pK3m7ezywIAoFg6R3RW91rdlW1ka8r6KUyqBgCo1EoldBuGIZPJlKd9y5YtCg4OLo0SyiTDMPTu1nf14toXZcjQXQ3v0pRrpsjNxc3ZpQEAcEXGXjVWHi4eWh+3Xr8c/sXZ5QAA4DQOnb08KChIJpNJJpNJDRo0sAve2dnZSklJ0cMPP+zIEsosi2HR63++rgV/L5AkDWsxTKNajcr3ywkAAMqbCN8IDWk+RLM3z9ZrG15T14iunMUFAKiUHBq6Z86cKcMw9MADD2jy5MkKCLhwjbK7u7siIyPVsWNHR5ZQJmVZsjRp9SR9u/9bSdJTVz2l+5rc5+SqAAAoWYObDta3+75VbEqs5m2dp8fbPu7skgAAKHWlcsuwlStXqlOnTnJzKx+nTTvylmHp2ekau3KsVvyzQi4mF03uNFm31LulRPcBAEBZ8ds/v+mR5Y/I1eyqr2/+WpEBkc4uCQCAElGmbhl27bXX2gL3uXPnlJycbPeoLFIyUjTi1xFa8c8KuZvdNaPbDAI3AKBCu7bGtbom4hplWbI0df1UJlUDAFQ6pRK6U1NTNWrUKFWtWlU+Pj4KCgqye1QGp8+d1pAlQ7Q+br183Hw094a5uq7Wdc4uCwAAhzKZTHq6/dNyM7sp5liMVvyzwtklAQBQqkoldI8dO1bLly/XnDlz5OHhoffee0+TJ09W9erVtWDBgtIowanizsZp4OKB+jv+bwV5BOn96Pd1VfhVzi4LAIBSUdu/tgY1HSRJmrZhms5lnXNuQQAAlKJSCd3ff/+9Zs+erX79+snV1VXXXHONxo8fr5dfflkff/xxaZTgNAeSDui+xffpUPIhhfuE66PeH6lpSFNnlwUAQKl6sPmDCvcJV2xKrD7Y/oGzywEAoNSUSug+ffq06tSpI0ny9/fX6dOnJUldunTR77//XholOMWO+B0atHiQ4s7GKSogSv/t/V9FBUQ5uywAAEqdt5u3xrYbK0l6f9v7+ufMP06uCACA0lEqobtOnTo6ePCgJKlRo0b67LPPJFlHwEt6dvCyYkPcBg35ZYgS0hPUNKSpPuz1ocJ9wp1dFgAATnND7RvUoVoHZVgy9OqGV51dDgAApaJUQvfgwYO1ZcsWSdIzzzyjWbNmydPTU0888YTGjh1bGiWUquVHluvhpQ/rbOZZtQ9vr/ej31ewZ7CzywIAwKlMJpPGtR8nV5OrVvyzQn8c/cPZJQEA4HClcp/uix0+fFgbN25UvXr11KJFi9Le/WVdyX26v933rSaunqhsI1vX17xe066dJg8XD8cUCgBAOfTahtf00d8fKdgzWO/c8I4aBTdydkkAABRZmblPd2Zmprp37669e/fa2mrXrq2+ffuWycB9JRbsWKDxMeOVbWTr1nq36vVurxO4AQC4yPBWw9UouJFOnzutwT8P1sYTG51dEgAADuPw0O3m5qatW7c6ejdOZRiG3vzrTb36p/X6tIFNBuqFTi/I1ezq5MoAACh7fNx89EH0B2pTtY1SMlP00NKHtPKflc4uCwAAhyiVa7rvvfdevf/++6Wxq1KXbcnWf9b+R+9ue1eS9FibxzSm3RiZTCYnVwYAQNnl5+6nd254R9fWuFbp2el6bMVj+uHAD84uCwCAElcqQ7FZWVn64IMP9Ouvv6pt27by8fGxWz99+vTSKKPEZWZn6tlVz+rnQz/LJJPGXz1edza809llAQBQLni6emrGdTM0IWaCfjjwg8b9MU5J6Um6p/E9zi4NAIASUyoj3du3b1ebNm3k5+enPXv2aNOmTbbH5s2bi9xfbGys7r33XoWEhMjLy0vNmzfXn3/+aVtvGIYmTJigatWqycvLSz169LC7prwkpGam6pEVj+jnQz/L1eyqaddOI3ADAFBEbmY3vdTlJVvQnrp+qmZvni0nzPMKAIBDlMpI94oVK0qsr4SEBHXu3FnXXXedFi9erNDQUO3du1dBQUG2baZNm6Y333xTH330kaKiovT8888rOjpaf//9tzw9Pa+4hqT0JI1aNkqbT22Wl6uXZnSboc4Rna+4XwAAKiOzyaynr3pagR6BmrV5luZsmaPE9EQ90/4ZmU2lMj4AAIDDlOotw/bt26f9+/era9eu8vLykmEYRb72+ZlnnlFMTIz++CP/e3sahqHq1atrzJgxevLJJyVJSUlJCgsL04cffqj+/fvneU96errS09Nty8nJyapZs6bi4+Pz3DLsVOopDV82XHsT98rf3V9vX/+2Woa2LNJnAAAA+ft096eaun6qDBm6MfJGvdD5BbmZ3ZxdFgAAeSQmJiokJOSytwwrlZHu+Ph43XnnnVqxYoVMJpP27t2rOnXqaMiQIQoKCtLrr79e6L6+++47RUdH64477tDKlSsVERGhESNGaOjQoZKkgwcPKi4uTj169LC9JyAgQB06dNCaNWvyDd1TpkzR5MmT87SfOnVKGRkZtuXjqcf19J9P63jacQV7BGtq26mqZlTTyZMni/LjAAAABbg+6HqphTRt2zT9dOgn/Zvyr55v9bw8Xa78TDUAAEpSUlJSobYrlZHu+++/XydPntR7772nxo0ba8uWLapTp45++eUXjR49Wjt27Ch0Xzmnh48ePVp33HGHNmzYoMcee0xz587VwIEDtXr1anXu3FnHjh1TtWrVbO+78847ZTKZtGjRojx9Fmake2/CXj287GH9m/avavrV1Nzuc1XDr0YxfyIAAOBS/oj9Q0+ufFLnss+pddXWevO6N+XvXvAoAgAApa1MjXQvWbJEv/zyi2rUsA+p9evX1+HDh4vUl8ViUbt27fTyyy9Lklq3bq3t27fbQndxeHh4yMPDI0+72WyW2WzW5pObNWLZCJ3JOKMGQQ30zg3vqIpXlWLtCwAAXN61Na/VOze8o1HLRmnTyU0asmQIv38BAGWK2Vy4eUdKZXaSs2fPytvbO0/76dOn8w27l1KtWjU1adLErq1x48Y6cuSIJCk8PFySdOLECbttTpw4YVtXFKtiV2nokqE6k3FGrau21gfRH/ALHwCAUtAmrI3m95qvEM8Q7UnYo/sX36+jZ446uywAAIqkVEL3NddcowULFtiWTSaTLBaLpk2bpuuuu65IfXXu3Fm7d++2a9uzZ49q164tSYqKilJ4eLiWLVtmW5+cnKx169apY8eORdrXr4d/1SPLH9G57HPqEtFF79zwjgI8AorUBwAAKL6GwQ31397/VYRvhP4584/uX3y/9iaU7G1AAQBwpFK5pnv79u3q3r272rRpo+XLl+vmm2/Wjh07dPr0acXExKhu3bqF7mvDhg3q1KmTJk+erDvvvFPr16/X0KFDNW/ePN1zj/Uen6+88oqmTp1qd8uwrVu3FvqWYcnJyQoICFCTOU1k9jKrd1RvvdT5Jbm5MHsqAADOcDL1pB5a+pD2Je6Tv7u/ZnWfpVZVWzm7LABAJZaYmKigoKDLXtNdarcMS0pK0ttvv60tW7YoJSVFbdq00ciRI+0mOyusH374QePGjdPevXsVFRWl0aNH22Yvl6y3DZs4caLmzZunxMREdenSRbNnz1aDBg0K1X9O6G48p7EGtBqgZzs8y31CAQBwsqT0JI1cNlJbTm2Rl6uXZnSboc4RnZ1dFgCgkipzobs8yQndr6x8RWOvGVvke4kDAADHSM1M1ejfRivmWIxcza6acs0U9Yrs5eyyAACVUJkL3QkJCXr//fe1c+dOSVKTJk00ePBgBQcHl8buiyQndCckJNhuGQYAAMqGzOxMPbvqWf186GeZZNL4q8frzoZ3OrssAEAlU9jQXSrnTP/++++KjIzUm2++qYSEBCUkJOjNN99UVFSUfv/999IoAQAAVBBuLm6aes1U3dHgDhky9OLaF/Xu1nfFyXsAgLKoVEa6mzdvro4dO2rOnDlycXGRJGVnZ2vEiBFavXq1tm3b5ugSioSRbgAAyj7DMPTWprf07rZ3JUn3N7lfT7Z7ksvCAAClokydXu7l5aXNmzerYcOGdu27d+9Wq1atlJaW5ugSioTQDQBA+bFgxwK9+uerkqRb6t6iSZ0mydXs6uSqAAAVXZk6vbxNmza2a7lz27lzp1q2bFkaJQAAgArq/qb368XOL8rF5KJv93+r0b+NVnp2urPLAgBAklQqXwM/+uijeuyxx7Rv3z5dffXVkqS1a9dq1qxZmjp1qrZu3WrbtkWLFqVREgAAqEBurXer/N39NXblWK34Z4WG/zpcb173pnzdfZ1dGgCgkiuV08vN5ksPqJtMJhmGIZPJpOzsbEeXc1mcXg4AQPm0IW6DHln+iM5mnlWTkCaa02OOgj3L3p1SAADlX5m6pvvw4cOF3rZ27doOrKRwCN0AAJRfO+J3aPjS4UpIT1Ckf6Tm3TBP1XyrObssAEAFU6ZCd3lD6AYAoHw7mHRQw5YOU9zZOIV5h2lez3mqE1DH2WUBACqQMhe6jx07plWrVunkyZOyWCx26x599NHSKKHQCN0AAJR/cWfjNGzpMB1MOqhAj0DN7TFXTas0dXZZAIAKokyF7g8//FAPPfSQ3N3dFRISYnf/TJPJpAMHDji6hCIhdAMAUDEknEvQ8F+Ha0f8Dnm7euut699S+2rtnV0WAKACKFOhu2bNmnr44Yc1bty4y06qVhYQugEAqDjOZp7VY8sf07q4dXIzu+nVa19V91rdnV0WAKCcK1P36U5NTVX//v3LReAGAAAVi4+bj2b1mKXra16vTEumRv82Wl/v/drZZQEAKolSScFDhgzR559/Xhq7AgAAyMPDxUOvd3tdt9W7TRbDogmrJ+ijHR85uywAQCVQKqeXZ2dn6//+7/+Ulpam5s2by83NzW799OnTHV1CkXB6OQAAFZNhGJq+cbo+3PGhJOnB5g/q0daP2s03AwBAYRT29HLX0ihmypQp+uWXX9SwYUNJyjORGgAAQGkwmUwa026MAj0CNfOvmXpv23tKTE/U+A7j5WJ2cXZ5AIAKqFRGuoOCgjRjxgwNGjTI0bsqEYx0AwBQ8X2+53O9uOZFGTLUs3ZPTblmitxd3J1dFgCgnChTE6l5eHioc+fOpbErAACAQrmjwR167drX5Gp21ZLDSzRq2SilZqY6uywAQAVTKqH7scce01tvvVUauwIAACi0npE9Nav7LHm5emnN8TUaumSoktKTnF0WAKACKZXTy2+77TYtX75cISEhatq0aZ6J1L766itHl1AknF4OAEDlsvXUVg3/dbiSM5JVL7Ce5vaYqzCfMGeXBQAow8rU6eWBgYHq27evrr32WlWpUkUBAQF2DwAAAGdqEdpCH/X6SFW9qmpf4j4N/HmgVseuVimMTQAAKrhSGekubxjpBgCgcopNidWwJcN05MwRSVLrqq01stVIdajWwcmVAQDKmjI10i1JWVlZ+vXXX/XOO+/ozJkzkqRjx44pJSWltEoAAAC4pAjfCH1848e6t/G9cje7a9PJTXpwyYN64JcHtPHERmeXBwAoh0plpPvw4cPq1auXjhw5ovT0dO3Zs0d16tTRY489pvT0dM2dO9fRJRQJI90AAOBk6km9t+09fbHnC2VaMiVJV1e7WiNbjVSrqq2cWxwAwOnK1Ej3Y489pnbt2ikhIUFeXl629ttuu03Lli0rjRIAAACKpKp3VT3b4Vn9eNuPuqPBHXI1uWrt8bW6b/F9Gv7rcG3/d7uzSwQAlAOlMtIdEhKi1atXq2HDhvLz89OWLVtUp04dHTp0SE2aNFFqatm6JyYj3QAA4GKxKbGat3Wevt33rbKNbElStxrdNKLVCDUOaezk6gAApa1MjXRbLBZlZ2fnaT969Kj8/PyK1NekSZNkMpnsHo0aNbKt79atW571Dz/88BV/BgAAULlF+EZocqfJ+u7W73Rz3ZtlNpn129HfdOcPd+rxFY9rT8IeZ5cIACiDSiV09+zZUzNnzrQtm0wmpaSkaOLEibrxxhuL3F/Tpk11/Phx22PVqlV264cOHWq3ftq0aVf6EQAAACRJtfxr6aUuL+mbW77RjVE3yiSTlh1Zpn7f9dOTK5/U/sT9zi4RAFCGuJbGTl5//XVFR0erSZMmOnfunAYMGKC9e/eqSpUq+uSTT4rcn6urq8LDwwtc7+3tfcn1F0tPT1d6erptOTk5WZJ1hN5isRS5PgAAUPHV9qutKV2m6MFmD2ru1rlacniJfjn0i5YcWqLekb31UMuHFOkf6ewyAQAOUtisWGr36c7KytKiRYu0ZcsWpaSkqE2bNrrnnnvsJlYrjEmTJunVV19VQECAPD091bFjR02ZMkW1atWSZD29fMeOHTIMQ+Hh4erTp4+ef/55eXt7X7LPyZMn52nftWuXAgICivZBAQBApXTgzAEt2LdAMSdjJElmmdW9enfdW/deVfeu7uTqAAAlLSkpSY0aNbrsNd2lErp///13derUSa6u9gPrWVlZWr16tbp27VrovhYvXqyUlBQ1bNhQx48f1+TJkxUbG6vt27fLz89P8+bNU+3atVW9enVt3bpVTz/9tNq3b6+vvvqqwD7zG+muWbOm4uPjmUgNAAAUyc74nZqzdY5WHl0pSXIxuejmujdraPOhivCNcHJ1AICSkpiYqJCQkLIRul1cXHT8+HFVrVrVrj0+Pl5Vq1bNd5K1wkpMTFTt2rU1ffp0DRkyJM/65cuXq3v37tq3b5/q1q1bqD6ZvRwAAFypbae2adaWWYqJtY58u5pd1bdeXw1tMVThPoW/DA4AUDaVqdnLDcOQyWTK0x4fHy8fH58r6jswMFANGjTQvn378l3foUMHSSpwPQAAgCM0D22uuT3m6r+9/6urq12tLEuWPtvzmW786ka9vO5lnUw96ewSAQClwKETqfXt21eSdbbyQYMGycPDw7YuOztbW7duVadOna5oHykpKdq/f7/uu+++fNdv3rxZklStWrUr2g8AAEBxtKraSu/2fFcb4jZo1uZZ2nhioz7Z9Ym+2vuV7mx4px5o9oCqeFVxdpkAAAdxaOjOmYTMMAz5+fnZTZrm7u6uq6++WkOHDi1Sn08++aT69Omj2rVr69ixY5o4caJcXFx09913a//+/Vq4cKFuvPFGhYSEaOvWrXriiSfUtWtXtWjRokQ/GwAAQFFcFX6V5kfP1/q49Xp709vafGqz/vv3f/X57s91d6O7NajZIAV7Bju7TABACSuVa7onT56sJ5988opPJZek/v376/fff1d8fLxCQ0PVpUsXvfTSS6pbt67++ecf3Xvvvdq+fbvOnj2rmjVr6rbbbtP48eMveY79xbimGwAAOJJhGFp9bLVmbZ6lbf9ukyR5uXrp3sb3amDTgQrw4O4pAFDWFfaa7lK7ZVh5QugGAAClwTAM/RH7h97e9LZ2nt4pSfJx89F9Te7TfU3uk7974QcNAACli9B9BQjdAACgNBmGoeX/LNfszbO1J2GPJMnP3U8DmwzUPY3vka+7r5MrBABcjNB9BQjdAADAGSyGRb8e/lWzN8/W/qT9kqQAjwANajpIAxoNkLebt5MrBADkIHRfAUI3AABwpmxLtn459IvmbJmjQ8mHJEnBnsF6oNkDurPhnfJy9bp0BwAAhytTofvo0aOqUaNGvuvWrl2rq6++2tElFAmhGwAAlAVZliwtPrhYc7bM0T9n/pEkhXiG6K5Gd6lrja5qHNxYZpPZyVUCQOVUpkJ3kyZNtGrVKgUH298GIyYmRjfddJMSExMdXUKRELoBAEBZkmXJ0vf7v9c7W99RbEqsrT3YM1gdq3dU5+qd1al6J4V4hTixSgCoXMpU6H7ggQe0detWrVixQn5+fpKk33//XX369NGkSZP0xBNPOLqEIiF0AwCAsigzO1M/HvxRy48s17rj65SalWq3vnFwY3WJ6KLOEZ3VIrSF3MxuTqoUACq+MhW6LRaLbr/9dp0+fVq//PKLVq9erZtvvln/+c9/9Nhjjzl690VG6AYAAGVdZnamNp/arJjYGMUci9Gu07vs1vu6+apDtQ7qVL2TukR0UXXf6k6qFAAqpjIVuiUpIyNDN910k1JTU7V161ZNmTJFo0aNKo1dFxmhGwAAlDf/pv2r1cdWa1XsKq05tkaJ6Yl266MCotS5emd1juisdmHt5Onq6ZxCAaCCcHro3rp1a562M2fO6O6779ZNN92k4cOH29pbtGjhiBKKjdANAADKs2xLtnae3mkbBd9yaosshsW23sPFQ23D2qpz9c7qEtFFUQFRMplMTqwYAMofp4dus9ksk8mk3N3nXs55bTKZlJ2d7YgSio3QDQAAKpLkjGStO75OMbExWhW7SidST9itD/cJtwXwDtU6yM/dz0mVAkD54fTQffjw4UJvW7t2bUeUUGyEbgAAUFEZhqEDSQe0KnaVVh9brT/j/lSGJcO23sXkopahLW3XgjcO4bZkAJAfp4fu8ozQDQAAKou0rDT9Gfen7XrwQ8mH7NYHeQSpU0Qnda7eWR2rd1QVryrOKRQAypgyF7r37t2rFStW6OTJk7JYLHbrJkyYUBolFBqhGwAAVFaxKbHWa8FjY7Qubp3OZp61W984uLE6R3RW5+qd1bJqS25LBqDSKlOh+91339Xw4cNVpUoVhYeH203UYTKZ9Ndffzm6hCIhdAMAAEiZlkxtOblFMcesIXzn6Z12633cfNQhvIM1hEd0VoRvhJMqBYDSV6ZCd+3atTVixAg9/fTTjt5ViSB0AwAA5PVv2r9ac2yNYo7FaHXsaiWkJ9itj/SPVKfqndQwuKGiAqIU6R+pIM8gJ1ULAI5VpkK3v7+/Nm/erDp16jh6VyWC0A0AAHBpFsOinfE7baPgW05tUbaR9440gR6BivSPVGRApC2IRwVEqYZfDU5NB1CulanQPWTIEF111VV6+OGHHb2rEkHoBgAAKJrkjGStP75eG+I26GDSQR1KPqTjZ48XuL2ryVU1/GpYw7h/lDWQB0QyOg6g3Chs6HYtjWLq1aun559/XmvXrlXz5s3l5mb/reajjz5aGmUAAADAQfzd/dWjdg/1qN3D1paamaojZ45YQ3jSIR1Mtj4fSj6ktKw0HUq2vv5Nv9n1lTM6njuIMzoOoLwqlZHuqKioggswmXTgwAFHl1AkjHQDAAA4jsWw6GTqSduIeO5QHnc2rsD32Y2OB0Qpyj/KNlIe6BlYeh8AAFTGTi8vbwjdAAAAzpFndPx8MM8ZHS9IoEeg7ZrxnCAeGRDJ6DgAhyF0XwFCNwAAQNmSe3TcFsSLMTpew7eGgj2DFewZrCDPIAV7Bsvf3d/ulrYAUBhlLnQfPXpU3333nY4cOaKMjAy7ddOnTy+NEgqN0A0AAFB+FHd0PIer2VVBHkF5wniIV8iFdq9gBXtYn71dvQnpAMrWRGrLli3TzTffrDp16mjXrl1q1qyZDh06JMMw1KZNm9IoAQAAABWUt5u3GgU3UqPgRnbt+Y2Ox52N0+lzp5VwLkGnz51WSmaKsixZOpV2SqfSThVqfx4uHrZgfvHDFtg9Q2yvPV09HfGxAZQTpTLS3b59e/Xu3VuTJ0+Wn5+ftmzZoqpVq+qee+5Rr169NHz4cEeXUCSMdAMAAFQO6dnptgCeO4zHn4u/0J52WgnpCYpPi9e57HNF3oe3q7eCPIMU4hliF8xzXod4hijYK1hBHkHydfeVl6uXzCazAz4tgJJUpk4v9/Pz0+bNm1W3bl0FBQVp1apVatq0qbZs2aJbbrlFhw4dcnQJRULoBgAAQH5SM1OVkJ6g02mnbUH94sCe+5FpySzWfrxcveTl6iVvV295u3nbPXu5el147XbRNhdtn7sPN7Mbp8UDJahMnV7u4+Nju467WrVq2r9/v5o2bSpJ+vfff0ujBAAAAOCKebtZA2yEb8RltzUMQ2czz+YJ4jkBPf5cvF1YTziXoGwjW5KUlpWmtKw0ndbpEqvd1eSaN6RfFNZtYf/i9W7e8nTxlLuLu9zMbnme3Vzc5G62vnYxu5RYzUBF4NDQ/cILL2jMmDG6+uqrtWrVKjVu3Fg33nijxowZo23btumrr77S1VdfXaQ+J02apMmTJ9u1NWzYULt27ZIknTt3TmPGjNGnn36q9PR0RUdHa/bs2QoLCyuxzwUAAABcjslkkq+7r3zdfVXLv9ZltzcMQ+nZ6UrNSlVqZqrdc1pWmlIzLzzbbZN7u8w023JalvV1ena6JCnLyNKZjDM6k3HGoZ/bxeRiH8RzBfI8IT3XOjcXN9s2duvOt9vW5QT+i9a5ml3lanaV2WSWi8nF+jBf9HyJ12aTmTMB4BAOPb3cxcVFx48fV0pKilJSUtSiRQudPXtWY8aM0erVq1W/fn1Nnz5dtWvXLnSfkyZN0hdffKFff/3V1ubq6qoqVapIkoYPH64ff/xRH374oQICAjRq1CiZzWbFxMQUeh+cXg4AAICKIsuSZR/Wc4fyzNQ8IT1PqD+/Li0rTZmWTGVmZyrDkqFMS6YysjOKfQp9WXRxGDebzHI1u9q9zjfUXyLgm01muZpcZTKZZDaZZZb5wmuTWSblem0yFWq97fXl+jv/+nLbmkwmmWT9wiHntUmmC+0m2d6b85/1f/vtcr60sPWbe7uL+s3ZLqeey+3ftn2u7XLacth9jov6O994yX7y3e6i/eRuS05MVsMaDZ17enlOnq9Tp46tzcfHR3Pnzr2ifl1dXRUeHp6nPSkpSe+//74WLlyo66+/XpI0f/58NW7cWGvXri1wVD09PV3p6em25eTkZEmSxWKRxWK5oloBAAAAZzLLLB9XH/m4+jikf8MwlGXJyhPE8wvnmdmZ1mVLRr5ttvfk05ZlybK9x/be868zLBnKtmTLYliUZWTJYliUbcm2e51tWB8Wo+B/3+dsIyIACiE7LbtQ2zn8mm5HnKKxd+9eVa9eXZ6enurYsaOmTJmiWrVqaePGjcrMzFSPHj1s2zZq1Ei1atXSmjVrCgzdU6ZMyXPKuiSdOnUqzz3FAQAAAFya2/n/vOV9odF8/uFkhmFYg3iuEJ7z+uLl/F4Xd70hw7pvWeyfDYsMXXjOb5s87Re9p6DnQm+bsw8Ztp/Rxa9z+ivMdrafsyySoXzfk2e5oHYZdn92ki5sY+3c9jr3tnnqu7BhnraL+7Hb/qL95u6nsFnXoaeXm81mBQQEXLaY06cLP0HE4sWLlZKSooYNG+r48eOaPHmyYmNjtX37dn3//fcaPHiw3ai1ZL1l2XXXXadXXnkl3z7zG+muWbOm4uPjOb0cAAAAAJBHYmKiQkJCnD97+eTJkxUQEFBi/fXu3dv2ukWLFurQoYNq166tzz77TF5eXsXq08PDQx4eHnnazWazzOYy8HUcAAAAAKBMKWxWdHjo7t+/v6pWreqw/gMDA9WgQQPt27dPN9xwgzIyMpSYmGg3Qn3ixIl8rwEHAAAAAMCRHDqMWxpT7qekpGj//v2qVq2a2rZtKzc3Ny1btsy2fvfu3Tpy5Ig6duzo8FoAAAAAAMitVGYvL0lPPvmk+vTpo9q1a+vYsWOaOHGiXFxcdPfddysgIEBDhgzR6NGjFRwcLH9/fz3yyCPq2LFjke8HDgAAAADAlXJo6HbE7baOHj2qu+++W/Hx8QoNDVWXLl20du1ahYaGSpJmzJghs9msfv36KT09XdHR0Zo9e3aR9pHzZUFycjLXdAMAAAAA8si51fTlBpsdOnt5eXXgwAHVrVvX2WUAAAAAAMq4/fv3q06dOgWud/hEauVRcHCwJOnIkSMlOvM6cDlXXXWVNmzY4OwyUAlx7MEZOO7gDBx3cAaOu4opKSlJtWrVsuXHghC685FzSnlAQMAl77cGlDQXFxeOOTgFxx6cgeMOzsBxB2fguKvYLndJMhcsA2XIyJEjnV0CKimOPTgDxx2cgeMOzsBxV7lxTXc+kpOTFRAQoKSkJL6RAgAAAADkUdjcyEh3Pjw8PDRx4kR5eHg4uxQAAAAAQBlU2NzISDcAAAAAAA7CSDcAAAAAAA5C6AYAAAAAwEEI3QAAAAAAOAihGyghs2bNUmRkpDw9PdWhQwetX7/etm7evHnq1q2b/P39ZTKZlJiYWKg+f/vtN7Vp00YeHh6qV6+ePvzwwyLtF5VDQcfA6dOn9cgjj6hhw4by8vJSrVq19OijjyopKemyfX7++edq1KiRPD091bx5c/3000926w3D0IQJE1StWjV5eXmpR48e2rt3r0M+H8qmS/3d89BDD6lu3bry8vJSaGiobrnlFu3ateuyfXLc4XIK8zvPMAz17t1bJpNJ33zzzWX75LjD5VzquOvWrZtMJpPd4+GHH75snxx3lYwB4Ip9+umnhru7u/HBBx8YO3bsMIYOHWoEBgYaJ06cMAzDMGbMmGFMmTLFmDJliiHJSEhIuGyfBw4cMLy9vY3Ro0cbf//9t/HWW28ZLi4uxs8//1zo/aLiu9QxsG3bNqNv377Gd999Z+zbt89YtmyZUb9+faNfv36X7DMmJsZwcXExpk2bZvz999/G+PHjDTc3N2Pbtm22baZOnWoEBAQY33zzjbFlyxbj5ptvNqKiooy0tDRHf2SUAZf7u+edd94xVq5caRw8eNDYuHGj0adPH6NmzZpGVlZWgX1y3OFyCvs7b/r06Ubv3r0NScbXX399yT457nA5lzvurr32WmPo0KHG8ePHbY+kpKRL9slxV/lUyND99ttvG7Vr1zY8PDyM9u3bG+vWrbOtS0tLM0aMGGEEBwcbPj4+Rt++fY24uLjL9vnZZ58ZDRs2NDw8PIxmzZoZP/74o916i8ViPP/880Z4eLjh6elpdO/e3dizZ0+JfzaUTe3btzdGjhxpW87OzjaqV69uTJkyxW67FStWFDp0P/XUU0bTpk3t2u666y4jOjq6yPtFxVXUY+Czzz4z3N3djczMzAL7vPPOO42bbrrJrq1Dhw7GQw89ZBiG9e+78PBw49VXX7WtT0xMNDw8PIxPPvnkSj4OyomiHndbtmwxJBn79u0rsE+OO1xOYY67TZs2GREREcbx48cLFbo57nA5lzvurr32WuOxxx4rUp8cd5VPhTu9fNGiRRo9erQmTpyov/76Sy1btlR0dLROnjwpSXriiSf0/fff6/PPP9fKlSt17Ngx9e3b95J9rl69WnfffbeGDBmiTZs26dZbb9Wtt96q7du327aZNm2a3nzzTc2dO1fr1q2Tj4+PoqOjde7cOYd+XjhfRkaGNm7cqB49etjazGazevTooTVr1hS6n27dumnQoEG25TVr1tj1KUnR0dG2Pktqvyi/inMMJCUlyd/fX66urra2yMhITZo0ybZ8uWPv4MGDiouLs9smICBAHTp04NirBIp63J09e1bz589XVFSUatasaWvnuENRFOa4S01N1YABAzRr1iyFh4fn2w/HHYqisH/fffzxx6pSpYqaNWumcePGKTU11a4fjjtUuNA9ffp0DR06VIMHD1aTJk00d+5ceXt764MPPlBSUpLef/99TZ8+Xddff73atm2r+fPna/Xq1Vq7dm2Bfb7xxhvq1auXxo4dq8aNG+vFF19UmzZt9Pbbb0uyXnMxc+ZMjR8/XrfccotatGihBQsW6NixY4W6lgjl27///qvs7GyFhYXZtYeFhSkuLq7Q/dSqVUvVqlWzLcfFxeXbZ3JystLS0kpsvyi/inoM/Pvvv3rxxRc1bNgwu/a6deuqSpUqtuWCjr2cPnOeOfYqp8Ied7Nnz5avr698fX21ePFiLV26VO7u7rb1HHcoisIcd0888YQ6deqkW265pcB+OO5QFIU57gYMGKD//e9/WrFihcaNG6f//ve/uvfee+2257iD6+U3KT9yvo0aN26crS33t1Ht27dXZmam3bdGjRo1Uq1atbRmzRpdffXVkqzfRg0aNMj2jdSaNWs0evRou31FR0fbAvXlvo3q37+/gz4xKpIFCxY4uwRUYMnJybrpppvUpEkTu2/bJWnZsmXOKQoV2j333KMbbrhBx48f12uvvaY777xTMTEx8vT0lMRxh5L13Xffafny5dq0adMlt+O4Q0nL/UV28+bNVa1aNXXv3l379+9X3bp1JXHcoYKNdF/u26i4uDi5u7srMDAw3/U5+DYKRVGlShW5uLjoxIkTdu0nTpwo8PS2wggPD8+3T39/f3l5eTlsvyg/CnsMnDlzRr169ZKfn5++/vprubm5XbLfgo69nD5znjn2KqfCHncBAQGqX7++unbtqi+++EK7du3S119/XWC/HHe4lMsdd8uXL9f+/fsVGBgoV1dX2yU0/fr1U7du3Qrsl+MOl1Kcf2t16NBBkrRv374C++W4q3wqVOguKcuWLdOoUaOcXQbKCXd3d7Vt29buW0yLxaJly5apY8eOxe63Y8eOeb4ZXbp0qa1PR+0X5UdhjoHk5GT17NlT7u7u+u6772yjjJdyuWMvKipK4eHhdtskJydr3bp1HHuVQHH+7jGsE7cqPT29wH457nAplzvunnnmGW3dulWbN2+2PSRpxowZmj9/foH9ctzhUorz913OsZf7ksGLcdxVQk6eyK1EpaenGy4uLnlmqrz//vuNm2++2Vi2bFm+M0fXqlXLmD59eoH91qxZ05gxY4Zd24QJE4wWLVoYhmEY+/fvNyQZmzZtstuma9euxqOPPlrcj4Ny5NNPPzU8PDyMDz/80Pj777+NYcOGGYGBgbaZ8Y8fP25s2rTJePfddw1Jxu+//25s2rTJiI+Pt/Vx3333Gc8884xtOeeWYWPHjjV27txpzJo1K99bhl1qv6j4LnUMJCUlGR06dDCaN29u7Nu3z+52Jrlv3XT99dcbb731lm05JibGcHV1NV577TVj586dxsSJE/O9lUlgYKDx7bffGlu3bjVuueUWbmVSiVzquNu/f7/x8ssvG3/++adx+PBhIyYmxujTp48RHBxsd2snjjsUVVF/5ymf2cs57lBUlzru9u3bZ7zwwgvGn3/+aRw8eND49ttvjTp16hhdu3a164PjDhUqdBuGdVr/UaNG2Zazs7ONiIgIY8qUKUZiYqLh5uZmfPHFF7b1u3btMiQZa9asKbDPO++80/i///s/u7aOHTvmmdb/tddes61PSkpiWv9K5q233jJq1apluLu7G+3btzfWrl1rWzdx4kRDUp7H/Pnzbdtce+21xsCBA+36XLFihdGqVSvD3d3dqFOnjt32hdkvKoeCjoGcW9Tl9zh48KDt/bVr1zYmTpxo1+dnn31mNGjQwHB3dzeaNm1a4G0Sw8LCDA8PD6N79+7G7t27Hf1RUYYUdNzFxsYavXv3NqpWrWq4ubkZNWrUMAYMGGDs2rXL7v0cdyiOovzOyy90c9yhOAo67o4cOWJ07drVCA4ONjw8PIx69eoZY8eOzXOfbo47mAzDMEp9eN2BFi1apIEDB+qdd95R+/btNXPmTH322WfatWuXwsLCNHz4cP3000/68MMP5e/vr0ceeUSS9bZgObp3767bbrvNdor56tWrde2112rq1Km66aab9Omnn+rll1/WX3/9pWbNmkmSXnnlFU2dOlUfffSRoqKi9Pzzz2vr1q36+++/C3U6JwAAAACg4qlQs5dL0l133aVTp05pwoQJiouLU6tWrfTzzz/bJjmbMWOGzGaz+vXrp/T0dEVHR2v27Nl2fezfv1///vuvbblTp05auHChxo8fr2effVb169fXN998YwvckvTUU0/p7NmzGjZsmBITE9WlSxf9/PPPBG4AAAAAqMQq3Eg3AAAAAABlBbOXAwAAAADgIIRuAAAAAAAchNANAAAAAICDELoBAAAAAHAQQjcAAAAAAA5SoUL3rFmzFBkZKU9PT3Xo0EHr16+3rZs3b566desmf39/mUwmJSYmFqrPDz/8UIGBgY4pGAAAAABQoVWY0L1o0SKNHj1aEydO1F9//aWWLVsqOjpaJ0+elCSlpqaqV69eevbZZ51cKQAAAACgsqgwoXv69OkaOnSoBg8erCZNmmju3Lny9vbWBx98IEl6/PHH9cwzz+jqq6++ov3s379ft9xyi8LCwuTr66urrrpKv/76q902kZGRevnll/XAAw/Iz89PtWrV0rx5865ovwAAAACA8qdChO6MjAxt3LhRPXr0sLWZzWb16NFDa9asKdF9paSk6MYbb9SyZcu0adMm9erVS3369NGRI0fstnv99dfVrl07bdq0SSNGjNDw4cO1e/fuEq0FAAAAAFC2VYjQ/e+//yo7O1thYWF27WFhYYqLiyvRfbVs2VIPPfSQmjVrpvr16+vFF19U3bp19d1339ltd+ONN2rEiBGqV6+enn76aVWpUkUrVqwo0VoAAAAAAGVbhQjdJaF3797y9fWVr6+vmjZtWuB2KSkpevLJJ9W4cWMFBgbK19dXO3fuzDPS3aJFC9trk8mk8PBw2/XlAAAAAIDKwdXZBZSEKlWqyMXFRSdOnLBrP3HihMLDwwvVx3vvvae0tDRJkpubW4HbPfnkk1q6dKlee+011atXT15eXrr99tuVkZFht93FfZhMJlkslkLVAgAAAACoGCpE6HZ3d1fbtm21bNky3XrrrZIki8WiZcuWadSoUYXqIyIiolDbxcTEaNCgQbrtttskWUe+Dx06VJyyAQAAAAAVXIUI3ZI0evRoDRw4UO3atVP79u01c+ZMnT17VoMHD5YkxcXFKS4uTvv27ZMkbdu2zTazeHBwcKH3U79+fX311Vfq06ePTCaTnn/+eUawAQAAAAD5qjCh+6677tKpU6c0YcIExcXFqVWrVvr5559tk6vNnTtXkydPtm3ftWtXSdL8+fM1aNCgAvu1WCxydb3wY5o+fboeeOABderUSVWqVNHTTz+t5ORkx3woAAAAAEC5ZjIMw3B2EWXZ1KlT9b///U/bt293dikAAAAAgHKmwox0l7TU1FTt2rVL8+fPV+/evZ1dDgAAAACgHOKWYQWYN2+eevTooZYtW2rChAnOLgcAAAAAUA5xejkAAAAAAA7CSDcAAAAAAA5C6AYAAAAAwEEqbOieMmWKrrrqKvn5+alq1aq69dZbtXv3brttzp07p5EjRyokJES+vr7q16+fTpw4YVu/ZcsW3X333apZs6a8vLzUuHFjvfHGG3n29dtvv6lNmzby8PBQvXr19OGHHzr64wEAAAAAyoEKG7pXrlypkSNHau3atVq6dKkyMzPVs2dPnT171rbNE088oe+//16ff/65Vq5cqWPHjqlv37629Rs3blTVqlX1v//9Tzt27NBzzz2ncePG6e2337Ztc/DgQd1000267rrrtHnzZj3++ON68MEH9csvv5Tq5wUAAAAAlD2VZiK1U6dOqWrVqlq5cqW6du2qpKQkhYaGauHChbr99tslSbt27VLjxo21Zs0aXX311fn2M3LkSO3cuVPLly+XJD399NP68ccf7e7j3b9/fyUmJurnn392/AcDAAAAAJRZFXak+2JJSUmSpODgYEnWUezMzEz16NHDtk2jRo1Uq1YtrVmz5pL95PQhSWvWrLHrQ5Kio6Mv2QcAAAAAoHJwdXYBpcFisejxxx9X586d1axZM0lSXFyc3N3dFRgYaLdtWFiY4uLi8u1n9erVWrRokX788UdbW1xcnMLCwvL0kZycrLS0NHl5eZXshwEAAAAAlBuVInSPHDlS27dv16pVq4rdx/bt23XLLbdo4sSJ6tmzZwlWBwAAAACoqCr86eWjRo3SDz/8oBUrVqhGjRq29vDwcGVkZCgxMdFu+xMnTig8PNyu7e+//1b37t01bNgwjR8/3m5deHi43YznOX34+/szyg0AAAAAlVyFDd2GYWjUqFH6+uuvtXz5ckVFRdmtb9u2rdzc3LRs2TJb2+7du3XkyBF17NjR1rZjxw5dd911GjhwoF566aU8++nYsaNdH5K0dOlSuz4AAAAAAJVThZ29fMSIEVq4cKG+/fZbNWzY0NYeEBBgG4EePny4fvrpJ3344Yfy9/fXI488Isl67bZkPaX8+uuvV3R0tF599VVbHy4uLgoNDZVkvWVYs2bNNHLkSD3wwANavny5Hn30Uf3444+Kjo4urY8LAAAAACiDKmzoNplM+bbPnz9fgwYNkiSdO3dOY8aM0SeffKL09HRFR0dr9uzZttPLJ02apMmTJ+fpo3bt2jp06JBt+bffftMTTzyhv//+WzVq1NDzzz9v2wcAAAAAoPKqsKEbAAAAAABnq7DXdAMAAAAA4GyEbgAAAAAAHITQDQAAAACAgxC6AQAAAABwEEI3AAAAAAAOQugGAAAAAMBBCN0AAAAAADgIoRsAAAAAAAchdAMAAEnSoEGDdOuttzq7DAAAKhRXZxcAAAAcz2QyXXL9xIkT9cYbb8gwjFKqCACAyoHQDQBAJXD8+HHb60WLFmnChAnavXu3rc3X11e+vr7OKA0AgAqN08sBAKgEwsPDbY+AgACZTCa7Nl9f3zynl3fr1k2PPPKIHn/8cQUFBSksLEzvvvuuzp49q8GDB8vPz0/16tXT4sWL7fa1fft29e7dW76+vgoLC9N9992nf//9t5Q/MQAAZQOhGwAAFOijjz5SlSpVtH79ej3yyCMaPny47rjjDnXq1El//fWXevbsqfvuu0+pqamSpMTERF1//fVq3bq1/vzzT/388886ceKE7rzzTid/EgAAnIPQDQAACtSyZUuNHz9e9evX17hx4+Tp6akqVapo6NChql+/viZMmKD4+Hht3bpVkvT222+rdevWevnll9WoUSO1bt1aH3zwgVasWKE9e/Y4+dMAAFD6uKYbAAAUqEWLFrbXLi4uCgkJUfPmzW1tYWFhkqSTJ09KkrZs2aIVK1bke334/v371aBBAwdXDABA2ULoBgAABXJzc7NbNplMdm05s6JbLBZJUkpKivr06aNXXnklT1/VqlVzYKUAAJRNhG4AAFBi2rRpoy+//FKRkZFydeWfGQAAcE03AAAoMSNHjtTp06d19913a8OGDdq/f79++eUXDR48WNnZ2c4uDwCAUkfoBgAAJaZ69eqKiYlRdna2evbsqebNm+vxxx9XYGCgzGb+2QEAqHxMhmEYzi4CAAAAAICKiK+cAQAAAABwEEI3AAAAAAAOQugGAAAAAMBBCN0AAAAAADgIoRsAAAAAAAchdAMAAAAA4CCEbgAAAAAAHITQDQAAAACAgxC6AQAAAABwEEI3AAAAAAAOQugGAAAAAMBB/h8WxUgb0Hd8IgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(3, 1, figsize=(10, 7), sharex=True)\n", + "\n", + "df_hs2[\"soc\"].plot(ax=axes[0], color=\"C0\")\n", + "axes[0].set_ylabel(\"SOC (-)\")\n", + "axes[0].set_title(\"Part 2b (FluidMixMapping): Tank SOC from temperature\")\n", + "axes[0].grid(True, alpha=0.3)\n", + "\n", + "df_hs2[\"q_delivered_kw\"].plot(ax=axes[1], color=\"C1\")\n", + "axes[1].set_ylabel(\"q_delivered (kW)\")\n", + "axes[1].set_title(\"Delivered power (positive = discharging)\")\n", + "axes[1].grid(True, alpha=0.3)\n", + "\n", + "df_hs2[\"t_tank_c\"].plot(ax=axes[2], color=\"C2\")\n", + "axes[2].set_ylabel(\"Tank temperature (°C)\")\n", + "axes[2].set_xlabel(\"Time\")\n", + "axes[2].grid(True, alpha=0.3)\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" ] - }, - "metadata": {}, - "output_type": "display_data" } - ], - "source": [ - "df_hd2.plot()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.15" + } }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.15" - } - }, - "nbformat": 4, - "nbformat_minor": 4 + "nbformat": 4, + "nbformat_minor": 4 } diff --git a/tutorials/hp_elb_hd.ipynb b/tutorials/hp_elb_hd.ipynb index 291e06d..d0526bd 100644 --- a/tutorials/hp_elb_hd.ipynb +++ b/tutorials/hp_elb_hd.ipynb @@ -1,14 +1,17 @@ { "cells": [ { - "metadata": {}, "cell_type": "markdown", - "source": "# PANDAPROSUMER EXAMPLE: HEAT PUMP WITH ELECTRIC BOILER", - "id": "1d72e27bb53ef49c" + "id": "1d72e27bb53ef49c", + "metadata": {}, + "source": [ + "# PANDAPROSUMER EXAMPLE: HEAT PUMP WITH ELECTRIC BOILER" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "1a1460d5f91388be", + "metadata": {}, "source": [ "## DESCRIPTION:\n", "This example demonstrates how to create a single heat pump element within a pandaprosumer unit, which is connected to a single heat consumer. If the heat pump cannot fully meet the heat demand, the consumer is additionally connected to an electric boiler as a backup.\n", @@ -21,12 +24,12 @@ "\n", "\n", "![title](img/hp_elb.png)" - ], - "id": "1a1460d5f91388be" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "500262c6f62f99c2", + "metadata": {}, "source": [ "## Glossary:\n", "- Network: A configuration of connected energy generators and energy consumers\n", @@ -35,46 +38,46 @@ "- Prosumer/Container: A pandaprosumer data structure that holds data related to elements and their controllers.\n", "- Const Profile Controller: The initial controller in the network that interacts with other element controllers; it also manages external data via time series.\n", "- Map / mapping: A connection between two controllers that specifies what information is exchanged between the corresponding elements." - ], - "id": "500262c6f62f99c2" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "455096554daf4b7c", + "metadata": {}, "source": [ "## Network design philosophy:\n", "In pandaprosumer, a system's component is represented by a network element. Each element is assigned a container and its own element controller. A container is a structure that contains the component's configuration data (static input data), which can include information that will not change in the analysis such as size, nominal power, efficiency, etc. The behaviour of an element is governed by its controller. Connections between elements are defined in maps, which couple output parameters of one controller to the input parameter of a controller of a connected element. The network is managed by a controller called ConstProfileController. This controller is connected to all element controllers and manages dynamic input data from external sources (e.g. Excel file). For each time step it distributes the dynamic input data to the relevant element controllers." - ], - "id": "455096554daf4b7c" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "c42b371621c904bf", + "metadata": {}, "source": [ "# 1 - INPUT DATA:\n", "First let's import libraries required for data management." - ], - "id": "c42b371621c904bf" + ] }, { + "cell_type": "code", + "execution_count": 1, + "id": "142082ad59af444", "metadata": { "ExecuteTime": { "end_time": "2025-05-08T07:47:55.237948Z", "start_time": "2025-05-08T07:47:52.236871Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "import pandas as pd\n", "from pandapower.timeseries.data_sources.frame_data import DFData" - ], - "id": "142082ad59af444", - "outputs": [], - "execution_count": 1 + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "2d7c1bd4bd7fa9e9", + "metadata": {}, "source": [ "Next we need to define properties of the heat pump which are treated as static input data, i.e. data (characteristics) that don't change during an analysis. In this case the properties for the heat pump are :\n", "\n", @@ -89,17 +92,19 @@ "- `max_p_kw`: Maximal power of the boiler [kW]\n", "\n", " While these arguments are generally optional, in our specific case they are required in order to fully configure the heat exchanger. Other optional arguments are also available for more advanced configurations." - ], - "id": "2d7c1bd4bd7fa9e9" + ] }, { + "cell_type": "code", + "execution_count": 2, + "id": "d09e6948fed57f3", "metadata": { "ExecuteTime": { "end_time": "2025-05-08T07:47:55.254097Z", "start_time": "2025-05-08T07:47:55.244169Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "hp_params = {\"carnot_efficiency\": 0.5,\n", " \"pinch_c\": 0,\n", @@ -111,92 +116,54 @@ " 'name':'electric_boiler'}\n", "\n", "hd_params = {\"name\": 'heat_consumer'}" - ], - "id": "d09e6948fed57f3", - "outputs": [], - "execution_count": 2 + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "We define the analysis time series.", - "id": "e2e94621f3d0f86d" + "id": "e2e94621f3d0f86d", + "metadata": {}, + "source": [ + "We define the analysis time series." + ] }, { + "cell_type": "code", + "execution_count": 3, + "id": "3ecbe4b60147ccf6", "metadata": { "ExecuteTime": { "end_time": "2025-05-08T07:47:55.570308Z", "start_time": "2025-05-08T07:47:55.556105Z" } }, - "cell_type": "code", + "outputs": [], "source": [ "start = '2020-01-01 00:00:00'\n", "end = '2020-01-01 23:59:59'\n", "time_resolution_s = 900" - ], - "id": "3ecbe4b60147ccf6", - "outputs": [], - "execution_count": 3 + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "Now we import our demand data and transform it into an appropriate DFData object. All data of an individual element is stored in a dedicated DFData object.", - "id": "ecd5c572e5fbb1b1" + "id": "ecd5c572e5fbb1b1", + "metadata": {}, + "source": [ + "Now we import our demand data and transform it into an appropriate DFData object. All data of an individual element is stored in a dedicated DFData object." + ] }, { + "cell_type": "code", + "execution_count": 4, + "id": "a4022973615f828b", "metadata": { "ExecuteTime": { "end_time": "2025-05-08T07:47:55.647738Z", "start_time": "2025-05-08T07:47:55.588317Z" } }, - "cell_type": "code", - "source": [ - "import sys\n", - "import os\n", - "\n", - "current_directory = os.getcwd()\n", - "parent_directory = os.path.dirname(current_directory)\n", - "sys.path.append(parent_directory)\n", - "\n", - "demand_data = pd.read_excel('data/hp_data.xlsx')\n", - "\n", - "dur = pd.date_range(start=start, end=end, freq='900s',tz='utc')\n", - "demand_data.index = dur\n", - "demand_input = DFData(demand_data)\n", - "demand_input.df.head(10)\n" - ], - "id": "a4022973615f828b", "outputs": [ { "data": { - "text/plain": [ - " t_air demand_power t_feed_demand_c \\\n", - "2020-01-01 00:00:00+00:00 25 0 80 \n", - "2020-01-01 00:15:00+00:00 25 0 80 \n", - "2020-01-01 00:30:00+00:00 25 0 80 \n", - "2020-01-01 00:45:00+00:00 25 0 80 \n", - "2020-01-01 01:00:00+00:00 25 0 80 \n", - "2020-01-01 01:15:00+00:00 25 500 80 \n", - "2020-01-01 01:30:00+00:00 25 500 80 \n", - "2020-01-01 01:45:00+00:00 25 500 80 \n", - "2020-01-01 02:00:00+00:00 25 321 80 \n", - "2020-01-01 02:15:00+00:00 25 321 80 \n", - "\n", - " t_return_demand_c \n", - "2020-01-01 00:00:00+00:00 20 \n", - "2020-01-01 00:15:00+00:00 20 \n", - "2020-01-01 00:30:00+00:00 20 \n", - "2020-01-01 00:45:00+00:00 20 \n", - "2020-01-01 01:00:00+00:00 20 \n", - "2020-01-01 01:15:00+00:00 20 \n", - "2020-01-01 01:30:00+00:00 20 \n", - "2020-01-01 01:45:00+00:00 20 \n", - "2020-01-01 02:00:00+00:00 20 \n", - "2020-01-01 02:15:00+00:00 20 " - ], "text/html": [ "
\n", "