图像缩略图

蒸汽,水和蒸汽的热力学性质。

version 1.0.0.0 (192 KB) by 马格努斯霍尔格伦
完整的IAPWS IF-97标准。

397下载

更新2007年8月1日

查看许可协议

编者按:这个文件被选为MATLAB中心推荐商品

www.x-eng.com,基于“国际水和蒸汽工业配方特性协会1997 (IAPWS IF-97)”的蒸汽和水特性Matlab。IF-97标准的全面实施,在0-1000 bar和0-2000°C范围内提供非常精确的蒸汽和水性能。假设热力学性质为:

温度
压力

具体的体积
密度
特定的熵
具体的内部能量
比等压热容
特定的等式热容量
音速
粘度
蒸汽比例

所有的性质都可以通过输入来计算,已知的p和T,已知的p和h,已知的h和s还有一些已知的压强和密度。X Steam完全实现了IF-97公式,包括所有区域和所有向后函数,以获得良好的计算速度。代码是速度优化的压力和焓作为动态模拟的输入。

例子:
XSteam('h_pt',1,20)返回水在1bar和20℃时的焓值。84.0118 kJ /公斤

XSteam('rho_ph',1,3000)返回蒸汽密度为1 bar和3000 kJ/kg。0.4056公斤/立方米

Xsteam('w_pt',1,20)返回1 bar和20 deg c.1483.4 m / s的声音

Xsteam('tsat_p',1)在1 bar返回饱和温度。99.6059℃

X Steam表格是替代纸质表格和高级计算的完美工具。X Steam表格是开源的,免费的。

X蒸汽表也可作为MS Excel脚本,OOo脚本,动态链接库。dll。请访问www.x-eng.com

新版本2.5

引用

