lbl-srg / modelica-buildings

Modelica Buildings library
251 stars 156 forks source link

Investigate WetCoilCounterFlow energy balance #3065

Closed AntoineGautier closed 1 year ago

AntoineGautier commented 2 years ago

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.

WetCoilEffectivenessNTUCounterFlow

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

AntoineGautier commented 2 years ago

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

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.)

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 HexElementLatent

Commit dff251c2a1 HexElementLatent

dhblum commented 1 year ago

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.