Challenge

Project 1 - Parsing NASA thermodynamic data

AIM

TO PARSE THE THERMODYNAMIC DATA FROM NASA USING MATLAB

OBJECTIVES

TO GET THE SPECIES DATA FROM GIVEN DAT FILE AND EXTRACT THE COEFFICIENTS OF ALL DATA AND CALCULATE THE SPECIFIC HEAT, ENTHALPHY AND ENTROPY

TO CALCULATE THE MOLECULAR WEIGHT OF THE EACH SPECIES.

TO PLOT THE SPECIFIC HEAT, ENTHALPHY AND ENTROPY FOR ALL SPECIES.

TO SAVE THE PLOTS WITH SUITABLE SPECIES NAMES AND WHICH IS IN SEPARATE FOLDERS FOR EACH SPECIES.

EQUATIONS FOR Cp, ENTHALPY & ENTROPY

SPECIFIC_HEAT (Cp)`(cp)/R=a1+a2.T+a3.T^2+a4.T^3+a5.T^4`

WHERE,

Cp = Specific Heat In J/Kg-K

`H/(RT)=a1+a2.T/2+a3.T^2/3+a4.T^3/4+a5.T^4/5+a6.T/6`

R = Gas Constant 8.314 J/Kg-K-MOL

`S/R=a1.logT+a2.T+(a3.T^2)/2+a4.T^3/3+a5.T^4/4+a7`

H = Enthalpy In KJ/Kg

S = Entropy In J/K

FROM ABOVE GOVERNING EQUATIONS , COEFFICIENTS OF 14 IN WHICH 7 COEFFICIENTS ARE HIGH TEMPERATURE AND OTHER 7 COEFFICIENTS ARE LOW TEMPERATURE COEFFICIENTS.

BY CREATING THE FUNCTION PROGRAMS FOR CALCULATING THE MOLECULAR WEIGHT AND THERMODYNAMIC PROPERTIES OF ENTHALPHY, ENTROPY & SPECIFIC HEAT.

FUNCTION PROGRAM:1 ( FOR CALCULATING THERMODYNAMIC PROPERTIES OF SPECIFIC HEAT, ENTHALPY & ENTROPY)

function [cp,h,s] = coeff(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,T)
R = 8.314;

for j = 1: length(T)
   
    if  T(j)<300
       
        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).*R;
    else
        
        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).*R;
    end
end
end

FUNCTION PROGRAM:2 (FOR CALCULATING THE MOLECULAR WEIGHT OF SPECIES)

function [ molecular_weight] = mole_wt(species_name)
SPECIES = upper(species_name)
constituents = {'H', 'C' ,'N' , 'O', 'A'};
atomic_weight = [1 12 14 16 40];
molecular_weight = 0;

for i=1:length(SPECIES)
    for j = 1: length(constituents)
        if strcmp(SPECIES(i), constituents (j))
            molecular_weight = molecular_weight + atomic_weight(j);
            u = j;
            
        end
    end
    n = str2double (SPECIES(i));
    if n>1
        molecular_weight = molecular_weight + atomic_weight(u)*(n-1)
    end
end
fprintf('molecular_weight of %s:-', species_name)
fprintf('%d', molecular_weight)
fprintf(' ')
fprintf('amu')
fprintf('n')
end

MAIN PROGRAM:

clear all
close all
clc


%FOR FILE OPENING OF GIVEN DAT FILE
f1 = fopen('THERMO.dat','r');
file_name = fgetl(f1);
t_line = fgetl (f1);
A = strsplit ( t_line,' ');

%SPLITTING THE TEMPERATURE VARIANT FROM DATA FILE
global_low_temp = str2double(A{2});
global_mid_temp = str2double(A{3});
global_high_temp = str2double (A{4});


for i = (1:3)
    comments = fgetl(f1);
    
end

