Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement new generalised type for storing energy bids #36

Open
BSnelling opened this issue Nov 9, 2022 · 0 comments
Open

Implement new generalised type for storing energy bids #36

BSnelling opened this issue Nov 9, 2022 · 0 comments

Comments

@BSnelling
Copy link
Member

Call this new type EnergyBids for the sake of the issue. EnergyBids would replace the KeyedArray{Vector{Tuple{Float64, Float64}}, 2} that currently represents a set of bids in a System. The keys of these KeyedArrays are bid ids x datetimes and the values are vectors of price-volume pairs ($, pu). Initially this was sufficient to represent the concept of energy bids. In order to support the formulations of other ISOs there are additional requirements for the EnergyBids type:

  • price sensitive bids can still be stored as KeyedArray{Vector{Tuple{Float64, Float64}}, 2} where the axis keys are bid ids x datetimes
  • multi hour bids - bids submitted with a true multi hour flag have to clear as a block (either they all clear or none do), this can be stored in the EnergyBids as a KeyedArray{Int} where the integers act as an id for a block of multi-hour bids
  • fixed bids - bids that are "fixed" must clear at the specified volume or not at all. The alternative is variable type bids which can clear at a volume up to the specified volume. This can be stored in EnergyBids as a KeyedArray{Bool}

So the type would look like:

struct EnergyBids
    """
    Multi-hour block id. In a multi-hour block either all bids clear or none do.
    """
    multi_hour::KeyedArray{Int64, 2}
    """
    Bool indicating whether the bid is a fixed type which can only clear at the given price
    and volume.
    """
    is_fixed_type::KeyedArray{Bool, 2}
    "Bid curve, `KeyedArray` where the axis keys are `generator names x datetimes`."
    bid_curve::KeyedArray{PriceSensitiveBid, 2}
end

Additional requirements

  • it may be useful to have a way to differentiate between supply and demand EnergyBids, either by adding a field to EnergyBids or using subtypes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant