Package agents.trader
Class FlexibilityTrader
- java.lang.Object
-
- de.dlr.gitlab.fame.agent.Agent
-
- agents.trader.Trader
-
- agents.trader.FlexibilityTrader
-
- All Implemented Interfaces:
DayAheadMarketTrader
,de.dlr.gitlab.fame.agent.AgentAbility
- Direct Known Subclasses:
ElectrolysisTrader
,StorageTrader
public abstract class FlexibilityTrader extends Trader
A type of Trader that also operates a flexibility asset, e.g. storage device or flexible heat pump- Author:
- Christoph Schimeczek
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
FlexibilityTrader.Outputs
Output columns ofFlexibilityTrader
sstatic class
FlexibilityTrader.Products
Products ofFlexibilityTrader
s-
Nested classes/interfaces inherited from class de.dlr.gitlab.fame.agent.Agent
de.dlr.gitlab.fame.agent.Agent.WarmUpStatus
-
Nested classes/interfaces inherited from interface agents.markets.DayAheadMarketTrader
DayAheadMarketTrader.OutputColumns
-
-
Field Summary
-
Fields inherited from interface agents.markets.DayAheadMarketTrader
ERR_CLEARING_TIMES_AMBIGUOUS, ERR_CLEARING_TIMES_MISSING
-
-
Constructor Summary
Constructors Constructor Description FlexibilityTrader(de.dlr.gitlab.fame.agent.input.DataProvider dataProvider)
Creates aFlexibilityTrader
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract double
getInstalledCapacityInMW()
Return installed capacity of the operated flexibility deviceprotected abstract Strategist
getStrategist()
protected void
reportCosts(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
Write annual costs to output; To trigger contractFlexibilityTrader
with itselfprotected void
requestElectricityForecast(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
Requests a forecast from a contracted Forecaster.protected void
updateElectricityPriceForecast(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
Digests incoming price forecastsprotected void
updateMeritOrderForecast(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
Digests incomingMeritOrderMessage
forecasts-
Methods inherited from class agents.trader.Trader
extractMarginalsAtTime, getMatchingContract, getSortedMarginalList, sortMarginalsByTimeStamp
-
Methods inherited from class de.dlr.gitlab.fame.agent.Agent
addContract, call, closeChannel, executeActions, executeWarmUp, fulfilNext, fulfilNext, getId, getNextRandomNumberGenerator, getPostOffice, handleMessage, initialiseActions, now, openChannel, publish, receive, sendMessageTo, sendMessageTo, store, store, toString, warmUp
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface de.dlr.gitlab.fame.agent.AgentAbility
call, fulfilNext, fulfilNext, getId, getNextRandomNumberGenerator, now, store, store
-
Methods inherited from interface agents.markets.DayAheadMarketTrader
extractTimesFromGateClosureInfoMessages, readGateClosureInfoMessage
-
-
-
-
Constructor Detail
-
FlexibilityTrader
public FlexibilityTrader(de.dlr.gitlab.fame.agent.input.DataProvider dataProvider) throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
Creates aFlexibilityTrader
- Parameters:
dataProvider
- provides input from config- Throws:
de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
- if any required data is not provided
-
-
Method Detail
-
reportCosts
protected void reportCosts(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
Write annual costs to output; To trigger contractFlexibilityTrader
with itself- Parameters:
input
- not usedcontracts
- not used
-
getInstalledCapacityInMW
protected abstract double getInstalledCapacityInMW()
Return installed capacity of the operated flexibility device- Returns:
- installed capacity in MW
-
requestElectricityForecast
protected void requestElectricityForecast(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
Requests a forecast from a contracted Forecaster. The type of forecast (eitherMeritOrderMessage
or PriceForecast) is determined by the contract.- Parameters:
input
- one ClearingTimes message from connectedDayAheadMarket
contracts
- single contracted Forecaster to request forecast from
-
getStrategist
protected abstract Strategist getStrategist()
- Returns:
- strategist instance of respective FlexibilityTrader
-
updateMeritOrderForecast
protected void updateMeritOrderForecast(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
Digests incomingMeritOrderMessage
forecasts- Parameters:
input
- one or multiple merit order forecast message(s)contracts
- not used
-
updateElectricityPriceForecast
protected void updateElectricityPriceForecast(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
Digests incoming price forecasts- Parameters:
input
- one or multiple price forecast message(s)contracts
- not used
-
-