:py:mod:`eelib.data.dataclass.control` ====================================== .. py:module:: eelib.data.dataclass.control .. autoapi-nested-parse:: Dataclasses for control signals used in eELib. | Author: elenia@TUBS | Copyright 2024 elenia | This file is part of eELib, which is free software under the terms of the GNU GPL Version 3. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: eelib.data.dataclass.control.ControlSignal eelib.data.dataclass.control.FlexSignal Functions ~~~~~~~~~ .. autoapisummary:: eelib.data.dataclass.control.update_control .. py:class:: ControlSignal Bases: :py:obj:`eelib.data.dataclass.BaseData` Dataclass for control signals sent to an home energy management system (HEMS). .. attribute:: steps The start time step for the power limit. Defaults to []. :type: list[int] .. attribute:: p_feedin_limit The lower limit value for the active power in W - for the generation direction, e.g. if it is -1000W, only less then 1000W can be fed into the grid. Defaults to [] (no control). :type: list[int | float | None] .. attribute:: p_cons_limit The upper limit value for the active power in W - for the consumption direction, e.g. if it is 1000W, only less can be consumed. Defaults to [] (no control). :type: list[int | float | None] .. attribute:: q_min The lower limit value for the reactive power in VAr. A negative value limits the generation. And a positive value limits the demand. Defaults to []. :type: list[int | float | None] .. attribute:: q_max The upper limit value for the reactive power in VAr. A negative value limits the generation. And a positive value limits the demand. Defaults to []. :type: list[int | float | None] .. attribute:: penalty_cost penalty costs in case of non-compliancy, in EUR/kW. :type: float .. py:function:: update_control(old_signal: ControlSignal, new_signal: ControlSignal | None = None, timestep: int | None = None) -> ControlSignal Update the control signal with new incoming and possibly delete old steps. :param old_signal: The currently saved control signal. :type old_signal: ControlSignal :param new_signal: The new, incoming signal. :type new_signal: ControlSignal | None :param timestep: The current timestep for simulation. Defaults to None. :type timestep: int | None, optional :returns: The updated control signal combining both and deleted past time steps. :rtype: ControlSignal .. py:class:: FlexSignal Bases: :py:obj:`eelib.data.dataclass.BaseData` Data class used by a home energy management system to inform the grid energy management system about auxiliary power for grid control purposes. The auxiliary power is always a range. p (float): The current active power flow in W. For demand greater than zero. For generation less than zero. p_min (float): The lower limit value for the active power in W. For demand greater than zero. For supply less than zero. p_max (float): The upper limit value for the active power in W. For demand greater than zero. For supply less than zero. q (float): The current reactive power flow in VAr. For demand greater than zero. For generation less than zero. q_min (float): The lower limit value for the reactive power in VAr. For demand greater than zero. For supply less than zero. q_max (float): The upper limit value for the reactive power in VAr. For demand greater than zero. For supply less than zero.