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
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>)#
Function for Duran-Grossmann for minimization of utilities This function adds variables and constraints to the flowsheet to minimize utilities
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
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)#
Function for turning IDAES heat exchanging equipment into a class for use in plotting
blk – Flowsheet
heating – Equipment that heats streams
cooling – Equipment that cools streams
Class with heating and cooling equipment as arrays
- Return type:
We can just run the function utilizing the data class previously obtained to print
composite curves with
Function for plotting composite curves
CD – Class containing curve data