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.
- Parameters:
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”.
- 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(inputs, dispatch_params)#
Initialize parameters for optimization model
- inputs (dict):
- Dictionary of numpy arrays (length = self.n_timesteps) containing at least:
f”{commodity}_in” : Available generated commodity profile. f”{commodity}_demand” : Demanded commodity output profile.
dispatch_inputs (dict): Dictionary of the dispatch input parameters from config
- Parameters:
inputs (dict)
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.