You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法传入NumPy二维数组的双变量函数彩色热力图绘制求助

无法传入NumPy二维数组的双变量函数彩色热力图绘制求助

我明白你的问题啦!你写的area_req函数依赖CoolProp的PropsSI方法,而这个方法没办法直接处理NumPy的二维数组——这就是直接把meshgrid生成的X、Y传进去报错的核心原因。没关系,用双重循环逐个计算每个网格点的Z值就可以完美解决,具体修改如下:

问题核心

CoolProp的PropsSI仅支持标量或者一维数组输入,而meshgrid生成的X、Y是二维数组,直接传入会触发类型不兼容的错误。通过循环逐个传入标量值,就能满足area_req的输入要求。

修改后的完整代码

import numpy as np
import CoolProp.CoolProp as cp
import matplotlib.pyplot as plt

# 所有单位采用SI制
mdot = 10000 / 7936.64   # 蒸汽质量流量
P_atm = 101000    # 大气压

def area_req(P1, P2):
    P_before_trap = P_atm + (P1) * 6894.76    # 疏水阀前压力
    P_after_trap = P_atm + (P2) * 6894.76  # 疏水阀后压力
    
    enthalpy_1 = cp.PropsSI('H','P',P_before_trap,'Q',0,'water')  # 疏水阀前凝结水焓值
    enthalpy_2 = enthalpy_1   # 疏水阀为等焓设备
    
    x_after_trap = cp.PropsSI('Q','P',P_after_trap,'H',enthalpy_2,'water')    # 疏水阀后蒸汽干度
    
    mdot_flash = x_after_trap * mdot    # 闪蒸蒸汽质量流量
    mdot_cond = (1 - x_after_trap) * mdot
    
    rho_steam = cp.PropsSI('D','P',P_after_trap,'Q',1,'water')    # 混合物中蒸汽密度
    rho_water = cp.PropsSI('D','P',P_after_trap,'Q',0,'water')    # 混合物中凝结水密度
    
    area_steam = mdot_flash / rho_steam / 20.32   # 蒸汽组分所需流通面积(对应流速4000 ft/min)
    area_cond = mdot_cond / rho_water / 1.524 # 凝结水组分所需流通面积(对应流速5 ft/sec)
    area_req = area_cond + area_steam
    return area_req

# 创建x、y轴的数值序列
x = np.linspace(0, 100, 100)
y = np.linspace(0, 100, 100)
X, Y = np.meshgrid(x, y)

# 初始化与X同形状的空数组,用于存储每个网格点的计算结果
Z = np.zeros_like(X)

# 双重循环遍历所有网格点,逐个计算Z值
for i in range(X.shape[0]):
    for j in range(X.shape[1]):
        # 传入单个标量值,符合area_req的输入要求
        Z[i, j] = area_req(X[i, j], Y[i, j])

# 绘制彩色热力图(优化了坐标轴匹配与标签)
plt.imshow(Z, cmap='viridis', extent=[x.min(), x.max(), y.min(), y.max()], origin='lower')
plt.colorbar(label='所需流通面积')
plt.title('疏水阀所需流通面积热力图')
plt.xlabel('P1 (psig)')
plt.ylabel('P2 (psig)')
plt.show()

额外说明

  • 我在绘图部分加了extent和origin='lower'参数,让坐标轴刻度和P1、P2的实际范围对应,同时补充了轴标签,让图表更直观易读。
  • 100x100的网格总共10000次计算,对于CoolProp来说这个计算量完全在可接受范围内,不会有明显卡顿。

备注:内容来源于stack exchange,提问作者remusconnor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 13:48:00