Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enthalpy of evaporation of water #474

Closed
Mathadon opened this issue May 22, 2016 · 4 comments · Fixed by #476
Closed

Enthalpy of evaporation of water #474

Mathadon opened this issue May 22, 2016 · 4 comments · Fixed by #476

Comments

@Mathadon
Copy link
Member

Mathadon commented May 22, 2016

In Annex60.Utilities.Psychrometrics.Constants we currently have

constant Modelica.SIunits.SpecificEnthalpy h_fg = 2501014.5
    "Enthalpy of evaporator of water";

which seems to be inconsistent with the often quoted enthalpy of evaporation of 2260 kJ/kg. Is this correct?

Edit:
h_fg = 2501 kJ/kg is the enthalpy of evaporation at 100 degrees C. The specific enthalpy of saturated steam is 2257 kJ/kg. This is based on http://www.engineeringtoolbox.com/steam-vapor-enthalpy-d_160.html . So I think the value of h_fg is correct?
However, the example below then still gives different results. Is there possibly an error in the implementation of Annex60.Utilities.Psychrometrics.TWetBul_TDryBulPhi?

@Mathadon
Copy link
Member Author

Mathadon commented May 22, 2016

When changing the value for h_fg then Annex60.Utilities.Psychrometrics.Examples.TWetBul_TDryBulPhi produces results that are more in line with computations for the wet bulb temperature that I found on line:
http://www.srh.noaa.gov/epz/?n=wxcalc_rh
https://www.easycalculation.com/weather/dewpoint-wetbulb-calculator.php

for T=283.15 and RH=50% I find wet bulb temperatures:

  • noaa -> 278.85K
  • easy calculation.com -> 278.85K
  • Annex 60 old -> 278.5K
  • Annex 60 new -> 278.69K

however, an error still seems to remain?

@mwetter
Copy link
Contributor

mwetter commented May 23, 2016

@Mathadon Recknagel, Sprenger, Schramek, 2006, lists specific enthalpy of vaporization as

2501.6 kJ/kg at 0 degC
2256.9 kJ/kg at 100 degC

As we use reference_T = 273.15, it makes sense to use the value of 2501014.5 which is at 0 degC.
This is also consistent with what the MSL uses in Modelica.Media.Air.MoistAir.

@Mathadon
Copy link
Member Author

Mathadon commented May 24, 2016

Okay!
I'm still unsure about the deviating results however. I re-derived the energy balance equation in
Annex60.Utilities.Psychrometrics.TWetBul_TDryBulPhi

where I found

TWetBul * ((1-XiDryBul) * Annex60.Utilities.Psychrometrics.Constants.cpAir +
              (1-XiDryBul)*XiSat/(1-XiSat) * Annex60.Utilities.Psychrometrics.Constants.cpSte +
              (XiDryBul-(1-XiDryBul)*XiSat/(1-XiSat)) * Annex60.Utilities.Psychrometrics.Constants.cpWatLiq)
    =
    TDryBul * ((1-XiDryBul) * Annex60.Utilities.Psychrometrics.Constants.cpAir +
              XiDryBul * Annex60.Utilities.Psychrometrics.Constants.cpSte)  +
    (XiDryBul-(1-XiDryBul)*XiSat/(1-XiSat)) * Annex60.Utilities.Psychrometrics.Constants.h_fg;

instead of

    TWetBul = (TDryBul * ((1-XiDryBul) *
               Buildings.Utilities.Psychrometrics.Constants.cpAir + XiDryBul *
               Buildings.Utilities.Psychrometrics.Constants.cpSte) + (XiDryBul-XiSat) *
               Buildings.Utilities.Psychrometrics.Constants.h_fg)/
            ( (1-XiSat)*Buildings.Utilities.Psychrometrics.Constants.cpAir + XiSat *
            Buildings.Utilities.Psychrometrics.Constants.cpSte);

