Plate Heat Exchanger¶
The thermal model of IDAES Plate Heat Exchanger (PHE) as part of the MEA scrubbing process for post-combustion carbon capture (PCC) is based on the Effectiveness-Number of Transfer Units (e-NTU) approach. In amine-based PCC, the rich solvent leaving the absorber is pre-heated in the PHE using heat recovered from the lean solvent leaving the stripper to reduce the regeneration energy requirement. In the PHE unit, the series of plates stacked together form channels where hot and cold fluids flow alternatively as shown in Figure 1(A). Divider plates enable the partitioning of PHEs into different operating zones. The main dimensions of a gasket plate are shown in Figure 1(B). The PHE is a viable alternative to the conventional Shell and Tube Heat Exchanger specifically because of its lower approach temperature difference capability. For more information on the PHE model see Akula et al. (2019).
Degrees of Freedom¶
Once the configuration parameters (construction arguments of the PHE Class)
have been specified, the PHE unit model has 12 degrees of freedom which are the
operating parameters as listed in the Specification Table below. The indexed
components for mole_frac_comp
are H2O, MEA and CO2
.
Specification¶
Variable Name |
Description |
Units |
---|---|---|
Configuration parameters |
||
|
Number of passes of the fluids |
None |
|
Number of channels in each pass as a list |
None |
|
Number of divider plates |
None |
|
Diameter of the plate ports (Dp) |
\(m\) |
|
Thermal conductivity of the plate material |
\(W/m.K\) |
|
Total heat transfer area as specified by the manufacturer |
\(m^{2}\) |
|
Plate thickness |
\(m\) |
|
Vertical distance between centers of ports (Lv) |
\(m\) |
|
Horizontal distance between centers of ports (Lh) |
\(m\) |
|
Compressed plate pact length (optional) |
\(m\) |
|
Ratio of single plate area obtained from the total area to the projected plate area (optional) |
None |
|
Distance between two adjacent plates that forms a flow channel |
\(m\) |
Operating parameters |
||
|
Hot fluid inlet total molar flowrate |
\(mol/s\) |
|
Hot fluid inlet temperature |
\(K\) |
|
Hot fluid inlet pressure |
\(Pa\) |
|
Hot fluid inlet mole fraction indexed by component |
None |
|
Cold fluid inlet total molar flowrate |
\(mol/s\) |
|
Cold fluid inlet temperature |
\(K\) |
|
Cold fluid inlet pressure |
\(Pa\) |
|
Cold fluid inlet mole fraction indexed by component |
None |
Model Structure¶
The PHE unit model consists of two
ControlVolume0D Blocks
(named hot_side
and cold_side
), each with one Inlet Port (named hot_inlet
and cold_inlet
) and one Outlet Port (named hot_outlet
and cold_outlet
).
The hot_side
and cold_side
ControlVolume0D Blocks use the
Liquid Phase Property Methods which is built off of the
Physical Property Package Class.
The Energy balance is based on the Effectiveness Number of Transfer Units
(e-NTU method) and is included as performance equations (Additional Constraints).
Hence, the control volume energy balances are not added.
Additional Constraints¶
The PHE unit model writes additional Constraints
beyond those written by the
ControlVolume0D Blocks
to describe the heat exchange between the rich and lean solvent for
post-combustion carbon capture using MEA solvent.
PHE Class¶
- class idaes.power_generation.carbon_capture.mea_solvent_system.unit_models.phe.PHE(*args, **kwds)¶
- Parameters
rule (function) – A rule function or None. Default rule calls build().
concrete (bool) – If True, make this a toplevel model. Default - False.
ctype (str) – Pyomo ctype of the block. Default - “Block”
default (dict) –
Default ProcessBlockData config
- Keys
- dynamic
Indicates whether this model will be dynamic or not, default = useDefault. Valid values: { useDefault - get flag from parent (default = False), True - set as a dynamic model, False - set as a steady-state model.}
- has_holdup
Indicates whether holdup terms should be constructed or not. Must be True if dynamic = True, default - False. Valid values: { useDefault - get flag from parent (default = False), True - construct holdup terms, False - do not construct holdup terms}
- passes
Number of passes of the fluids through the heat exchanger
- channel_list
Number of channels to be used in each pass where a channel is the space between two plates with a flowing fluid
- divider_plate_number
Divider plates are used to create separate partitions in the unit. Each pass can be separated by a divider plate
- port_diameter
Diameter of the ports on the plate for fluid entry/exit into a channel
- plate_thermal_cond
Thermal conductivity of the plate material [W/m.K]
- total_area
Total heat transfer area as specifed by the manufacturer
- plate_thickness
Plate thickness
- plate_vertical_dist
Vertical distance between centers of ports.(Top and bottom ports) (approximately equals to the plate length)
- plate_horizontal_dist
Horizontal distance between centers of ports(Left and right ports)
- plate_pact_length
Compressed plate pact length. Length between the Head and the Follower
- surface_enlargement_factor
Surface enlargement factor is the ratio of single plate area (obtained from the total area) to the projected plate area
- plate_gap
The plate gap is the distance between two adjacent plates that forms a flow channel
- hot_side
Hot fluid config arguments
- property_package
Property parameter object used to define property calculations default - useDefault. Valid values: { useDefault - use default package from parent model or flowsheet, PhysicalParameterObject - a PhysicalParameterBlock object.}
- property_package_args
A ConfigBlock with arguments to be passed to property block(s) and used when constructing these, default - None. Valid values: { see property package for documentation.}
- cold_side
Cold fluid config arguments
- property_package
Property parameter object used to define property calculations default - useDefault. Valid values: { useDefault - use default package from parent model or flowsheet, PhysicalParameterObject - a PhysicalParameterBlock object.}
- property_package_args
A ConfigBlock with arguments to be passed to property block(s) and used when constructing these, default - None. Valid values: { see property package for documentation.}
initialize (dict) – ProcessBlockData config for individual elements. Keys are BlockData indexes and values are dictionaries described under the “default” argument above.
idx_map (function) – Function to take the index of a BlockData element and return the index in the initialize dict from which to read arguments. This can be provided to overide the default behavior of matching the BlockData index exactly to the index in initialize.
- Returns
(PHE) New instance
PHEData Class¶
- class idaes.power_generation.carbon_capture.mea_solvent_system.unit_models.phe.PHEData(component)[source]¶
Plate Heat Exchanger(PHE) Unit Model.
- build()[source]¶
General build method for UnitModelBlockData. This method calls a number of sub-methods which automate the construction of expected attributes of unit models.
Inheriting models should call super().build.
- Parameters
None –
- Returns
None
- initialize(hotside_state_args=None, coldside_state_args=None, outlvl=0, solver=None, optarg=None)[source]¶
Initialisation routine for PHE unit (default solver ipopt)
- Keyword Arguments
state_args – a dict of arguments to be passed to the property package(s) to provide an initial state for initialization (see documentation of the specific property package) (default = {}).
outlvl – sets output level of initialization routine
optarg – solver options dictionary object (default=None, use default solver options)
solver – str indicating which solver to use during initialization (default = None)
- Returns
None
References¶
Akula, P., Eslick, J., Bhattacharyya, D., & Miller, D. C. (2019). “Modelling and Parameter Estimation of a Plate Heat Exchanger as Part of a Solvent-Based Post-Combustion CO2 Capture System”, In Computer Aided Chemical Engineering (Vol. 47, pp. 47-52). Elsevier. https://doi.org/10.1016/B978-0-12-818597-1.50008-4
Kakac, S., Liu, H., & Pramuanjaroenkij, A. (2012). Heat exchangers: selection, rating, and thermal design. CRC press.