Package agents.policy
Class Mpvar
- java.lang.Object
-
- agents.policy.PolicyItem
-
- agents.policy.Mpvar
-
- All Implemented Interfaces:
de.dlr.gitlab.fame.communication.transfer.Portable
public class Mpvar extends PolicyItem
Set-specific realisation of a variable market premium- Author:
- Johannes Kochems, Christoph Schimeczek
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class agents.policy.PolicyItem
PolicyItem.SupportInstrument
-
-
Constructor Summary
Constructors Constructor Description Mpvar()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addComponentsTo(de.dlr.gitlab.fame.communication.transfer.ComponentCollector collector)
required forPortable
sdouble
calcCapacitySupportRate(de.dlr.gitlab.fame.time.TimePeriod accountingPeriod)
Calculate the support rate in EUR/MW per eligible installed capacitydouble
calcEligibleCapacity(SupportRequestData request)
Calculate the capacity eligible for support under the given instrumentdouble
calcEligibleInfeed(TreeMap<de.dlr.gitlab.fame.time.TimeStamp,Double> powerPrices, SupportRequestData request)
Calculate the infeed eligible for support under the given instrumentdouble
calcInfeedSupportRate(de.dlr.gitlab.fame.time.TimePeriod accountingPeriod, double marketValue)
Calculate the support rate in EUR/MWh per eligible infeeddouble
calcMpVar(double marketValue, de.dlr.gitlab.fame.time.TimeStamp time)
Calculate specific variable market premium in EUR/MWh for a given time using LCOE and market value (or market value estimate)de.dlr.gitlab.fame.data.TimeSeries
getLcoe()
int
getMaxNumberOfNegativeHours()
PolicyItem.SupportInstrument
getSupportInstrument()
boolean
isEligible(int actualNegativeHours)
Returns true if given number of hours with negative prices is below or equal their maximum allowed valueboolean
isTypeOfMarketPremium()
void
populate(de.dlr.gitlab.fame.communication.transfer.ComponentProvider provider)
required forPortable
svoid
setDataFromConfig(de.dlr.gitlab.fame.agent.input.ParameterData group)
Initialises an emptyPolicyItem
with its associated config data-
Methods inherited from class agents.policy.PolicyItem
buildPolicy, calcEligibleHours, getClass, isEligible, readMaxNumberOfNegativeHours
-
-
-
-
Method Detail
-
setDataFromConfig
public void setDataFromConfig(de.dlr.gitlab.fame.agent.input.ParameterData group) throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
Description copied from class:PolicyItem
Initialises an emptyPolicyItem
with its associated config data- Specified by:
setDataFromConfig
in classPolicyItem
- Parameters:
group
- DataProvider group matching type ofPolicyItem
to provide input from config- Throws:
de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
- if any required data is not provided
-
addComponentsTo
public void addComponentsTo(de.dlr.gitlab.fame.communication.transfer.ComponentCollector collector)
required forPortable
s
-
populate
public void populate(de.dlr.gitlab.fame.communication.transfer.ComponentProvider provider)
required forPortable
s
-
getLcoe
public de.dlr.gitlab.fame.data.TimeSeries getLcoe()
- Returns:
- levelised cost of electricity in EUR/MWh
-
getMaxNumberOfNegativeHours
public int getMaxNumberOfNegativeHours()
- Returns:
- maximum number of consecutive hours with negative prices tolerated until suspending support payment
-
getSupportInstrument
public PolicyItem.SupportInstrument getSupportInstrument()
- Specified by:
getSupportInstrument
in classPolicyItem
- Returns:
PolicyItem.SupportInstrument
thisPolicyItem
is covering
-
calcEligibleInfeed
public double calcEligibleInfeed(TreeMap<de.dlr.gitlab.fame.time.TimeStamp,Double> powerPrices, SupportRequestData request)
Description copied from class:PolicyItem
Calculate the infeed eligible for support under the given instrument- Specified by:
calcEligibleInfeed
in classPolicyItem
- Parameters:
powerPrices
- at the time the infeed occurredrequest
- specifying the infeed data- Returns:
- amount eligible for support payment in MWH based on infeed in accounting period
-
calcInfeedSupportRate
public double calcInfeedSupportRate(de.dlr.gitlab.fame.time.TimePeriod accountingPeriod, double marketValue)
Description copied from class:PolicyItem
Calculate the support rate in EUR/MWh per eligible infeed- Specified by:
calcInfeedSupportRate
in classPolicyItem
- Parameters:
accountingPeriod
- for which to calculate the support ratemarketValue
- of the respective energy carrier during the accounting period- Returns:
- support rate in EUR/MWh per eligible infeed
-
calcMpVar
public double calcMpVar(double marketValue, de.dlr.gitlab.fame.time.TimeStamp time)
Calculate specific variable market premium in EUR/MWh for a given time using LCOE and market value (or market value estimate)- Parameters:
marketValue
- the market value or a market value estimatetime
- at which to evaluate- Returns:
- specific variable market premium in €/MWh
-
isEligible
public boolean isEligible(int actualNegativeHours)
Returns true if given number of hours with negative prices is below or equal their maximum allowed value- Parameters:
actualNegativeHours
- actual number of hours with negative prices in a row- Returns:
- true if given actual negative hour count is smaller or equal than maximum number of negative hours (if defined)
-
calcEligibleCapacity
public double calcEligibleCapacity(SupportRequestData request)
Description copied from class:PolicyItem
Calculate the capacity eligible for support under the given instrument- Specified by:
calcEligibleCapacity
in classPolicyItem
- Parameters:
request
- specifying the total capacity- Returns:
- amount eligible for support payment in MW based on available capacity in accounting period
-
calcCapacitySupportRate
public double calcCapacitySupportRate(de.dlr.gitlab.fame.time.TimePeriod accountingPeriod)
Description copied from class:PolicyItem
Calculate the support rate in EUR/MW per eligible installed capacity- Specified by:
calcCapacitySupportRate
in classPolicyItem
- Parameters:
accountingPeriod
- for which to calculate the support rate- Returns:
- support rate in EUR/MW per installed capacity
-
isTypeOfMarketPremium
public boolean isTypeOfMarketPremium()
- Specified by:
isTypeOfMarketPremium
in classPolicyItem
- Returns:
- true if PolicyItem returns a type of market premium
-
-