以OH自由基浓度的最大增长速率对应的时间作为点火延迟时间的判据-python代码

概要

在燃烧反应动力学中,点火延迟时间是重要的验证参数,本文将以OH自由基浓度的最大增长速率对应的时间作为点火延迟时间的判据,编写python代码。

整体流程

首先要确保已安装cantera库以及numpy库

  • 导入Cantera热化学计算库
  • 导入数值计算库NumPy
import cantera as ct
import numpy as np
  1. 定义点火延迟函数,填写默认参数
def ignition_delay(phi=“填入当量比”, P=“填入压强”, T=“填入温度”):
    # 从指定路径加载化学反应机理文件
    gas = ct.Solution("yaml机理文件格式的路径")
    X = {
      此处填入所需组分(燃料混合物、氧化剂。注:有稀释气体也可加入)的摩尔分数,自行定义或看文献中是如何定义组分的摩尔分数
      }
    # 设置气体的温度、压力和组分
    gas.TPX = T, P,X
  1. 建立反应器
    reactor = ct.IdealGasReactor(contents=gas, name='Batch Reactor')
    reactor_network = ct.ReactorNet([reactor])
  1. 初始化数组
  • 预分配存储空间:
    a. 时间序列
    b. OH自由基浓度
    c. OH浓度随时间的变化率
    times = np.zeros(10000)
    OH_concentrations = np.zeros(10000)
    dOH_dt = np.zeros(10000)
  1. 逐步推进反应时间
    记录每个时间步的OH浓度
    通过差分计算OH浓度变化率
    i = 0
    prev_OH_concentration = gas['OH'].X
    while reactor_network.time < 1:
        reactor_network.step()
        times[i] = reactor_network.time
        current_OH_concentration = gas['OH'].X
        if i > 0:
            dOH_dt[i] = (current_OH_concentration - prev_OH_concentration) / (times[i] - times[i - 1])
        OH_concentrations[i] = current_OH_concentration
        prev_OH_concentration = current_OH_concentration
        i += 1
  1. 确定点火延迟
  • 找到OH浓度变化率最大的时间点
  • 将该时间点作为点火延迟时间
    max_index = np.argmax(dOH_dt)
    ignition_delay_time = times[max_index]
    return ignition_delay_time
  1. 调用函数
    这里将结果转化为了毫秒ms
delay_time = ignition_delay()
print(f'点火延迟时间: {delay_time*1000} ms')

小结

整体的代码编写过程中,值得注意的是:当定义点火延迟函数时,当量比、温度以及压强是定值,只能分析固定的一点,因此此处有改写的空间,可通过循环将所有温度点加入其中进行输出;关于反应器的设置,cantera库中有很多,如下图:
在这里插入图片描述
如详细了解,链接https://cantera.org/stable/python/zerodim.html#reactor
由于小编对python代码还未深入了解,学识尚浅,读者若对此文章里代码有更好的建议,还请在评论区留言!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值