Package org.powertac.common.msg
Class BalancingOrder
- java.lang.Object
-
- org.powertac.common.state.XStreamStateLoggable
-
- org.powertac.common.TariffMessage
-
- org.powertac.common.msg.TariffUpdate
-
- org.powertac.common.msg.BalancingOrder
-
- All Implemented Interfaces:
ValidatableMessage
@Domain(fields={"exerciseRatio","price","tariffId","broker"}) public class BalancingOrder extends TariffUpdate
Represents an offer of balancing capacity from a broker to the DU. Applicable only to tariffs that have a RegulationRate or a Rate with non-zero maxCurtailment, for the current timeslot, and a non-empty set of customer subscriptions. A BalancingOrder can specify up-regulation by curtailment (0 < exerciseRatio <= 1), or by discharging a battery (1 < exerciseRatio <= 2). A BalancingOrder can specify down-regulation (-1 <= exerciseRatio < 0), which translates to charging a battery (possibly faster than its default charge rate) or to dumping thermal energy into some type of thermal storage device (e.g. making more ice or raising the temperature of a water heater). The Broker specifies that proportion of the remaining curtailable capacity (remaining after possible application of an economic control) that can be curtailed for balancing purposes, but note that the actual curtailment is also constrained by the Rates in force during the timeslot. Once submitted, a BalancingOrder remains in effect until replaced with another BalancingOrder for the same Tariff. If the DU exercises a BalancingOrder, the broker is paid the specified price just to the extent that the balancing is for the benefit of some other broker. In other words, if the curtailment is used exclusively for the benefit of the issuing broker, it simply offsets the payment the broker would otherwise have had to make to the DU for the shortage or surplus. State log fields for readResolve():
new(double exerciseRatio, double price, long tariffId, long brokerId)- Author:
- John Collins
-
-
Field Summary
-
Fields inherited from class org.powertac.common.TariffMessage
broker, id
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BalancingOrder()
BalancingOrder(Broker broker, TariffSpecification tariff, double exerciseRatio, double price)
Creates a new BalancingOrder for the given tariff.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getExerciseRatio()
double
getPrice()
boolean
isValid()
Valid if exerciseRatio between -1 and 2-
Methods inherited from class org.powertac.common.msg.TariffUpdate
getTariffId
-
Methods inherited from class org.powertac.common.TariffMessage
getBroker, getId
-
Methods inherited from class org.powertac.common.state.XStreamStateLoggable
readResolve
-
-
-
-
Constructor Detail
-
BalancingOrder
public BalancingOrder(Broker broker, TariffSpecification tariff, double exerciseRatio, double price)
Creates a new BalancingOrder for the given tariff. If cleared in the balancing market, the price is the per-kWh value, positive if the broker is paid. The exerciseRatio specifies the allowable amount of regulation covered by this order. Values between 0.0 and 1.0 represent curtailment, or up-regulation. Further up-regulation is possible for storage devices with values between 1.0 and 2.0. Down-regulation (charging a battery or dumping energy into a thermal storage device) is represented by values between -1.0 and 0.0. In most cases, a broker should expect to be paid (positive price) for up-regulation, and to pay (negative price) for down-regulation.
-
BalancingOrder
protected BalancingOrder()
-
-
Method Detail
-
getExerciseRatio
public double getExerciseRatio()
-
getPrice
public double getPrice()
-
isValid
public boolean isValid()
Valid if exerciseRatio between -1 and 2- Specified by:
isValid
in interfaceValidatableMessage
- Overrides:
isValid
in classTariffMessage
-
-