FILE PARSING USING MATLAB
FILE PARSING:
MATLAB PROGRAM:
clear all
close all
clc
%getting the data file
f1=fopen(\'THERMO.dat\',\'r\')
fgetl(f1)
%reading the header information
A=fgetl(f1)
A=strsplit(A,\' \')
global_low_temp=str2num(A{2})
global_mid_temp=str2num(A{3})
global_high_temp=str2num(A{4})
%skipping next three lines
for i=1:3
fgetl(f1)
end
%reading the species
for i=1:53
header=fgetl(f1)
speciesheader=strsplit(header,\' \')
species_name = speciesheader{1}
t1 =str2double(speciesheader{6});
t2 =str2double(speciesheader{7});
t3 =str2double(speciesheader{8});
%getting first line coeffecients (a1-a5)
line_1=fgetl(f1)
a=strfind(line_1,\'E\')
a1=str2double(line_1(1:a(1)+3))
a2=str2double(line_1(a(1)+4:a(2)+3))
a3=str2double(line_1(a(2)+4:a(3)+3))
a4=str2double(line_1(a(3)+4:a(4)+3))
a5=str2double(line_1(a(4)+4:a(5)+3))
%getting second line coeffeceints (a6-a10)
line_2=fgetl(f1)
a_1=strfind(line_2,\'E\')
a6=str2double(line_2(1:a_1(1)+3))
a7=str2double(line_2(a_1(1)+4:a_1(2)+3))
a8=str2double(line_2(a_1(2)+4:a_1(3)+3))
a9=str2double(line_2(a_1(3)+4:a_1(4)+3))
a10=str2double(line_2(a_1(4)+4:a_1(5)+3))
%getting third line coeffeceints (a10-a14)
line_3=fgetl(f1)
a_2=strfind(line_3,\'E\')
a11=str2double(line_3(1:a_2(1)+3))
a12=str2double(line_3(a_2(1)+4:a_1(2)+3))
a13=str2double(line_3(a_2(2)+4:a_1(3)+3))
a14=str2double(line_3(a_2(3)+4:a_1(4)+3))
%creating folder
mkdir([\'C:\\Users\\Student\\Desktop\\fileparsing\\images\\\',species_name]);
T=linspace(t1,t3,1000);
R=8.314;
% to get array of specific heat, enthalpy and entropy
for k=1:length(T)
% to compare the species temperature to assign the coeffeceints
%a1-a7 (high temperature coeffeceints), a8-a14(low temperature coeffecients)
if T(k)>t2
%high temperature coeffeceints.
cp=(a1+a2.*T+a3.*T.^2+a4.*T.^3+a5.*T.^4)*R;
H=(a1+(a2.*T)/2+(a3.*T.^2)/3+(a4.*T.^3)/4+(a5.*T.^4)/5+(a6./T))*R.*T;
S=a1.*log(T)+a2.*T+(a3.*T.^2)/2+(a4.*T.^3)/3+(a5.*T.^4)/4+a7;
else
%low temperature coeffecients
cp=(a8+a9.*T+a10.*T.^2+a11.*T.^3+a12.*T.^4)*R;
H=(a8+(a9.*T)/2+(a10.*T.^2)/3+(a11.*T.^3)/4+(a12.*T.^4)/5+(a13./T))*R.*T;
S=a8.*log(T)+a9.*T+(a10.*T.^2)/2+(a11.*T.^3)/3+(a12.*T.^4)/4+a14;
end
end
%plotting the graphs
figure(1)
plot(T,cp)
grid on
title(species_name)
xlabel(\'Temperature\')
ylabel(\'Specific Heat\')
figure(2)
plot(T,H)
grid on
title(species_name)
xlabel(\'Temperature\')
ylabel(\'Enthalpy\')
figure(3)
plot(T,S)
grid on
title(species_name)
xlabel(\'Temperature\')
ylabel(\'Entropy\')
%changing the directory and saving the file
saving=([\'C:\\Users\\Student\\Desktop\\fileparsing\\images\\\',species_name])
cd(saving)
saveas(1,\'specific heat\',\'jpg\');
saveas(2,\'enthalpy\',\'jpg\');
saveas(3,\'entropy\',\'jpg\');
%cd(\'C:\\Users\\Student\\Desktop\\fileparsing\\programs\')
%molecular_masscalculation
species=species_name;
elements=[\'H\',\'C\',\'O\',\'N\',\'A\'];
atomic_weight=[1.0079 12.0107 15.0999 14.0067 39.948];
mol_mass=0;
for i=1:length(species)
for m=1:length(elements)
if strcmpi(species(i),elements(m))
mol_mass=mol_mass+atomic_weight(m);
position=m;
end
end
end
n=str2double(species(i))
if n>1
mol_mass = mol_mass + elements(position)*(n-1);
end
disp(sprintf(\'Molecular Weight of %s:%f u\',species,mol_mass))
end
fclose(f1)
OUTPUTS:
SCREENSHOT OF DIRECTORY:
PLOTS OF O2:
PLOTS OF N2:
PLOTS OF CO:
EXPLANATION OF CODE:
* First the file \"thermo.dat\" is opened
*And then it should be read properly
*The main aim of the coding is to obtain the 14 coefficients of the species and also to calculate the enthalpy,entropy and specific heat
* And to plot those values with respect to the temperature ranges(local)
*And the plots are to be saved in a seperate directory