4.60714

4.6 | 29 ratings Rate this file 223 Downloads (last 30 days) File Size: 192.21 KB File ID: #9817
image thumbnail

X Steam, Thermodynamic properties of water and steam.

by Magnus Holmgren

 

30 Jan 2006 (Updated 01 Aug 2007)

Water properties A complete IAPWS IF-97 standard.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information
Description

www.x-eng.com, Steam and water properties for Matlab based on the "International Association for Properties of Water and Steam Industrial Formulation 1997 (IAPWS IF-97). A full implementation of the IF-97 standard that provides very accurate steam and water properties in ranges from 0-1000 bar and 0-2000°C. Provided thermodynamic properties are:

Temperature
Pressure
Enthalpy
Specific volume
Density
Specific entropy
Specific internal energy
Specific isobaric heat capacity
Specific isochoric heat capacity
Speed of sound
Viscosity
Vapour fraction

All properties can be calculated with the inputs, p and T known, p and h known, h and s known and some with pressure and density known. X Steam are a full implementation of the IF-97 formulation including all regions and all backward functions for good calculation speed. The code are speed optimized with pressure and enthalpy as inputs for dynamic simulations.

Examples:
XSteam('h_pt',1,20) return the enthalpy of water at 1 bar and 20 degC. 84.0118 kJ/kg

XSteam('rho_ph',1,3000) return the density of steam at 1 bar and 3000 kJ/kg. 0.4056 kg/m3

XSteam('w_pt',1,20) returns the speed of sound at 1 bar and 20 deg C. 1483.4 m/s

XSteam('tSat_p',1) returns the saturation temperature at 1 bar. 99.6059 deg C

The X Steam Tables are the perfect tool both for replacing paper tables and for advanced calculations. The X Steam tables are open source and free of charge.

The X Steam tables are also available as MS Excel scripts, OOo Sripts, Dynamic Link Libary .DLL. Please visit www.x-eng.com.

New version 2.5

Acknowledgements
This submission has inspired the following:
Ideal Rankine Cycle GUI, IAPWS_IF97 functional form with no slip
MATLAB release MATLAB 6.0 (R12)
Other requirements None.
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (37)
31 Jan 2006 urs (us) schwarz

really nice result of a project
- extraordinary help (including PDF, to boot)
it would be even nicer
- if it was vectorized
- if the spiffy figure could be reproduced easily (see above)
- if the ...XSteam macros for MS Excel... (as mentioned in the help section) came with the package
but this is just ranting a bit
us

31 Jan 2006 John D'Errico

If you were to call this inside a long loop, the lack of vectorization might slow things down. However, thats the only reason why I might choose to downrate this at all. The documentation is far above average, so its still a 5 in my book.

01 Feb 2006 Johan Karlsson

Simple and gives exact accurate results.

01 Feb 2006 Magnus Holmgren

I finally succeded in adding my file and I appriciate all the positive ratings the first day.
I'll consider to vectorize the functions.
The X Steam for MS Excel and the "spiffy figure" is also open source and can be downloaded from www.x-eng.com but I will add them to the ZIP file the next time I update it.

01 Feb 2006 urs (us) schwarz

it's ok - BUT (and this is a big BUT) - in the future, do NOT give your OWN submission(s) a rating of 5/5; some people might get really offended and nasty with this inappropriate behavior
us

01 Feb 2006 Duane Hanselman

1 star just to balance the author giving himself a 5 star rating. Thanks for the advice Urs!

06 Feb 2006 John McKenzie

Water data that really will save me a lot of work writing tables for interpolation into my program. A really great program!
I have two minor improvements:
 - I would like the different functions as separate m files rather than commands.
 - I agree with the previous reviewers that it would nice if the functions where vectorized.
However that?s minor problems, the program does what it?s supposed to and it?s simple to use and well structured. The program is worth a five star.

06 Feb 2006 donghui zheng  
16 Feb 2006 Mike Baldea

Excellent work. Thank you.

25 Feb 2006 Tamir Suliman

Great program and excellent structure.

01 Mar 2006 Jeff Buske

very nice piece of work! Well done.

20 Apr 2006 Poomjai Sa-adchom

I like this program

12 May 2006 zhu jian

General Conmments

07 Jun 2006 Dave Abramovich

Very useful. Author must have had a lot of spare time, 150kb of code isn't a few hours job.

16 Jun 2006 TATEK ZEWDIR

I NEED HELP.................

24 Jun 2006 Jim Mechell

This is an extraordinary and excellent effort. In particular the ablity to obtain properties as functions P and h, h and s.
However it is not clear how the author has stated that properties can be found upto 2000 degree celcius if they are based on IF 97. These to my knowledge are applicable upto 800 degree celcius only. Students would still require a compact printed steam table that they can carry to a test or examination.An excellent new one called "Engineering Steam Tables"by Ashok Malhotra is now available for the purpose at Amazon.com. (type the title in their search box to locae it)

