二氧化碳捕获和电化学转化(Python代码实现)

news2024/9/25 23:18:09

 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

 2.2 算例2

 2.3 算例3

 2.4 算例4

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

二氧化碳(二氧化碳需要大幅减少向大气中的排放,以遏制气候变化的各种不良影响。一种方法是从化石燃料发电厂转向太阳能、风能和水等可再生能源,这还有一个额外的好处,那就是我们减少了对全球化石燃料供应减少的依赖。然而,由于其间歇性,可再生能源可以提供的能源比例将限制在30%,除非有大规模储能的方法可用。或者,二氧化碳可以从发电厂等点源捕获,然后转化为具有经济价值的化学品[1,2,3]。潜在的产物包括甲酸[4••,5],甲醇,CO[4••,6,7•,8,9,10,11,12,13••]和乙烯[4••,14•],它们可以使用均相催化[15,16],多相催化[17••,18],光催化[19],光还原[19]或电化学还原等工艺形成 - 这是本综述的主题。除了减少温室气体排放外,一氧化碳2转化过程将减少我们对化学合成化石燃料的依赖。然而,在这一点上,尚不清楚这些策略中哪些在技术上可行,并且具有经济和实践意义[1]。电化学二氧化碳减少的好处是,它可能是一种利用间歇性可再生能源的多余能量代替大规模储能的方法。

📚2 运行结果

2.1 算例1

 

 2.2 算例2

 

 

 

 

 

 

 

 2.3 算例3

 2.4 算例4

 

 

部分代码:

#Assuming the amine solution with salts has the same conductivity to 1 M KOH aq solution.
plt.rcParams['font.family']='Arial' #set font to be Arial
plt.rcParams['font.size']=8 #set font size to be 8
fig=plt.gcf()
fig.set_size_inches((2.33*4/3, 2.33)) #set figure size
ax= fig.add_subplot(111)
current=np.arange(-4, 305, 5) #define current densities from 1 to 300 mA cm-2
Eoer, Ememb, Eanolyte, Ecatholyte=estEwithsalts(current) #calculate the potential losses

plt.plot(current, Eoer, 'k', lw=1) #plot the anode potential loss
plt.plot(current, Ecatholyte+Eoer, 'k', lw=1) #plot ohmic loss from capture media
plt.plot(current, Eanolyte+Ecatholyte+Eoer, 'k', lw=1) #plot ohmic loss from anolyte
plt.plot(current, Ecatholyte+Eanolyte+Ememb+Eoer, 'k', lw=1) #plot ohmic loss from membrane

#Fill different colors to highlight the potential contributions
plt.fill_between(current, Eoer, 0, facecolor='darkcyan')
plt.fill_between(current, Eoer+Ecatholyte, Eoer, facecolor='indianred')
plt.fill_between(current, Eoer+Ecatholyte, Eoer+Ecatholyte, facecolor='r')
plt.fill_between(current, Eanolyte+Ecatholyte+Eoer, Eoer+Ecatholyte, facecolor='lightsteelblue')
plt.fill_between(current, Ecatholyte+Eanolyte+Ememb+Eoer, Eanolyte+Ecatholyte+Eoer, facecolor='firebrick')

plt.xlim(0,300) #set x-axis limits
plt.ylim(0,5) #set y-axis limits

plt.xlabel('Current densities (mA cm$^{-2}$)') #set xlabel
plt.ylabel('Potential (V)') #set ylabel
plt.show()
#fig.savefig('Figure/potentials breakup with inorganic salts.eps', bbox_inches='tight', pad_inches=0, transparent=True)


f=pd.read_excel('literature data.xlsx', sheet_name='Combine') #Read literature data of integrated electrolyzer in the excel spreadsheet
j_combine=f['Current densities'] #Read all the reported current densities of integrated electrolyzer, mA cm-2
fe_combine=f['FE(%) of CO']/100 #Read all the reported Faradaic efficiencies of the integrated electrolyzer
Ec_combine=f['Cathode Potential (V)'] #Read reported cathode potential, V
Eother_combine=estEother(j_combine) #Calculate the total potential except cathode potential from current densities
E_combine=-Ec_combine+Eother_combine #Calculate the cell potential
Q_combine=np.dot(E_combine, 2*96485)/(fe_combine*1000) #Calculate the energy cost of the integrated electrolyzers

ff=pd.read_excel('literature data.xlsx', sheet_name='Separate') #Read literature data of gas-fed electrolyzer in the excel spreadsheet
z = 2 #Number of charge transfered to produce one molecule of product
F = 96485 # A mol-1 Faraday constant
j_s=ff['Current densities'] #Read all the reported current densities of gas-fed electrolyzer, mA cm-2
E_s=ff['Calculated Cell Voltage (V) '] #Read all the reported cell potentials of the gas-fed electrolyzers
fe_s=ff['FE(%) of CO']/100 #Read all the reported Faradaic efficiencies of the gas-fed electrolyzer
Q_s=np.dot(E_s, z*F)/(fe_s*1000) #Calculate the energy cost of the gas-fed electrolyzers

FE=np.arange(0.01,1.01,0.01) # Set a range of CO FE
E=np.arange(1.23+0.104,8,(8-1.23-0.104)/100) #Set a range of cell potentials
FEFE, EE = np.meshgrid(FE, E) #build a mesh grid of CO FE and cell potentials
Q=EE*z*F/FEFE/1000 #Calculate the energy cost of the electrolyzer using the mesh grid, kJ/molCO2 converted.

plt.rcParams['font.family']='Arial' #Set font to be Arial
plt.rcParams['font.size']=8 #Set fontsize to be 8
fig=plt.gcf()
fig.set_size_inches((2.33*4/3*1.5, 2.33*1.5)) #Set Figure size
ax= fig.add_subplot(111)

plt.plot(FE*100, Q.T[:,0],'k', lw=1) #Plot the lower limit
plt.plot(FE*100, Q.T[:,-1],'k',lw=1) #Plot the upper limit
#Highlight the region the electrolyzer will fall in.
plt.fill_between(FE*100, Q.T[:, 0], Q.T[:,-1], facecolor='lightsteelblue')
#Plot the energy performance of the integrated electrolyzers
plt.scatter(fe_combine[:-1]*100, Q_combine[:-1],
         s=j_combine[:-1].values, alpha=0.5,  facecolor='white', edgecolors='darkred')
#Plot the energy performance of the gas-fed electrolyzers
plt.scatter(fe_s*100, Q_s, s=j_s.values,  facecolor='w', alpha=0.5, edgecolors='darkcyan')

plt.xlim(0,100) #Set xaxis limits

plt.xlabel('Faradaic efficiency (%)') #Set xlabel
plt.ylabel('Energy required per CO$_2$ electrochemically converted \n (kJ mol$^{-1}$)') #Set ylabel

plt.yscale('log') #Set y-axis in log scale.
plt.show()
#fig.savefig('Figure/co2 electrolysis comparison.png', bbox_inches='tight', dpi=1200, pad_inches=0, transparent=True) #Save the figure.

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]葛建邦. LiCl基熔盐体系中CO_2的捕获和电化学研究[D].北京科技大学,2017.

