air_to_air_heat_recovery

Modules

air_to_air_heat_recovery_system module

class AirToAirHeatRecoverySystem(eps_75_h=None, eps_100_h=None, eps_75_c=None, eps_100_c=None, primaryAirFlowRateMax=None, secondaryAirFlowRateMax=None, **kwargs)[source]

Bases: System

An air-to-air heat recovery system model.

This model represents a heat exchanger that recovers heat between supply and exhaust air streams. The effectiveness varies based on flow rates and operation mode (heating or cooling). The model includes temperature setpoint control and handles cases where heat recovery is not feasible.

The model is implemented with the following features:
  • Flow-dependent effectiveness interpolation

  • Separate effectiveness values for heating and cooling modes

  • Temperature setpoint control

  • Energy conservation between air streams

Parameters:
  • eps_75_h – Effectiveness at 75% flow in heating mode

  • eps_100_h – Effectiveness at 100% flow in heating mode

  • eps_75_c – Effectiveness at 75% flow in cooling mode

  • eps_100_c – Effectiveness at 100% flow in cooling mode

  • primaryAirFlowRateMax – Maximum primary (supply) air flow rate [kg/s]

  • secondaryAirFlowRateMax – Maximum secondary (exhaust) air flow rate [kg/s]

Mathematical Formulation:

The effectiveness \(\varepsilon\) is interpolated based on flow rate fraction \(f\):

\[f = \frac{1}{2} \frac{\dot{m}_{a,sup} + \dot{m}_{a,exh}}{\operatorname{max}(\dot{m}_{a,sup}, \dot{m}_{a,exh})}\]
\[\varepsilon = \varepsilon_{75} + (\varepsilon_{100} - \varepsilon_{75}) \cdot \frac{f - 0.75}{1 - 0.75}\]
where:
  • \(\varepsilon_{75}\): Effectiveness at 75% flow

  • \(\varepsilon_{100}\): Effectiveness at 100% flow

  • \(f\): Normalized flow rate

The outlet temperature of the supply air stream is:

\[T_\text{out,sup} = T_\text{in,sup} + \varepsilon(f) \cdot (T_\text{in,exh} - T_\text{in,sup}) \cdot \frac{C_\min}{C_\text{sup}}\]
where:
  • \(T_\text{in,sup}\): Inlet temperature of the supply air

  • \(T_\text{in,exh}\): Inlet temperature of the exhaust air

  • \(C_\text{sup}=\dot{m}_{a,primary} \cdot c_p\): Heat capacity rate of the supply (primary) air

  • \(C_\text{exh}=\dot{m}_{a,secondary} \cdot c_p\): Heat capacity rate of the exhaust (secondary) air

  • \(C_\min = \min(C_\text{sup}, C_\text{exh})\): Minimum heat capacity rate

The outlet temperature of the exhaust air stream is:

\[T_\text{out,exh} = T_\text{in,exh} - \Delta T \cdot \frac{C_\text{sup}}{C_\text{exh}}\]
where:
  • \(\Delta T = T_\text{out,sup} - T_\text{in,sup}\): Temperature change in supply air stream

do_step(secondTime, dateTime, step_size, stepIndex)[source]

Perform one simulation step.

This method calculates the heat recovery between supply and exhaust air streams based on the current flow rates and temperatures. The effectiveness is interpolated based on the flow rates, and the operation mode (heating/cooling) is determined by comparing inlet temperatures and setpoints.

The method handles the following cases: 1. No flow in either stream: Pass-through temperatures 2. Heat recovery feasible: Calculate effectiveness and heat transfer 3. Heat recovery not feasible: Pass-through temperatures

Parameters:
  • secondTime (float) – Current simulation time in seconds.

  • dateTime (datetime) – Current simulation date and time.

  • step_size (int) – Time step size in seconds.

  • stepIndex (int) – Current simulation step index.

Return type:

None

initialize(start_time, end_time, step_size, simulator)[source]

Initialize the system for simulation.

This method is currently not implemented as the system does not require initialization.

Parameters:
  • start_time (datetime) – Start time of the simulation period.

  • end_time (datetime) – End time of the simulation period.

  • step_size (int) – Time step size in seconds.

  • simulator (Simulator) – Simulation model object.

Return type:

None

property config

Get the configuration parameters.

Returns:

Configuration parameters.

Return type:

dict

property eps_100_c

Get the effectiveness at 100% flow in cooling mode.

property eps_100_h

Get the effectiveness at 100% flow in heating mode.

property eps_75_c

Get the effectiveness at 75% flow in cooling mode.

property eps_75_h

Get the effectiveness at 75% flow in heating mode.

property input: dict

Get the input ports of the air-to-air heat recovery system.

Returns:

Dictionary containing input ports:
  • ”primaryAirFlowRate”: Primary (supply) air flow rate [kg/s]

  • ”secondaryAirFlowRate”: Secondary (exhaust) air flow rate [kg/s]

  • ”primaryTemperatureIn”: Primary air inlet temperature [°C]

  • ”secondaryTemperatureIn”: Secondary air inlet temperature [°C]

  • ”primaryTemperatureOutSetpoint”: Primary air outlet temperature setpoint [°C]

Return type:

dict

property output: dict

Get the output ports of the air-to-air heat recovery system.

Returns:

Dictionary containing output ports:
  • ”primaryTemperatureOut”: Primary air outlet temperature [°C]

  • ”secondaryTemperatureOut”: Secondary air outlet temperature [°C]

Return type:

dict

property primaryAirFlowRateMax

Get the maximum primary (supply) air flow rate.

property secondaryAirFlowRateMax

Get the maximum secondary (exhaust) air flow rate.

sp = [<twin4build.translator.translator.SignaturePattern object>]
get_signature_pattern()[source]