Class SystemCostMinimiser
- java.lang.Object
-
- agents.flexibility.Strategist
-
- agents.storage.arbitrageStrategists.ArbitrageStrategist
-
- agents.storage.arbitrageStrategists.DynamicProgrammingStrategist
-
- agents.storage.arbitrageStrategists.SystemCostMinimiser
-
public class SystemCostMinimiser extends DynamicProgrammingStrategist
Strategy to minimise system cost (i.e. supply-side marginals) via dynamic programming, running backwards in time. System costs are minimised by finding the best sequence of states.- Author:
- Christoph Schimeczek, Felix Nitsch, A. Achraf El Ghazi, Evelyn Sperber
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class agents.storage.arbitrageStrategists.ArbitrageStrategist
ArbitrageStrategist.StrategistType
-
-
Field Summary
-
Fields inherited from class agents.storage.arbitrageStrategists.DynamicProgrammingStrategist
bestNextState, internalEnergyPerState, numberOfEnergyStates, numberOfTransitionStates, parameters
-
Fields inherited from class agents.storage.arbitrageStrategists.ArbitrageStrategist
logger, scheduledInitialInternalEnergyInMWH, storage, StrategistTypeParam
-
Fields inherited from class agents.flexibility.Strategist
bidToleranceParam, demandScheduleInMWH, ERR_PROVIDE_FORECAST, ERR_UNKNOWN_STRATEGIST, ERR_UNKNOWN_UPDATE_TYPE, ERR_USE_MERIT_ORDER_FORECAST, ERR_USE_PRICE_FORECAST, forecastPeriodParam, forecastSteps, forecastUpdateTypeParam, OPERATION_PERIOD, priceScheduleInEURperMWH, scheduledBidPricesInEURperMWH, scheduleDurationParam, scheduleDurationPeriods
-
-
Constructor Summary
Constructors Constructor Description SystemCostMinimiser(de.dlr.gitlab.fame.agent.input.ParameterData generalInput, de.dlr.gitlab.fame.agent.input.ParameterData specificInput, Device storage)
Creates aSystemCostMinimiser
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected double
calcBidPrice(de.dlr.gitlab.fame.time.TimePeriod __, double externalEnergyDelta)
Calculates bidding price for given time period and planned external energy deltaprotected void
clearPlanningArrays()
replaces all entries in the planning arrays with 0 or Integer.MIN_VALUEprotected MeritOrderSensitivity
createBlankSensitivity()
protected void
optimiseDispatch(de.dlr.gitlab.fame.time.TimePeriod startPeriod)
calculates least costly and reachable final state for every initial state in every periodvoid
storeElectricityPriceForecast(de.dlr.gitlab.fame.time.TimePeriod timePeriod, double electricityPriceForecastInEURperMWH)
Stores given electricity price forecast for the associated TimePeriod: price-forecasting method-
Methods inherited from class agents.storage.arbitrageStrategists.DynamicProgrammingStrategist
calcFinalStateLowerBound, calcFinalStateUpperBound, getChargingPowerForecastInMW, updateSchedule, updateScheduleArrays
-
Methods inherited from class agents.storage.arbitrageStrategists.ArbitrageStrategist
calcNumberOfEnergyStates, callOnSensitivity, createStrategist, ensureWithinEnergyBounds, getInternalEnergySchedule
-
Methods inherited from class agents.flexibility.Strategist
clearSensitivitiesBefore, createSchedule, getMissingForecastTimes, getSensitivityForPeriod, getTimesMissingElectricityForecasts, storeMeritOrderForesight, updateBidSchedule
-
-
-
-
Constructor Detail
-
SystemCostMinimiser
public SystemCostMinimiser(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 aSystemCostMinimiser
- Parameters:
generalInput
- general parameters associated with strategistsspecificInput
- specific parameters for this strategiststorage
- device to be optimised- Throws:
de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
- if any required input is missing
-
-
Method Detail
-
clearPlanningArrays
protected void clearPlanningArrays()
Description copied from class:DynamicProgrammingStrategist
replaces all entries in the planning arrays with 0 or Integer.MIN_VALUE- Specified by:
clearPlanningArrays
in classDynamicProgrammingStrategist
-
optimiseDispatch
protected void optimiseDispatch(de.dlr.gitlab.fame.time.TimePeriod startPeriod)
calculates least costly and reachable final state for every initial state in every period- Specified by:
optimiseDispatch
in classDynamicProgrammingStrategist
- Parameters:
startPeriod
- first period of the schedule to be created
-
calcBidPrice
protected double calcBidPrice(de.dlr.gitlab.fame.time.TimePeriod __, double externalEnergyDelta)
Description copied from class:DynamicProgrammingStrategist
Calculates bidding price for given time period and planned external energy delta- Specified by:
calcBidPrice
in classDynamicProgrammingStrategist
- Parameters:
__
- at which the (dis-)charging action happensexternalEnergyDelta
- planned to take place; > 0: charging < 0: discharging- Returns:
- bidding price depending on time and type of action
-
createBlankSensitivity
protected MeritOrderSensitivity createBlankSensitivity()
- Specified by:
createBlankSensitivity
in classStrategist
- Returns:
- a blank MarginalCostSensitivity item
-
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 classStrategist
- Parameters:
timePeriod
- associated with the forecast dataelectricityPriceForecastInEURperMWH
- forecast for the electricity price in EUR per MWh
-
-