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