h2integrate.control.control_rules.plant_dispatch_model#

Classes

PyomoDispatchPlantModel(pyomo_model, ...[, ...])

Class defining Pyomo model and rule for the optimized dispatch for load following for the overall optimization problem describing the system.

class h2integrate.control.control_rules.plant_dispatch_model.PyomoDispatchPlantModel(pyomo_model, index_set, source_techs, tech_dispatch_models, time_weighting_factor, round_digits, block_set_name='plant')#

Class defining Pyomo model and rule for the optimized dispatch for load following for the overall optimization problem describing the system.

Args: pyomo_model (pyo.ConcreteModel): Externally defined Pyomo model that works as the base

model that this class builds off of.

index_set (pyo.Set): Externally defined Pyomo index set for time steps. This should be

consistent with the forecast horizon of the optimization problem.

source_techs (list): List of technology names that are being dispatched in the system. tech_dispatch_models (pyo.ConcreteModel): Externally defined Pyomo model that contains

the technology-specific dispatch rules and components for each technology in the system.

time_weighting_factor (float): Exponential time weighting factor for the

optimization problem that defines if/how future time steps are discounted relative to the current time step in the optimization problem.

round_digits (int): Number of digits to round to in the Pyomo model. block_set_name (str, optional): Name of the block set (model variables).

Defaults to “plant”.

Parameters:
  • pyomo_model (ConcreteModel)

  • index_set (Set)

  • source_techs (list)

  • tech_dispatch_models (ConcreteModel)

  • time_weighting_factor (float)

  • round_digits (int)

  • block_set_name (str)

dispatch_block_rule(hybrid, t)#

Creates and initializes pyomo dispatch model components for a the system-level dispatch

This method sets up all model elements (parameters, variables, constraints, and ports) associated with a pyomo block within the dispatch model.

Parameters:
  • hybrid (pyo.ConcreteModel) – The Pyomo model to which the technology components will be added.

  • t (int) – integer location of variables in the control time window

initialize_parameters(commodity_in, commodity_demand, dispatch_params)#

Initialize parameters for optimization model

Parameters:
  • commodity_in (list) – List of generated commodity in for this time slice.

  • commodity_demand (list) – The demanded commodity for this time slice.

  • dispatch_inputs (dict) – Dictionary of the dispatch input parameters from config

  • dispatch_params (dict)

_create_variables_and_ports(hybrid, t)#

Connect variables and ports from individual technology model to system-level pyomo model instance.

Parameters:
  • hybrid (pyo.ConcreteModel) – The Pyomo model to which the technology components will be added.

  • t (int) – integer location of variables in the control time window

static _create_parameters(hybrid)#

Create system-level pyomo model parameters

Parameters:

hybrid (pyo.ConcreteModel) – The Pyomo model to which the technology components will be added.

_create_hybrid_constraints(hybrid, t)#

Define system-level constraints for pyomo model.

Parameters:
  • hybrid (pyo.ConcreteModel) – The Pyomo model to which the technology components will be added.

  • t (int) – integer location of variables in the control time window

create_arcs()#

Defines the mapping between individual technology variables to system level

update_time_series_parameters(commodity_in=<class 'list'>, commodity_demand=<class 'list'>, updated_initial_soc=<class 'float'>)#

Updates the pyomo optimization problem with parameters that change with time

Parameters:
  • commodity_in (list) – List of generated commodity in for this time slice.

  • commodity_demand (list) – The demanded commodity for this time slice.

  • updated_initial_soc (float) – The updated initial state of charge for storage technologies for the current time slice.

create_min_operating_cost_expression()#

Creates system-level instance of minimum operating cost objective for pyomo solver.

_delete_objective()#
property time_weighting_factor: float#
property storage_commodity_out: list#

Storage commodity out.