the difference is that I added a term with Annex60.Utilities.Psychrometrics.Constants.cpWatLiq and I 'rescaled' XiSat into (1-XiDryBul)*XiSat/(1-XiSat). I think this is necessary since the Modelica convention is that Xi equals that water mass fraction compared to the total amount of mass.

The reasoning for the rescaling is as follows:
Consider a 'wet bulb channel' around a wet bulb temperature sensor where moist air enters, which is then saturated and then leaves the channel.
The amount of air entering the 'wet bulb channel' equals

m_air_dry_in = (1-XiDryBul)*m_in_tot.

Since the amount of dry air entering the channel equals the amount of dry air leaving the channel, we have

m_air_dry_in=(1-XiDryBul)*m_in_tot=m_air_dry_out = m_out_tot*(1-XiSat)

or

m_out_tot = (1-XiDryBul)/(1-XiSat)*m_in_tot

the amount of water leaving the channel is then

XiSat*m_out_tot = XiSat*(1-XiDryBul)/(1-XiSat)*m_in_tot

The reasoning for the term with cpWatLiq is that when making the energy balance, we should equate all enthalpy streams entering the system with the enthalpy streams leaving the system. The sensible heat of the water stream is one of these streams and it seems to be missing?

This results in quite a different result for Annex60.Utilities.Psychrometrics.Examples.TWetBul_TDryBulPhi, but it still seems wrong when comparing with the on line calculators:
screen shot 2016-05-24 at 10 45 38

the question is of course if the online calculators are correct.. Do you have a solid source that provides numerical values we can compare with? A reference for the current implementation would also be nice, then I can have a look at it.

@Mathadon
Copy link
Member Author

I found a mistake in my code. I forgot to take into account that we have a reference temperature of 273.15 K, so the code should be:

    (TWetBul-273.15) * ((1-XiDryBul) * Annex60.Utilities.Psychrometrics.Constants.cpAir +
              (1-XiDryBul)*XiSat/(1-XiSat) * Annex60.Utilities.Psychrometrics.Constants.cpSte +
              (XiDryBul-(1-XiDryBul)*XiSat/(1-XiSat)) * Annex60.Utilities.Psychrometrics.Constants.cpWatLiq)
    =
    (TDryBul-273.15) * ((1-XiDryBul) * Annex60.Utilities.Psychrometrics.Constants.cpAir +
              XiDryBul * Annex60.Utilities.Psychrometrics.Constants.cpSte)  +
    (XiDryBul-(1-XiDryBul)*XiSat/(1-XiSat)) * Annex60.Utilities.Psychrometrics.Constants.h_fg;

the wet bulb temperature for Tdry = 10 C and 50% RH is now 278.686, which is not equal to 278.85.

However, based on the data in source (https://books.google.be/books?id=gniJE5lK0YAC&pg=PA233&lpg=PA233&dq=wet+bulb+dry+bulb+temperature+table&source=bl&ots=Bj2tyGoTUX&sig=Nhktcz_ydwD1Cd_f-GDY6jnVpLE&hl=nl&sa=X&ved=0ahUKEwjpz4Sd0fLMAhXLKsAKHUX9Awk4ChDoAQhQMAc#v=onepage&q=wet%20bulb%20dry%20bulb%20temperature%20table&f=false) I do get correct results for triplets (Tdry, Twet, RH): (29.4C, 21.1C, 48%) and (23.3C, 16.5C, 50%) from examples 17.1 and 17.2. So the new implementation seems to be correct whereas the on line calculators seem to be off.

I'll make a pull request for the new implementation and update the unit tests and documentation.

Mathadon added a commit that referenced this issue May 24, 2016
added validation test
updated unit test
for #474
Mathadon added a commit that referenced this issue May 24, 2016
Mathadon added a commit that referenced this issue May 27, 2016
…a/Annex60_Fluid_Sensors_Examples_TemperatureWetBulb.txt

this is for #474
mwetter added a commit to lbl-srg/modelica-buildings that referenced this issue Jun 23, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants