matlab结合python的CoolProp库来进行热泵热循环仿真

news2024/11/28 3:23:58

前言

需要安装python,不同matlab版本需要下载对用的python版本!!!!,切记!!!!否则程序无法运行,下图是展示了matlab和python之间的版本对应
在这里插入图片描述
安装完python后,打开cmd(mac电脑终端) 输入 pip install CoolProp

实现步骤

多状态点和过程:包括压缩、冷凝、节流、蒸发等过程。
详细的能量平衡和效率计算:包括各个设备的效率(如压缩机、泵、涡轮等),以及整体循环的性能。
详细的状态点计算:使用 CoolProp 计算精确的热力学性质。
火用分析:计算火用损失和火用效率。
动态仿真:通过迭代方法模拟系统的动态行为

核心代码

% Parameters
T0 = 298.15; % Reference temperature (K)
P1 = 100; % Pressure at state point 1 (kPa)
T1 = 30 + 273.15; % Temperature at state point 1 (K)
P2 = 3000; % Pressure at state point 2 (kPa)
P3 = P2; % Pressure at state point 3 (kPa)
P4 = P1; % Pressure at state point 4 (kPa)
eff_pump = 0.85; % Efficiency of the pump
eff_turbine = 0.85; % Efficiency of the turbine
m_dot = 1; % Mass flow rate (kg/s)

% State 1: Liquid water at low pressure and temperature
h1 = py.CoolProp.CoolProp.PropsSI('H', 'P', P1*1000, 'T', T1, 'Water') / 1000; % Enthalpy (kJ/kg)
s1 = py.CoolProp.CoolProp.PropsSI('S', 'P', P1*1000, 'T', T1, 'Water') / 1000; % Entropy (kJ/kg.K)

% State 2: Liquid water at high pressure (after pump)
s2 = s1; % Isentropic process
h2s = py.CoolProp.CoolProp.PropsSI('H', 'P', P2*1000, 'S', s2*1000, 'Water') / 1000; % Isentropic enthalpy (kJ/kg)
h2 = h1 + (h2s - h1) / eff_pump; % Actual enthalpy after pump (kJ/kg)
T2 = py.CoolProp.CoolProp.PropsSI('T', 'P', P2*1000, 'H', h2*1000, 'Water') - 273.15; % Temperature (°C)

% State 3: High pressure steam (after boiler)
T3 = 450 + 273.15; % Temperature at state point 3 (K)
h3 = py.CoolProp.CoolProp.PropsSI('H', 'P', P2*1000, 'T', T3, 'Water') / 1000; % Enthalpy (kJ/kg)
s3 = py.CoolProp.CoolProp.PropsSI('S', 'P', P2*1000, 'T', T3, 'Water') / 1000; % Entropy (kJ/kg.K)

% State 4: Low pressure steam (after turbine)
s4 = s3; % Isentropic process
h4s = py.CoolProp.CoolProp.PropsSI('H', 'P', P1*1000, 'S', s4*1000, 'Water') / 1000; % Isentropic enthalpy (kJ/kg)
h4 = h3 - eff_turbine * (h3 - h4s); % Actual enthalpy after turbine (kJ/kg)
T4 = py.CoolProp.CoolProp.PropsSI('T', 'P', P1*1000, 'H', h4*1000, 'Water') - 273.15; % Temperature (°C)

% Energy balance and exergy analysis
Q_in = h3 - h2; % Heat input in the boiler (kJ/kg)
Q_out = h4 - h1; % Heat rejected in the condenser (kJ/kg)
W_net = (h3 - h4) - (h2 - h1); % Net work output (kJ/kg)
COP = Q_in / W_net; % Coefficient of Performance

