Heat Exchanger - Epsilon NTU Model¶
Model description¶
The HexeNTU component models a steady-state heat exchanger using the effectiveness–NTU (ε-NTU) method. This approach is well suited for situations where outlet temperatures are unknown and must be determined from inlet conditions, flow rates, and exchanger geometry.
The HexeNTU component models a steady-state heat exchanger using the effectiveness–NTU (ε-NTU) method. This method computes the heat transfer rate directly from inlet conditions, without requiring outlet temperatures a priori.
Heat Capacity Rates
For each fluid, the heat capacity rate is defined as:
where (\(\dot{m}\)) is the mass flow rate and (\(c_p\)) is the specific heat capacity evaluated at inlet conditions. The minimum and maximum heat capacity rates are:
The heat capacity ratio is:
Overall Heat Transfer Coefficient (AU)
The overall heat transfer coefficient multiplied by area, (AU), is computed from a series of thermal resistances:
The convective heat transfer coefficients (\(h_H\)) and (\(h_C\)) are evaluated using the Gnielinski correlation for internal turbulent flow.
Number of Transfer Units (NTU)
The number of transfer units is defined as:
NTU represents the relative size of the heat exchanger compared to the ability of the fluids to store thermal energy.
Heat Exchanger Effectiveness
The heat exchanger effectiveness (\(\varepsilon\)) is computed using a standard ε-NTU correlation, which depends on:
the flow configuration (counterflow, parallel flow, crossflow, etc.),
the number of transfer units (NTU),
the heat capacity ratio (\(C_r\)).
Heat Transfer Rate
The maximum possible heat transfer is defined as:
The actual heat transfer rate is then:
Assumptions
Steady-state operation
No heat loss to the environment
No pressure drop
Single-phase flow
Thermophysical properties evaluated at inlet conditions
Class description¶
- class component.heat_exchanger.hex_eNTU.HexeNTU[source]¶
Component: Heat Exchanger
Model: ε-NTU (Effectiveness - Number of Transfer Units) method.
Description:
This component models a heat exchanger using the ε-NTU method, a widely used approach for estimating heat transfer performance in steady-state conditions when outlet temperatures are not known a priori. It calculates heat transfer based on fluid properties, flow configuration, and geometry using thermal resistances and heat transfer correlations.
The model is applicable to various geometries (e.g., pipe-type, plate-type) and requires fluid and geometric properties. The thermal effectiveness is computed via an external ε-NTU correlation, which supports multiple flow configurations (e.g., CounterFlow, ParallelFlow, CrossFlow).
Assumptions:
Steady-state operation.
No heat loss to the environment.
No pressure drop considered (isenthalpic mixing assumed).
Thermophysical properties are evaluated at average temperatures.
No phase change within the exchanger.
Connectors:
su_H (MassConnector): Hot fluid inlet connector. su_C (MassConnector): Cold fluid inlet connector. ex_H (MassConnector): Hot fluid outlet connector. ex_C (MassConnector): Cold fluid outlet connector. Q_hex (HeatConnector): Connector for total heat transfer rate.
Parameters:
Flow_Type : Flow configuration of the fluid (‘CounterFlow’, ‘CrossFlow’, ‘Shell&Tube’, ‘ParallelFlow’) [-] A_htx: Total heat exchange area [m²] L_HTX: Length of the heat exchanger [m] V_HTX: Volume of the heat exchanger [m³] A_canal_H: Cross-sectional area of hot fluid channels [m²] A_canal_C: Cross-sectional area of cold fluid channels [m²] D_h: Hydraulic diameter [m] k_plate: Thermal conductivity of the separating plate [W/m.K] t_plate: Thickness of the separating plate [m] n_plates: Number of plates [-] co_pitch: Plate corrugation pitch [m] chevron_angle: Plate chevron angle [degrees] fouling: Fouling resistance [m².K/W]
Inputs:
T_su_H: Hot fluid inlet temperature [K] P_su_H: Hot fluid inlet pressure [Pa] h_su_H: Hot fluid inlet enthalpy [J/kg] fluid_H: Hot fluid identifier [-] m_dot_H: Hot fluid mass flow rate [kg/s]
T_su_C: Cold fluid inlet temperature [K] P_su_C: Cold fluid inlet pressure [Pa] h_su_C: Cold fluid inlet enthalpy [J/kg] fluid_C: Cold fluid identifier [-] m_dot_C: Cold fluid mass flow rate [kg/s]
Outputs:
h_ex_H: Hot fluid outlet enthalpy [J/kg] P_ex_H: Hot fluid outlet pressure [Pa] h_ex_C: Cold fluid outlet enthalpy [J/kg] p_ex_C: Cold fluid outlet pressure [Pa] Q_dot: Heat transfer rate [W]
Example of use¶
import numpy as np
from labothappy.component.heat_exchanger.hex_eNTU import HexeNTU
HX = HexeNTU()
HX.set_inputs(
# First fluid
fluid_H = 'Cyclopentane',
T_su_H = 205 + 273.15, # K
P_su_H = 1*1e5, # Pa
m_dot_H = 0.014, # kg/s
# Second fluid
fluid_C = 'Water',
T_su_C = 12 + 273.15, # K
P_su_C = 4*1e5, # Pa
m_dot_C = 0.08, # kg/s # Make sure to include fluid information
)
A_htx = 0.752 # m^2
# HTX dimensions
L = 0.393 # [m] : length
w = 0.243 # [m] : width
h = 0.0446 # [m] : height
l_v = 0.324 # [m] : length between ports
casing_t = 0.005 # [m] : casing thickness # !!! arbitrary
# Number and thickness of plates
n_plates = 10
t_plates = 0.0008 # [m] # !!! arbitrary
# Fooling factor
fooling = 98.51/1000 # (m^2*K)/W
# Number of canals
C_n_canals = 5
H_n_canals = 4
# Plate values
plate_cond = 45 # [W/(m*K)] : plate conduction
plate_pitch_co = 0.005 # 0.00745870973 # corrugated pitch # !!! arbitrary
chevron_angle = 20*np.pi/180 # !!! arbitrary
# Total volume of each part
V_tot = 0.9*1e-3 # [m^3]
# Canal thickness
C_canal_t = ((h-2*casing_t) - n_plates*t_plates)/(2*C_n_canals)
H_canal_t = ((h-2*casing_t) - n_plates*t_plates)/(2*H_n_canals)
# Total Canal Surface
C_CS = C_canal_t*(w-2*casing_t)*C_n_canals
H_CS = H_canal_t*(w-2*casing_t)*H_n_canals
# Dh : hydraulic diameter
C_Dh = (4*C_canal_t*w)/(2*C_canal_t+2*w)
H_Dh = (4*H_canal_t*w)/(2*H_canal_t+2*w)
HX.set_parameters(
A_htx=0.752, L_HTX=0.393, V_HTX=0.9*1e-3, Flow_Type = 'CounterFlow',
A_canal_h=H_CS, A_canal_c=C_CS, D_h=H_Dh,
k_plate=45, t_plate=0.0008, n_plates = 10,
co_pitch=0.005, chevron_angle=20*np.pi/180, fouling=98.51/1000
)
# Solve the expander component
HX.solve()
HX.print_setup()
HX.print_results()
fig = HX.plot_Ts(choose_HX_side='H')
fig.show()
References¶
/