Challenge

Project 1 - Parsing NASA thermodynamic data

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);
x=strsplit(header,' ');

species_name=(x{1});
z=length(x);

local_low_temp=str2double(x{z-3});
local_high_temp=str2double(x{z-2});
local_mid_temp=str2double(x{z-1});

t1=local_low_temp;
t2=local_mid_temp;
t3=local_high_temp;

%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=str2num(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_1,'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(['H:\FPpictures\',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
cd(['H:\FPpictures\',species_name]);

saveas(1,'specific heat','jpg');
saveas(2,'enthalpy','jpg');
saveas(3,'entropy','jpg');


%molecular_masscalculation

elements=['H','C','O','N','A'];
atomic_weight=[1.0079 12.0107 15.999 14.0067 39.948];
mol_mass=0;
for l=1:length(species_name)
for m=1:length(atomic_weight)
if strcmp(species_name(l),elements(m))
mol_mass=mol_mass+atomic_weight(m);
position=m;
end
end

n=str2double(species_name(l));
if n>1
mol_mass=mol_mass+atomic_weight(position)*(n-1);

end
end
sprintf('Molecular Weight of %s:%f u',species_name,mol_mass)

end
fclose(f1)








the output of the code is 53,there are the few imagres of the

N,OH.CH ect.

this code is helps as to how to creat the file process of the openig of the file and the close the file,and the data in the files

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.