Project

PARSING NASA THERMODYNAMIC DATA BY USING MATLAB

MAIN PROGRAM INVOLVING READING DATA FROM therm.txt FILE,DEFINING AND CALLING FUNCTION TO CALCULATE SPECIFIC HEATS,ENTHALPY,ENTROPY,PLOTING THE GRAPH AND CALCULATING THE MOLECULAR MASS/WEIGHTS OF THE REQUIRED SPECIES

clear all
close all
clc

%opening file and write operation
f=fopen(\'therm.txt\',\'r\');
fgetl(f);
fgetl(f);

%defining global low(glt),mid(gmt) and high(ght) temperatures
tline=\'300.000 500.000 1000.000\'

A=strsplit(tline,\' \');
glt=str2num(A{1});
gmt=str2num(A{2});
ght=str2num(A{3});

%defining working temperature range and gas constant R
T=linspace(glt,ght,200);
R=8.314;

%skipping 3 comments
fgetl(f)
fgetl(f)
fgetl(f)

%REQUIRED CALCULATIONS AND PLOTTING

for i=1:53
    %determining elements 
    l=fgetl(f);
    element=strtok(l);
    
    %reading next 3 lines with 7 high and low temperature coefficients
    l1=fgetl(f);
    l2=fgetl(f);
    l3=fgetl(f);
    
    %locating E to extract the coefficients
    a=findstr(l1,\'E\');
    b=findstr(l2,\'E\');
    c=findstr(l3,\'E\');
    
    %storing the first 7 coefficients as high temperature coefficients of
    %the first line
    a1=str2num(l1(1:a(1)+3));
    a2=str2num(l1(a(1)+4:a(2)+3));
    a3=str2num(l1(a(2)+4:a(3)+3));
    a4=str2num(l1(a(3)+4:a(4)+3));
    a5=str2num(l1(a(4)+4:a(5)+3));
    a6=str2num(l2(1:b(1)+3));
    a7=str2num(l2(b(1)+4:b(2)+3));
    
    %storing the first 7 coefficients as low temperature coefficients of
    %the second line
    b1=str2num(l2(b(2)+4:b(3)+3));
    b2=str2num(l2(b(3)+4:b(4)+3));
    b3=str2num(l2(b(4)+4:b(5)+3));
    b4=str2num(l3(1:c(1)+3));
    b5=str2num(l3(c(1)+4:c(2)+3));
    b6=str2num(l3(c(2)+4:c(3)+3));
    b7=str2num(l3(c(3)+4:b(4)+3));
    
    %enthalpy calculation
    h=enthalpy(a1,a2,a3,a4,a5,a6,a7,b1,b2,b3,b4,b5,b6,b7,T,R,glt,gmt,ght);
    
    %entropy calculation
    s=entropy(a1,a2,a3,a4,a5,a6,a7,b1,b2,b3,b4,b5,b6,b7,T,R,glt,gmt,ght);
    
    %specific heat calculation
    cp=spec_heat(a1,a2,a3,a4,a5,a6,a7,b1,b2,b3,b4,b5,b6,b7,T,R,glt,gmt,ght);
    
    %plotting graphs of specific heat,enthalphy and entropy of each
    %element/compound/species wrt to temperature
    plotting(cp,h,s,T,element);
    
    %calculating molecular weight of each element/compound/species
    molecular_weight(i)=mol_weight(element);
end

CALCULATION OF SPECIFIC HEAT

function [cp]=spec_heat(a1,a2,a3,a4,a5,a6,a7,b1,b2,b3,b4,b5,b6,b7,T,R,glt,gmt,ght)

if T

CALCULATION OF ENTHALPY

function [h]=enthalpy(a1,a2,a3,a4,a5,a6,a7,b1,b2,b3,b4,b5,b6,b7,T,R,glt,gmt,ght)

if T

CALCULATION OF ENTROPY

function [h]=enthalpy(a1,a2,a3,a4,a5,a6,a7,b1,b2,b3,b4,b5,b6,b7,T,R,glt,gmt,ght)

if T

PLOTTING GRAPH

function plotting(cp,h,s,T,element)
cd(pwd)
dir_name=element;
mkdir(dir_name);

figure(1)
plot(T,cp,\'lineWidth\',3)
title(sprintf(\'Specific Heat vs Temperature \\r\\n for %s:\',element))
xlabel(\'Temperature\')
ylabel(\'Specific Heat\')

figure(2)
plot(T,h,\'linewidth\',3)
title(sprintf(\'Enthalpy vs Temperature \\r\\n for %s:\',element))
xlabel(\'Temperature\')
ylabel(\'Enthalpy\')

figure(3)
plot(T,s,\'linewidth\',3)
title(sprintf(\'Entropy vs Temperature \\r\\n for %s:\',element))
xlabel(\'Temperature\')
ylabel(\'Entropy\')

cd(dir_name)
saveas(1,\'cp_vs_T.png\')
saveas(2,\'h_vs_T.png\')
saveas(3,\'s_vs_T.png\')

cd ..

end

CALCUATION OF MOLECULAR MASS/WEIGHT

function [w] = mol_weight(element)


s = {\'H\' \'C\' \'N\' \'O\' \'AR\'}; 
%atomic weight of respective elements
atomic_wt = [1 12 14 16 40];                                                      
w = 0;                                                                       

for i = 1:length(element)  
 for j = 1:length(s)
    if strcmp(element(i), s(j))                           
    w= w + atomic_wt(j); 
    %storing the position of matched element as j to be used in the for
    %loop and if condition
    position = j;                                                         
  end 
end 
     
      
n = str2num(element(i));
if n > 1
                                                      
w = w + atomic_wt(position)*(n-1);                                        
end 
end
end

Please write a detailed report to describe your logic and display useful plots (enthalpy, entropy and cp).you should make these plots for o2, N2 and Co2.

1. DOWNLOAD THE THERM.TXT FILE

2. USE FILE HANDLE TO OPEN FILE AND PERFORM READ OPERATION AS SHOWN IN THE PROGRAM

3. DEFINING THE GLOBAL HIGH TEMPERATURE,LOW TEMPERATURE AND MEDIUM TEMPERATURE5. READING THE TEMPERATURE ACCORDINGLY USING strsplit COMMAND

4. DEFINING 200 VALUES BETWEEN GLOBAL HIGH TEMPERATURE AND GLOBAL LOW TEMPERATURE WHICH IS USED FURTHER FOR CALCULATION AND PLOTTING THE GRAPHS

5. DEFINING UNIVERSAL GAS CONSTANT AS R=8.314

6. READING THE COMMENTS BY USING fgetl(f) COMMAND/COULD BE DONE USING FOR LOOP ALSO

7. FOR LOOP INCREMENTING UPTO 53 TO PERFORM OPERATION ON 53 DIFFERENT SPECIES

8. DETERMINING ELEMENTS BY USING fgetl(f),strtok(l) COMMAND

9. READING NEXT 3 LINES WITH 7 HIGH AND LOW TEMPERATURE COEFFICIENTS BY USING fgetl(f) COMMAND

10.LOCATING E TO EXTRACT THE COEFFICIENTS BY USING findstr COMMAND AND ASSIGNING IT TO VARIABLES a,b and c

11.STORING THE FIRST 7 COEFFICIENTS AS HIGH TEMPERATURE COEFFICIENTS OF FIRST LINE BY CONVERTING FROM STRING TO NUMBER BY USING str2num COMMAND TO a1,a2,a3,a4,a5,a6,a7

12.STORING THE FIRST 7 COEFFICIENTS AS LOW TEMPERATURE COEFFICIENTS OF SECOND LINE BY CONVERTING FROM STRING TO NUMBER BY USING str2num COMMAND TO b1,b2,b3,b4,b5,b6,b7

13.ENTHAPY CALCULATION BY CALLING A FUNCTION AND DEFINING IT IN A SUB PROGRAM BY PASSING REQUIRED ARGUEMENTS AND USING THE FORMULAE AS GIVEN IN HINT

14.ENTROPY CALCULATION BY CALLING A FUNCTION AND DEFINING IT IN A SUB PROGRAM BY PASSING REQUIRED ARGUEMENTS AND USING THE FORMULAE AS GIVEN IN HINT

15.SPECIFIC HEAT CALCULATION BY CALLING A FUNCTION AND DEFINING IT IN A SUB PROGRAM BY PASSING REQUIRED ARGUEMENTS AND USING THE FORMULAE AS GIVEN IN HINT

16.PLOTTING GRAPH BY CALLING FUNCTION AND DEFINING IT IN A SUB PROGRAM BY PASSING REQUIRED ARGUMENTS. CREATE FOLDER TO DUMP THE IMAGE OF THE GRAPHS BY USING

cd(pwd)

dir_name=element;

mkdir(dir_name);

{ } cd(dir_name)

saveas(1,\'cp_vs_T.png\')

saveas(2,\'h_vs_T.png\')

saveas(3,\'s_vs_T.png\')

cd .. IN A FOR LOOP

17.MOLECULAR MASS/WEIGHT CALCULATION BY CALLING A FUNCTION AND DEFINING IT IN A SUB PROGRAM BY PASSING REQUIRED ARGUEMENTS.DEFINING ATOMIC AND MOLECULAR MASSES OF H,C,N,O,AR AS ALL THE SPECIES COMPRISES OF THESE BASIC ELEMENTS IN A STRING USING 2 FOR LOOP EACH ELEMENT OF THE SPECIES IS PARSED AND MOLECULAR WEIGHT IS ADDED ACCORDINGLY AND POSITION OF MATCHING ELEMENT IS STORED USING AN IF CONDITION

\"\"

\"\"

\"\"

\"\"

\"\"

\"\"

\"\"

\"\"

\"\"

REFERENCE:SKILL LYNC

SKILL LYNC FORUM

GOOGLE

INTRODUCTION TO MATLAB FOR
ENGINEERING STUDENTS
David Houcque
Northwestern University

https://projects.skill-lync.com/projects/PARSING-NASA-THERMODYNAMIC-DATA-BY-USING-MATLAB-97355

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.