Project 1 - Parsing NASA thermodynamic data
%Nasa thermodynamic
f1= fopen('THERMO','r');
%reading header information
fgetl(f1);
%global temperature
t_line= fgetl(f1);
a=strsplit(t_line,' ');
global_low_temp=str2double(a{2});
global_mid_temp=str2double(a{3});
global_high_temp=str2double(a{4});
%neglecting the 3 lines
fgetl(f1);
fgetl(f1);
fgetl(f1);
%reading species block
%line 1
for i =1:53
t_line2=fgetl(f1);
s=strsplit(t_line2,' ');
species_name=s{1};
A=strfind(t_line2,'G');
temp_values=t_line2(A+4:length(t_line2));
B=strsplit(temp_values,' ');
local_low_temp=str2double(B{1});
local_mid_temp=str2double(B{2});
local_high_temp=str2double(B{3});
t_line= fgetl(f1);
b=findstr(t_line,'E');
%1st coefficient
b1=t_line(1:b(1)+3);
b1=str2num(b1);
%2st coefficient
b2=t_line(b(1)+4:b(2)+3);
b2=str2num(b2);
%3rd coefficent
b3= t_line(b(2)+4:b(3)+3);
b3=str2num(b3);
%4st coefficient
b4=t_line(b(3)+4:b(4)+3);
b4=str2num(b4);
%5st coefficient
b5=t_line(b(4)+4:b(5)+3);
b5=str2num(b5);
%line2
line2=fgetl(f1);
%6th coefficent
b6=line2(1:b(1)+3);
b6=str2num(b6);
%7th coefficent
b7=line2(b(1)+4:b(2)+3);
b7=str2num(b7);
%8th coefficent
b8=line2(b(2)+4:b(3)+3);
b8=str2num(b8);
%9th coefficent
b9=line2(b(3)+4:b(4)+3);
b9=str2num(b9);
%10th coefficent
b10=line2(b(4)+4:b(5)+3);
b10=str2num(b10);
%line3
line3=fgetl(f1);
%11th coefficent
b11=line3(1:b(1)+3);
b11=str2num(b11);
%12th coefficent
b12=line3(b(1)+4:b(2)+3);
b12=str2num(b12);
%13th coefficent
b13=line3(b(2)+4:b(3)+3);
b13=str2num(b13);
%14th coefficent
b14=line3(b(3)+4:b(4)+3);
b14=str2num(b14);
%universal constant
r= 8.314;
t=linspace(local_low_temp,local_high_temp,100);
%to calculate
c_p=specfic_heat(b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,local_low_temp,local_mid_temp,local_high_temp,t,r);
H=enthalpy(b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,local_low_temp,local_mid_temp,local_high_temp,t,r);
S=entropy(b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,local_low_temp,local_mid_temp,local_high_temp,t,r);
%creating a folder
mkdir(['c:',species_name])
cd(species_name)
%ploting
%tvs c_P
figure(1)
plot(t,c_p,LineWidth=2)
xlabel('temperature')
ylabel('specfic heat')
title('temp vs specfic heat')
image=getframe(gcf);
imwrite(image.cdata,'t vs cp.png')
saveas(1,'specfic heat','jpg')
%temp vs enthalphy
figure(2)
plot(t,H,'color','g',LineWidth=2)
xlabel('temperature')
ylabel('enthalpy')
title('temp vs enthalpy')
image=getframe(gcf);
imwrite(image.cdata,'t vs H.png')
saveas(2,'enthalpy','jpg')
%tempvs entrophy
figure(3)
plot(t,S,'color','r',LineWidth=2)
xlabel('temperature')
ylabel('entrophy')
title('temp vs entrophy')
image=getframe(gcf);
imwrite(image.cdata,'t vs S.png')
saveas(3,'entropy','jpg')
cd ..
%calculating moleculat mass
M= molecular_wt(species_name);
K=sprintf('%s mol_wt=%f',species_name,M);
disp(K)
end
function H=enthalpy(b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,local_low_temp,local_mid_temp,local_high_temp,t,r)
if (t>local_mid_temp)
H= (b1+((b2.*t)/2)+((b3.*(t.^2))/3)+((b4.*(t.^3))/4)+((b5.*(t.^4))/5)+(b6./t)).*t*r;
else
H=(b8+((b9.*t)/2)+((b10.*(t.^2))/3)+((b11.*(t.^3))/4)+((b12.*(t.^4))/5)+(b13./t)).*t*r;
end
function S=entropy(b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,local_low_temp,local_mid_temp,local_high_temp,t,r)
if (t>local_mid_temp)
S=((b1.*logt)+(b2.*t)+((b3.*(t.^2))/2)+((b4.*(t.^3))/3)+(b5.*(t.^4))+b7);
else
S=((b8.*log(t))+(b9.*t)+((b10.*(t.^2))/2)+((b11.*(t.^3))/3)+(b12.*(t.^4))+b14)*r;
end
function c_p=specfic_heat(b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,local_low_temp,local_mid_temp,local_high_temp,t,r)
if (t>local_mid_temp)
c_p=r*(b1+(b2.*t)+(b3.*(t.^2))+(b4.*(t.^3))+(b5.*(t.^4)));
else
c_p=r*(b8+(b9.*t)+(b10.*(t.^2))+(b11.*(t.^3))+(b12.*(t.^4)));
end
function M=molecular_wt(species_name)
atomic_mass = [15.999,1.008,12.011,14.007,39.948]
elements = ['o','h','c','n','a']
mol_wt=0;
for i = 1:length(species_name)
for j=1:length(elements)
if strcmpi(species_name(i),elements(j))
mol_wt=mol_wt+atomic_mass(j);
z=j;
end
end
t=str2double(species_name(i));
if(t>1)
mol_wt=mol_wt+(atomic_mass(z))
end
end
M=mol_wt
end
Output for O2



Output for N2



Output for Co2


