Package agents.loadShifting
Class LoadShiftingPortfolio
- java.lang.Object
-
- agents.loadShifting.LoadShiftingPortfolio
-
public class LoadShiftingPortfolio extends Object
A load shifting portfolio considers demand units which are eligible for load shifting and are marketed by aLoadShiftingTrader
- Author:
- Johannes Kochems
-
-
Field Summary
Fields Modifier and Type Field Description static de.dlr.gitlab.fame.agent.input.Tree
parameters
Input parameters of aLoadShiftingPortfolio
-
Constructor Summary
Constructors Constructor Description LoadShiftingPortfolio(de.dlr.gitlab.fame.agent.input.ParameterData input)
Initialises a newLoadShiftingPortfolio
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description de.dlr.gitlab.fame.data.TimeSeries
getBaselineLoadSeries()
double
getBaselinePeakLoad()
double
getCurrentEnergyShiftStorageLevelInMWH()
int
getCurrentShiftTimeInHours()
de.dlr.gitlab.fame.data.TimeSeries
getDowerDownAvailabilities()
double
getEfficiency()
double
getEnergyLimitDownInMWH()
double
getEnergyLimitUpInMWH()
double
getEnergyResolutionInMWH()
int
getInterferenceTimeInHours()
int
getMaximumActivations()
int
getMaximumShiftTimeInHours()
double
getMaxPowerDownInMW(de.dlr.gitlab.fame.time.TimePeriod timePeriod)
Returns maximum decrease in demand power below baseline for given the time perioddouble
getMaxPowerUpInMW(de.dlr.gitlab.fame.time.TimePeriod timePeriod)
Returns maximum increase in demand power above baseline for the given time perioddouble
getPowerInMW()
de.dlr.gitlab.fame.data.TimeSeries
getPowerUpAvailabilities()
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 loaddouble
getVariableShiftCostsInEURPerMWH(de.dlr.gitlab.fame.time.TimeStamp timeStamp)
Returns variable costs of load shifting at the specified time stampde.dlr.gitlab.fame.data.TimeSeries
getVariableShiftCostsInEURPerMWHSeries()
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
-
-
-
Field Detail
-
parameters
public static final de.dlr.gitlab.fame.agent.input.Tree parameters
Input parameters of aLoadShiftingPortfolio
-
-
Constructor Detail
-
LoadShiftingPortfolio
public LoadShiftingPortfolio(de.dlr.gitlab.fame.agent.input.ParameterData input) throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
Initialises a newLoadShiftingPortfolio
- 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 MWhtimeStamp
- 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)
-
-