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

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.youkuaiyun.com/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

### 计算湿球温度的方法 湿球温度可以通过特定公式来计算,该参数对于了解空气状态非常重要。在实际应用中,通常采用经验公式或者通过查阅标准大气压下的湿图来进行估算。 一种常用的湿球温度计算公式如下: \[ T_w = \frac{T_d}{\left(1 + (0.666)\cdot(g - g_s(T_d))\right)} \] 其中, - \(T_w\) 表示湿球温度; - \(T_d\) 是干球温度; - \(g\) 代表当前空气中水汽分压力对应的含湿量; - \(g_s(T_d)\) 则是在相同温度下饱和空气中的含湿量[^1]。 为了更精确地获得湿球温度,在编程环境中可以利用Python编写函数实现上述公式的自动化处理。下面是一个简单的例子,展示了如何基于给定条件使用Python脚本来计算湿球温度[^2]: ```python import math def calculate_wet_bulb_temperature(dry_temp, humidity_ratio): """ :param dry_temp: 干球温度(℃) :param humidity_ratio: 含湿量(kg/kg) :return wet_bulb_temperature: 湿球温度(℃) """ # 假设常数 c = 0.666 def saturation_humidity(temp): """获取指定温度下的饱和含湿量""" return 6.11 * pow((temp / (temp + 238)), 17.27) saturated_humid_at_dry = saturation_humidity(dry_temp) denominator = 1 + c*(humidity_ratio - saturated_humid_at_dry) wet_bulb_temperature = dry_temp/denominator return wet_bulb_temperature # 示例调用 dry_ball_temperature = 25 # ℃ air_humidity_ratio = 0.01 # kg/kg print(f"Wet Bulb Temperature is {calculate_wet_bulb_temperature(dry_ball_temperature, air_humidity_ratio):.2f}°C") ``` 此代码片段定义了一个`calculate_wet_bulb_temperature()` 函数用于接收两个输入参数——干球温度和含湿量,并返回相应的湿球温度。注意这里的具体物理意义以及单位转换需根据实际情况调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值