You are on page 1of 7

PROPULSION LABORATORY-AE39004

Experiment- 6
Spray Combustion Test

Harsh Raj
Roll Number: 20AE10014
Aim/ Objectives of the Experiment:
● To understand the principles of spray combustion using a swirl-stabilized combustor and analyze
combating properties of Jet A1.
● To understand variation in flame properties on the variation of parameters like air-fuel mass flow rate.
● To determine flame lengths and the ratio of blue flame to yellow flame and plot its variation with
equivalence ratio.

Experimental Setup and Procedure:


Experimental setup is shown in Fig:1

Fig 1: Experimental Setup

Fig 2: Flame inside the spray combustor


● The combustor features an air and fuel delivery system comprising a center feed assembly, including a
swirler, atomizer, fuel pipe, atomizing air pipe, and an adapter for connecting the atomizer with the fuel
and atomizing air delivery tubes.

● The combustion chamber, having a square cross-section, is equipped with two quartz windows for
optical access, and the internal geometry of the chamber is 11.70” x 4.5” x 4.5”.

● The axial swirler, fed with the main air supply, consists of eight flat vanes fixed at a 45-degree angle,
which creates a stable low-pressure central recirculation zone, anchors the flame close to the injection
plane, and promotes fuel and air mixing.

● The plain jet air blast atomizer (Delavan: SN type-30610-3) is located co-centrically inside the swirler.

● The main air and atomizing air flow rates are controlled and metered using ALICAT Scientific mass
flow controllers (MCR-500 SLPM-TFT and MCR-50SLPM-TFT), while the fuel flow rate is
controlled by a Coriolis mass flow controller.

Observation Table and Plots:


The equivalence ratio is defined as the ratio of the actual fuel/air ratio (Fuel/Air) to the stoichiometric fuel/air
ratio (Furl/Air) stoichiometric.

Density of Air = 1.225 kg/m^3


Density of Fuel = 850 kg/m^3
Stochiometric fuel-to-air ratio = 0.0681

Table 1: Blue to yellow flame ratio calculation


Yellow
Atomizing Atomizing Blue flame flame
Air Flow Air Flow Main Air length length Blue to
Fuel Flow Rate Rate Flow Rate Main air Flow (pixels) (pixels) Yellow
Condition Rate (g/hr) (SLPM) (kg/sec) (SLPM) Rate (kg/sec) MATLAB MATLAB Flame ratio

1 350 15 0.00030625 115 0.002347916 310..3994 448.207 0.72202

2 400 15 0.00030625 115 0.00234791 233.7863 593.2192 0.39410

3 550 15 0.00030625 115 0.00234791 189.1055 810.338 0.23336


*Ratio has been derived using video processing done in MATLAB [1], code is given at the end of the report
Table 2: Equivalence Ratio and Flame Length Calculation

Condition Equivalence Ratio Flame Length (m)

1 0.48399 0.123013088

2 0.59163 0.140590935

3 0.80675 0.169905395

Table 2: Emission Analysis

Condition Equivalence Ratio CO (ppm) NOX (ppm) NO (ppm)

1 0.48399 26 44 42

2 0.59163 43 44 43

3 0.80675 125 23 22

Fig 3: Plot for Equivalence Ration v/s a) Flame Length b)B/Y Ratio
Results and Discussions:
The results of the experiment showed that the blue flame to yellow flame ratio decreased with increasing
equivalence ratio.
Furthermore, an emission analysis was carried out to evaluate the impact of the equivalence ratio on combustion
emissions. The emissions of carbon monoxide (CO) and nitrogen oxides (NOx) were measured for different
equivalence ratios. The results showed that the emissions of CO and NOx increased with increasing equivalence
ratio, while the emissions of NO decreased.

References

1. MATLAB CODE:

Code processes the video frame by frame segmenting blue flame (using blue1 function) and yellow flame (using
yellow1 function). It calculates flame length by fitting the best ellipse on the flame contour and measuring its
major axis. These functions have been created using the matlab’s color thresholder app, where we can can choose
a range of pixel values present in the image that we want to process. For blue1 blue pixels were chosen, same for
yellow1 also.

