首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生物质热解动力学在Cantera反应器中的应用

生物质热解动力学在Cantera反应器中的应用
EN

Stack Overflow用户
提问于 2018-12-05 19:56:14
回答 1查看 688关注 0票数 1

我试图用Cantera和一个生物质热解动力学方案来观察在间歇反应器中浓度随时间的变化。下面是对动力学的概述,并参考了论文。请注意,物种浓度是以质量为基础的,如kg/m^3

  • 木材=典型的松木生物量
  • 气体=含有轻不凝气体的集总物种
  • 焦油=可凝结热解蒸气的集中种类
  • char =完全热解的木材,基本上是碳

参考资料:科伦巴·迪·布拉西。多孔固体燃料热解过程中对流和二次反应效应分析。燃烧科学和技术,第90卷,第315-340页,1993年。

假设初始木材浓度为1.0,我可以用Python求解反应速率方程系统,并按时间绘制转换图,如下所示。

不幸的是,我试图使用的动力学方案与Cantera是错误的不相容的相类型。我的blasi.cti文件包含以下内容:

代码语言:javascript
复制
#-------------------------------------------------------------------------------
#  Phases data
#-------------------------------------------------------------------------------


stoichiometric_solid(
    name = "wood",
    species = "wood",
    density = (700, "kg/m3")
)

ideal_gas(
    name = "gas",
    species = "gas"
)

ideal_gas(
    name = "tar",
    species = "tar"
)

stoichiometric_solid(
    name = "char",
    species = "char",
    density = (110, "kg/m3")
)

#-------------------------------------------------------------------------------
#  Species data
#-------------------------------------------------------------------------------

species(
    name="wood"
)

species(
    name = "gas"
)

species(
    name = "tar"
)

species(
    name = "char"
)

#-------------------------------------------------------------------------------
#  Reaction data
#-------------------------------------------------------------------------------

# Reaction 1
reaction("wood => gas", [1.4345e4, 0, 88.6])

# Reaction 2
reaction("wood => tar", [4.125e6, 0, 112.7])

# Reaction 3
reaction("wood => char", [7.3766e5, 0, 106.5])

# Reaction 4
reaction("tar => gas", [4.28e6, 0, 108])

# Reaction 5
reaction("tar => char", [1.0e6, 0, 108])

使用上述blasi_reactor.py文件的Python是:

代码语言:javascript
复制
import cantera as ct
import matplotlib.pyplot as plt

tk = 773.15     # temperature [K]
p = 101325.0    # pressure [Pa]

gas = ct.Solution('blasi.cti')
gas.TP = tk, p
r = ct.IdealGasConstPressureReactor(gas)

sim = ct.ReactorNet([r])
time = 0.0
states = ct.SolutionArray(gas, extra=['t'])

for n in range(50):
    time += 1.0
    sim.advance(time)
    states.append(r.thermo.state, t=time)

plt.figure()
plt.plot(states.t, states.X[:, gas.species_index('wood')])
plt.plot(states.t, states.X[:, gas.species_index('gas')])
plt.plot(states.t, states.X[:, gas.species_index('tar')])
plt.plot(states.t, states.X[:, gas.species_index('char')])
plt.xlabel('Time [s]')
plt.ylabel('Concentration [kg/m^3]')
plt.show()

Cantera的错误消息是:

代码语言:javascript
复制
Traceback (most recent call last):
  File "blasi_cantera.py", line 9, in <module>
    r = ct.IdealGasConstPressureReactor(gas)
  File "interfaces/cython/cantera/reactor.pyx", line 191, in cantera._cantera.Reactor.__init__
  File "interfaces/cython/cantera/reactor.pyx", line 28, in cantera._cantera.ReactorBase.__init__
  File "interfaces/cython/cantera/reactor.pyx", line 199, in cantera._cantera.Reactor.insert
  File "interfaces/cython/cantera/reactor.pyx", line 50, in cantera._cantera.ReactorBase.insert
cantera._cantera.CanteraError:
***********************************************************************
CanteraError thrown by IdealGasReactor::setThermoMgr:
Incompatible phase type provided
***********************************************************************

我如何定义集中的物种,如木材,气体,焦油和焦炭与Cantera?在Cantera甚至可以使用这样的动力学方案吗?我通常使用Python创建自己的热解模型,但我想使用Cantera中的反应堆特性。这也允许我比较Cantera和我的个人Python模型之间的结果。

注意-我看了Cantera文档网站上的例子,但是所有的东西都是为定义明确的气相物种,在那里你知道元素组成和NASA系数。

EN

回答 1

Stack Overflow用户

发布于 2018-12-17 20:43:37

只要热力学数据(具有特定热系数的数据是存在和正确的),就可以使用你自己的,甚至是合成的元素和物种,然而,为这样的散装材料找到正确的系数(检查这些:https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19940013151.pdf)。

此外,对于动力学计算和反应器链,它更容易与ct.IdealGasReactor工作,它也应该支持多相。

此外,你至少需要上游水库之间的反应堆和syncState他们在每次迭代。

附注:您可以查看此出版物,由Cantera:formation完成

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53639820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档