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)
new(double exerciseRatio, double price, long tariffId, long brokerId)
- Author:
- John Collins
-
Field Summary
-
Constructor Summary
Constructors Modifier Constructor Description protectedBalancingOrder()BalancingOrder(Broker broker, TariffSpecification tariff, double exerciseRatio, double price)Creates a new BalancingOrder for the given tariff. -
Method Summary
Modifier and Type Method Description doublegetExerciseRatio()doublegetPrice()booleanisValid()Valid if exerciseRatio between 0 and 2
-
Constructor Details
-
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 Details
-
getExerciseRatio
public double getExerciseRatio() -
getPrice
public double getPrice() -
isValid
public boolean isValid()Valid if exerciseRatio between 0 and 2- Specified by:
isValidin interfaceValidatableMessage- Overrides:
isValidin classTariffMessage
-