% Display results
fprintf('State Points:\n');
fprintf('1: T = %.2f K, P = %.2f kPa, h = %.2f kJ/kg, s = %.2f kJ/kg.K\n', T1, P1, h1, s1);
fprintf('2: T = %.2f °C, P = %.2f kPa, h = %.2f kJ/kg, s = %.2f kJ/kg.K\n', T2, P2, h2, s2);
fprintf('3: T = %.2f °C, P = %.2f kPa, h = %.2f kJ/kg, s = %.2f kJ/kg.K\n', T3-273.15, P2, h3, s3);
fprintf('4: T = %.2f °C, P = %.2f kPa, h = %.2f kJ/kg, s = %.2f kJ/kg.K\n', T4, P1, h4, s4);

fprintf('\nCycle Performance:\n');
fprintf('Net Work Output (kJ/kg): %.2f\n', W_net);
fprintf('Heat Input (kJ/kg): %.2f\n', Q_in);
fprintf('Heat Rejected (kJ/kg): %.2f\n', Q_out);
fprintf('Coefficient of Performance (COP): %.2f\n', COP);

% Plotting T-s Diagram
figure;
hold on;
plot([s1 s2], [T1-273.15 T2], 'bo-'); % Process 1-2
plot([s2 s3], [T2 T3-273.15], 'ro-'); % Process 2-3
plot([s3 s4], [T3-273.15 T4], 'go-'); % Process 3-4
plot([s4 s1], [T4 T1-273.15], 'mo-'); % Process 4-1
xlabel('Entropy (kJ/kg.K)');
ylabel('Temperature (°C)');
title('T-s Diagram for Rankine Cycle');
legend('Process 1-2', 'Process 2-3', 'Process 3-4', 'Process 4-1');
grid on;
hold off;

% Total cycle performance
Q_in_total = Q_in * m_dot; % Total heat input (kW)
W_net_total = W_net * m_dot; % Total net work output (kW)
COP_real = Q_in_total / W_net_total; % Real COP

fprintf('\nTotal Cycle Performance:\n');
fprintf('Total Heat Input (kW): %.2f\n', Q_in_total);
fprintf('Total Net Work Output (kW): %.2f\n', W_net_total);
fprintf('Real Coefficient of Performance (COP): %.2f\n', COP_real);

% Exergy analysis
exergy_in = m_dot * (h3 - h2 - T0 * (s3 - s2)); % Exergy input (kW)
exergy_out = m_dot * (h4 - h1 - T0 * (s4 - s1)); % Exergy output (kW)
exergy_efficiency = exergy_out / exergy_in; % Exergy efficiency

fprintf('\nExergy Analysis:\n');
fprintf('Exergy Input (kW): %.2f\n', exergy_in);
fprintf('Exergy Output (kW): %.2f\n', exergy_out);
fprintf('Exergy Efficiency: %.2f\n', exergy_efficiency);

% Detailed component analysis
% Pump work
W_pump = h2 - h1; % Pump work (kJ/kg)
W_pump_total = W_pump * m_dot; % Total pump work (kW)
fprintf('\nPump Work:\n');
fprintf('Pump Work (kJ/kg): %.2f\n', W_pump);
fprintf('Total Pump Work (kW): %.2f\n', W_pump_total);

% Turbine work
W_turbine = h3 - h4; % Turbine work (kJ/kg)
W_turbine_total = W_turbine * m_dot; % Total turbine work (kW)
fprintf('\nTurbine Work:\n');
fprintf('Turbine Work (kJ/kg): %.2f\n', W_turbine);
fprintf('Total Turbine Work (kW): %.2f\n', W_turbine_total);

% Boiler heat input
Q_boiler = h3 - h2; % Boiler heat input (kJ/kg)
Q_boiler_total = Q_boiler * m_dot; % Total boiler heat input (kW)
fprintf('\nBoiler Heat Input:\n');
fprintf('Boiler Heat Input (kJ/kg): %.2f\n', Q_boiler);
fprintf('Total Boiler Heat Input (kW): %.2f\n', Q_boiler_total);
rejection (kW)
fprintf('\nCondenser Heat Rejection:\n');
fprintf('Condenser Heat Rejection (kJ/kg): %.2f\n', Q_condenser);
fprintf('Total Condenser Heat Rejection (kW): %.2f\n', Q_condenser_total);

