计算两股不同流量的气体,通过换热器换热后,高温气体的出口温度

news2024/9/23 13:02:16

在这里插入图片描述

# -*- coding: utf-8 -*-
"""
Created on Thu Nov 30 11:23:12 2023
计算两股不同流量的气体,通过换热器换热后,高温气体的出口温度
(煤烟二级,计算煤烟二级热侧出口温度)
------------------------------------------------
已知:冷测烟气量、出入口温度,热侧烟气量、热侧入口温度
求热侧出口温度
保证热出比冷进高15℃
------------------------------------------------
@author: xujifa
"""
import sympy

class Com_two_hot_out_temperature():
    
    # 已知物理参数、边界条件等
    #冷测入口烟气量 Nm3/h,#冷测入口温度 ℃,#冷测出口温度 ℃,#热测入口烟气量 Nm3/h,#热测入口温度 ℃
    def __init__(self, cold_in_fl, cold_in_tem,cold_out_tem,hot_in_fl,hot_in_tem,name):
        self.cold_in_fl = cold_in_fl  #冷测入口烟气量 Nm3/h
        self.cold_in_tem = cold_in_tem  #冷测入口温度 ℃
        self.cold_out_fl = cold_in_fl  #冷测出口烟气量 Nm3/h
        self.cold_out_tem = cold_out_tem  #冷测出口温度 ℃
        self.hot_in_fl = hot_in_fl  #热测入口烟气量 Nm3/h
        self.hot_in_tem = hot_in_tem  #热测入口温度 ℃
        self.hot_out_fl = cold_in_fl  #热测出口烟气量 Nm3/h
        self.name = str(name)
        self.cha = 15 #保证热出比冷进大于15℃
        print(f"👇👇👇以下计算为 {self.name} 的参数👇👇👇")
        


    #定义热损失,换热器效率,根据热测入口温度 ℃来定义
    def ex_eff(self):
        if self.hot_in_tem > 400:
            return 0.94
        else:
            return 0.965
       
        
     #fl 风量Nm3/h、 tem温度℃,求携带热量
    def com_heat(self,fl,tem):
        fl = fl/0.0224 #气体摩尔量 mol/h
        tem = tem + 273.15 #温度转化为k,因为比热容的方程是根据温度k来计算的
        cp = 7.22e-10*pow(tem,3) - 5.937e-06*pow(tem,2) + 0.01707 *tem + 26.52 #比热容 J/mol-K
        heat =  cp*fl*tem #计算携带的热量  J/h
        # print(f"---携带热量模块---{heat} j/h")#f{}格式化字符串
        return heat
    
    #换热计算,高温在前,低温在后,风量Nm3/h、 tem温度℃
    def ex_heat(self):
        cold_in_heat = self.com_heat(self.cold_in_fl,self.cold_in_tem)
        cold_out_heat = self.com_heat(self.cold_out_fl,self.cold_out_tem)
        heat = cold_out_heat - cold_in_heat #计算进出口的热量差值  J/h,1kj/h = 1/3600kw
        print(f"***{self.name} @ 冷测热量:{heat} J/h",)
        print(f"***{self.name} @ 冷测热量:{heat/3600/1000} KW",)
        return heat
    
    #计算高温出口热侧所需热量,设置换热效率
    def com_hot_out_heat(self):
        hot_in_heat = self.com_heat(self.hot_in_fl,self.hot_in_tem)  #热侧进口热量
        print(f"+++{self.name} @ 热侧入口携带热量:{hot_in_heat} J/h")
        cold_ex_heat = self.ex_heat()/self.ex_eff() #冷测的换热量,换热效率
        hot_out_heat = (hot_in_heat - cold_ex_heat)/(self.hot_in_fl/0.0224) #热侧出口所需热量
        print(f"+++{self.name} @ 热侧出口所需热量:{hot_out_heat} J/h")
        return hot_out_heat
             
    #求解一元四次函数,tem为变量
    def sol_tem(self,h):
        tem = sympy.Symbol("tem")
        s = sympy.solve(7.22e-10*pow(tem,4) - 5.937e-06*pow(tem,3) + 0.01707 *tem*tem + 26.52*tem-h)
        print(f'↓↓↓***{self.name} @ 计算结果温度 K-待筛选***↓↓↓')
        print(s)
        print(f'↑↑↑***{self.name} @ 计算结果温度 K-待筛选***↑↑↑')
        return s
    
    #对sol求解的函数进行后处理
    def post_sol(self,data):
        for num in data:
            if "I" not in str(num):
                if num > 0:
                    print(f"👉👉👉{self.name}@热侧出口温度 {round(num-273.15,2)} ℃")
                    print(f"👆👆👆以上计算为 {self.name} 的参数👆👆👆")
                    return round(num-273.15,2)
            else:
                print("solve-复数")
                return -911111111  #说明是复数
            
        
    def getdata(self):
        hot_out_tem = self.post_sol(self.sol_tem(self.com_hot_out_heat()))#直接调用函数
        print(f"热侧出口温度为{hot_out_tem}-经过方程求解")
        # if hot_out_tem - self.cold_in_tem < self.cha and hot_out_tem>0:
        #     hot_out_tem = self.cold_in_tem + self.cha
        # else:
        #     hot_out_tem = -99999999
        print("---------------------------------")
        print(f"{self.name}边界参数")
        print(f"{self.name}-冷测:\n1、流量{self.cold_in_fl}Nm3/h\n2、入口温度{self.cold_in_tem}℃\n3、出口温度{self.cold_out_tem}℃\n4、温差{self.cold_out_tem-self.cold_in_tem}℃")
        print(f"{self.name}-热侧:\n1、流量{self.hot_in_fl}Nm3/h\n2、入口温度{self.hot_in_tem}℃\n3、出口温度{hot_out_tem}℃\n4、温差{self.hot_in_tem-hot_out_tem}℃")
        print("---------------------------------")
        return self.cold_out_fl,self.cold_out_tem,self.hot_out_fl,hot_out_tem
        
    
        
