Package agents.policy

Class 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
    • Constructor Detail

      • Mpvar

        public Mpvar()
    • 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 empty PolicyItem with its associated config data
        Specified by:
        setDataFromConfig in class PolicyItem
        Parameters:
        group - DataProvider group matching type of PolicyItem 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 for Portables
      • populate

        public void populate​(de.dlr.gitlab.fame.communication.transfer.ComponentProvider provider)
        required for Portables
      • 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
      • 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 class PolicyItem
        Parameters:
        powerPrices - at the time the infeed occurred
        request - 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 class PolicyItem
        Parameters:
        accountingPeriod - for which to calculate the support rate
        marketValue - 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 estimate
        time - 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 class PolicyItem
        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 class PolicyItem
        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 class PolicyItem
        Returns:
        true if PolicyItem returns a type of market premium