% Efficiency calculations
thermal_efficiency = W_net_total / Q_in_total; % Thermal efficiency
fprintf('\nEfficiency Calculations:\n');
fprintf('Thermal Efficiency: %.2f%%\n', thermal_efficiency * 100);

说明

状态点计算:
通过 CoolProp 获取每个状态点的焓和熵。
使用等熵过程计算泵和涡轮的状态点。

热力循环性能计算:
计算每个过程的热量和功率。
计算整个循环的性能指标,如净功率输出、热输入、热排出和 COP。

火用分析:
计算火用输入和输出。
计算火用效率。

详细组件分析:
分析每个组件(如泵、涡轮、锅炉和冷凝器)的工作和热量传递。

效率计算:
计算整个循环的热效率。

效果

在这里插入图片描述

完整代码获取

微信扫一扫,发送“热泵热循环仿真”即可获取完整代码
在这里插入图片描述

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

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

相关文章

数据分析思考

数据分析工作流程 在我的数据分析职业发展过程中,我从基础的数据提取工作开始,逐步深入到更为复杂和具有战略意义的领域。这包括构建和完善指标体系、设计风险预警模型,以及与多部门协作完成公司整体经营分析等工作。 在这个过程中&#xf…

会声会影2024旗舰版汉化最新安装包下载方法步骤

嗨,亲爱的CSDN的朋友们!🎉今天,我要跟大家分享一款让你的视频编辑体验升级的神器——会声会影2024最新版本!✨如果你是一个热衷于创作视频内容的创作者,那么你一定不能错过这个软件。它不仅功能强大&#x…

为什么企业需要数据挖掘平台?哪个比较好呢?

什么是数据挖掘? 数据挖掘就是从大量的数据中去发现有用的信息,然后根据这些信息来辅助决策。听起来是不是跟传统的数据分析很像呢?实际上,数据挖掘就是智能化的数据分析,它们的目标都是一样的。但是&#xff0c…

前端面试js高频手写大全