[2]Energy comparison of sequential and integrated CO2 capture and electrochemical conversion The contributing authors include Mengran Li, Erdem Irtem, Hugo Pieter Iglesias van Montfort, Maryam Abdinejad, Thomas Burdyny*

🌈4 Matlab代码实现

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

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

相关文章

12---实现注册、异常处理,统一封装结果集

1、写统一返回结果包装类 在实际开发中,为了降低开发人员之间的沟通成本,一般返回结果会定义成一个统一格式,具体的格式根据实际开发业务不同有所区别,但至少包括三要素: code状态码:由后端统一定义各种返…

3)Django模板

目录 Django模板 Django 模板标签 变量 ​编辑 列表 字典 过滤器 default length filesizeformat date truncatechars safe if/else 标签 for 标签 {% empty %} ifequal/ifnotequal 标签 注释标签 include 标签 csrf_token 配置静态文件 模板继承 父模板…

Elasticsearch搜索引擎(一)——基础使用

Elasticsearch搜索引擎 关键词是中文的建议使用,英文和数字不要,模糊就行 如果普通数据库查询,无法解决如下问题 如果表记录上千万上亿了这个性能问题,另外一个如果有一个本文字段要在里面模糊配置,这个就会出现严重…

【408篇】C语言笔记-第二十章(数据的机器级表示)

文章目录第一节:补码讲解及内存实战演练1. 补码讲解2. 反码第二节:整型不同类型解析-溢出解析1. 整型不同类型解析2. 溢出解析第三节:IEEE754标准解析第四节:浮点型精度丢失第一节:补码讲解及内存实战演练 1. 补码讲解…

使用华为云服务器跟做尚硅谷电商数仓遇到的问题汇总(持续更新中.......)

