Coordinator

Coordinator#

To ensure the energy supply equals demand at every moment across the transmission network, Independent System Operators (ISOs) clear the markets seeks to minimize the overall operation and production costs by coordinating the operation schedules of generation units in the network while considering operational and physical constraints of power systems. As mentioned above, the market is cleared by a two-settlement system: the day-ahead market and the real-time market. In the framework, the ISOs are modeled by the PCM Prescient. The DoubleLoopCoordinator will coordinate the operations among Bidder, Tracker, and Prescient for the simulations.

class idaes.apps.grid_integration.coordinator.DoubleLoopCoordinator(bidder, tracker, projection_tracker)[source]#

Coordinate Prescient, tracker and bidder.

activate_pending_DA_data(options, simulator)[source]#

This function puts the day-ahead data computed in the day before into effect, i.e. the data for the next day become the data for the current day.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

Returns:

None

assemble_project_tracking_signal(options, simulator, hour)[source]#

This function assembles the signals for the tracking model to estimate the state of the bidding model at the beginning of next RUC.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

  • hour – the simulation hour.

Returns:

the market signals to be tracked.

Return type:

market_signals

assemble_sced_tracking_market_signals(options, simulator, sced_instance, hour)[source]#

This function assembles the signals for the tracking model.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

  • sced_instance – Prescient SCED object

  • hour – the simulation hour.

Returns:

the market signals to be tracked.

Return type:

market_signals

bid_into_DAM(options, simulator, ruc_instance, ruc_date, ruc_hour)[source]#

This function uses the bidding objects to bid into the day-ahead market (DAM).

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

  • ruc_instance – Prescient RUC object.

  • ruc_date – the date of the day-ahead market we bid into.

  • ruc_hour – the hour the RUC is being solved in the day before.

Returns:

None

bid_into_RTM(options, simulator, sced_instance)[source]#

This function bids into the real-time market. At this moment I just copy the corresponding day-ahead bid here.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

  • sced_instance – Prescient SCED object.

Returns:

None

fetch_DA_dispatches(options, simulator, result, uc_date, uc_hour)[source]#

This method fetches the day-ahead dispatches from unit commitment results, and save it as a coordinator attribute.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

  • result – a Prescient RucPlan object.

  • ruc_date – the date of the day-ahead market we bid into.

  • ruc_hour – the hour the RUC is being solved in the day before.

Returns:

None

fetch_DA_prices(options, simulator, result, uc_date, uc_hour)[source]#

This method fetches the day-ahead market prices from unit commitment results, and save it as a coordinator attribute.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

  • result – a Prescient RucPlan object.

  • ruc_date – the date of the day-ahead market we bid into.

  • ruc_hour – the hour the RUC is being solved in the day before.

Returns:

None

get_configuration(key)[source]#

Register customized commandline options.

Parameters:

key – plugin name

Returns:

Prescient config dict

Return type:

config

initialize_customized_results(options, simulator)[source]#

This method is outdated.

project_tracking_trajectory(options, simulator, ruc_hour)[source]#

This function projects the full power dispatch trajectory from the tracking model so we can use it to update the bidding model, i.e. advance the time for the bidding model.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

  • ruc_hour – the hour RUC is being solved

Returns:

the full projected power dispatch trajectory.

Return type:

full_projected_trajectory

push_day_ahead_stats_to_forecaster(options, simulator, day_ahead_result, uc_date, uc_hour)[source]#

This method pushes the day-ahead market to the price forecaster after the UC is solved.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

  • day_ahead_result – a Prescient RucPlan object.

  • ruc_date – the date of the day-ahead market we bid into.

  • ruc_hour – the hour the RUC is being solved in the day before.

Returns:

None

push_hourly_stats_to_forecaster(prescient_hourly_stats)[source]#

This method pushes the hourly stats from Prescient to the price forecaster once the hourly stats are published.

Parameters:

prescient_hourly_stats – Prescient HourlyStats object.

Returns:

None

register_plugins(context, options, plugin_config)[source]#

Register functionalities in Prescient’s plugin system.

Parameters:
  • context – Prescient plugin PluginRegistrationContext from prescient.plugins.plugin_registration

  • options – Prescient options from prescient.simulator.config

  • plugin_config – Prescient plugin config

Returns:

None

track_sced_signal(options, simulator, sced_instance, lmp_sced)[source]#

This methods uses the tracking object to track the current real-time market signals.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

  • sced_instance – Prescient SCED object

  • lmp_sced – Prescient SCED LMP object

Returns:

None

update_observed_dispatch(options, simulator, ops_stats)[source]#

This methods extract the actual power delivered by the tracking model and inform Prescient, so Prescient can use this data to calculate the settlement and etc.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

  • ops_stats – Prescient operation statitstic object

Returns:

None

update_static_params(options, instance)[source]#

This method pass static generator parameters in Prescient immediately after a model is created.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • instance – Prescient RUC object or SCED object.

Returns:

None

write_plugin_results(options, simulator)[source]#

After the simulation is completed, the plugins can write their own customized results. Each plugin will have to have a method named ‘write_results’.

Parameters:
  • options – Prescient options from prescient.simulator.config.

  • simulator – Prescient simulator.

Returns:

None