Challenge

Project 1 - Parsing NASA thermodynamic data

%Coding for specific heat 
function[C_p]=specific_heat_calc(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a1)
if (t>local_mid_temp)
    C_p=(a1+(a2*T)+(a3*(T.^2))+(a4*(T.^3))+(a5*(T.^4)));

else
    C_p=(a8+(a9*T)+(a10*(T.^2))+(a11*(T.^3))+(a12*(T.^4)));

end

% Coding for enthalpy
function [h]=enthalpy_cal(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,low)
if(T>local_mid_temp)
    h=(a1*T+(a2*(T.^2)/2)+(a3*(T.^3)/3)+(a4*(T.^4)/4)+(a5*(T.^5)/5)+a6);
else
   h=(a8*T+(a9*(T.^2)/2)+(a10*(T.^3)/3)+(a11*(T.^4)/4)+(a12*(T.^5)/5)+a13)
end

% Coding for molecular weight
function [M]=molecular_weight(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),element(j))
          mol_wt=Mol_wt+Atomic_mass(j);
          z=j;
        end
    end
    M=Mol_wt;
end
close all
clear all
clc
% gas constant
R=8.314;
% reading first two lines
f1=fopen('THERMO.dat','r');
tline1=fgetl(f1);
tline2=fgetl(f1);
temp=strsplit(tline2,'');
global_low_temp=str2num(temp{2});
global_mid_temp=str2num(temp{3});
global_high_temp=str2num(temp{4});

% skipped next three lines
for i=1:3
    skippedlines=fgetl(f1);
end
    for i=1:53
        tline3=fgetl(f1)
        s=strsplit(tline3,'');
        species_name=s{1};
        A=strfind(tline3,'G');
        temp_value=tline3(A+4:length(tline3));
        B=strsplit(temp_value,'');
        local_low_temp=str2double(B{1});
        local_mid_temp=str2double(B{3});
        local_high_temp=str2double(b{2});

 tline4=fgetl(f1)
 f=strfind(tline4,'E');
 a1=str2double(tline4(1:(f(1)+3)));
 a2=str2double(tline4(f(1)+4:(f(2)+3)));
 a3=str2double(tline4(f(2)+4:(f(3)+3)));
 a4=str2double(tline4(f(3)+4:(f(4)+3)));
 a5=str2double(tline4(f(4)+4:(f(5)+3)));

 tline5=fgetl(f1);

 a6=str2double(tline5(1:(f(1)+3)));
 a7=str2double(tline5(f(1)+4:(f(2)+3)));

 a8=str2double(tline5(f(2)+4:(f(3)+3)));
 a9=str2double(tline5(f(3)+4:(f(4)+3)));
 a10=str2double(tline5(f(4)+4:(f(5)+3)));

 tline6=fgetl(f1);

 a11=str2double(tline6(1:(f(1)+3)));
 a12=str2double(tline6(f(1)+4:(f(2)+3)));
 a13=str2double(tline6(f(2)+4:(f(3)+3)));
 a14=str2double(tline6(f(3)+4:(f(4)+3)));

 T=linspace(local_low_temp,local_high_temp,100)
 c_p=R*specific_heat_calc(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,loc)
 s=R*enthalpy_cal(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,local_low)
 h=R*enthalpy_cal(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,local_low)
 req_species=["O2","N2","CO2"];


 if(species_name==req_species(1))||(species_name==req_species(2))||(species)
     mkdir(species_name); ...
     cd(species_name)

  figure(1)
  plot(T,C_p)
  title('specific heat vs temp')
  xlable('Temp')
  ylabel('specific heat')
  image-getframe(gcf);
  imwrite(image.cdata,'cp vs t.png')
  saves(1,'specific_heat','jpj')

  figure(2)
  plot(T,h)
  title('enthaply vs temp')
  xlabel('temp')
  ylabel('enthalpy')
  image=getframe(gcf);
  imwrite(image.cdata,'h vs t.png')
  saveas(2,'enthalpy','jpg')

  figure(3)
  plot(T,s)
  title('entropy vs temp')
  xlabel('temp')
  ylabel('entropy')
  image=getframe(gcf);
  imwrite(image.cdata,'s vs T.png')
  saves(3,'entropy','jpg')

  cd
 end
 molecular_wt=molecular_weight(species_name);
 k=sprintf('%s Mol_wt = %f',species_name,molecular_wt);
 disp(k)
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.