文章目录使用xsync时提示xsync:command not found执行lg.sh时显示lg.sh:command not found云服务器网页无法访问hadoop使用xsync时提示xsync:command not found 1.使用xsync时提示xsync:command not found 首先查看是否安装rsync:(反正我的里面没有。。。&#xff…

实验十、差分放大电路参数对静态和动态的影响

一、题目 利用Multism研究图1所示差分放大电路在下列情况下对电路静态和动态的影响 (1)两个 RcR_cRc​ 阻值相差 5%; (2)RwR_wRw​ 不在中点; (3)两个差分管的电流放大倍数不相等。…

sql行转列

我们以MySQL数据库为例,来说明行转列的实现方式。 首先,假设我们有一张分数表(tb_score),表中的数据如下图: 然后,我们再来看一下转换之后需要得到的结果,如下图: 可以看…

SpringBoot(一)【学习笔记】

1.SpringBoot是什么? Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。 2.SpringBoot的特点 为基于Spring的开发提供更快的入门体验 开箱即用&#xf…

Qt QAbstractItemModel类详解

文章目录一.概述二.QAbstractItemModel类1.类型2.信号3.函数一.概述 QAbstractItemModel 类定义了项目模型必须使用的标准接口,以便能够与模型/视图Model/View框架中的其他组件进行互操作。 正确用法是将其子类化以创建新模型。此类用作 QML 中的项目视图元素或 Qt…

自制Alfred/Wox插件推荐

最近上手Alfred的使用,日常工作中存在很多需要高频执行的连续性动作,将这一系列动作封装成Workflow,通过命令触发,对提升效率确有很大帮助。 自己封装了一些简单的Workflow,这里分享出来。有Alfred/Wox框架的支撑&…

JAVA零基础小白学习免费教程day14-SetHashMap

day14_JAVAOOP 课程目标 1. 【理解】Set集合的特点 2. 【理解】Set集合不重复的原理 3. 【掌握】HaseSet集合的基本使用 4. 【理解】LinkedHashSet的特点 5. 【理解】Map集合的特点 6. 【掌握】HashMap的使用 7. 【理解】LinkedHashMap的特点 8. 【掌握】Map集合的案例 9. 【…

doxygen教程之注释风格

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> doxygen是一个开源的C接口文档生成工具。要使用doxygen生成接口文档,就必须遵循它的注释规范,下面对它的注释规范进行简单介绍。 …

C语言基础--初识指针

文章目录一、初识指针二、指针和指针类型指针类型的意义1)指针的解引用①问题抛出②探讨③总结2)指针整数3)总结4)举例三、野指针(1)概念1) 指针未初始化2)指针越界访问3)指针指向的空间释放(2&…

python类中常见内置方法

目录 一.几种常用的类内置方法 魔术方法 _ _str_ _字符串方法 _ _lt_ _小于符号比较方法 _ _le_ _小于等于比较符号方法 _ _eq_ _等于比较符号 一.几种常用的类内置方法 魔术方法 上文提到的_ _init_ _构造方法,是Python类内置的方法之一。 这些内置的类方法…

人工智能-聚类算法

1、聚类算法简介 典型的无监督算法,主要用于将相似的样本自动归到一个类别中。 根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计算方法,会得到不同的聚类结果。常用的相似度计算方法是欧式距离法 聚类算法与…

2022年总结 2023展望

前言 今天是2022年最后一天,姑且简单总结这一年。这一年从头到尾发生了很多翻天覆地的事件。回看去年2021年的年度总结还是有些遗憾,完成度4/7。 回顾 2021 年立下的 flag: 写文章30篇 没有完成,技术和知识是在有断断续续学习&a…

【Linux】多线程

目录 一、什么是线程 1、线程的基本认识 2、Linux线程与接口关系的认识 3、创建线程 4、线程等待 5、线程终止 6、线程分离 二、线程的优点 三、线程的缺点 四、线程与进程的关系 1、线程安全与重入 2、不可重入情况 3、可重入情况 4、可重入与线程安全的联系 五…

算法合集 —— 数组篇

算法 —— 数组 目录算法 —— 数组1.二分查找1.1二分查找习题集2.双指针法2.1双指针法习题集3.滑动窗口3.1滑动窗口习题集4.二维数组4.1二维数组习题集1.二分查找 二分查找适用于,在有序排列的数组中查找某一指定元素。 其原理为范围搜索:如果这个元素…

opencv-python常用函数解析及参数介绍(四)——图像阈值

图像阈值处理前言1.改变图像颜色灰度图HSV图2.图像阈值图像中数值对应的效果函数与参数阈值处理效果前言 在很多任务当中,首要的任务就是对图像进行阈值处理,为后续其他操作做准备,本文将介绍5种阈值处理的方法以及参数设置,同时…

API 概述

API 概述目录概述需求:设计思路实现思路分析1.High-Level API :用于事务边界定义、控制及事务状态查询。2.2. High-Level API5.2.2 GlobalTransactionContextTransactionalTemplateLow-Level API参考资料和推荐阅读Survive by day and develop by night.…