Class CpGenco


  • @Domain
    @ConfigurableInstance
    public class CpGenco
    extends Broker
    Represents a set of bulk producers distributed across the transmission domain. The assumption is that there will be exactly one of these operating in the wholesale side of the Power TAC day-ahead market. This instance submits bids in a way that is intended to mimic the price curve at a load node subject to congestion pricing. The function is a polynomial. Its coefficients are configurable, as are the nominal interval between bid prices (to create the piecewise-linear supply curve) and the variability of price and quantity per bid.
    Author:
    John Collins
    • Constructor Detail

      • CpGenco

        public CpGenco​(String username)
    • Method Detail

      • generateOrders

        public void generateOrders​(org.joda.time.Instant now,
                                   List<Timeslot> openSlots)
        Generates Orders in the market to sell remaining available capacity.
      • saveBootstrapState

        public void saveBootstrapState​(ServerConfiguration serverConfig)
        Saves coefficients for the current timeslot in the form needed for configuration at the start of the sim session, then adds them to the bootstrap state.
      • getCoefficients

        public List<String> getCoefficients()
        Returns function coefficients as an array of Strings
      • getCoefficientArray

        public double[] getCoefficientArray()
        Returns coefficients as a array.
      • getPSigma

        public double getPSigma()
        Std deviation ratio for bid price.
      • getQSigma

        public double getQSigma()
        Std deviation ratio for bid quantity.
      • getRwaSigma

        public double getRwaSigma()
        Random-walk sigma for the quadratic coefficient
      • getRwaOffset

        public double getRwaOffset()
        Random-walk offset for the quadratic coefficient
      • getRwcSigma

        public double getRwcSigma()
        Random-walk sigma for the constant coefficient
      • getRwcOffset

        public double getRwcOffset()
        Random-walk offset for the constant coefficient
      • getPriceInterval

        public double getPriceInterval()
        Difference between sequential nominal bid prices
      • withPriceInterval

        @ConfigurableValue(valueType="Double",
                           description="Nominal price interval between successive bids")
        @StateChange
        public CpGenco withPriceInterval​(double interval)
        Fluent setter for price interval. Bigger values create a more coarse piecewise approximation of the supply curve.
      • getMinQuantity

        public double getMinQuantity()
        Minimum total quantity to offer. The generation function will be run until it hits this value.
      • getKneeDemand

        public double getKneeDemand()
        Congestion threshold at which slope increases
      • getKneeSlope

        public double getKneeSlope()
        Congestion threshold at which slope increases