如何在CoolProp生成的温熵图上叠加朗肯循环及物理相变过程?
如何在CoolProp生成的温熵图上叠加朗肯循环及物理相变过程?
嗨,你完全不用发愁!CoolProp可不止能用来做制冷循环,它对朗肯循环的支持也很到位~我来一步步教你把完整的朗肯循环(包括每个物理相变过程)叠加到你已经画好的Ts图上,保证还原真实的热力学过程。
先给你完整的可运行代码
你只需要在原来的绘图代码基础上,加上循环状态点计算和过程绘制的部分就行:
import CoolProp from CoolProp.Plots import PropertyPlot from CoolProp.CoolProp import PropsSI # 初始化Ts图,和你原来的代码一致 ts_plot = PropertyPlot('Water', 'Ts') ts_plot.calc_isolines(CoolProp.iQ, num=11) ts_plot.calc_isolines(CoolProp.iP) ts_plot.title(r'$T,s$ Graph for Water with Rankine Cycle') ts_plot.xlabel(r'$s$ [kJ/kg K]') ts_plot.ylabel(r'$T$ [K]') ts_plot.grid() ts_plot.set_axis_limits([0,10,273.15,800]) # ---------------------- 定义朗肯循环参数(可根据需求修改) ---------------------- P_boiler = 10e6 # 锅炉压力,单位:Pa(10MPa) P_condenser = 0.005e6 # 凝汽器压力,单位:Pa(5kPa) T_superheat = 823.15 # 过热蒸汽温度,单位:K(550℃) # ---------------------- 计算朗肯循环四个状态点的热力学参数 ---------------------- # 状态1:锅炉出口,过热蒸汽(P=P_boiler,T=T_superheat) s1 = PropsSI('S', 'P', P_boiler, 'T', T_superheat, 'Water') / 1000 # 转换为kJ/kg·K T1 = T_superheat # 状态2:汽轮机出口,等熵膨胀到凝汽器压力(s=s1,P=P_condenser) s2 = s1 * 1000 # 转回J/kg·K供CoolProp计算 T2 = PropsSI('T', 'S', s2, 'P', P_condenser, 'Water') x2 = PropsSI('Q', 'S', s2, 'P', P_condenser, 'Water') # 干度,验证是否为湿蒸汽 # 状态3:凝汽器出口,饱和液体(P=P_condenser,x=0) s3 = PropsSI('S', 'P', P_condenser, 'Q', 0, 'Water') / 1000 T3 = PropsSI('T', 'P', P_condenser, 'Q', 0, 'Water') # 状态4:给水泵出口,等熵压缩到锅炉压力(s=s3,P=P_boiler) s4 = s3 * 1000 T4 = PropsSI('T', 'S', s4, 'P', P_boiler, 'Water') # ---------------------- 将四个状态点和过程添加到图中 ---------------------- # 定义四个状态点的坐标(s, T),单位统一为kJ/kg·K和K points = [(s1, T1), (s2, T2), (s3, T3), (s4, T4), (s1, T1)] # 逐个绘制循环过程,标注物理意义 ts_plot.add_process(points[0], points[1], 'isentropic', color='red', label='汽轮机等熵膨胀') ts_plot.add_process(points[1], points[2], 'isobaric', color='blue', label='凝汽器等压放热') ts_plot.add_process(points[2], points[3], 'isentropic', color='green', label='给水泵等熵压缩') ts_plot.add_process(points[3], points[4], 'isobaric', color='orange', label='锅炉等压吸热') # 显示图例和图像 ts_plot.legend() ts_plot.show()
关键步骤拆解
循环状态点计算:
CoolProp的PropsSI函数可以通过任意两个已知参数(比如压力+温度、压力+干度、熵+压力)计算其他热力学性质,完全满足朗肯循环的状态点需求。注意单位转换:CoolProp默认用国际单位制(J、kg、K、Pa),所以我们把熵转换为kJ/kg·K来和图的坐标轴匹配。添加循环过程:
用add_process方法,指定起始点、终点和过程类型(isentropic等熵、isobaric等压),还可以自定义颜色和标签。四个过程正好对应朗肯循环的完整路径:- 汽轮机等熵膨胀:过热蒸汽在汽轮机内膨胀做功,熵不变,温度和压力降低,变为湿蒸汽
- 凝汽器等压放热:湿蒸汽在凝汽器中放出热量,凝结为饱和液体,压力和温度保持不变
- 给水泵等熵压缩:饱和液体被给水泵加压到锅炉压力,熵不变,温度略有升高
- 锅炉等压吸热:高压液体在锅炉中吸收热量,先变为饱和蒸汽,再过热为指定温度的蒸汽,压力不变
自定义调整:
你可以随意修改P_boiler、P_condenser、T_superheat这些参数,CoolProp会自动重新计算所有状态点。如果需要更清晰的图,还可以调整过程的线宽、标记点样式等(比如在add_process里加linewidth=2)。
这样你就能得到一张带有完整朗肯循环的Ts图,完美叠加在原来的饱和线和等压线之上啦!
备注:内容来源于stack exchange,提问作者TurboCapra
相关产品推荐
相关产品推荐

