Package org.powertac.genco
Class Genco
- java.lang.Object
-
- org.powertac.common.Broker
-
- org.powertac.genco.Genco
-
- Direct Known Subclasses:
Buyer
@Domain @ConfigurableInstance public class Genco extends Broker
Represents a producer of power in the transmission domain. Individual models are players on the wholesale side of the Power TAC day-ahead market.- Author:
- jcollins
-
-
Field Summary
Fields Modifier and Type Field Description protected BrokerProxybrokerProxyServiceprotected RandomSeedseed
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidgenerateOrders(org.joda.time.Instant now, List<Timeslot> openSlots)Generates Orders in the market to sell available capacity.doublegetCarbonEmissionRate()Rate at which this plant emits carbon, relative to a coal-fired thermal plant.intgetCommitmentLeadtime()Leadtime to commit energy from this plant, expressed in number of timeslots.doublegetCost()Ask price for energy from this plant.doublegetNominalCapacity()Nominal or mean capacity of plant.doublegetReliability()Probability that this plant will submit asks in any given timeslotdoublegetVariability()Maximim amount by which capacity can change/timeslot in random walk.voidinit(BrokerProxy proxy, int seedId, RandomSeedRepo randomSeedRepo)booleanisInOperation()True if plant is currently operatingvoidsetCurrentCapacity(double val)voidsetInOperation(boolean op)voidupdateModel(org.joda.time.Instant currentTime)Updates this model for the current timeslot, by adjusting capacity, checking for downtime, and creating exogenous commitments.GencowithCarbonEmissionRate(double rate)Fluent setter for carbonEmissionRate.GencowithCommitmentLeadtime(int leadtime)Fluent setter for commitment leadtime.GencowithCost(double cost)Fluent setter for nominal capacityGencowithNominalCapacity(double capacity)Fluent setter for nominal capacityGencowithReliability(double reliability)Fluent setter for reliability.GencowithVariability(double var)Fluent setter for variability.-
Methods inherited from class org.powertac.common.Broker
addMarketPosition, addMarketPosition, findMarketPositionByTimeslot, findMarketPositionByTimeslot, getCashBalance, getId, getIdPrefix, getKey, getPassword, getUsername, isEnabled, isLocal, isWholesale, receiveMessage, setEnabled, setIdPrefix, setKey, setLocal, setPassword, setQueueName, setWholesale, toQueueName, toString, updateCash
-
-
-
-
Field Detail
-
brokerProxyService
protected BrokerProxy brokerProxyService
-
seed
protected RandomSeed seed
-
-
Constructor Detail
-
Genco
public Genco(String username)
-
-
Method Detail
-
init
public void init(BrokerProxy proxy, int seedId, RandomSeedRepo randomSeedRepo)
-
isInOperation
public boolean isInOperation()
True if plant is currently operating
-
getNominalCapacity
public double getNominalCapacity()
Nominal or mean capacity of plant. This is the value toward which the mean-reverting random walk reverts.
-
withNominalCapacity
@ConfigurableValue(valueType="Double", description="nominal output capacity of this genco in MW") @StateChange public Genco withNominalCapacity(double capacity)
Fluent setter for nominal capacity
-
getCost
public double getCost()
Ask price for energy from this plant.
-
withCost
@ConfigurableValue(valueType="Double", description="minimum payment/mwh needed to operate this plant") @StateChange public Genco withCost(double cost)
Fluent setter for nominal capacity
-
getVariability
public double getVariability()
Maximim amount by which capacity can change/timeslot in random walk.
-
withVariability
@ConfigurableValue(valueType="Double", description="max ratio for a step in capacity random walk") @StateChange public Genco withVariability(double var)
Fluent setter for variability.
-
getReliability
public double getReliability()
Probability that this plant will submit asks in any given timeslot
-
withReliability
@ConfigurableValue(valueType="Double", description="probability that plant will participate in wholesale market") @StateChange public Genco withReliability(double reliability)
Fluent setter for reliability.
-
getCommitmentLeadtime
public int getCommitmentLeadtime()
Leadtime to commit energy from this plant, expressed in number of timeslots. Plant will not send orders to the market within this leadtime unless it has at least partially committed power for the timeslot in question.
-
withCommitmentLeadtime
@ConfigurableValue(valueType="Integer", description="minimum leadtime for first commitment, in hours") @StateChange public Genco withCommitmentLeadtime(int leadtime)
Fluent setter for commitment leadtime.
-
getCarbonEmissionRate
public double getCarbonEmissionRate()
Rate at which this plant emits carbon, relative to a coal-fired thermal plant.
-
withCarbonEmissionRate
@ConfigurableValue(valueType="Double", description="carbon emissions/mwh, relative to coal-fired plant") @StateChange public Genco withCarbonEmissionRate(double rate)
Fluent setter for carbonEmissionRate.
-
updateModel
public void updateModel(org.joda.time.Instant currentTime)
Updates this model for the current timeslot, by adjusting capacity, checking for downtime, and creating exogenous commitments.
-
generateOrders
public void generateOrders(org.joda.time.Instant now, List<Timeslot> openSlots)Generates Orders in the market to sell available capacity. No Orders are submitted if the plant is not in operation.
-
setCurrentCapacity
@StateChange public void setCurrentCapacity(double val)
-
setInOperation
@StateChange public void setInOperation(boolean op)
-
-