res.push(fn(arr[i])) } return res } 3. reduce实现数组的map方法 Array.prototype.myMap function(fn,thisValue){ var res []; thisValue thisValue||[]; this.reduce(function(pre,cur,index,arr){ return res.push(fn.call(thisValue,cur,index,arr)); },[])…

【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】

卷积经常用在信号处理中,用于计算信号的延迟累积。假设一个信号发射器每个时刻 t t t产生一个信号 x t x_t xt​,其信息的衰减率为 w k w_k wk​,即在 k − 1 k-1 k−1个时间步长后,信息为原来的 w k w_k wk​倍,时刻 …

PMBOK® 第六版 指导与管理项目工作

目录 读后感—PMBOK第六版 目录 我们都不情愿去做重复的工作,也不期望只得到一个计划,而具体的工作任务却笼统模糊,需要在做的过程中一边摸索。如此一来,对于熟悉的事情会因反复而影响心态,对于不熟悉的事情则由于痛苦…

在SQL中使用explode函数展开数组的详细指南

目录 简介示例1:简单数组展开示例2:展开嵌套数组示例3:与其他函数结合使用处理结构体数组示例:展开包含结构体的数组示例2:展开嵌套结构体数组 总结 简介 在处理SQL中的数组数据时,explode函数非常有用。它…

pytorch十大核心操作

PyTorch的十大核心操作涵盖了张量创建、数据转换、操作变换等多个方面。以下是结合参考文章信息整理出的PyTorch十大核心操作的概述: 张量创建: 从Python列表或NumPy数组创建张量。使用特定值创建张量,如全零、全一、指定范围、均匀分布、正…

AI与区块链的融合:Web3时代下的新应用探索

本文来源香港Web3媒体Techub News AI与区块链:Web3时代的新机遇 在香港这座金融与科技交汇的繁荣都市,AI与区块链的结合已经成为Web3时代的重要议题,为行业发展带来了新的可能性和机遇。越来越多的开发者正在积极探索这一领域的融合&#xff…

FlinkCDC 3.1.0 与 Flink 1.18.0 安装及使用 Mysql To Doris 整库同步,使用 pipepline连接器

cd flink-cdc-3.1.0 bin/flink-cdc.sh 会用到 linux的系统环境变量(vim /etc/profile配置),使用环境变量 FLINK_HOME flinkcdc & flink 安装及使用: 1、flink-cdc-3.1.0/lib/ 内容如下: 2、flink-cdc-3.1.0/mysql…

win10免安装配置MySQL8.4.0

注:此教程基于win10 22H2 版本 1、下载最新版本MySQL压缩包 下载链接:MySQL官网下载地址 点击第二行的 ZIP Archive 后面的Download(当前时间2024-06-19最新版本是8.4.0) 2、解压并添加配置文件 下载完毕后,解压缩…

Ncorr使用过程的问题解答

问题系列 文章目录 问题系列前言一、如何更改单位?情景:DIC Analysis 二、拉格兰日和欧拉绘图的区别直观 三、控制图像中的显示条上下界限问题展示:解决方案: 更新动态 前言 主要用于记录使用过程中出现的相关问题。 一、如何更改…

k8s中 docker和containerd 镜像相互导入导出

containerd镜像导出并导入docker 1 查看containerd 本地镜像列表 crictl images 2 containerd 导出本地镜像到当前目录下(注意: 导出导入需要指定镜像平台类型 --platform) ctr -n k8s.io images export nacos-server-24-06-30-13-02-…

【尚庭公寓SpringBoot + Vue 项目实战】移动端登录管理(二十)

【尚庭公寓SpringBoot Vue 项目实战】移动端登录管理(二十) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端登录管理(二十)1、登录业务2、接口开发2.1、获取短信验证码2.2、登录和注册接口2.3、查询登录用户的个人信息 1、…

SFF1006A-ASEMI无人机专用SFF1006A

编辑:ll SFF1006A-ASEMI无人机专用SFF1006A 型号:SFF1006A 品牌:ASEMI 封装:TO-220F 最大平均正向电流(IF):10A 最大循环峰值反向电压(VRRM):600V 最大…

react实现窗口悬浮框,可拖拽、折叠、滚动

1、效果如下 2、如下两个文件不需要修改 drag.js import React from "react"; import PropTypes from "prop-types";export default class DragM extends React.Component {static propTypes {children: PropTypes.element.isRequired};static defaultP…

神经网络 #数据挖掘 #Python

神经网络是一种受生物神经元系统启发的人工计算模型,用于模仿人脑的学习和决策过程。它由大量互相连接的节点(称为神经元)组成,这些节点处理和传递信息。神经网络通常包含输入层、隐藏层(可有多个)和输出层…

MySQL安装教程,包含root账户密码的修改(绿色版安装)---超简单好用

1、下载(mysql-8.0.27-winx64) 2、下载地址:https://dev.mysql.com/downloads/mysql/ 3、已经将 mysql-8.0.27-winx64 文件放在了文章最后,有需要的自取(解压配置即可用)。 4、配置环境变量: 右键点击我的电脑->属性->高级系统设置->高级->环境变量->系…

PostgreSQL的学习心得和知识总结(一百四十五)|深入理解PostgreSQL数据库之ShowTransactionState的使用及父子事务有限状态机

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…

Windows11平台C++在VS2022中安装和使用Matplot++绘图库的时候出现的问题和解决方法

Matplot 是一个基于 C 的绘图库,专门用于绘制高质量的数据图表。它提供了一个简洁而强大的接口,使得用户能够轻松地创建各种类型的图表,包括线图、散点图、柱状图、饼图等。Matplot 的设计目标是提供与 MATLAB 相似的绘图体验,同时…