Challenge

Project 1 - Parsing NASA thermodynamic data

%% MAIN PROGRAM

clear all
close all
clc

f1= fopen('THERMO.dat','r');
for i=1:5
    a=fgetl(f1);
end
% q=fgetl(f1);
% A=strsplit(fgetl(f1),' ');
% low_temp = str2num(A{2});
% Mid_temp = str2num(A{3});
% High_temp = str2num(A{4});


for i=1:53
    header=fgetl(f1);
    a=strsplit(header,' ');
    species_name= a{1};
   l_low=str2num(a{end-3});
   l_mid=str2num(a{end-1});
   l_High=str2num(a{end-2});

   header=fgetl(f1);
   strposl2=strfind(header,'E');
 a1=str2num(header (1:strposl2(1)+3))
a2=str2num(header(strposl2(1)+5:strposl2(2)+3))
a3=str2num(header(strposl2(2)+5:strposl2(3)+3))
a4=str2num(header(strposl2(3)+5:strposl2(4)+3))
a5=str2num(header(strposl2(4)+5:strposl2(5)+3))

line3=fgetl(f1);
   strposl3=strfind(line3,'E');
a6=str2num(line3 (1:strposl3(1)+3))
a7=str2num(line3(strposl3(1)+5:strposl3(2)+3))
a8=str2num(line3(strposl3(2)+5:strposl3(3)+3))
a9=str2num(line3(strposl3(3)+5:strposl3(4)+3))
a10=str2num(line3(strposl3(4)+5:strposl3(5)+3))

line4=fgetl(f1);
   strposl4=strfind(line4,'E');
   a11=str2num(line4 (1:strposl4(1)+3))
a12=str2num(line4(strposl4(1)+5:strposl4(2)+3))
a13=str2num(line4(strposl4(2)+5:strposl4(3)+3))
a14=str2num(line4(strposl4(3)+5:strposl4(4)+3))

T=linspace(l_low,l_High,500);
R=8.314;
for  i=1:length(T)
[c_p,H,S]=calculating_therm_properties(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,l_mid,T,R);
end


mkdir(species_name);
cd(species_name);

%creating plots
figure(1)
plot(T,c_p,'linewidth',1.5,'color','r')
xlabel('Temperature(K)')
ylabel('Specific Heat (j/Kgk)')
m1='Specific Heat of %S';
m2=species_name;
m3=sprintf(m1,m2);

figure(2)
plot(T,H,'linewidth',1.5,'color','g')
xlabel('Temperature(K)');
ylabel('Enthalpy(j/mol)');
title('Enthalpy vs Temperature ')
m4='Enthalpy(H)of %S';
m5= species_name
m6=sprintf(m4,m5);

figure(3)
plot(T,S,'linewidth',1.5,'color','b')
xlabel('Temperature(K)');
ylabel('Entropy(J/K)');
title('Entropy vs Temperature')
m7='Entropy of %s';
m8=species_name;
m9=sprintf(m7,m8)
saveas(figure(1),'Specific Heat.jpg','jpg')
saveas(figure(2),'Enthalpy.jpg','jpg')
saveas(figure(3),'Entropy.jpg','jpg')
cd ..
[M]= mol_wt(species_name);
K= sprintf('%s Weight = %f' ,species_name,M);
disp(K)

%tline='2.56942078E+00-8.59741137E-05 4.19484589E-08-1.00177799E-11 1.22833691E-15 22.92175791E+04 4.78433864E+00 3.16826710E+00-3.27931884E-03 6.64306396E-063-6.12806624E-09 2.11265971E-12 2.91222592E+04 2.05193346E+00'
%a=findstr(tline,'E')
end







%CALCULATING THERMAL PROPERTES
function [c_p,H,S]=calculating_therm_properties(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,l_mid,T,R)

  
if (T<=l_mid)
    c_p=R*(a8+(a9*T)+(a10*T.^2)+(a11*T.^3)+(a12*T.^4));
    H=R*T.*(a8+(a9(T/2))+(a10*((T.^2)/3))+(a11*((T.^3)/4))+(a12*((T.^4)/5))+(a13/T));
    S=R*(a8*log(T)+(a9*T)+(a10*((T.^2)/2))+(a11*((T.^3)/3))+(a12*((T.^4)/4))+a14)
    
    else
    c_p=R*(a1+(a2*T)+(a3*T.^2)+(a4*T.^3)+(a5*T.^4));
    H=R*T.*((a1)+(a2*(T/2))+(a3*(T.^2)/3)+(a4*((T.^3)/4))+(a5*((T.^4)/5))+(a6./T))
    S=R*((a1*log(T))+(a2*T)+(a3*(T.^2)/3)+(a4(T.^3)/3)+(a5*(T.^4)/4)+(a7));

end




%%MOLECULAR WEIGHT
function [c_p,H,S]=calculating_therm_properties(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,l_mid,T,R)

  
if (T<=l_mid)
    c_p=R*(a8+(a9*T)+(a10*T.^2)+(a11*T.^3)+(a12*T.^4));
    H=R*T.*(a8+(a9(T/2))+(a10*((T.^2)/3))+(a11*((T.^3)/4))+(a12*((T.^4)/5))+(a13/T));
    S=R*(a8*log(T)+(a9*T)+(a10*((T.^2)/2))+(a11*((T.^3)/3))+(a12*((T.^4)/4))+a14)
    
    else
    c_p=R*(a1+(a2*T)+(a3*T.^2)+(a4*T.^3)+(a5*T.^4));
    H=R*T.*((a1)+(a2*(T/2))+(a3*(T.^2)/3)+(a4*((T.^3)/4))+(a5*((T.^4)/5))+(a6./T))
    S=R*((a1*log(T))+(a2*T)+(a3*(T.^2)/3)+(a4(T.^3)/3)+(a5*(T.^4)/4)+(a7));

end
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.