Utility minimization¶
The IDAES Process Modeling Framework includes support for incorporating utility minimization into a flowsheet to allow for calculation and optimization of utilities. The formulation is implemented from M. A. Duran, I. E. Grossmann, Simultaneous optimization and heat integration of chemical processes, AIChE Journal (1986).
This model is effective because the combinatorial search for the pinch candidate is cast as the inequality constraint, which is efficiently handled in equation oriented process optimization.
To create the constraints and utility variables Qs
and Qw
we utilize the function:
- idaes.core.util.utility_minimization.min_utility(blk, heating, cooling, DTmin, eps=1e-06, DG_units=<pyomo.core.base.units_container._PyomoUnit object>)[source]¶
Function for Duran-Grossmann for minimization of utilities This function adds variables and constraints to the flowsheet to minimize utilities
- Parameters
blk – flowsheet
heating – Equipment that requires Heat
cooling – Equipment from which heat is being removed
DTmin – HRAT (Heat Recovery Approximation Temperature)
eps – Epsilon for smoothing operation
- Returns
Constraint and variable object representing the calculation for hot utility and cold utility
To effectively utilize the formulation, we need to add an objective function to minimize the new variables, or a cost associated with them.
To generate composite curves, we must utilize the function heat_ex_data
show bellow
to extract the heat exchanger and utility data.
- idaes.core.util.utility_minimization.heat_ex_data(blk, heating, cooling)[source]¶
Function for turning IDAES heat exchanging equipment into a class for use in plotting
- Parameters
blk – Flowsheet
heating – Equipment that heats streams
cooling – Equipment that cools streams
- Returns
Class with heating and cooling equipment as arrays
- Return type
CD
We can just run the function utilizing the data class previously obtained to print
composite curves with heat_ex_data
: