Package agents.electrolysis
Class FileDispatcher
- java.lang.Object
-
- agents.flexibility.Strategist
-
- agents.electrolysis.ElectrolyzerStrategist
-
- agents.electrolysis.FileDispatcher
-
public class FileDispatcher extends ElectrolyzerStrategist
Dispatches an electrolysis unit following a fixed dispatch schedule, either for hydrogen production or electric demand, and either absolute or relative to available conversion power- Author:
- Christoph Schimeczek
-
-
Field Summary
Fields Modifier and Type Field Description static de.dlr.gitlab.fame.agent.input.Tree
parameters
Input parameters for theFileDispatcher
-
Fields inherited from class agents.electrolysis.ElectrolyzerStrategist
actualProducedHydrogen, electrolyzer, scheduledChargedHydrogenTotal
-
Fields inherited from class agents.flexibility.Strategist
bidToleranceParam, demandScheduleInMWH, ERR_PROVIDE_FORECAST, ERR_UNKNOWN_STRATEGIST, ERR_USE_MERIT_ORDER_FORECAST, ERR_USE_PRICE_FORECAST, forecastPeriodParam, forecastSteps, OPERATION_PERIOD, priceScheduleInEURperMWH, scheduledBidPricesInEURperMWH, scheduleDurationParam, scheduleDurationPeriods
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
FileDispatcher(de.dlr.gitlab.fame.agent.input.ParameterData generalInput, de.dlr.gitlab.fame.agent.input.ParameterData specificInput)
Creates new FileDispatcher strategist based on given input
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected MeritOrderSensitivity
createBlankSensitivity()
NoMeritOrderSensitivity
needed forFileDispatcher
, as dispatch is read from filedouble
getElectricDemandForecastInMW(de.dlr.gitlab.fame.time.TimeStamp targetTime)
Provides forecast for electricity demand at given time;
only available to FileDispatcher is it doesn't use forecasts themselvesvoid
storeElectricityPriceForecast(de.dlr.gitlab.fame.time.TimePeriod timePeriod, double electricityPriceForecastInEURperMWH)
Not needed forFileDispatcher
void
storeMeritOrderForesight(de.dlr.gitlab.fame.time.TimePeriod timePeriod, SupplyOrderBook supplyForecast, DemandOrderBook demandForecast)
Not needed forFileDispatcher
protected void
updateSchedule(de.dlr.gitlab.fame.time.TimePeriod timePeriod)
Updates schedule arrays starting at the given TimePeriod with the given initial energy level-
Methods inherited from class agents.electrolysis.ElectrolyzerStrategist
getHydrogenPriceForPeriod, getInternalEnergySchedule, getMissingHydrogenPriceForecastsTimes, getValidSchedule, newStrategist, setElectrolyzer, storeHydrogenPriceForecast, updateProducedHydrogenTotal
-
Methods inherited from class agents.flexibility.Strategist
callOnSensitivity, clearSensitivitiesBefore, createSchedule, getMissingForecastTimes, getSensitivityForPeriod, getTimesMissingElectricityForecasts, updateBidSchedule
-
-
-
-
Field Detail
-
parameters
public static final de.dlr.gitlab.fame.agent.input.Tree parameters
Input parameters for theFileDispatcher
-
-
Constructor Detail
-
FileDispatcher
protected FileDispatcher(de.dlr.gitlab.fame.agent.input.ParameterData generalInput, de.dlr.gitlab.fame.agent.input.ParameterData specificInput) throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
Creates new FileDispatcher strategist based on given input- Parameters:
generalInput
- parameter group associated with flexibility strategists in generalspecificInput
- parameter group associated with this strategist in specific- Throws:
de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
- if any required input data is missing
-
-
Method Detail
-
getElectricDemandForecastInMW
public double getElectricDemandForecastInMW(de.dlr.gitlab.fame.time.TimeStamp targetTime)
Description copied from class:ElectrolyzerStrategist
Provides forecast for electricity demand at given time;
only available to FileDispatcher is it doesn't use forecasts themselves- Overrides:
getElectricDemandForecastInMW
in classElectrolyzerStrategist
- Parameters:
targetTime
- to calculate the forecast for- Returns:
- forecasted electricity demand
-
updateSchedule
protected void updateSchedule(de.dlr.gitlab.fame.time.TimePeriod timePeriod)
Description copied from class:Strategist
Updates schedule arrays starting at the given TimePeriod with the given initial energy level- Specified by:
updateSchedule
in classStrategist
- Parameters:
timePeriod
- first period of the schedule to be created
-
createBlankSensitivity
protected MeritOrderSensitivity createBlankSensitivity()
NoMeritOrderSensitivity
needed forFileDispatcher
, as dispatch is read from file- Specified by:
createBlankSensitivity
in classStrategist
- Returns:
- an empty
MeritOrderSensitivity
item of the type used by thisArbitrageStrategist
-type
-
storeElectricityPriceForecast
public void storeElectricityPriceForecast(de.dlr.gitlab.fame.time.TimePeriod timePeriod, double electricityPriceForecastInEURperMWH)
Not needed forFileDispatcher
- Overrides:
storeElectricityPriceForecast
in classStrategist
- Parameters:
timePeriod
- associated with the forecast dataelectricityPriceForecastInEURperMWH
- forecast for the electricity price in EUR per MWh
-
storeMeritOrderForesight
public void storeMeritOrderForesight(de.dlr.gitlab.fame.time.TimePeriod timePeriod, SupplyOrderBook supplyForecast, DemandOrderBook demandForecast)
Not needed forFileDispatcher
- Overrides:
storeMeritOrderForesight
in classStrategist
- Parameters:
timePeriod
- associated with the forecast datasupplyForecast
- forecasted supply OrderBookdemandForecast
- forecasted demand OrderBook
-
-