if __name__ == "__main__":
    Com_two_hot_out_temperature(122000, 240, 280, 15000,200,"二级换热器").getdata()

    


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1310982.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生架构总结-读书笔记

云原生架构进阶实战-读书笔记 云原生概念 云原生&#xff08;Cloud Native&#xff09;概念是由Pivotal的Matt Stine在2013年首次提出的。这个概念得到了社区的不断完善&#xff0c;内容越来越丰富&#xff0c;目前已经**包括了DevOps&#xff08;Development和Operations的组…

ROS2 Control分析讲解

ROS2 Control 文章目录 前言简述组成安装 框架Controller ManagerResource ManagerControllersUser Interfaces Hardware ComponentsURDF中的硬件描述机器人运行框架 总结 前言 ros2_control是一个使用&#xff08;ROS 2&#xff09;进行机器人&#xff08;实时&#xff09;控…

【亚马逊云科技】通过高性能低延迟对象存储 S3实现网站资源托管

本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 文章目录 前言1 S3 介绍1.1 优点 2 使用步骤2.1 注册账户2.2 创建存储桶2.2.1 打开控制…

WEB服务器介绍

Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器连到服务器上并请求文件时&#xff0c;服务器将处理该请求并将文件发送到该浏览器上&#xff0c;附带的信息会告诉浏览器如何查看该文件&#xff0c;即文WEB服务器件类型。服务器使用HTTP进行信息交流&#xff0c…

springboot获取配置文件属性值

Value&#xff1a; 作用&#xff1a;属性注入&#xff0c;需要每个值上进行书写变量名 ConfigurationProperties 指定外部属性文件。在类上添加&#xff0c;常与ConfigurationProperties 配合使用

RK3568平台 OTA升级原理

一.前言 在迅速变化和发展的物联网市场&#xff0c;新的产品需求不断涌现&#xff0c;因此对于智能硬件设备的更新需求就变得空前高涨&#xff0c;设备不再像传统设备一样一经出售就不再变更。为了快速响应市场需求&#xff0c;一个技术变得极为重要&#xff0c;即OTA空中下载…

Python占位符%详解:格式化字符串的利器

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python中&#xff0c;%占位符是一种强大的工具&#xff0c;用于格式化字符串。本文将深入解析Python中占位符的使用方法&#xff0c;包括字符串格式化、数字格式化、日期格式化等多个方面。通过丰富的示例代码…

FolkMQ 国产消息中间件,v1.0.21 发布

简介 采用 “多路复用” “内存运行” “快照持久化” “Broker 集群模式”&#xff08;可选&#xff09;基于 Socket.D 网络应用协议 开发。全新设计&#xff0c;自主架构&#xff01; 角色功能生产端发布消息&#xff08;Qos0、Qos1&#xff09;、发布定时消息&#xff…

