Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在CANTERA Python模块中反转程序adiabetic.py,使其输入adiabetic温度并给出输出入口温度?_Python_Cantera - Fatal编程技术网

如何在CANTERA Python模块中反转程序adiabetic.py,使其输入adiabetic温度并给出输出入口温度?

如何在CANTERA Python模块中反转程序adiabetic.py,使其输入adiabetic温度并给出输出入口温度?,python,cantera,Python,Cantera,我正在做一个关于层流预混合火焰在不同复杂程度下的数值分析的项目。我非常需要帮助,因为我是Python和Cantera的新手。我有以下疑问: 我可以修改adiabetic.py模块吗?该模块主要提供混合物的绝热温度,从入口温度到可以提供入口温度,从绝热温度作为输入 节目如下: """ Adiabatic flame temperature and equilibrium composition for a fuel/air mixture as a function of equivalence

我正在做一个关于层流预混合火焰在不同复杂程度下的数值分析的项目。我非常需要帮助,因为我是Python和Cantera的新手。我有以下疑问:

  • 我可以修改adiabetic.py模块吗?该模块主要提供混合物的绝热温度,从入口温度到可以提供入口温度,从绝热温度作为输入
  • 节目如下:

    """
    Adiabatic flame temperature and equilibrium composition for a fuel/air mixture
    as a function of equivalence ratio, including formation of solid carbon.
    """
    
    import cantera as ct
    import numpy as np
    import sys
    import csv
    
    ##############################################################################
    # Edit these parameters to change the initial temperature, the pressure, and
    # the phases in the mixture.
    
    T = 300.0
    P = 101325.0
    
    # phases
    gas = ct.Solution('gri30.xml')
    carbon = ct.Solution('graphite.xml')
    
    # the phases that will be included in the calculation, and their initial moles
    mix_phases = [(gas, 1.0), (carbon, 0.0)]
    
    # gaseous fuel species
    fuel_species = 'CH4'
    
    # equivalence ratio range
    npoints = 50
    phi = np.linspace(0.3, 3.5, npoints)
    
    ##############################################################################
    
    mix = ct.Mixture(mix_phases)
    
    # create some arrays to hold the data
    tad = np.zeros(npoints)
    xeq = np.zeros((mix.n_species,npoints))
    
    for i in range(npoints):
        # set the gas state
        gas.set_equivalence_ratio(phi[i], fuel_species, 'O2:1.0, N2:3.76')
    
        # create a mixture of 1 mole of gas, and 0 moles of solid carbon.
        mix = ct.Mixture(mix_phases)
        mix.T = T
        mix.P = P
    
        # equilibrate the mixture adiabatically at constant P
        mix.equilibrate('HP', solver='gibbs', max_steps=1000)
    
        tad[i] = mix.T
        print('At phi = {0:12.4g}, Tad = {1:12.4g}'.format(phi[i], tad[i]))
        xeq[:,i] = mix.species_moles
    
    # write output CSV file for importing into Excel
    csv_file = 'adiabatic.csv'
    with open(csv_file, 'w') as outfile:
        writer = csv.writer(outfile)
        writer.writerow(['phi','T (K)'] + mix.species_names)
        for i in range(npoints):
            writer.writerow([phi[i], tad[i]] + list(xeq[:,i]))
    print('Output written to {0}'.format(csv_file))
    
    if '--plot' in sys.argv:
        import matplotlib.pyplot as plt
        plt.plot(phi, tad)
        plt.xlabel('Equivalence ratio')
        plt.ylabel('Adiabatic flame temperature [K]')
        plt.show()
    
    摘自:


    请问我具体的问题,因为即使是我也不知道具体要问什么。但我知道我想做什么。

    这是一个有趣的问题

    原则上不应该太难。假设您已给出入口燃料成分、当量比和绝热火焰温度,步骤如下:

  • 将温度设置为绝热火焰温度,并在设置的T和P下平衡燃料空气混合物
  • 计算(并保存)混合物的平均焓
  • 将成分设置回入口的成分,并调整温度,直到混合物的平均焓与步骤2的焓相匹配