29 Jun 2006 Giovani Tonel

On line 1428 ==> err=check();

14 Sep 2006 pippo pluto  
26 Sep 2006 mohammad kazemi  
27 Sep 2006 David Andersson

Perfect.
Simple, exact.

14 Nov 2006 Allan Zadiraka

Very happy to find steam properties as good as this. Saved me from having to create my own again. Only problem is the temperature lines not breaking at the saturation line on ph diagrams (in english units)at higher pressures; sat line at 3097 psia gives 989.2 BTU/Lb versus 981.5 BTU/Lb for 3097 psia and 700F.

16 Nov 2006 Magnus Holmgren

Comment to review bellow. Temperature lines does off course break at the saturation line on ph diagrams. (However h_pt is not valid for mixtures of steam and water since temperature do not vary with enthalpy in that region. Answer becomes NaN. Temperature can?t be the saturation temp of p since then h is undefined.) I think you mixed up the numbers a little to.

XSteamUS('pSat_t',700) = 3.0928896229137e+03 psia
XSteamUS('hV_t',700) = 9.9063684424454e+02 btu/lb
XSteamUS('hV_p',3.0928896229137e+03) = 9.9063684424454e+02 btu/lb

23 Nov 2006 mario lebbe  
31 Jul 2007 Jonas Andersson

Just what I need

13 Nov 2007 Bogdan Marcu

Exactly what I needed, many thanks

18 Feb 2008 Lourenco Crawford

very good!! thank you very much!

18 Feb 2008 Lourenco Crawford

very good!! thank you very much!

07 Mar 2008 William Hounks

Beau travail

05 Jun 2008 Xiangbin zhu

Thanks a lot!

19 Jun 2008 ashek ullah

So many thank for your information?

17 Sep 2008 aman brar

Awesome...This is exactly what I was looking for.

03 Mar 2009 Patrik

Solid and precise, thank you.

09 Feb 2010 Jason Wang

OMG. This program saves me so much time on each thermodynamics homework. Thanks so much!

10 Mar 2011 Morgan May

Very awesome, I was working on something similar myself, when i stumbled upon this. Talk about a time saver, I do have one question, in line 2496 Should the program read High_Bound = 2563.59200e+5 instead of High_Bound = 2563.592004+5?? Just curious.

09 Nov 2011 Andrea Baricci  
19 Mar 2012 Mark Mikofski

Thank you Magnus Holmgren for you outstanding work! Using your work as a inspiration, I completely re-coded all of the IAPWS IF97 (except region 5) and including some of the most recent documentation including thermodynamic derivatives which I needed for some non-linear 2-phase modeling. I have finally posted it here:
http://www.mathworks.com/matlabcentral/fileexchange/35710-iapwsif97-functional-form-with-no-slip
It is vectorized and fully tested, according to the test points in IF97 and accompanying documents and the numerous simulations I have performed using it. I hope you find it as useful as I have.

24 Mar 2012 Andrew Yablokov

How to use XSteam in Simulink?

Please login to add a comment or rating.
Updates
21 Feb 2006

Version 2.2
* Added function:
  * p_hrho
  * Prandtl number added
* Extensive testing.
* Fixed error in Cp_ph

15 Jun 2006

* English Units implemented!!!
* Fixed small error in region_ph speed up functions.
* my_ph not defined in region 4.

19 Jul 2006

Extensive testing.
Fixed missing ;.
Calling functions by pressure and density.

02 Nov 2006

Update of unit error for function T_ps for mixture of steam and water.
Only important for english units.

15 Jan 2007

New release with minor updates.

01 Aug 2007

New version with minor fixes

Tag Activity for this File
Tag Applied By Date/Time
chemistry Magnus Holmgren 22 Oct 2008 08:14:01
steam Magnus Holmgren 22 Oct 2008 08:14:01
turbine Magnus Holmgren 22 Oct 2008 08:14:01
power Magnus Holmgren 22 Oct 2008 08:14:01
properties Magnus Holmgren 22 Oct 2008 08:14:01
enthalpy Magnus Holmgren 22 Oct 2008 08:14:01
potw Cristina McIntire 07 Nov 2008 13:24:17
water Magnus Holmgren 19 May 2009 17:24:22
if97 Magnus Holmgren 19 May 2009 17:24:40
water Fabian 02 Aug 2009 18:45:26
steam stevenderanter De Ranter 15 Sep 2010 08:57:33
pick of the week Jiro Doke 11 Feb 2011 20:15:19
enthalpy Hubertus Kobow 02 Aug 2011 04:28:41

Contact us at files@mathworks.com