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 BrokerProxy
brokerProxyService
protected RandomSeed
seed
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
generateOrders(org.joda.time.Instant now, List<Timeslot> openSlots)
Generates Orders in the market to sell available capacity.double
getCarbonEmissionRate()
Rate at which this plant emits carbon, relative to a coal-fired thermal plant.int
getCommitmentLeadtime()
Leadtime to commit energy from this plant, expressed in number of timeslots.double
getCost()
Ask price for energy from this plant.double
getNominalCapacity()
Nominal or mean capacity of plant.double
getReliability()
Probability that this plant will submit asks in any given timeslotdouble
getVariability()
Maximim amount by which capacity can change/timeslot in random walk.void
init(BrokerProxy proxy, int seedId, RandomSeedRepo randomSeedRepo)
boolean
isInOperation()
True if plant is currently operatingvoid
setCurrentCapacity(double val)
void
setInOperation(boolean op)
void
updateModel(org.joda.time.Instant currentTime)
Updates this model for the current timeslot, by adjusting capacity, checking for downtime, and creating exogenous commitments.Genco
withCarbonEmissionRate(double rate)
Fluent setter for carbonEmissionRate.Genco
withCommitmentLeadtime(int leadtime)
Fluent setter for commitment leadtime.Genco
withCost(double cost)
Fluent setter for nominal capacityGenco
withNominalCapacity(double capacity)
Fluent setter for nominal capacityGenco
withReliability(double reliability)
Fluent setter for reliability.Genco
withVariability(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)
-
-