for i = 1:53
    % SPECIES NAME EXTRACT
    
    species = fgetl (f1);
    species_name = species (1:6);
    
    %FOR EXTRACTING THE COEFF OF FIRST LINE
    
    line_1 = fgetl(f1);
    l1 = strfind (line_1,'E');
    a1 = str2double (line_1(1:(l1(1)+3)));
     a2 = str2double (line_1((l1(1)+4): (l1(2)+3)));
    a3 = str2double (line_1((l1(2)+4): (l1(3)+3)));
    a4 = str2double (line_1((l1(3)+4): (l1(4)+3)));
    a5 = str2double (line_1((l1(4)+4): (l1(5)+3)));
    
    
    
    %EXTRACTING COEFF OF SECOND LINE
    
    line_2 = fgetl(f1);
    l2 = strfind(line_2,'E');
     a6 = str2double (line_2(1:(l2(1)+3)));
       a7 = str2double (line_2((l2(1)+4): (l2(2)+3)));
    a8 = str2double (line_2((l2(2)+4): (l2(3)+3)));
    a9 = str2double (line_2((l2(3)+4): (l2(4)+3)));
    a10 = str2double (line_2((l2(4)+4): (l2(5)+3)));
    
    % EXTRACTING COEFF OF THIRD LINE
    
    line_3 = fgetl(f1);
    l3 = strfind(line_3,'E');
    a11 = str2double(line_3(1:(l3(1)+3)));
        a12 = str2double (line_3((l3(1)+4): (l3(2)+3)));
    a13 = str2double (line_3((l3(2)+4): (l3(3)+3)));
    a14 = str2double (line_3((l3(3)+4): (l3(4)+3)));
   T=linspace(global_low_temp, global_high_temp,500);
   
   %CREATING THE DIRECTORY FOR SAVING THE PLOT FILES
    
   mkdir(['C:\Users\HP gr0012AU\OneDrive\Desktop\NASA THERMODYNAMIC FILE\species',species_name])
   
    [cp,h,s] = coeff(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,T);
    
    % PLOTTING THE TEMPERTURE VS SPECIFIC HEAT  
    figure(1)
    plot(T,cp,'linewidth',3,'color','b')
    title(species_name)
    xlabel('temperature')
    ylabel('specific heat')
    
    % PLOTTING THE TEMPERATURE VS ENTHALPY
    figure(2)
    plot(T,h,'linewidth',3,'color','g')
    title (species_name)
    xlabel('Temperature')
    ylabel('Enthalphy')
    
    % PLOTTING THE TEMPERATURE VS SPECIFIC HEAT
    figure(3)
    plot(T,s,'linewidth',3,'color','c')
   title(species_name)
    xlabel('Temperature')
    ylabel('Entropy')
    
    % TO SAVE THE PLOTS IN CREATED FOLDER
    directory= (['C:\Users\HP gr0012AU\OneDrive\Desktop\NASA THERMODYNAMIC FILE\species',species_name]);
    cd(directory)
    
    saveas(1,'specific_heat.png')
    saveas(2,'enthalphy.png')
    saveas(3,'entropy .png')
    
    
    cd('C:\Users\HP gr0012AU\OneDrive\Desktop\NASA THERMODYNAMIC FILE\mole_weight')
    molecular_weight = mole_wt(species_name);
end
    

fclose(f1)

PROGRAM EXPLANATION:

TO READ THE DESIRED DATA FILE AND VALUES ARE ASSIGNED. HEADER INFORMATION FROM THE DAT FILE AND ASSIGNED THE VALUES USING THE FGET L COMMANDS.

COEFFICIENT VALUES ARE DETERMINED AND ALLOTTED TO A CONSTANT.

A ‘SPECIES’ FOLDER IS CREATED BY USING COMMANDS AND COEFFICIENT FUNCTION IS CALLED AND PLOTTING THE GRAPHS AND IT IS SAVED.

THE FUNCTION MOLECULAR WEIGHT VALUES ARE PRINTED IN COMMAND WINDOW.

OUTPUT OF THE PLOTS:

ENTHALPY, ENTROPY & SPECIFIC HEAT OF CH

ENTHALPY, ENTROPY & SPECIFIC HEAT OF CH2

PLOTS FOR N2,02 & CO2

MOLECULAR WEIGHT OF THE SPECIES

SPECIES FILES SAVED IN LOCATION:

CONCLUSION:

FROM GETTING AND READING THE INPUTS FROM DATA CALCULATED THE SPECIFIC HEAT, ENTHALPY AND ENTROPY. ALSO PLOTTED THE THERMODYNAMIC PROPERTIES AND TEMPERATURE WHICH SAVED IN SEPARATE FOLDERS AND CREATED BY USING COMMANDS

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.