马格努斯霍蒙格林(2021)。蒸汽,水和蒸汽的热力学性质。(//www.tatmou.com/matlabcentral/fileexchange/9817-x-steam-thermodynamic-properties-of-water-and-steam),MATLAB中心文件交换

意见及评分(124

Ahmed Hossam.

阿卜杜拉赫曼

焓的函数工作吗?特别的h_ps ? ?它给了我不合理的价值!!...

米卡·瓦利乌斯

Bug:调用XSteam('h_pt',800,554)会创建一个无限循环。

薇薇安

根本不工作。一直说1750行是无效的吗?

尤里斯·韦格斯

首先,我分享了大多数人的观点:惊人的代码,对化学工程师非常有用。我很感激能有机会使用它。
第二:我尝试计算焓作为压强和熵的函数,但结果与我的预期不相符。
当我降低恒定熵的压力时,我希望焓转到某个,几乎恒定的价值,这是P-H图所表明的,而是在降低压力时呈指数级呈指数递减。我相信这不是正确的行为

马赫迪·莫米尼

肯利·布朗

代码是伟大的,然而对于XSteamUS包,导热系数不正确转换在高压,即1000-2250 psia。有办法解决这个问题吗?谢谢!

蒂姆Rupnow

内森q

埃尔顿·拿撒勒

这个代码真是太棒了,如果能加入热膨胀系数,那就是一个完整的包了!

埃尔顿·拿撒勒

执行代码时,所有函数都不工作。
是否有任何修改?

亚历山大Dearman

最好从温度和熵直接到焓

Daniela de la Torre

该代码对于获得所需的水和蒸汽热力学性质非常有用。但是,了解代码的局限性对于正确使用它很重要。这些限制包括理解代码中使用的单位和可用的参数范围。该准则没有足够的注释来明确这些重要限制。当前,如果输入参数超出允许范围,则输出为“NaN”。给出错误的原因可以让用户在使用代码时有一个更流畅的过程。如果有错误消息解释为什么不能接受某些输入,那么代码将更加友好。在每个输出中显示单位也将增强用户友好性。还注意到缺乏解释代码如何工作和开发的注释。包括评论可以让我们更深入地了解为什么某些东西被用来寻找期望的输出。通过理解某些属性作为另一个属性的函数是如何变化的,代码也会更有帮助。为此,可以实施绘图。由于这些原因,该评级为5颗星中的4颗星。

克里希纳阿南德

这段代码在寻找水的热力学性质时非常有价值,而不必筛选大量的表格,我想感谢创建这段代码的作者!对化学工程师非常有用!不同的函数允许我们使用不同的输入(如温度、压力、焓和熵)来找到热力学性质。有两个重要的改进可以让XSteam变得更加用户友好。首先,拥有每个特定函数的输入和输出单位,而不必一直滚动到顶部或底部,这是很有用的。其次,我们可以看到我们的计算值与各种不同的输入值相比的位置,所以整合整体图可能会为用户创造一个更令人兴奋的界面。

基尔·劳里

这段代码体现了构建过程的细节和全面性,为输入和输出提供了如此多的选项。在用户友好性方面,代码有一些小问题。代码的输出不显示所需属性的单元,这可以通过为每种情况添加带有相应单元的显示函数来解决。同样在2.1节中,T1_prho的函数使用二分法来计算输出,而更精确的方法如fsolve可以实现。总的来说,代码功能良好,但需要一些实践来学习正确的格式和命名。

布拉德利塔哈

马克亲王

这段代码在寻找水的热力学性质时非常有价值,而不必筛选大量的表格,我想感谢创建这段代码的作者!不同的函数允许我们使用不同的输入,如温度、压力、焓、熵等,来找到热力学性质。为了让XSteam更加用户友好,我们可以做两个重大的改进。首先是在XSteam中包含显示输出单元的代码行。尽管文件交换包含带有输出单元的PDF,但包含带有给定值的单元会对用户更友好。其次,在第1.14节Kappa下,没有实际的代码来查找Kappa,只是表示一个空白的部分。

猛禽类的

首先,我要感谢作者的重要贡献。

其次,我想指出的是,热导率(tc)的计算是不正确的英制单位(xsteamusm .m)。我认为这是由于过早地转换公制。具体的体积由公制转换为英语,然后最终输出从公制转换为英语。因此,“fromSIunit_tc”代码利用了基于英语的密度;而不是必要的度量。修复方法是注释掉1.16热导率部分中的“v = toSIunit_v(v);”行。请检查核实。

hooman karimii

当我想运行代码时发生了这个错误
未定义的函数'call'为'char'类型的输入参数。
“无标题”中的错误(第2行)
调用xsteam (h_S, 100);
谁知道为什么?
请让我知道我的错误

谢尔盖Belyavsky

在两相区,粘度函数不起作用。我试图计算在29 kPa时的蒸汽粘度,并得到NaN。

杰尔德尼伊斯

蒂莫西·洛杉矶

我们对代码进行了评级⅗ 扣分主要是因为用户友好。对代码开发缺乏解释,并且没有足够数量的注释来解释代码的功能。此外,输出不包括单位,因此无论您想找到哪个值,都必须使用zip中给出的单独文档来查找单位在代码的开头应该有一个关于此代码对哪些混合物有效或无效的解释。总的来说,代码是可行的,但后续操作有点粗糙。

蒂莫西·洛杉矶

阮德瓦里耶斯

做得很好,但我注意到几个小问题。在一定的温度和压力下,该函数将返回非物理值(或者更常见的是NaN)。例如,运行XSteam("h_pT", 900, 900)返回NaN,尽管该值在函数给定的工作范围内。这很可能是IAPWS公式的问题(在相同条件下检查其他在线计算器会返回类似的非物理结果),不过,如果给出了有问题的值对,那么最好有一个内置的非物理结果检查,它会引发错误。

Zdenek Kubin

曹六世

谢谢你的出色工作。但是如果你能把它转换成完整的SI系统,那就更方便了。在SI系统中,压强以帕斯卡(Pa)为单位,温度以开尔文(K)为单位。

兴隆方

鲁迪Jauhar Musyafa

大卫。Viaro

大卫。Viaro

大卫。Viaro

有趣的程序,但我发现它有点有限,因为每个函数的输入参数的数量

塞伦塞勒姆

你好
有没有人能帮我弄到液体粘度?似乎只计算蒸汽粘度!

BLE

Nur Mazliyana Osman.

嗨,大家好,我有一个问题使用Xsteam的函数调用。X蒸汽工作很好,当我在matlab中使用。m。但是当我插入matlab。m在sim金宝appulink中使用用户定义matlab函数,没有使用Xsteam的函数调用进行计算。

洛根·哈格曼

蒸汽,水和蒸汽的热力学性质是一个非常有用的函数,它允许人们计算许多有用的热力学量,作为特定参数的函数,如压力、焓、熵和体积分数。该代码是健壮的,可以从广泛的初始输入返回值,这使得该代码在许多工程设计和分析问题中非常有用。这段代码有一些小的用户友好性问题,因为它没有指定单元,也没有指定底层方程在每个区域是否有效(它只返回NAN)。源代码中没有足够的注释,因此很难理解某些开发。while循环的基本参数计算公差存在不一致,导致误差难以量化。错误在附件中列成表格,但没有给出总体显著性水平。为了帮助用户,代码可以更清晰,结构也更有逻辑,但总的来说,它是计算水和蒸汽的热力学性质的好工具。

贾图伦·苏克通

穆罕默德·瓦拉尔

大家好,

有流体-气体表吗?我处理的不是纯净水,我的系统有时包含空气,有时包含蒸汽,有时两者都包含。我想知道是否可以有一个流体-气体表?

雅什·特里维迪

当我运行该程序时,它说
XSteam(fun, In1, In2)
未定义的函数或变量“fun”。
有什么问题吗?

Bosong林

你好,
我是新来的,但希望享受你们的服务。然而,我得到了不同的价值比较,我有什么硬拷贝的蒸汽表或什么已经上面陈述。
例如:
1) XSteam('TSat_p',1)=101.6943而不是我们都知道的99.6?
2) XSteam('rho_ph',13000)=4.3661e-04,而不是0.4056 kg/m3
3) XSteam('h_pt',1,20)=答案是NaN。。。。。。