【多线程】线程池详解

文章目录 什么是线程池生活案例理解线程池为什么使用线程池线程池的优点 自定义线程池内置线程池总结 什么是线程池 线程池其实就是一种多线程处理形式&#xff0c;处理过程中可以将任务添加到队列中&#xff0c;然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过…

【经验分享】gemini-pro和gemini-pro-vision使用体验

Gemini Gemini已经对开发者开放了Gemini Pro的使用权限&#xff0c;目前对大家都是免费的&#xff0c;每分钟限制60条&#xff0c;至少这比起CloseAI的每个账户5刀限速1min3条要香的多&#xff0c;目前已于第一时间进行了体验 一句话总结&#xff0c;google很大方&#xff0c;但…

影视动画行业发展现状与方向:AI技术推动动画工业化体系新变革

工业化体系 是国产动画强国的必经之路 中国动画的百年历程不仅是创作者们展现艺术才华的历程&#xff0c;也是一代代中国动画人不懈追求动画工业体系建设的历程。 为什么现在的中国动画需要建立工业化体系呢&#xff1f; 举个例子&#xff0c;在建立工业化体系之前&#xff…

Colorful Grid Codeforces Round 910 (Div. 2) C

Problem - C - Codeforces 题目大意&#xff1a;有一个n*m的网格&#xff0c;要求从(1,1)走到(n,m)&#xff0c;同时要求路径的长度必须为k1&#xff0c;然后给每个两点之间的路径染成红色或蓝色&#xff0c;要求任意两个相邻线段颜色不能相同&#xff0c;求涂色的方案 3<…

MSF学习

之前的渗透测试中 其实很少用到 cs msf 但是在实际内网的时候 可以发现 msf cs 都是很好用的 所以现在我来学习一下 msf的使用方法 kali自带msf https://www.cnblogs.com/bmjoker/p/10051014.html 使用 msfconsole 启动即可 首先就是最正常的木马生成 所以这里其实只需…

Selenium三大等待(详解版)

一、强制等待 1.设置完等待后不管有没有找到元素&#xff0c;都会执行等待&#xff0c;等待结束后才会执行下一步 2.实例&#xff1a; driver webdriver.Chrome()driver.get("https://www.baidu.com")time.sleep(3) # 设置强制等待driver.quit() 二、隐性等待 …

【Spring】04 国际化

文章目录 1. 定义2. Spring 的支持1&#xff09; MessageSource接口2&#xff09; ResourceBundleMessageSource 3. 配置国际化1&#xff09;配置MessageSource Bean2&#xff09;创建资源文件3&#xff09;在Bean中使用国际化消息 4. 使用占位符和参数结语 Spring 为我们提供了…

深入理解C语言的函数参数

1、一个简单的函数 int Add(int x, int y) {return x y; }int main() {printf("%d", Add(2, 3, 4, 5, 6));return 0; } 这一段足够简单的代码&#xff0c;闭眼都能知道运行结果会在屏幕上打印 5 。那编译器是怎么处理后面的 4、5、6 &#xff1f; 我们再看看这个函…

【系统架构】集群、分布式概念及系统架构演进过程

集群、分布式概念&#xff1a; 对食物没有太高要求的人在肚子饿的时候一般都会选择去兰州拉面、沙县小吃等小饭馆&#xff0c;这类小饭馆有个很显著的特点&#xff1a;洗菜、切菜、炒菜都是同一个人完成&#xff0c;如果厨子不舒服可能饭馆还会歇业。而一些人流量较大的饭馆的分…

【Qt之QNetworkAccessManager】概述及示例

概述 QNetworkAccessManager类允许应用程序发送网络请求和接收应答 网络访问API是围绕一个QNetworkAccessManager对象构建的&#xff0c;该对象为它发送的请求保存通用配置和设置。它包含代理和缓存配置&#xff0c;以及与此类问题相关的信号&#xff0c;以及可用于监视网络操…

【Linux API 揭秘】container_of函数详解

我的圈子&#xff1a; 高级工程师聚集地 我是董哥&#xff0c;高级嵌入式软件开发工程师&#xff0c;从事嵌入式Linux驱动开发和系统开发&#xff0c;曾就职于世界500强企业&#xff01; 创作理念&#xff1a;专注分享高质量嵌入式文章&#xff0c;让大家读有所得&#xff01; …

leetcode-21-合并两个有序链表(C语言实现)

题目&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出…