vid = VideoReader("flame.MP4");
c= [];
while vid.hasFrame
frame = readFrame(vid);
bw = blue1(frame); %yellow1(frame)-- for yellow flame;
bw = imcrop(bw,[53.5 182.5 1438 350]);
s = regionprops(bw, 'MajorAxisLength', 'MinorAxisLength', 'Orientation',
'Centroid');
a = max(vertcat(s.MajorAxisLength));
c = [c,a];
imshow(bw)
end
function BW = blue1(I)
% Create mask based on selected regions of interest on point cloud projection
I = double(I);
[m,n,~] = size(I);
polyBW = false([m,n]);
I = reshape(I,[m*n 3]);
% Project 3D data into 2D projected view from current camera view point within
app
J = rotateColorSpace(I);
% Apply polygons drawn on point cloud in app
polyBW = applyPolygons(J,polyBW);
% Combine both masks
BW = polyBW;
end
function J = rotateColorSpace(I)
% Translate the data to the mean of the current image within app
shiftVec = [74.520117 70.473673 73.401558];
I = I - shiftVec;
I = [I ones(size(I,1),1)]';
% Apply transformation matrix
tMat = [0.002579 0.000990 0.000000 -0.648120;
-0.000490 0.001220 0.002410 -0.574377;
-0.000886 0.002208 -0.001332 8.655755;
0.000000 0.000000 0.000000 1.000000];
J = (tMat*I)';
end
function polyBW = applyPolygons(J,polyBW)
% Define each manually generated ROI
hPoints(1).data = [-0.681732 -0.189629;
-0.369739 0.064640;
-0.038784 0.061294;
-0.000000 -0.008964;
-0.152549 -0.095951;
-0.281829 -0.149481;
-0.402489 -0.213048;
-0.792051 -0.467316];
% Iteratively apply each ROI
for ii = 1:length(hPoints)
if size(hPoints(ii).data,1) > 2
in =
inpolygon(J(:,1),J(:,2),hPoints(ii).data(:,1),hPoints(ii).data(:,2));
in = reshape(in,size(polyBW));
polyBW = polyBW | in;
end
end
end
function BW = yellow1(I)
% Create mask based on selected regions of interest on point cloud projection
I = double(I);
[m,n,~] = size(I);
polyBW = false([m,n]);
I = reshape(I,[m*n 3]);
% Project 3D data into 2D projected view from current camera view point within
app
J = rotateColorSpace(I);
% Apply polygons drawn on point cloud in app
polyBW = applyPolygons(J,polyBW);
% Combine both masks
BW = polyBW;
end
function J = rotateColorSpace(I)
% Translate the data to the mean of the current image within app
shiftVec = [67.262694 61.238801 54.558609];
I = I - shiftVec;
I = [I ones(size(I,1),1)]';
% Apply transformation matrix
tMat = [-0.002356 -0.001203 0.000000 0.675418;
-0.000490 0.000902 0.002292 -0.542018;
0.001140 -0.002097 0.000985 8.657475;
0.000000 0.000000 0.000000 1.000000];
J = (tMat*I)';
end
function polyBW = applyPolygons(J,polyBW)
% Define each manually generated ROI
hPoints(1).data = [0.051815 -0.002337;
0.189990 -0.029624;
0.293621 -0.178188;
0.511791 -0.481379;
0.733597 -0.708773;
0.675418 -0.705741;
0.251805 -0.705741;
0.017272 -0.508667;
0.000000 -0.178188;
0.000000 -0.011432];
% Iteratively apply each ROI
for ii = 1:length(hPoints) selected regions of interest on poi

if size(hPoints(ii).data,1) > 2
in =
inpolygon(J(:,1),J(:,2),hPoints(ii).data(:,1),hPoints(ii).data(:,2));
in = reshape(in,size(polyBW));
polyBW = polyBW | in;
end
end
End

You might also like