原因可能是什么?请帮忙

马鲁瓦·鲁阿巴

伟大的工作!
请延长该计划,以计算冰VII的热力学性质(从2到20gPa)超过1000 bar?

希特勒万岁”

Prithvi Suresh.

大家好,

当我将压力和温度作为变量发送到一个Matlab函数内时,代码完美地工作。
但是,当相同的函数由我的Simulink模型运行时,我会收到错误说“预期标量。如金宝app果在语句中或逻辑运算符中不支持非标记。而不是逻辑运算符。相反,使用全部将矩阵逻辑转换为标量金宝app等同物。“

有人能帮我一下吗?即使压强和温度的值是标量,我还是会得到这个误差。

谢谢你!

Siimonc.

我之前的问题解决了。事实证明,将提取的文件夹和提取的文件复制粘贴到Documents/MATLAB中是有区别的

米哈尔·鲁巴利克

很棒的代码,非常有用,有问题吗?我能得到汽液混合物的声速吗?

函数返回NaN。

谢谢 :-)

米..

我找到了答案
>>只需在此处下载zipfile并将其文件复制到matlab文件夹中的文档或matlab在计算机上使用的任何路径

我可以直接在matlab上写,就像
XSTEAM('H_S',100)

Jan Janosovsky.

这是非常有帮助的。谢谢 :)

莱昂纳多Paoli

好,但它不在800℃以上的敌人温度!

Mazen Halasah.

丹尼尔·佩雷斯

伊哈布·法拉格

2016年4月11日,星期一
你好
当我尝试在r2016a中运行xsteam.m时,我得到了以下关于fun的错误
输入参数不足。

XSteam中的错误(第221行)
有趣=较低(娱乐);
欢迎帮助修复此错误。
谢谢
伊哈布

rouf awad

乐趣是一个未定义的词!!

??? 输入参数“fun”未定义。

彼得·波斯卡

感谢您提供的代码!
有可能使用in1和in2这样的向量吗?如果我这样做,我将得到一个错误消息:

' ||和&&操作符的操作数必须可转换为逻辑标量值。'

恋人aditya

凯文作者舒诺华

有没有办法计算或确定等熵膨胀指数?

西蒙

我需要T区间1273K-1873K和P0.1-300MPa的蒸汽密度。XSteam为温度高达2000℃但P<100 bar的温度提供了稳定性。有什么建议吗?

马克Mikofski

如果您正在寻找替代XSteam,请考虑-//www.tatmou.com/matlabcentral/fileexchange/35710-iapws-if97-functional-form-with-no-slip- 它是矢量化,更多的当前,并记录在这里:http://mikofski.github.io/iapws_if97/

Bouazza Brahim

你好先生,
我想知道函数xsteam用作输入值Si值,因为在PDF中是一个带有单位的表,但我不知道它们是否是输入或输出的单位。

问候语,

Sampath.

XSteam('rho_pT',1.5287111.9187)
显示为NaN。请让我知道原因。

不仅密度,而且所有其他性质都显示为NaN

Tarek Sobh

谢谢你,马格努斯。我想用Simulink使用这个,但是,我不能..金宝app我使用的代码如下,但我得到错误:

函数h10=fcn(t10)
h10 = xsteam('hv_t',t10);

如果有人能帮忙,我将不胜感激。

蒸台

我无法连接到x蒸汽站点。得到以下错误消息:

哎呀!Internet Explorer无法连接到www.x-eng.com
尝试重新加载:www.x-eng.com

当做

马克Mikofski

