Class ProfitMaximiser


  • public class ProfitMaximiser
    extends DynamicProgrammingStrategist
    Strategy to maximise profits via dynamic programming, running backwards in time. Profits are maximised by finding the best sequence of states. The result fully utilises market power to improve profits.
    Author:
    Christoph Schimeczek, Evelyn Sperber
    • Constructor Detail

      • ProfitMaximiser

        public ProfitMaximiser​(de.dlr.gitlab.fame.agent.input.ParameterData generalInput,
                               de.dlr.gitlab.fame.agent.input.ParameterData specificInput,
                               Device storage)
                        throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
        Creates a ProfitMaximiser
        Parameters:
        generalInput - general parameters associated with strategists
        specificInput - specific parameters for this strategist
        storage - device to be optimised
        Throws:
        de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException - if any required input is missing
    • Method Detail

      • optimiseDispatch

        protected void optimiseDispatch​(de.dlr.gitlab.fame.time.TimePeriod firstPeriod)
        update most profitable final state for each possible initial state in every period
        Specified by:
        optimiseDispatch in class DynamicProgrammingStrategist
        Parameters:
        firstPeriod - first period of the schedule to be created
      • calcBidPrice

        protected double calcBidPrice​(de.dlr.gitlab.fame.time.TimePeriod timePeriod,
                                      double externalEnergyDelta)
        Description copied from class: DynamicProgrammingStrategist
        Calculates bidding price for given time period and planned external energy delta
        Specified by:
        calcBidPrice in class DynamicProgrammingStrategist
        Parameters:
        timePeriod - at which the (dis-)charging action happens
        externalEnergyDelta - planned to take place; > 0: charging < 0: discharging
        Returns:
        bidding price depending on time and type of action
      • storeElectricityPriceForecast

        public void storeElectricityPriceForecast​(de.dlr.gitlab.fame.time.TimePeriod timePeriod,
                                                  double electricityPriceForecastInEURperMWH)
        Description copied from class: Strategist
        Stores given electricity price forecast for the associated TimePeriod: price-forecasting method
        Overrides:
        storeElectricityPriceForecast in class Strategist
        Parameters:
        timePeriod - associated with the forecast data
        electricityPriceForecastInEURperMWH - forecast for the electricity price in EUR per MWh