This page contains engine performance specifications and scripts for determining engine exhaust composition.
Engine Performance Specifications (XLSX)
Main program to call exhaust_compo and plots results: exhaust_compo_main.m
%main driver for exhaust_compo
   %Gasoline CHmOn;
   m=1.87;n=0;
   Lambda=[0.6:0.1:1.4];
   [xco2,xh2o,xco,xh2,xo2,xn2]=exhaust_compo(m,n,Lambda);
   h=plot(Lambda,[xco2,xh2o,xco,xh2,xo2],'-');
   xlabel('\lambda');
   ylabel('Exhaust Mole fractions');
 legend('CO2','H2O','CO','H2','O2');
Function subroutine to calculate the composition: exhaust_compo.m
function [xco2,xh2o,xco,xh2,xo2,xn2]=exhaust_compo(m,n,Lambda);
   %calculate xhaust mole fractions
   %For lean to stoichiometric combustion, assume complete burning
   %For rich combustion, assume water gas equilibrium constant k=3.7
   %Input: m,n are the hydrogen and oxygen to carbon ratios of the fuel
   %Input: Lambda is the column vector of air equilvalence ratio
   %Ouput are the mole fractions of the exhaust composition
   k=3.7;
   nL=length(Lambda);
   xco2=zeros(nL,1);
   xco=zeros(nL,1);
   xh2o=zeros(nL,1);
   xh2=zeros(nL,1);
   xo2=zeros(nL,1);
   xn2=zeros(nL,1);
   
   for i=1:nL;
   L=Lambda(i);
   if (L<=0);error('Lambda must be positive');end;
   if(L>=1);%=============== Lambda >=1 ==================
   z=1+0.25*m-0.5*n;
   Lm1=L-1;
   co=0;h2=0;co2=1;h2o=0.5*m;
   n2=z*3.773*L;
   o2=Lm1*z;
   else;    %=============== Lambda < 1 ==================
   z=n*(1-L)+2*L*(1+0.25*m);
   B=2+(0.5*m-1)*k-(1-k)*z;
   A=0.5*m*(1-k);
   C=k*(1-z);
   b=(-B+sqrt(B.*B-4*A*C))/(2*A);
   a=b./(k+(1-k)*b);
   co2=a;
   co=1-a;
   h2o=0.5*m*b;
   h2=0.5*m*(1-b);
   n2=(1+0.25*m-0.5*n)*3.773*L;
   o2=0;
   end      %=============================================
   total=co+h2+co2+h2o+n2+o2;
   xco(i)=co./total;
   xh2(i)=h2./total;
   xco2(i)=co2./total;
   xh2o(i)=h2o./total;
   xo2(i)=o2./total;
   xn2(i)=n2./total;
 end

