Tutorial#

With this short tutorial you will familiarize with the basic functionalities of the Combustion Toolbox.

Getting Started#

To begin, start MATLAB and navigate to the folder where you have downloaded the Combustion Toolbox. To include files in PATH, run this command in the command window:

INSTALL()

First, using Combustion Toolbox, you have to initialize the tool (load databases, set default variables, etc.). To do that, type the following at the prompt:

self = App('Soot formation')

Here, Soot formation represents a predefined list of species to be considered as possible products (see the routine list_species.m).

If files contained in Combustion Toolbox are correctly defined, you should see something like this:

self = 

  struct with fields:

            E: [1×1 struct]
            S: [1×1 struct]
            C: [1×1 struct]
         Misc: [1×1 struct]
           PD: [1×1 struct]
           PS: [1×1 struct]
           TN: [1×1 struct]
    DB_master: [1×1 struct]
           DB: [1×1 struct]

Setting the state#

Indicate the temperature [K] and pressure [bar] of the initial mixture, type:

self = set_prop(self, 'TR', 300, 'pR', 1 * 1.01325);

Indicate species and number of moles of each species in the initial mixture:

Individual study#

For example, for a stochiometric CH4-ideal_air mixture:

self.PD.S_Fuel     = {'CH4'};
self.PD.N_Fuel     = 1;
self.PD.S_Oxidizer = {'N2', 'O2'};
self.PD.N_Oxidizer = [7.52, 2];

This is the same as specifying a unit value for the equivalence ratio:

self.PD.S_Fuel     = {'CH4'};
self.PD.S_Oxidizer = {'N2', 'O2'};
self.PD.ratio_oxidizers_O2 = [79, 21]/21;
self = set_prop(self, 'phi', 1);

The last two lines of code establish the proportion of the oxidizers species over O\(_2\) and the equivalence ratio, respectively. The number of moles are calculated considering that the number of moles of fuel is one by default.

Parametric study (several cases)#

The Combustion Toolbox also allows the computation of a range of values of different properties. For example, if we want to compute a range of values of the equivalence ratio, e.g., \(\phi \in [0.5, 5]\) with a 0.01 step size, do this:

self.PD.S_Fuel     = {'CH4'};
self.PD.S_Oxidizer = {'N2', 'O2'};
self.PD.ratio_oxidizers_O2 = [79, 21]/21;
self = set_prop(self, 'phi', 0.5:0.01:5);

Chemical Equilibrium#

Depending on the problem you want to solve, you may need to configure additional inputs. For example, to compute the equilibrium composition at a defined temperature and pressure (TP), we have to set these values as

self = set_prop(self, 'pP', self.PD.pR.value, 'TP', 3000);

and to solve the aforementioned problem, run

self = solve_problem(self, 'TP');

The results are contained in self.PS. By default, this routine print the results through the command window (default: self.Misc.FLAG_RESULTS=true) which gives for the stoichiometric case (phi=1):

COMPUTING  MOLES FROM EQUIVALENCE RATIO (PHI).
***********************************************************
-----------------------------------------------------------
Problem type: TP  | phi = 1.0000
-----------------------------------------------------------
               |    REACTANTS    |      PRODUCTS
T [K]          |       300.0000  |      3000.0000
p [bar]        |         1.0132  |         1.0132
r [kg/m3]      |         1.1225  |         0.1029
h [kJ/kg]      |      -254.5296  |      2574.2795
e [kJ/kg]      |      -344.7953  |      1589.5140
g [kJ/kg]      |     -2428.4002  |    -30246.9221
s [kJ/(kg-K)]  |         7.2462  |        10.9404
W [g/mol]      |        27.6333  |        25.3293
(dlV/dlp)T [-] |                 |        -1.0285
(dlV/dlT)p [-] |                 |         1.5830
cp [kJ/(kg-K)] |         1.0786  |         5.5609
gamma [-]      |         1.3869  |         1.1680
gamma_s [-]    |         1.3869  |         1.1357
sound vel [m/s]|       353.8198  |      1057.5349
-----------------------------------------------------------
REACTANTS               Xi [-]
N2                   7.1493e-01
O2                   1.9005e-01
CH4                  9.5023e-02
MINORS[+22]          0.0000e+00

TOTAL                1.0000e+00
-----------------------------------------------------------
PRODUCTS                Xi [-]
N2                   6.4771e-01
H2O                  1.1162e-01
CO                   5.8485e-02
OH                   3.5936e-02
H2                   3.0822e-02
CO2                  2.8615e-02
H                    2.7583e-02
O2                   2.5914e-02
O                    1.8096e-02
NO                   1.5206e-02
N                    1.1123e-05
NH                   9.5805e-07
HCO                  1.2464e-07
NH2                  1.1860e-07
NH3                  3.0265e-08
HCN                  4.4103e-09
CN                   4.0110e-10
CH                   5.7109e-13
CH3                  1.5595e-13
CH4                  1.1358e-14
MINORS[+5]           0.0000e+00

TOTAL                1.0000e+00
-----------------------------------------------------------
***********************************************************

Postprocessed results (predefined plots for several cases)#

There are some predefined charts based on the selected problem, in case you have calculated multiple cases. Just calling the routine

post_results(self);

will reproduce Figure 1 which represents the variation of the molar fraction with the equivalence ratio for lean to rich CH4-ideal_air mixtures at 3000 [K] and 1.01325 [bar].

Figure 1: Example TP: variation of molar fraction for lean to rich CH4-ideal_air mixtures at 3000 [K] and 1.01325 [bar], a set of 26 species considered and a total of 451 case studies. The computational time was of 2.39 seconds using a Intel(R) Core(TM) i7-11800H CPU @ 2.30GHz.

Congratulations!#

Congratulations you have finished the Combustion Toolbox MATLAB tutorial! You should now be ready to begin using Combustion Toolbox on your own (see the examples folder).