Tracker#

Production Cost Models (PCM) computes the time-varying dispatch schedules for each resource using simplified models. Emerging resources including IESs and industrial demand response need to determine the optimal operations strategy to track their market dispatch signal. The Tracker formulates these decisions as a model predictive control (MPC) problem. The figure below shows an example of the optimal tracking from an integrated energy system which consists of a thermal generator and an energy storage. The figure shows that to track the dispatch (load) the energy system can optimally use power output from charging and discharging cycle.

Tracking Problem for Wind+PEM IES#

Here we present a tracking problem example for wind + PEM IES.

\[\min \quad \sum_{t \in T^{RT}} (c_{t,0} + \omega_{t}(P^{+}_{t,0} + P^{-}_{t,0})) - C_{fix}\]

s.t.

\[P_{t,0} + P_{t,0}^{-} = \hat{P}^{RT}_{t} + P^{+}_{t,0} \quad \forall t\]
\[P_{t,0} + \hat{P}_{t,0}^{PEM} \leq \hat{P}_{wind}^{RT} \quad \forall t\]
\[P_{t,0}^{PEM} \leq P_{max}^{PEM} \quad \forall t\]
\[m_{t,0}^{H} = P_{t,0}^{PEM}C_{H}\Delta t \quad \forall t\]
\[c_{t,0} = C^{op} P_{t,0}^{PEM}\quad \forall t\]
\[C_{fix} = C_{fix}^{wind}P_{max}^{wind} + C_{fix}^{PEM}P_{max}^{PEM}\]

Parameters

\(\hat{P}^{RT}_{t}\): Realized real-time dispatch level at hour t, MW.

\(\hat{P}_{wind}^{RT}\): Realized wind generation power at hour t, MW.

\(P_{max}^{PEM}\): PEM max capacity, MW.

\(C^{op}\): PEM operation cost coefficient, $/MW.

\(C_{fix}^{wind}\): Wind generator fixed cost coefficient, $/MW.

\(C_{fix}^{PEM}\): PEM fixed cost coefficient, $/MW.

\(C_{H}\): Electricity to hydrogen conversion rate, kg/MWh.

Variables

\(P_{t,0}\): IES power output to the grid at hour t in scenario 0, MW.

\(P_{t,0}^{PEM}\): Power delivered to PEM at hour t in scenario 0, MW.

\(P_{t,0}^{+}\): Power over-delivered by the IES to the grid at hour t in scenario 0, MW.

\(P_{t,0}^{-}\): Power under-delivered by the IES to the grid at hour t in scenario 0, MW.

\(m_{t,0}^{H}\): Hydrogen production mass at hour t in scenario 0, kg.

\(c_{t,0}\): IES operational cost at hour t in scenario 0, $.

Alternative text

class idaes.apps.grid_integration.tracker.Tracker(tracking_model_object, tracking_horizon, n_tracking_hour, solver)[source]#

Wrap a model object to track the market dispatch signals. This class interfaces with the DoubleLoopCoordinator.

formulate_tracking_problem()[source]#

Formulate the tracking optimization problem by adding necessary parameters, constraints, and objective function.

Parameters:

None

Returns:

None

get_last_delivered_power()[source]#

Returns the last delivered power output.

Parameters:

None

Returns:

None

record_results(**kwargs)[source]#

Record the operations stats for the model.

Parameters:

kwargs – key word arguments that can be passed into tracking model object’s record result function.

Returns:

None

track_market_dispatch(market_dispatch, date, hour)[source]#

Solve the model to track the market dispatch signals. After solving, record the results from the solve and update the model.

Parameters:
  • market_dispatch – a list that contains the market dispatch signals

  • date – current simulation date

  • hour – current simulation hour

Returns:

None

update_model(**profiles)[source]#

This method updates the parameters in the model based on the implemented profiles.

Parameters:

profiles – the newly implemented stats. {stat_name: […]}

Returns:

None

write_results(path)[source]#

This methods writes the saved operation stats into an csv file.

Parameters:

path – the path to write the results.

Returns:

None