modelica-buildings
modelica-buildings copied to clipboard
Investigate WetCoilCounterFlow energy balance
Describe the bug
The commit df7415ebeb introduced some changes that break the energy balance of the model Fluid.HeatExchangers.WetCoilCounterFlow
under the conditions simulated in Fluid.HeatExchangers.Validation.WetCoilEffectivenessNTUCounterFlow
.
Basically the heat flow rate on the water side *Q1_flow
remains equal to the sensible heat flow rate, leaving the latent part unbalanced, see attached plot.
The main change was to remove the heat connection to the mass (heaConVapCoi), see details at https://github.com/lbl-srg/modelica-buildings/issues/3027#issuecomment-1138849935.
Expected behavior
*Q1_flow
should be the opposite of *Q2_flow
.
Version
- Modelica Buildings Library: a4bf2006b2
Simulating Buildings.Fluid.HeatExchangers.Validation.WetCoilCounterFlowLowWaterFlowRate
up to 6000 s (see plots below) shows that, despite a zero water mass flow rate beyond 2700 s, there is a steady state
- latent heat transfer in commit df7415ebeb (where the modification was introduced),
- latent and sensible heat transfer that cancel each other out in the previous commit dff251c2a1 (just before the modification).
- (See also the plots with the temperature of the mass, air and water.)
Theoretically the latent heat flow rate should be taken into account to compute the state that drives the heat transfer to the chilled water stream (as it was originally implemented in dff251c2a1). With a steady state formulation of the energy balance and considering a purely conductive heat transfer through the condensate film we have:
A / R_film * (T_coil - T_surf) = h_conv * A * (T_surf - T_air) + m_water * dh_vap
expressing that the heat transfer through the condensate film drives the convection and condensation (m_water < 0
) at the interface (_surf
) between the film and the air.
And, yes, when there is no chilled water stream to evacuate the heat released to the coil surface by the condensation process, the coil surface should heat up.
Bug fix: So the modification from df7415ebeb should be undone and the latent heat flow rate should be applied to mas.port
as it was the case in dff251c2a1.
But then why do we have a temperature of the coil that significantly exceeds the temperature of the inflowing air in the validation model with the implementation from dff251c2a1? (Yielding a sensible heat flow rate from the coil to the air, that balances the condensation heat flow rate.)
-
This is because of a non-physical boundary condition in
Buildings.Fluid.HeatExchangers.Validation.WetCoilCounterFlowLowWaterFlowRate
: the inflowing air has a humidity ratio above the saturation limit. Correctingsou_a.X
from{0.01, 0.99}
to{0.0086, 1 - 0.0086}
(mass fraction of water near saturation for air at 12°C) solves the issue (that was not really an issue). -
FE request: Maybe an assert statement within
Buildings.Fluid.Sources.MassFlowSource_T
would be useful when dealing with moist air to reject conditions beyond the saturation limit.
Additional note: The above condition sou_a.X={0.0086, 1 - 0.0086}
corresponds to a relative humidity of 99.5%. If the entering air is exactly at saturation, we have a residual positive sensible heat flow rate that compensates for the condensation heat flow rate. This sensible heat flow rate amounts to 17 W in the validation example modified to circulate air at design flow (instead of 0.3 times the design flow in df7415ebeb), so about 1% of the coil design total heat flow rate. Although this is beyond the modeling intent and likely results from various approximations (psychrometrics functions, lumped condensate film and coil surface, etc.), I would not consider this as an issue: it is not excluded that with inflowing air at saturation some water droplets condensate on the coil surface at equilibrium temperature with zero chilled water flow. Then the release of latent heat to the coil surface should indeed heat up the surface that would dissipate back the heat.
Commit df7415ebeb
Commit dff251c2a1
Hey @AntoineGautier. Thank you very much for reporting the issue and re-opening, and my apologies for delayed response. I've reviewed the model again and I think you are right that the latent heat term should be added back to the mass.port. I think when I implemented the change in https://github.com/lbl-srg/modelica-buildings/commit/df7415ebeb3ab0ca09d476dccef9e3143b6fe1d0 I was not correct in understanding how the Modelica model needs to explicitly remove the heat from the mixed air volume and place it somewhere else e.g. the coil surface and that the film thickness is not actually modeled. This would indeed solves the energy balance problem you point out. And you're right, I see that the seemingly excessive temperature rise of the coil surface in the low flow example is because of oversaturated boundary conditions.
I would suggest reverting the change in https://github.com/lbl-srg/modelica-buildings/commit/df7415ebeb3ab0ca09d476dccef9e3143b6fe1d0 as you suggest, and adjusting the boundary conditions of the low-flow example.
While the reversion would better account for the latent heat and energy balance, I would like to make the comment that I think the model still has room for potential improvement. For example, if you consider film formation and thickness and also film dripping, then the energy balance is not such that all latent heat ends up in the coil surface, but some goes into heating up the film (conduction in the film creating a temperature profile) and some is lost as the film drips. Then there's also the potential issue that the air-coil convective coefficient calculation currently considers a dry interaction. There are convective heat transfer correlations that are developed for simultaneously accounting for these things, though I think there would need to be a dedicated effort, issue, and potentially new model type to consider the details, implement, and compare.