EMLab-Generation2
emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer > Class Template Referenceabstract
Inheritance diagram for emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >:
emlab.gen.engine.AbstractRole< T extends Agent > emlab.gen.engine.Role< T > emlab.gen.role.investment.DismantlePowerPlantOperationalLossRole emlab.gen.role.investment.GenericInvestmentRole< T extends EnergyProducer > emlab.gen.role.market.ReassignPowerPlantsToLongTermElectricityContractsRole emlab.gen.role.market.ReceiveLongTermContractPowerRevenuesRole emlab.gen.role.market.SubmitBidsToCommodityMarketRole emlab.gen.role.market.SubmitLongTermElectricityContractsRole emlab.gen.role.market.SubmitOffersToElectricitySpotMarketRole emlab.gen.role.operating.DetermineFuelMixRole emlab.gen.role.operating.PayCO2AuctionRole emlab.gen.role.operating.PayCO2TaxRole emlab.gen.role.operating.PayOperatingAndMaintainanceCostsRole

Public Member Functions

 AbstractEnergyProducerRole (Schedule schedule)
 
double calculateMarginalCO2Cost (PowerPlant powerPlant, long tick, boolean forecast)
 
double calculateMarginalCostExclCO2MarketCost (PowerPlant powerPlant, long clearingTick)
 
double calculateExpectedMarginalCostExclCO2MarketCost (PowerPlant powerPlant, Map< Substance, Double > forecastedFuelPrices, long tick)
 
double calculateMarginalFuelCost (PowerPlant powerPlant, long clearingTick)
 
double calculateExpectedMarginalFuelCost (PowerPlant powerPlant, Map< Substance, Double > forecastedFuelPrices)
 
double findLastKnownPriceOnMarket (DecarbonizationMarket market, long clearingTick)
 
double findLastKnownPriceForSubstance (Substance substance, long clearingTick)
 
double calculateCO2MarketMarginalCost (PowerPlant powerPlant, long clearingTick, boolean forecast)
 
double calculateCO2MarketCost (PowerPlant powerPlant, boolean forecast, long clearingTick)
 
double calculatePaymentEffictiveCO2NationalMinimumPriceCost (PowerPlant powerPlant, boolean forecast, long clearingTick)
 
double calculateCO2TaxMarginalCost (PowerPlant powerPlant, long tick)
 
double findLastKnownCO2Price (long clearingTick)
 
double calculateCO2Tax (PowerPlant powerPlant, boolean forecast, long clearingTick)
 
double calculateFixedOperatingCost (PowerPlant powerPlant, long clearingTick)
 
double calculateAveragePastOperatingProfit (PowerPlant pp, long horizon)
 
double calculatePastOperatingProfitInclFixedOMCost (PowerPlant plant, long clearingTick)
 
Set< SubstanceShareInFuelMixcalculateFuelMix (PowerPlant plant, Map< Substance, Double > substancePriceMap, double co2Price)
 
double convertFuelShareToMassVolume (double share)
 
double calculateFuelConsumptionWhenOnlyOneFuelIsUsed (Substance substance, double efficiency)
 
double determineLoanAnnuities (double totalLoan, double payBackTime, double interestRate)
 
HashMap< ElectricitySpotMarket, Double > determineExpectedCO2PriceInclTaxAndFundamentalForecast (long futureTimePoint, long yearsLookingBackForRegression, int adjustmentForDetermineFuelMix, long clearingTick)
 
Map< Substance, Double > predictFuelPrices (EnergyProducer agent, long futureTimePoint)
 
Map< Substance, Double > predictFuelPrices (long numberOfYearsBacklookingForForecasting, long futureTimePoint, long clearingTick)
 
- Public Member Functions inherited from emlab.gen.engine.AbstractRole< T extends Agent >
 AbstractRole (Schedule schedule)
 
Reps getReps ()
 
long getCurrentTick ()
 
void setSchedule (Schedule schedule)
 
Class< T > agentClass ()
 
void act (List<? extends T > agents)
 
- Public Member Functions inherited from emlab.gen.engine.Role< T >
void act (T agent)
 
Class< T > agentClass ()
 
void setSchedule (Schedule schedule)
 

Protected Member Functions

HashMap< ElectricitySpotMarket, Double > determineExpectedCO2PriceInclTax (long futureTimePoint, long yearsLookingBackForRegression, long clearingTick)
 
HashMap< ElectricitySpotMarket, Double > determineExpectedCO2PriceInclTax (long futureTimePoint, long yearsLookingBackForRegression, int adjustmentForDetermineFuelMix, long clearingTick)
 

Additional Inherited Members

- Public Attributes inherited from emlab.gen.engine.AbstractRole< T extends Agent >
Logger logger = Logger.getGlobal()
 
Schedule schedule
 

Member Function Documentation

◆ calculateFuelMix()

