Skip to content

User documentation topic: interface between satellite model and market

New section: Market/satellite interface

The interface between the market and satellite models has been reasonably defined by now (mostly in src/demoses-coupling/coupling.py), but is not explicitly documented anywhere.

Part of #56

Summary of the required documentation

The interface consists of two kinds of messages:

  • Bids
  • Market information

Bids

Bids are sent by each satellite model to the central market model to be used for the market clearing process. Bids are expected as a pandas Dataframe with a fixed layout:

  • two data columns: "price" and "quantity"
  • two index 'columns': "timestamps" and "demand" (where "demand" is an integer value to distinguish between different non-overlapping bids at the same timestamp)

This layout is probably most concisely encoded in the compact/extract functions in src/demoses-coupling/coupling-components.py.

Market information

The market information is sent from the central market model to each satellite model. This consists of three pieces of information for each satellite model:

  • market price at each timestamp
  • supplied demand for the specific satellite model per timestamp
  • configuration file location for that satellite model

The market price and supplied demand are vectors of rolling_horizon_step elements. The configuration file location for that satellite model is included to give the satellite its configuration information so it can be initiallized at the first message.

  • NOTE: Because of the current implementation, the messages have to remain consistent throughout the runtime to prevent code duplication. Ideally, we'd like to use something like MUSCLE3's receive_with_settings to send this configuration, but I haven't been able to get that to work yet. -Sander

Checklist

  • I have checked the list of existing issues and couldn't find an issue about this.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information