Utility minimization

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:

idaes.core.util.utility_minimization.generate_curves(CD)[source]#

Function for plotting composite curves

Parameters:

CD – Class containing curve data

Returns:

Composite curves