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 begining 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.

pass_static_params_to_DA(options, simulator, ruc_instance, ruc_date, ruc_hour)[source]

This method pass static generator parameters to RUC model in Prescient before it is solved.

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

pass_static_params_to_RT(options, simulator, sced_instance)[source]

This method pass static generator parameters to SCED model in Prescient before it is solved.

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

  • simulator – Prescient simulator.

  • sced_instance – Prescient SCED object.

Returns

None

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

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

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