Set<SubstanceShareInFuelMix> emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >.calculateFuelMix ( PowerPlant  plant,
Map< Substance, Double >  substancePriceMap,
double  co2Price 
)

The fuel mix is calculated with a linear optimization model of the possible fuels and the requirements.

Parameters
substancePriceMapcontains the possible fuels and their market prices
minimumFuelMixQualityis the minimum fuel quality needed for the power plant to work
efficiencyof the plant determines the need for fuel per MWhe
co2TaxLevelis part of the cost for CO2
co2AuctionPriceis part of the cost for CO2
Returns
the fuel mix

◆ calculatePaymentEffictiveCO2NationalMinimumPriceCost()

double emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >.calculatePaymentEffictiveCO2NationalMinimumPriceCost ( PowerPlant  powerPlant,
boolean  forecast,
long  clearingTick 
)

Calculates the payment effective part of the national CO2 price. In this case you only pay the excess over the EU carbon market price to your own government.

Parameters
powerPlant
Returns

◆ determineExpectedCO2PriceInclTax() [1/2]

HashMap<ElectricitySpotMarket, Double> emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >.determineExpectedCO2PriceInclTax ( long  futureTimePoint,
long  yearsLookingBackForRegression,
int  adjustmentForDetermineFuelMix,
long  clearingTick 
)
protected

Calculates expected CO2 price based on a geometric trend estimation, of the past years. The adjustmentForDetermineFuelMix needs to be set to 1, if this is used in the determine fuel mix role.

Parameters
futureTimePointYear the prediction is made for
yearsLookingBackForRegressionHow many years are used as input for the regression, incl. the current tick.
Returns

◆ determineExpectedCO2PriceInclTax() [2/2]

HashMap<ElectricitySpotMarket, Double> emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >.determineExpectedCO2PriceInclTax ( long  futureTimePoint,
long  yearsLookingBackForRegression,
long  clearingTick 
)
protected

Calculates expected CO2 price based on a geometric trend estimation, of the past years

Parameters
futureTimePoint
yearsLookingBackForRegression
Returns

◆ determineExpectedCO2PriceInclTaxAndFundamentalForecast()

HashMap<ElectricitySpotMarket, Double> emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >.determineExpectedCO2PriceInclTaxAndFundamentalForecast ( long  futureTimePoint,
long  yearsLookingBackForRegression,
int  adjustmentForDetermineFuelMix,
long  clearingTick 
)

Calculates expected CO2 price based on a geometric trend estimation, of the past years. The adjustmentForDetermineFuelMix needs to be set to 1, if this is used in the determine fuel mix role.

Parameters
futureTimePointYear the prediction is made for
yearsLookingBackForRegressionHow many years are used as input for the regression, incl. the current tick.
Returns

◆ determineLoanAnnuities()

double emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >.determineLoanAnnuities ( double  totalLoan,
double  payBackTime,
double  interestRate 
)

Calculates the actual investment cost of a power plant per year, by using the exogenous modifier.

Parameters
powerPlant
Returns
the actual efficiency

◆ findLastKnownPriceForSubstance()

double emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >.findLastKnownPriceForSubstance ( Substance  substance,
long  clearingTick 
)

Finds the last known price for a substance. We try to find the market for it and get it get the price on that market for this tick, previous tick, or from a possible supplier directly. If multiple prices are found, the average is returned. This is the case for electricity spot markets, as they may have segments.

Parameters
substancethe price we want for
Returns
the (average) price found

◆ findLastKnownPriceOnMarket()

double emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >.findLastKnownPriceOnMarket ( DecarbonizationMarket  market,
long  clearingTick 
)

Finds the last known price on a specific market. We try to get it for this tick, previous tick, or from a possible supplier directly. If multiple prices are found, the average is returned. This is the case for electricity spot markets, as they may have segments.

Parameters
substancethe price we want for
Returns
the (average) price found

◆ predictFuelPrices() [1/2]

Map<Substance, Double> emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >.predictFuelPrices ( EnergyProducer  agent,
long  futureTimePoint 
)

Predicts fuel prices for futureTimePoint using a geometric trend regression forecast. Only predicts fuels that are traded on a commodity market.

Parameters
agent
futureTimePoint
Returns
Map<Substance, Double> of predicted prices.

◆ predictFuelPrices() [2/2]

Map<Substance, Double> emlab.gen.role.AbstractEnergyProducerRole< T extends EnergyProducer >.predictFuelPrices ( long  numberOfYearsBacklookingForForecasting,
long  futureTimePoint,
long  clearingTick 
)

Predicts fuel prices for futureTimePoint using a geometric trend regression forecast. Only predicts fuels that are traded on a commodity market.

Parameters
agent
futureTimePoint
Returns
Map<Substance, Double> of predicted prices.

The documentation for this class was generated from the following file: