h2integrate.control.control_rules.plant_dispatch_model#
Classes
|
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.