Class LoadShiftingPortfolio


  • public class LoadShiftingPortfolio
    extends Object
    A load shifting portfolio considers demand units which are eligible for load shifting and are marketed by a LoadShiftingTrader
    Author:
    Johannes Kochems
    • Field Detail

      • parameters

        public static final de.dlr.gitlab.fame.agent.input.Tree parameters
        Input parameters of a LoadShiftingPortfolio
    • Constructor Detail

      • LoadShiftingPortfolio

        public LoadShiftingPortfolio​(de.dlr.gitlab.fame.agent.input.ParameterData input)
                              throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
        Initialises a new LoadShiftingPortfolio
        Parameters:
        input - provides input from config
        Throws:
        de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException - if any required data is missing
    • Method Detail

      • getPowerInMW

        public double getPowerInMW()
        Returns:
        maximum power in MW of load shifting portfolio that can be shifted up or down
      • getCurrentEnergyShiftStorageLevelInMWH

        public double getCurrentEnergyShiftStorageLevelInMWH()
        Returns:
        current state of the load shifting portfolio, i.e. its fictitious stored energy content; can be negative
      • getCurrentShiftTimeInHours

        public int getCurrentShiftTimeInHours()
        Returns:
        the current time duration the load shifting portfolio has already been shifted for
      • getMaximumShiftTimeInHours

        public int getMaximumShiftTimeInHours()
        Returns:
        the maximum allowed time for a load shift in hours, including the initial hour of shifting
      • updateEnergyShiftStorageLevelAndShiftTime

        public void updateEnergyShiftStorageLevelAndShiftTime​(double energyChangeInMWH)
        Update the energy shift storage level as well as the shift time considering the change in energy:
        • energyChangeInMWH > 0: charging - increasing load
        • energyChangeInMWH < 0: depleting - decreasing load
        Parameters:
        energyChangeInMWH - energy charged (increment of fictitious load shift energy storage level)
      • getProlongingCosts

        public double getProlongingCosts​(double energyChangeInMWh,
                                         de.dlr.gitlab.fame.time.TimeStamp timeStamp)
        Return cost for prolonging a given load shift beyond its maximum shift duration by counter-shifts within the portfolio; prolonging costs only account for that part of the shifted load that has to be prolonged, excluding costs for additional or reduced load
        Parameters:
        energyChangeInMWh - change in energy level in MWh
        timeStamp - at which the shift prolonging takes place
        Returns:
        cost for prolonging the current load shifting given the provided change of load shift energy
      • getPowerUpAvailabilities

        public de.dlr.gitlab.fame.data.TimeSeries getPowerUpAvailabilities()
        Returns:
        time series of allowed power shifts in upwards direction relative to powerInMW
      • getDowerDownAvailabilities

        public de.dlr.gitlab.fame.data.TimeSeries getDowerDownAvailabilities()
        Returns:
        time series of allowed power shifts in downwards direction relative to powerInMW
      • getEnergyResolutionInMWH

        public double getEnergyResolutionInMWH()
        Returns:
        resolution of discrete energy steps used for dispatch planning
      • getEnergyLimitUpInMWH

        public double getEnergyLimitUpInMWH()
        Returns:
        the absolute energy limit for a shift in upwards direction (increased load) in MWh
      • getEnergyLimitDownInMWH

        public double getEnergyLimitDownInMWH()
        Returns:
        the absolute energy limit for a shift in downwards direction (decreased load) in MWh
      • getVariableShiftCostsInEURPerMWH

        public double getVariableShiftCostsInEURPerMWH​(de.dlr.gitlab.fame.time.TimeStamp timeStamp)
        Returns variable costs of load shifting at the specified time stamp
        Parameters:
        timeStamp - at which the variable shift costs are requested
        Returns:
        variable costs of load shifting in EUR/MWh
      • getVariableShiftCostsInEURPerMWHSeries

        public de.dlr.gitlab.fame.data.TimeSeries getVariableShiftCostsInEURPerMWHSeries()
        Returns:
        time series of variable costs of load shifting in EUR/MWh
      • getBaselineLoadSeries

        public de.dlr.gitlab.fame.data.TimeSeries getBaselineLoadSeries()
        Returns:
        time series of the baseline demand relative to baselinePeakLoadInMW
      • getBaselinePeakLoad

        public double getBaselinePeakLoad()
        Returns:
        the maximum peak load in MW occurring before load shifting
      • getMaxPowerUpInMW

        public double getMaxPowerUpInMW​(de.dlr.gitlab.fame.time.TimePeriod timePeriod)
        Returns maximum increase in demand power above baseline for the given time period
        Parameters:
        timePeriod - for which the maximum demand increase is requested
        Returns:
        maximum demand increase in MW
      • getMaxPowerDownInMW

        public double getMaxPowerDownInMW​(de.dlr.gitlab.fame.time.TimePeriod timePeriod)
        Returns maximum decrease in demand power below baseline for given the time period
        Parameters:
        timePeriod - for which the maximum demand decrease is requested
        Returns:
        maximum demand decrease in MW
      • getEfficiency

        public double getEfficiency()
        Returns:
        the efficiency of load shifting (value between 0 and 1 (inclusive))
      • getInterferenceTimeInHours

        public int getInterferenceTimeInHours()
        Returns:
        maximum allowed time for any shifting process used by strategist "ShiftProfitMaximiserExternal"
      • getMaximumActivations

        public int getMaximumActivations()
        Returns:
        maximum number of full shift cycles over the course of the planning period (e.g. one year)