Class ArbitrageStrategist

    • Field Detail

      • parameters

        public static final de.dlr.gitlab.fame.agent.input.Tree parameters
        Specific input parameters for storage strategists
      • StrategistTypeParam

        public static final de.dlr.gitlab.fame.agent.input.ParameterBuilder StrategistTypeParam
        General input parameter of storage strategists to determine its type
      • logger

        protected static org.slf4j.Logger logger
        Logs errors for this class and its subclasses
      • scheduledInitialInternalEnergyInMWH

        protected double[] scheduledInitialInternalEnergyInMWH
        Expected initial energy levels of the associated storage for each operation period
      • storage

        protected Device storage
        The associated storage device this strategists plans for
    • Constructor Detail

      • ArbitrageStrategist

        protected ArbitrageStrategist​(de.dlr.gitlab.fame.agent.input.ParameterData input,
                                      Device storage)
                               throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
        Parameters:
        input - parameters associated with strategists
        storage - Device for which schedules are to be created
        Throws:
        de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException - if any required input is missing
    • Method Detail

      • createStrategist

        public static ArbitrageStrategist createStrategist​(de.dlr.gitlab.fame.agent.input.ParameterData input,
                                                           Device storage)
                                                    throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
        Create an ArbitrageStrategist - its actual type is determined based on the given
        Parameters:
        input - all parameters associated with strategists
        storage - Device for which schedules are to be created
        Returns:
        newly instantiated ArbitrageStrategist based on the given input
        Throws:
        de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException - if any required input is missing
      • getInternalEnergySchedule

        protected double[] getInternalEnergySchedule()
        Specified by:
        getInternalEnergySchedule in class Strategist
        Returns:
        array representing the expected internal energy state of the controlled flexibility
      • getChargingPowerForecastInMW

        public abstract double getChargingPowerForecastInMW​(de.dlr.gitlab.fame.time.TimeStamp targetTime)
        Returns forecasted external charging power, if possible - otherwise throws a RuntimeEception
        Parameters:
        targetTime - for which to provide the forecast
        Returns:
        forecasted external charging power in MW
        Throws:
        RuntimeException - if this strategist cannot provide forecasts
      • calcNumberOfEnergyStates

        protected int calcNumberOfEnergyStates​(int numberOfTransitionStates)
        Calculates number of energy states based on the storage capacity, its energy to power ratio and the number of discretisation steps used for internal energy changes. Logs warning if the discretised total capacity of the storage significantly deviates from its parameterised value.
        Parameters:
        numberOfTransitionStates - number of states the (dis-)charging power is discretised with
        Returns:
        numberOfTransitionStates (rounded to closest integer)
      • ensureWithinEnergyBounds

        protected double ensureWithinEnergyBounds​(double internalEnergyInMWH)
        Corrects given internal energy value if it is below Zero or above maximum capacity.
        Parameters:
        internalEnergyInMWH - to be corrected (if necessary)
        Returns:
        internal energy value that is secured to lie within storage bounds