Class PowerPlantOperator

  • All Implemented Interfaces:
    de.dlr.gitlab.fame.agent.AgentAbility
    Direct Known Subclasses:
    ConventionalPlantOperator, RenewablePlantOperator

    public abstract class PowerPlantOperator
    extends de.dlr.gitlab.fame.agent.Agent
    Handles communication of power plant operators with their contracting Trader
    Author:
    Christoph Schimeczek
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  PowerPlantOperator.OutputFields
      Available output columns
      static class  PowerPlantOperator.Products
      Available products
      • Nested classes/interfaces inherited from class de.dlr.gitlab.fame.agent.Agent

        de.dlr.gitlab.fame.agent.Agent.WarmUpStatus
    • Field Summary

      • Fields inherited from class de.dlr.gitlab.fame.agent.Agent

        contractManager, logger
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void digestPayment​(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
      Writes the income received from an associated trader to output
      protected void digestPaymentPerPlant​(de.dlr.gitlab.fame.time.TimeStamp dispatchTime, double totalPaymentInEUR)
      Optional function to digest payments for individual plants of plant operator
      protected abstract double dispatchPlants​(double awardedPower, de.dlr.gitlab.fame.time.TimeStamp time)
      Dispatches associated power plants to generate the specified awarded power
      void executeDispatch​(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
      Runs power plant(s) according to received dispatch instructions
      protected abstract double getInstalledCapacityInMW()  
      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
      • 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
    • Constructor Detail

      • PowerPlantOperator

        public PowerPlantOperator​(de.dlr.gitlab.fame.agent.input.DataProvider dataProvider)
        Parameters:
        dataProvider - provides input from config file
    • Method Detail

      • executeDispatch

        public void executeDispatch​(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input,
                                    List<de.dlr.gitlab.fame.communication.Contract> contracts)
        Runs power plant(s) according to received dispatch instructions
        Parameters:
        input - single message declaring the power to dispatch
        contracts - not used
      • dispatchPlants

        protected abstract double dispatchPlants​(double awardedPower,
                                                 de.dlr.gitlab.fame.time.TimeStamp time)
        Dispatches associated power plants to generate the specified awarded power
        Parameters:
        awardedPower - amount of power to generate
        time - at which to dispatch
        Returns:
        total costs for dispatch
      • digestPayment

        protected void digestPayment​(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input,
                                     List<de.dlr.gitlab.fame.communication.Contract> contracts)
        Writes the income received from an associated trader to output
        Parameters:
        input - single message payment from an associated trader
        contracts - not used
      • digestPaymentPerPlant

        protected void digestPaymentPerPlant​(de.dlr.gitlab.fame.time.TimeStamp dispatchTime,
                                             double totalPaymentInEUR)
        Optional function to digest payments for individual plants of plant operator
        Parameters:
        dispatchTime - time at which the payment is received
        totalPaymentInEUR - total money to be paid out to plant operator
      • 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
        Parameters:
        input - not used
        contracts - not used
      • getInstalledCapacityInMW

        protected abstract double getInstalledCapacityInMW()
        Returns:
        current installed capacity