python实现空气焓值,湿球温度的计算

因为对热力学概念公式完全不懂,本文参考自以下blog,感谢其贡献

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/LWLGZY/article/details/77469664

原博客C++语言编写,由于需要,本文将其改写为python版本

# 已知室外温度、湿度,计算湿焓值
def calculateHZ_S(tw):
    mm0 = tw / 234.5
    mm1 = tw * (18.678 - mm0) / (tw + 257.14)
    mm2 = np.exp(mm1)
    hw = 1.01 * tw + 0.6219 * (2500 + 1.84 * tw) * 611.2 * mm2 / (101326 - 611.2 * mm2)
    return hw


# 计算空气焓值,输入参数:series,list(矩阵运算)或者 单个值,输入温度、湿度
def calculateHZ(temper, humidity):
    t1 = (18.678 - temper / 234.5) * temper / (temper + 257.14)
    pv = 611.2 * np.exp(t1)
    d = 0.6219 * (0.01 * humidity * pv / (101326 - 0.01 * humidity * pv))
    h = 1.01 * temper + (2500 + 1.84 * temper) * d

    return h

# 输入温度、湿度
def calWbt(temper, humidity):
    nums = 0  # 迭代次数
    val = 0.  # 湿球温度迭代初值
    ii = 0
    e = e_1 = e_2 = ee_1 = ee_2 = 0
    if 0 <= temper < 60:
        e = np.abs(calculateHZ_S(val) - calculateHZ(temper, humidity))
        while e > 0.02:
            e = calculateHZ_S(val) - calculateHZ(temper, humidity)
            e_2, e_1 = e_1, e
            ii += e
            ee_2, ee_1 = ee_1, (e_1 - e_2)  # 微分
            if e > 0:
                val -= 0.1 * abs(e) + 0.001 * ii + 0.01 * ee_1
            else:
                val += 0.1 * abs(e)
            if e_1 - e_2 < 0:
                val += 0.005
            else:
                val -= 0.005

            e = np.abs(calculateHZ_S(val) - calculateHZ(temper, humidity))
            nums += 1
            if nums > 2000:
                if e > 3:
                    e = calculateHZ_S(val) - calculateHZ(temper, humidity)
                    if e < 0:
                        val += -0.1 * e
                        if val > temper:
                            val = temper * 0.99
                return val
        return val


# 计算湿球温度,湿球温度需要用到空气焓值,输入温度、湿度
def calculateWbt(temper, humidity):
    if len(temper) != len(humidity):
        logger.info('湿球温度计算 - 输入数据有误!')
        return None

    res_val = []
    for i in range(len(temper)):
        res_val.append(calWbt(temper[i], humidity[i]))
    return res_val

要求解湿球温度,可以使用Psychrometric Chart(湿空气热力学图)或Psychrolib(Python库,用于湿空气物性计算)来实现。以下是使用Psychrolib库的示例代码: ```python import psychrolib def calculate_wetbulb_temperature(drybulb_temperature, relative_humidity): # 初始化Psychrolib库 psychrolib.SetUnitSystem(psychrolib.SI) # 输入干球温度和相对湿度 drybulb_temperature_k = psychrolib.DrybulbF2C(drybulb_temperature) relative_humidity = relative_humidity / 100.0 # 计算湿球温度 wetbulb_temperature_k = psychrolib.GetTWetBulbFromRelHum(drybulb_temperature_k, relative_humidity) # 将温度转换为摄氏度 wetbulb_temperature = psychrolib.WetbulbC2F(wetbulb_temperature_k) # 返回湿球温度 return wetbulb_temperature # 输入干球温度和相对湿度 drybulb_temperature = 25.0 # 干球温度(摄氏度) relative_humidity = 60.0 # 相对湿度(百分比) # 计算湿球温度 wetbulb_temperature = calculate_wetbulb_temperature(drybulb_temperature, relative_humidity) print("湿球温度为: {} 摄氏度".format(wetbulb_temperature)) ``` 这段代码使用Psychrolib库中的函数进行湿球温度计算。首先,我们将输入的干球温度和相对湿度转换为适用于库中函数的单位(摄氏度和百分比)。然后,使用`GetTWetBulbFromRelHum`函数计算湿球温度。最后,将计算结果转换为摄氏度并输出。 注意:在运行此代码前,你需要首先安装Psychrolib库。可以使用以下命令来安装: ``` pip install psychrolib ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值