您可能能够通过使用ArrayFun调用Xsteam来提高长循环的速度(//www.tatmou.com/help/matlab/ref/arrayfun.html)或使用IAPWS_IF97(//www.tatmou.com/matlabcentral/fileexchange/35710-iapwsif97-functional-form-with-no-slip

马克Mikofski

@Daniel Vecchio-你可以试试NIST化学WebBook(http://webbook.nist.gov/chemistry/fluid/),美国威斯康辛大学土木工程学院(http://fchart.com/ees/), TRNSYS也来自威斯康辛州(http://sel.me.wisc.edu/trsys/)或白杨(http://www.aspentech.com/下载188bet金宝搏products/aspen-properties.aspx).祝你好运,并将你的发现发表出来以帮助他人。

丹尼尔·维奇

你好,优秀的材料!

我正在寻找一个类似的工具来获得制冷剂的特性。
你知道有什么可以卖的吗?

谢谢

马克Mikofski

要获得XSand和XSteamUS的帮助,您需要打开源代码并删除前三行,或者至少删除空白行。MATLAB只会使用第一个连接的注释块返回帮助,但是XSteam和XSteamUS在“%h_prho behöver T_prho för samtliga regioner!!!!”后面都有一个空行因此,这是作为“帮助”返回的唯一一行。

马克Mikofski

非常好的资源,但如果矢量化,并且如果它有用于计算建模的热力学导数,则会更好。

马克Mikofski

打开源代码,查看第23-41行,每个文件的单元都在那里

XSteamUS.m

%***命名法******************************************************************************************
%首先是想要的属性,然后是a uu,然后是想要的输入属性。
%的例子。T_ph是温度作为压强和焓的函数。
%有关有效函数的列表,请参见下文或XSteam For MS Excel。
%温度(摄氏度)
%压力(巴)
%h焓(kJ/kg)
%v比体积(m3/kg)
%rho密度
%s比熵
%比内能
%比等压热容
等容比热容
%音速
%我的粘度
%TC导热系数
表面张力
%x蒸汽分数
%vx蒸汽体积分数

艾萨克

使用'help XSteam'或'help XSteamUS'不会输出所使用的单位:

>>帮助我们
h_prho behöver T_prho för samtliga region !!!!

> >帮助XSteam
h_prho behöver T_prho för samtliga region !!!!

我在pdf中找到了单位制单位,但是我怎么找到英制单位呢?

马克Mikofski

@antoinetambue“xsteamus”使用英制单位,而“Xsteam”(W / O“US”)使用SI或度量单位。键入`help xsteam`或`help xsteamus`以查看所使用的单位。

马克Mikofski

我知道这是一个老人但是好好,我非常感谢Magnus Holmgren的工作。因此,我谦卑地提交IAPWS_IF97.M(http://www.mathwands.com/matlabcentral/fileexchange/35710.)它的灵感来源于XSteam,但使用IAPWS原版对其进行了彻底改造,以实现矢量化,并包括衍生工具w.r.t.焓和压力。如果您对IAPWS_IF97.m有任何意见,我很乐意听取。谢谢您的考虑。

杨尼克·莫林

好工具

内森q

Antoine Bandue.

你好,有两个功能XSteam和XSteamUS。这两个函数有什么区别?我已经测试了这两个函数,它们给出了不同的答案。
干杯

阿里

有史以来最好的工具!

里昂

非常好的工具!
非常适合将其压缩到单个.m文件中。

曼内尔索里亚

优秀的! !

罗里

优秀作品!你的生活更加伟大的工具让我的生命变得不可估计!

维萨

关于我之前的评论:
该代码按其应该的方式计算tcL和tcV。
只有文档是相反的。

维萨

在2006年7月19日的“X Steam for Matlab.pdf”和2007年5月4日的“XSteam.m”评论行139-142中:
%饱和蒸汽导热系数
%TCV_P饱和液体导热率
饱和蒸汽热导率
%饱和液体导热系数

应该是;
%饱和液体导热系数
%饱和蒸汽导热系数
%tcL_T饱和液体导热系数
%饱和蒸汽导热系数
我想是吧?

托马斯•克拉克

马格纳斯,

感谢您的全面实施,并提供了极好的帮助!

汤姆

马可干酪

而秀英康

正是我需要的,非常感谢

马里亚诺·内梅克

再见,马格纳斯,

我欣赏并使用了您多年前的优秀工作表(vers)。2.6)。

有一个新版本,我从哪里可以得到它?

丹Etenberg

您好,程序很棒,但我需要计算0ºC以下的蒸汽和冰值。有人能帮我吗?

安德鲁亚布罗科夫

如何在simulink中使用xsteam?金宝app

马克Mikofski

感谢Magnus Holmgren的出色工作!利用你的工作作为灵感,我完全重新编码了所有的IAPWS IF97(除了区域5),包括一些最新的文档,包括一些非线性两阶段建模所需的热力学导数。我终于把它贴在这里:
//www.tatmou.com/matlabcentral/fileexchange/35710-iapwsif97-functional-form-with-no-slip
根据IF97中的测试点和随附的文档以及我使用它的许多模拟,它是如载体化和完全测试的。我希望你觉得它像我一样有用。

安德里亚Baricci

摩根可能

非常棒,我自己也在做类似的事情,突然发现了这个。说到节省时间,我确实有一个问题,在第2496行,程序是否应该读取High_Bound=2563.59200e+5而不是High_Bound=2563.592004+5??只是好奇。

杰森王

天哪。这个程序为我节省了很多热力学作业的时间。非常感谢!

帕特里克•

非常准确,谢谢。

阿曼brar

太棒了……这正是我想要的。

亚舍克乌拉

非常感谢你提供的信息?

朱向斌

谢谢!

威廉Hounks

博阵痛

Lourenco Crawford.

非常好! !非常感谢!

Lourenco Crawford.

非常好! !非常感谢!

博格丹·马库

正是我需要的,非常感谢

乔纳斯安德森

正是我需要的

马里奥lebbe

马格努斯霍尔格伦

评论审查波纹管。温度线在pH图上的饱和线上突破。(但是H_PT对于蒸汽和水的混合物无效,因为温度不会在该区域中的焓随焓而变化。答案变为NaN。温度可以是P的饱和度,从那时起,H未定义。)我认为你混淆了数字一点。

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

艾伦·扎迪拉卡

很高兴发现蒸汽性能如此之好。使我不再需要再创建自己的。唯一的问题是,在较高压力下,ph图(英制单位)饱和线处的温度线不会断裂;3097 psia和700F的sat测线给出989.2 BTU/Lb,而3097 psia和700F的sat测线给出981.5 BTU/Lb。

大卫安德森

完美的。
简单,精确。

穆罕默德·卡泽米

皮波·冥王星

Giovani Tonel

第1428行==>err=check();

吉姆·梅谢尔

这是一次非凡而卓越的努力。特别是能够得到函数P和h h和s的性质。
但是,如果提交的话,这是不清楚的作者如何指出,如果他们基于97,那么可以找到最多的属性。如果他们的知识仅适用于我的知识,仅适用于800度的Celcius。学生仍然需要一个紧凑的印刷蒸汽桌,他们可以携带测试或检查。Ashok Malhotra的优秀新型称为“工程蒸汽桌”现在可以在Amazon.com上为目的提供。(在他们的搜索框中键入标题为locae)

TATEK ZEWDIR

我需要帮助。。。。。。。。。。。。。。。。。

戴夫·阿布拉莫维奇

非常有用。作者一定有很多空闲时间,150kb的代码不是几个小时的工作。

朱剑

一般条款

Poomjai Sa-adchom

我喜欢这个节目

杰夫Buske

干得好!干得好。

塔米尔硫酸

伟大的计划和优秀的结构。

Mike Baldea.

优秀的工作。谢谢你!

郑东辉

约翰麦肯泽

水数据,真的会节省我大量的工作,写表格的插值到我的程序。一个非常棒的程序!
我有两个小的改进:
- 我希望不同的功能是单独的m文件而不是命令。
-我同意前面的评论员的观点,如果函数可以矢量化,那就更好了。
然而,这是一个小问题,这个程序做了它应该做的,而且它使用简单,结构良好。这个节目价值五星。

Duane Hanselman.

1星只是为了平衡作者给自己一个5星评级。谢谢你的建议你!

乌尔斯(美国)施瓦兹

没关系-但是(这是一个很大的但是)-以后,不要给你自己的投稿打分5/5;有些人可能会对这种不恰当的行为感到非常生气和讨厌
我们

马格努斯霍尔格伦

我终于在添加我的档案时成功了,我就第一天赞同所有积极的评级。
我将考虑对函数进行矢量化。
用于MS Excel的X Steam和“漂亮的图形”也是开源的,可以从上面下载www.x-eng.com但是我会在下次更新时将它们添加到ZIP文件中。

约翰Karlsson

简单,给出精确的结果。

约翰D 'Errico

如果您要在长循环内调用这个,则缺乏矢量化可能会减慢速度。但是,这是我可能选择拒绝这一点的唯一原因。文件远高于平均水平,所以我的书中仍然是5。

乌尔斯(美国)施瓦兹

这是一个非常好的项目
- 非凡的帮助(包括PDF,启动)
那会更好
-如果它是矢量化的
-如果可以很容易地复制漂亮的图形(见上文)
-如果MS Excel的…XSteam宏…(如帮助部分所述)随软件包一起提供
但这只是咆哮
我们