0-D Heat Exchanger (HeatExchanger)¶
Heat Exchanger models represents a unit operation with two material streams which exchange heat. HeatExchanger (0-D) is used for modeling heat exchangers using an average heat transfer coefficient and driving force. For more complex models involving spatial domains, see HeatExchanger1D.
Degrees of Freedom¶
0-D Heat Exchangers generally have 2 degrees of freedom.
Typical fixed variables are:
- heat transfer area,
- heat transfer coefficient.
Alternatives include:
- outlet temeprature of one stream,
- heat duty.
Model Structure¶
The 0-D Heat Exchanger unit model consists of two Holdup0D Blocks (named side_1 and side_2), each with one Inlet Port (named side_1_inlet and side_2_inlet) and one Outlet Port (named side_1_outlet and side_2_outlet).
Construction Arguments¶
The 0-D Heat Exchanger model has the following construction arguments:
flow_type - argument indicating the flow arrangement within the Heat Exchanger. Currently only supports one option:
- ‘counter-current’ - (default) counter current flow arrangement.
side_1_property_package - property package to use when constructing Property Blocks for side_1 of the Heat Exchanger (default = ‘use_parent_value’). This is provided as a Property Parameter Block by the Flowsheet when creating the model. If a value is not provided, the Holdup Block will try to use the default property package if one is defined.
side_1_property_package_args - set of arguments to be passed to the Property Blocks for side_1 when they are created.
side_1_inlet_list - list of names to be passed to the build_inlets method for side_1 (default = None).
side_1_num_inlets - number of inlets argument to be passed to the build_inlets method for side_1 (default = None).
side_1_outlet_list - list of names to be passed to the build_outlets method for side_1 (default = None).
side_1_num_outlets - number of outlets argument to be passed to the build_outlets method for side_1 (default = None).
side_2_property_package - property package to use when constructing Property Blocks for side_2 of the Heat Exchanger (default = ‘use_parent_value’). This is provided as a Property Parameter Block by the Flowsheet when creating the model. If a value is not provided, the Holdup Block will try to use the default property package if one is defined.
side_2_property_package_args - set of arguments to be passed to the Property Blocks for side_2 when they are created.
side_2_inlet_list - list of names to be passed to the build_inlets method for side_2 (default = None).
side_2_num_inlets - number of inlets argument to be passed to the build_inlets method for side_2 (default = None).
side_2_outlet_list - list of names to be passed to the build_outlets method for side_2 (default = None).
side_2_num_outlets - number of outlets argument to be passed to the build_outlets method for side_2 (default = None).
Additionally, 0-D Heat Exchangers have the following construction arguments which are passed to the Holdup Blocks for determining which terms to construct in the balance equations.
Argument | Default Value |
---|---|
material_balance_type | ‘component_phase’ |
energy_balance_type | ‘total’ |
momentum_balance_type | ‘total’ |
dynamic | False |
include_holdup | False |
has_rate_reactions | False |
has_equilibrium_reactions | False |
has_phase_equilibrium | True |
has_mass_transfer | False |
has_heat_transfer | True |
has_work_transfer | False |
has_pressure_change | False |
Additional Constraints¶
In addition to the Constraints written by the Holdup Blocks, 0-D Heat Exchanger models write the following Constraints:
where \(Q_{1,t}\) and \(Q_{2,t}\) are the heat transfer in the side_1 and side_2 Holdup Blocks respectively.
where \(U\) is the average heat transfer coefficient (assumed constant for now), \(A\) is the heat transfer area (also assumed constant) and \(\Delta T_{m,t}\) is the mean temperature driving force at time \(t\). The mean temperature driving force is represented using the log-mean temperature difference:
where \(\Delta T_{1,t}\) and \(\Delta T_{2,t}\) are the temperature difference at the side_1 inlet and outlet respectively. The Constraints defining these depend on the flow configuration of the unit.
Counter-Current Flow¶
If flow_type is set to ‘counter-current’, the following Constraints are used to define \(\Delta T_{1,t}\) and \(\Delta T_{2,t}\):
Variables¶
0-D Heat Exchangers contain the following Variables (not including those contained within the Holdup Blocks):
Variable | Name | Notes |
---|---|---|
\(V_{1,t}\) | side_1_volume | Only if include_holdup = True, reference to side_1.volume |
\(V_{2,t}\) | side_2_volume | Only if include_holdup = True, reference to side_2.volume |
\(Q_t\) | heat | Reference to side_1.heat |
\(A\) | heat_transfer_area | |
\(U\) | heat_transfer_coefficient | |
\(\Delta T_{m,t}\) | temperature_driving_force | |
\(\Delta T_{1,t}\) | side_1_inlet_dT | |
\(\Delta T_{2,t}\) | side_1_outlet_dT |
HeatExchangerData Class¶
-
class
idaes.models.heat_exchanger.
HeatExchangerData
(component)[source]¶ Standard Heat Exchanger Unit Model Class
-
initialize
(state_args_1={}, state_args_2={}, outlvl=0, solver='ipopt', optarg={'tol': 1e-06})[source]¶ General Heat Exchanger initialisation routine.
Keyword Arguments: - state_args_1 – a dict of arguments to be passed to the property package(s) for side 1 of the heat exchanger to provide an initial state for initialization (see documentation of the specific property package) (default = {}).
- state_args_2 – a dict of arguments to be passed to the property package(s) for side 2 of the heat exchanger to provide an initial state for initialization (see documentation of the specific property package) (default = {}).
- outlvl –
sets output level of initialisation routine
- 0 = no output (default)
- 1 = return solver state for each step in routine
- 2 = return solver state for each step in subroutines
- 3 = include solver output infomation (tee=True)
- optarg – solver options dictionary object (default={‘tol’: 1e-6})
- solver – str indicating whcih solver to use during initialization (default = ‘ipopt’)
Returns: None
-