Project 1 - Parsing NASA thermodynamic data
Project 1 - Parsing NASA thermodynamic data
PROBLEM STATEMENT
NASA came up with polynomials that can be used to evaluate thermodynamic properties such as Cp, H and S. They have also documented the co-efficients that are required to evaluate these polynomials for 1000+ species.
To guide you we have broken down the problem into meaningful bits that you can work on individually.
1. Write a function that extracts the 14 co-efficients and calculates the enthalpy, entropy and specific heats for all the species in the data file. You will be reading this file NASA thermodynamic data(Tip: use fopen and fgetl). The formulae are shown below.
Here R is the universal gas constant, T is the temeprature
The FIRST 7 coefficients are HIGH-temperature coefficients and the SECOND 7 coefficients are LOW-temperature coefficients.
Also use the LOCAL TEMPERATURE RANGES which is unique for each individual species, not the GLOBAL TEMPERATURE RANGE.
2. Calculate the molecular weight of each species and display it in the command window.
3. Plot the Cp, Enthalpy and Entropy for the local temperature range (low temperature : high temperature) specific for each species.
4. Save the plots as images with appropriate names and dump them in separate folders for each species with suitable name. All these should be generated automatically.
5. The main program that you will submit will just take the "THERMO.dat" file as an input and generate Cp, H and S plots.
6. Please write a detailed report to describe your logic.
SOLUTION WITH THE REPORTS:-
File Parsing :-
File parsing is the process of reading data from a specific text file or any other type of file and using that data in a computer programme.
- Step 1 - Define the function
- Step 2 - Create an InputParser object
- Step 3 - Add inputs to the scheme.
- Step 4 - Set properties to adjust parsing.
- Step 5 - Parse the inputs.
- Step 6 - Use the inputs in function.
- Step 7 - Calling function.
NASA Thermodynamic File
A data file called THERMO.dat contains 14 coefficients for 53 distinct elements provided by NASA. For a certain element, these coefficients are used to compute the specific heat, enthalpy, and entropy. The local temperature varies depending on the element. The THERMO.dat file is seen in the screenshot below.

Enthalpy , Entropy and Specific Heat
Specific heat, often denoted as "C" or "c," is a fundamental physical property that describes the amount of heat energy required to raise the temperature of a given amount of substance by a certain amount. In simpler terms, it quantifies how much energy is needed to increase the temperature of a material. Specific heat is particularly useful in understanding how different substances respond to changes in temperature and how they store or release thermal energy.
There are two common types of specific heat:
-
Specific Heat at Constant Volume (Cv): This represents the heat required to raise the temperature of a substance while keeping its volume constant. In this case, no work is done against external pressure.
-
Specific Heat at Constant Pressure (Cp): This represents the heat required to raise the temperature of a substance while allowing it to expand or contract against an external pressure. This is the more commonly used value in practical applications because most processes occur at constant pressure.
The equation that relates heat transfer, specific heat, mass, and temperature change is:
Q = m * c * ΔT
Where:
- Q is the heat transfer (in joules)
- m is the mass of the substance (in kilograms)
- c is the specific heat (in joules per kilogram per degree Celsius or Kelvin)
- ΔT is the change in temperature (in degrees Celsius or Kelvin)
The SI unit for specific heat is joules per kilogram per degree Celsius (J/kg°C) or joules per kilogram per Kelvin (J/kgK). It's important to note that different materials have different specific heat values due to their molecular structures and the way they store and transfer energy. For example, substances with higher specific heat values require more energy to raise their temperatures compared to those with lower specific heat values.
Here are some approximate specific heat values for various common materials at room temperature (around 25°C):
- Water: ~4186 J/kg°C
- Aluminum: ~900 J/kg°C
- Iron: ~450 J/kg°C
- Copper: ~385 J/kg°C
- Air (at constant pressure): ~1005 J/kg°C
In summary, specific heat is a property that measures how much energy is required to change the temperature of a substance. It plays a crucial role in understanding and predicting thermal behavior in various systems, from simple experiments to complex industrial processes.
Enthalpy (H): Enthalpy is a thermodynamic quantity that combines the internal energy of a system with the pressure-volume work it can do. It's often thought of as a measure of the total heat content of a system at constant pressure. Enthalpy takes into account the internal energy of the system as well as the energy required to push back external pressure and allow the system to expand or contract.
Mathematically, enthalpy is defined as:
H = U + PV
Where:
- H is the enthalpy
- U is the internal energy of the system
- P is the pressure
- V is the volume
Enthalpy change (ΔH) is particularly important in chemical reactions and phase transitions. For chemical reactions at constant pressure, the change in enthalpy reflects the heat exchanged with the surroundings. If ΔH is positive, the reaction is endothermic (absorbs heat), and if it's negative, the reaction is exothermic (releases heat).
Entropy (S): Entropy is a measure of the degree of randomness or disorder in a system. It's a concept associated with the second law of thermodynamics, which states that in natural processes, the total entropy of an isolated system tends to increase over time. In simpler terms, systems tend to move from a state of order to a state of disorder.
Mathematically, entropy can be thought of as a ratio of heat transfer to temperature:
S = Q / T
Where:
- S is the entropy change
- Q is the heat transferred
- T is the temperature in Kelvin
The second law of thermodynamics states that the total entropy of an isolated system can never decrease, only increase or remain constant.
Entropy change (ΔS) plays a crucial role in understanding the direction and feasibility of processes. In a spontaneous process, the total entropy of the universe (system + surroundings) increases. For example, when heat flows from a hot object to a cold one, the overall entropy of the system increases.
Polynomials developed by NASA may be used to assess thermodynamic parameters including Cp, H, and S. The coefficients needed to evaluate these polynomials for more than 1000 species have been recorded.
The NASA polynomials have the form:
Cp/R = a1 + a2 T + a3 T^2 + a4 T^3 + a5 T^4
H/RT = a1 + a2 T /2 + a3 T^2 /3 + a4 T^3 /4 + a5 T^4 /5 + a6/T
S/R = a1 lnT + a2 T + a3 T^2 /2 + a4 T^3 /3 + a5 T^4 /4 + a7
Where R is the universal gas constant, T is the temperature and a1, a2, a3, a4, a5, a6, and a7 are the numerical coefficients supplied in the thermodynamic file. The FIRST 7 coefficients are HIGH-temperature coefficients (above 1000 K) and the SECOND 7 coefficients are LOW-temperature coefficients (below 1000 K).
#coding of different functions:-
1. Specific heat
Cp = (a1 + a2 T + a3 T^2 + a4 T^3 + a5 T^4)*R
MATLAB function code
% Specific heat calculation function
function Cp = Specificheat(a1,a2,a3,a4,a5,a8,a9,a10,a11,a12,Temp,R,global_medium_temp)
% Comparing with global temperature
% If less than global temperature - minimum coefficients are taken
if Temp <= global_medium_temp
Cp = R*(a8 + (a9*Temp) + (a10*(Temp).^2) + (a11*(Temp).^3) + (a12*(Temp).^4));
else
Cp = R*(a1 + (a2*Temp) + (a3*(Temp).^2) + (a4*(Temp).^3) + (a5*(Temp).^4));
% Else maximum coefficients are taken
end
Explanation:-
function Cp = Specificheat(a1,a2,a3,a4,a5,a8,a9,a10,a11,a12,Temp,R,global_medium_temp)
This line defines a MATLAB function named Specificheat that takes several input arguments (a1 to a12, Temp, R, and global_medium_temp) and returns the specific heat (Cp) as the output. The function calculates the specific heat based on different coefficients depending on the temperature and global medium temperature.
if Temp <= global_medium_temp
This line starts a conditional statement. It checks if the value of the variable Temp is less than or equal to the value of the variable global_medium_temp.
Cp = R*(a8 + (a9*Temp) + (a10*(Temp).^2) + (a11*(Temp).^3) + (a12*(Temp).^4));
If the condition in the previous line is true (i.e., Temp is less than or equal to global_medium_temp), this line calculates the specific heat Cp using the coefficients a8 to a12. It's a polynomial function of temperature (Temp) with powers ranging from 1 to 4. The calculated value is multiplied by the constant R.
else
If the condition in the first if statement is false (i.e., Temp is greater than global_medium_temp), this line signifies the beginning of the alternative case.
Cp = R*(a1 + (a2*Temp) + (a3*(Temp).^2) + (a4*(Temp).^3) + (a5*(Temp).^4));
Temp is greater than global_medium_temp), the specific heat Cp is calculated using the coefficients a1 to a5. Similar to the previous calculation, this is also a polynomial function of temperature (Temp) with powers ranging from 1 to 4. The calculated value is again multiplied by the constant R.% Enthalpy Calculation function
function H = Enthalpy(a1,a2,a3,a4,a5,a6,a8,a9,a10,a11,a12,a13,Temp,R,global_medium_temp)
% Comparing with global temperature
% If less than global temperature - minimum coefficients are taken
if Temp <= global_medium_temp
H = R*Temp.*(a8 + ((a9*Temp)/2) + ((a10*(Temp).^2)/3) + ((a11*(Temp).^3)/4) + ((a12*(Temp).^4)/5) +((a13./Temp)));
else
% Else maximum coefficients are taken
H = R*Temp.*(a1 + ((a2*Temp)/2) + ((a3*(Temp).^2)/3) + ((a4*(Temp).^3)/4) + ((a5*(Temp).^4)/5) +((a6./Temp)));
end
Function code for ENTROPY
S = (a1 lnT + a2 T + a3 T^2 /2 + a4 T^3 /3 + a5 T^4 /4 + a7)*R
% Entropy Calculation function
function S = Entropy_calc(a1,a2,a3,a4,a5,a7,a8,a9,a10,a11,a12,a14,Temp,R,global_medium_temp)
% Comparing with global temperature
% If less than global temperature - minimum coefficients are taken
if Temp <= global_medium_temp
S = R.*(a8.*log(Temp) + (a9.*Temp) + (a10*((Temp).^2)/2) + (a11*((Temp).^3)/3) + (a12*((Temp).^4)/4) + a14);
else
% Else - maximum coefficients are taken
S = R.*(a1.*log(Temp) + (a2.*Temp) + (a3*((Temp).^2)/2) + (a4*((Temp).^3)/3) + (a5*((Temp).^4)/4) + a7);
end
Molecular Weight:-
The mass of a certain molecule is its molecular mass, which is expressed in daltons. Because they contain various isotopes of an element, multiple molecules of the same substance can have distinct molecular weights.
Function code for molecular weight :-
% Molecular Weight Calculation function
function Molecularweight = Molecular_weight(Species_SP)
% Standard - Atomic Name
atomic_name = ['H','C','O','N','A'];
% Hydrogen, Carbon, Oxygen, Nitrogen, Argon
fprintf('Molecular Weight of ');
fprintf(Species_SP);
fprintf(' : ');
% Standard Atomic Number
Atomic_Weight = [1.008 12.011 15.999 14.007 39.948];
% Starting Range of Molecule
Molecularweight = 0;
% Adding Atomic number to obtain particular value
for i = 1:length(Species_SP)
for j = 1:length(atomic_name)
if strcmpi(Species_SP(i),atomic_name(j))
Molecularweight = Molecularweight +Atomic_Weight(j);
position = j;
end
end
n = str2num(Species_SP(i));
if n>1
Molecularweight = Molecularweight + Atomic_Weight(position)*(n-1);
end
end
fprintf('molecular weight %s :',Species_SP);
fprintf('%d',Molecularweight);
disp(' ');
end
Explanation of the above code :-
% Molecular Weight Calculation function
function Molecularweight = Molecular_weight(Species_SP)
This code begins by defining a function named Molecular_weight, which calculates the molecular weight of a given species. The function takes one input, which is the name of the species (Species_SP), and it will return the calculated molecular weight.
atomic_name = ['H','C','O','N','A'];
This line creates a list of atomic symbols: 'H' for Hydrogen, 'C' for Carbon, 'O' for Oxygen, 'N' for Nitrogen, and 'A' for Argon. These symbols represent different types of atoms that make up molecules.
fprintf('Molecular Weight of ');
fprintf(Species_SP);
fprintf(' : ');
These lines print a message indicating that the code is calculating the molecular weight of a specific species. It then prints the name of the species by using the Species_SP input.
Atomic_Weight = [1.008 12.011 15.999 14.007 39.948];
This line creates a list of atomic weights corresponding to the atomic symbols defined earlier. For example, the first value (1.008) corresponds to the atomic weight of Hydrogen, the second value (12.011) corresponds to the atomic weight of Carbon, and so on.
Molecularweight = 0;
Here, a variable Molecularweight is initialized to zero. This variable will be used to accumulate the molecular weight of the species as we calculate it.
for i = 1:length(Species_SP)
for j = 1:length(atomic_name)
if strcmpi(Species_SP(i),atomic_name(j))
Molecularweight = Molecularweight + Atomic_Weight(j);
position = j;
end
end
n = str2num(Species_SP(i));
if n > 1
Molecularweight = Molecularweight + Atomic_Weight(position) * (n - 1);
end
end
These lines are the heart of the calculation. The first loop goes through each character in the Species_SP string, which represents the species name. The second loop goes through the atomic symbols (atomic_name) to find a match with the current character in the species name.
If a match is found, it means the current character represents an atom. The atomic weight of that atom is added to the Molecularweight, and the position variable is set to the index of the matched atomic symbol.
Then, the code checks if the current character can be converted to a number (n). If it's greater than 1 (indicating there's more than one of that atom in the species), the corresponding atomic weight is added to the Molecularweight again for each additional atom.
fprintf('molecular weight %s :',Species_SP);
fprintf('%d',Molecularweight);
disp(' ');
These lines print out the calculated molecular weight of the species. It uses the fprintf function to display the species name (Species_SP) and its corresponding molecular weight (Molecularweight).
end
This marks the end of the for loop and the end of the Molecular_weight function.
MAIN CODE
clear all
close all
clc
% Reading Data file - NASA Thermodynamic
% Open a file & 'r' Open the file for reading
f1=fopen('THERMO.dat','r');
gt=fgetl(f1);
% Obtaing Temperatures - by Reading Header Information
global_temp=fgetl(f1);
% Spliting
t=strsplit(global_temp);
% Converting string cells to numbers using str2num,
global_low_temp=str2num(t{2});
global_medium_temp=str2num(t{3});
global_high_temp=str2num(t{4});
% Temperature range & Gas Constant
% Temperature Range assumed
Temp=linspace(global_low_temp,global_high_temp,1000);
% Universal Gas Constant J/(mol-K)
R = 8.314;
% skipping three comment lines in the file
for i = 1:3
gt=fgetl(f1);
end
for i = 1:53
gt=fgetl(f1);
A=strsplit(gt,' ');
Species_SP=(A{1})
line_1=fgetl(f1) ;
a=strfind(line_1,'E');
% Extracting higher and lower temperature coefficients
% % Extracting FIRST 7 coefficients i.e HIGH-temperature coefficients
a1=line_1(1:a(1)+3);
a1=str2num(a1); %1
a2=line_1(a(1)+4:a(2)+3);
a2=str2num(a2) ; %2
a3=line_1(a(2)+4:a(3)+3);
a3=str2num(a3) ; %3
a4=line_1(a(3)+4:a(4)+3);
a4=str2num(a4); %4
a5=line_1(a(4)+4:a(5)+3);
a5=str2num(a5) ; %5
line_2=fgetl(f1);
b=strfind(line_1,'E');;
a6=line_2(1:b(1)+3);
a6=str2num(a6) ; %6
a7=line_2(a(1)+4:b(2)+3);
a7=str2num(a7); %7
% Extracting SECOND 7 coefficients - LOW-temperature coefficients
a8=line_2(b(2)+4:b(3)+3);
a8=str2num(a8); %8
a9=line_2(b(3)+4:b(4)+3);
a9=str2num(a9) ; %9
a10=line_2(b(4)+4:b(5)+3);
a10=str2num(a10) ; %10
line_3=fgetl(f1);
c=strfind(line_1,'E');
a11=line_3(1:c(1)+3);
a11=str2num(a11); %11
a12=line_3(c(1)+4:c(2)+3);
a12=str2num(a12); %12
a13=line_3(c(2)+4:c(3)+3);
a13=str2num(a13); %13
a14=line_3(c(3)+4:c(4)+3);
a14=str2num(a14); %14
% Specific heat calculation
Cp = Specificheat(a1,a2,a3,a4,a5,a8,a9,a10,a11,a12,Temp,R,global_medium_temp);
% Enthalpy calculation
H = Enthalpy(a1,a2,a3,a4,a5,a6,a8,a9,a10,a11,a12,a13,Temp,R,global_medium_temp);
% Entropy calculation
S = Entropy_calc(a1,a2,a3,a4,a5,a7,a8,a9,a10,a11,a12,a14,Temp,R,global_medium_temp);
% Calculating molecular weight of species
Molecularweight(i) = Molecular_weight(Species_SP);
% Read & Write Molecular list
Molecular_list = fopen('Molecular weight.txt','a+');
fprintf( Molecular_list,'Molecular weight of %s is %d \n',Species_SP,Molecularweight);
fclose(Molecular_list);
% plotting(CP,H,S,Temp,Species_SP)
% Saving as a folder
cur_dir=pwd;
mkdir(Species_SP);
cd(Species_SP);
% Plot 1, Specific heat (CP) vs Temperature Range (Temp)
figure(1)
plot(Temp,Cp,'linewidth',2,'color','r');
xlabel('Temperature [K]');
ylabel('Specific Heat [kJ]');
title(sprintf('Varying Specific Heat with Temperature Range of %s',Species_SP));
grid on
saveas(figure(1),'Specific Heat.jpg');
% Plot 2, Enthalpy (H) vs Temperature Range (Temp)
figure(2)
plot(Temp,H,'linewidth',2,'color','g');
xlabel('Temperature [K]');
ylabel('Enthalpy in [kJ/(mol)]');
title(sprintf('Varying Enthalpy with Temperature Range of %s',Species_SP));
grid on
saveas(figure(2),'Ethalpy.jpg');
% Plot 3, Entropy (S) vs Temperature Range (Temp)
figure(3)
plot(Temp,S,'linewidth',2,'color','b');
xlabel('Temperature [K]');
ylabel('Entropy in [kJ/(mol-K)]');
title(sprintf('Varying Entropy with Temperature Range of %s',Species_SP));
grid on
saveas(figure(3),'Entropy.jpg');
cd(cur_dir);
% Molecular weight
M = Molecular_weight(Species_SP)
f2 = fopen('molecular mass','w');
fprintf('%s n %s n %f n','species','Molecular mass',M)
fclose(f2)
end
Explanation of the code
f1=fopen('THERMO.dat','r');
gt=fgetl(f1);
Here, the code opens a file named 'THERMO.dat' for reading ('r'). It then reads the first line from the file and stores it in the variable gt.
global_temp=fgetl(f1);
t=strsplit(global_temp);
global_low_temp=str2num(t{2});
global_medium_temp=str2num(t{3});
global_high_temp=str2num(t{4});
These lines read the global temperature values from the file. The first line read earlier (global_temp) is split into separate pieces using spaces. The second, third, and fourth pieces are then converted to numbers and stored as global_low_temp, global_medium_temp, and global_high_temp.
Temp=linspace(global_low_temp,global_high_temp,1000);
R = 8.314;
This section calculates the temperature range Temp by creating 1000 equally spaced points between global_low_temp and global_high_temp. R is assigned the value of the universal gas constant.
for i = 1:3
gt=fgetl(f1);
end
These lines skip the first three lines of comments in the file by reading them and not storing the content.
for i = 1:53
gt=fgetl(f1);
A=strsplit(gt,' ');
Species_SP=(A{1});
This loop reads 53 lines from the file, splits each line into pieces using spaces, and stores the first piece as Species_SP
line_1=fgetl(f1);
a=strfind(line_1,'E');
Here, a line from the file is read and the strfind function is used to find the positions of the letter 'E' in the line. This is used to later extract coefficients from the line.
The code goes on to extract a series of coefficients from various lines using similar methods. These coefficients are used in subsequent calculations for specific heat, enthalpy, entropy, and molecular weight.
Cp = Specificheat(a1,a2,a3,a4,a5,a8,a9,a10,a11,a12,Temp,R,global_medium_temp);
This line calculates the specific heat (Cp) using the Specificheat function and the obtained coefficients.
H = Enthalpy(a1,a2,a3,a4,a5,a6,a8,a9,a10,a11,a12,a13,Temp,R,global_medium_temp);
This line calculates the enthalpy (H) using the Enthalpy function and the provided coefficients.
S = Entropy_calc(a1,a2,a3,a4,a5,a7,a8,a9,a10,a11,a12,a14,Temp,R,global_medium_temp);
This line calculates the entropy (S) using the Entropy_calc function and the given coefficients.
Molecularweight(i) = Molecular_weight(Species_SP);
This line calculates the molecular weight for the current species (Species_SP) using the Molecular_weight function and stores it in an array Molecularweight.
}Molecular_list = fopen('Molecular weight.txt','a+');
fprintf(Molecular_list,'Molecular weight of %s is %d \n',Species_SP,Molecularweight);
fclose(Molecular_list);
These lines open a file named 'Molecular weight.txt' in append mode ('a+'). They then write a line to the file indicating the molecular weight of the current species.
cur_dir=pwd;
mkdir(Species_SP);
cd(Species_SP);
Here, the current directory path is saved, a new directory is created with the name of the current species (Species_SP), and the working directory is changed to this new directory.
The code then generates three plots for specific heat, enthalpy, and entropy, and saves these plots in the current species directory.
M = Molecular_weight(Species_SP);
f2 = fopen('molecular mass','w');
fprintf('%s n %s n %f n','species','Molecular mass',M)
fclose(f2)
These lines calculate the molecular weight again, write the species name and its molecular mass to a file named 'molecular mass', and close the file.
Molecular weight of the different species which we have got in the command window are as follows:-
Species_SP =
'O'
Molecular Weight of O : molecular weight O :1.599900e+01
Molecular Weight of O : molecular weight O :1.599900e+01
M =
15.9990
species n Molecular mass n 15.999000 n
ans =
0
Species_SP =
'O2'
Molecular Weight of O2 : molecular weight O2 :3.199800e+01
Molecular Weight of O2 : molecular weight O2 :3.199800e+01
M =
31.9980
species n Molecular mass n 31.998000 n
ans =
0
Species_SP =
'H'
Molecular Weight of H : molecular weight H :1.008000e+00
Molecular Weight of H : molecular weight H :1.008000e+00
M =
1.0080
species n Molecular mass n 1.008000 n
ans =
0
Species_SP =
'H2'
Molecular Weight of H2 : molecular weight H2 :2.016000e+00
Molecular Weight of H2 : molecular weight H2 :2.016000e+00
M =
2.0160
species n Molecular mass n 2.016000 n
ans =
0
Species_SP =
'OH'
Molecular Weight of OH : molecular weight OH :1.700700e+01
Molecular Weight of OH : molecular weight OH :1.700700e+01
M =
17.0070
species n Molecular mass n 17.007000 n
ans =
0
Species_SP =
'H2O'
Molecular Weight of H2O : molecular weight H2O :1.801500e+01
Molecular Weight of H2O : molecular weight H2O :1.801500e+01
M =
18.0150
species n Molecular mass n 18.015000 n
ans =
0
Species_SP =
'HO2'
Molecular Weight of HO2 : molecular weight HO2 :3.300600e+01
Molecular Weight of HO2 : molecular weight HO2 :3.300600e+01
M =
33.0060
species n Molecular mass n 33.006000 n
ans =
0
Species_SP =
'H2O2'
Molecular Weight of H2O2 : molecular weight H2O2 :3.401400e+01
Molecular Weight of H2O2 : molecular weight H2O2 :3.401400e+01
M =
34.0140
species n Molecular mass n 34.014000 n
ans =
0
Species_SP =
'C'
Molecular Weight of C : molecular weight C :1.201100e+01
Molecular Weight of C : molecular weight C :1.201100e+01
M =
12.0110
species n Molecular mass n 12.011000 n
ans =
0
Species_SP =
'CH'
Molecular Weight of CH : molecular weight CH :1.301900e+01
Molecular Weight of CH : molecular weight CH :1.301900e+01
M =
13.0190
species n Molecular mass n 13.019000 n
ans =
0
Species_SP =
'CH2'
Molecular Weight of CH2 : molecular weight CH2 :1.402700e+01
Molecular Weight of CH2 : molecular weight CH2 :1.402700e+01
M =
14.0270
species n Molecular mass n 14.027000 n
ans =
0
Species_SP =
'CH2(S)'
Molecular Weight of CH2(S) : molecular weight CH2(S) :1.402700e+01
Molecular Weight of CH2(S) : molecular weight CH2(S) :1.402700e+01
M =
14.0270
species n Molecular mass n 14.027000 n
ans =
0
Species_SP =
'CH3'
Molecular Weight of CH3 : molecular weight CH3 :1.503500e+01
Molecular Weight of CH3 : molecular weight CH3 :1.503500e+01
M =
15.0350
species n Molecular mass n 15.035000 n
ans =
0
Species_SP =
'CH4'
Molecular Weight of CH4 : molecular weight CH4 :1.604300e+01
Molecular Weight of CH4 : molecular weight CH4 :1.604300e+01
M =
16.0430
species n Molecular mass n 16.043000 n
ans =
0
Species_SP =
'CO'
Molecular Weight of CO : molecular weight CO :2.801000e+01
Molecular Weight of CO : molecular weight CO :2.801000e+01
M =
28.0100
species n Molecular mass n 28.010000 n
ans =
0
Species_SP =
'CO2'
Molecular Weight of CO2 : molecular weight CO2 :4.400900e+01
Molecular Weight of CO2 : molecular weight CO2 :4.400900e+01
M =
44.0090
species n Molecular mass n 44.009000 n
ans =
0
Species_SP =
'HCO'
Molecular Weight of HCO : molecular weight HCO :2.901800e+01
Molecular Weight of HCO : molecular weight HCO :2.901800e+01
M =
29.0180
species n Molecular mass n 29.018000 n
ans =
0
Species_SP =
'CH2O'
Molecular Weight of CH2O : molecular weight CH2O :3.002600e+01
Molecular Weight of CH2O : molecular weight CH2O :3.002600e+01
M =
30.0260
species n Molecular mass n 30.026000 n
ans =
0
Species_SP =
'CH2OH'
Molecular Weight of CH2OH : molecular weight CH2OH :3.103400e+01
Molecular Weight of CH2OH : molecular weight CH2OH :3.103400e+01
M =
31.0340
species n Molecular mass n 31.034000 n
ans =
0
Species_SP =
'CH3O'
Molecular Weight of CH3O : molecular weight CH3O :3.103400e+01
Molecular Weight of CH3O : molecular weight CH3O :3.103400e+01
M =
31.0340
species n Molecular mass n 31.034000 n
ans =
0
Species_SP =
'CH3OH'
Molecular Weight of CH3OH : molecular weight CH3OH :3.204200e+01
Molecular Weight of CH3OH : molecular weight CH3OH :3.204200e+01
M =
32.0420
species n Molecular mass n 32.042000 n
ans =
0
Species_SP =
'C2H'
Molecular Weight of C2H : molecular weight C2H :2.503000e+01
Molecular Weight of C2H : molecular weight C2H :2.503000e+01
M =
25.0300
species n Molecular mass n 25.030000 n
ans =
0
Species_SP =
'C2H2'
Molecular Weight of C2H2 : molecular weight C2H2 :2.603800e+01
Molecular Weight of C2H2 : molecular weight C2H2 :2.603800e+01
M =
26.0380
species n Molecular mass n 26.038000 n
ans =
0
Species_SP =
'C2H3'
Molecular Weight of C2H3 : molecular weight C2H3 :2.704600e+01
Molecular Weight of C2H3 : molecular weight C2H3 :2.704600e+01
M =
27.0460
species n Molecular mass n 27.046000 n
ans =
0
Species_SP =
'C2H4'
Molecular Weight of C2H4 : molecular weight C2H4 :2.805400e+01
Molecular Weight of C2H4 : molecular weight C2H4 :2.805400e+01
M =
28.0540
species n Molecular mass n 28.054000 n
ans =
0
Species_SP =
'C2H5'
Molecular Weight of C2H5 : molecular weight C2H5 :2.906200e+01
Molecular Weight of C2H5 : molecular weight C2H5 :2.906200e+01
M =
29.0620
species n Molecular mass n 29.062000 n
ans =
0
Species_SP =
'C2H6'
Molecular Weight of C2H6 : molecular weight C2H6 :3.007000e+01
Molecular Weight of C2H6 : molecular weight C2H6 :3.007000e+01
M =
30.0700
species n Molecular mass n 30.070000 n
ans =
0
Species_SP =
'CH2CO'
Molecular Weight of CH2CO : molecular weight CH2CO :4.203700e+01
Molecular Weight of CH2CO : molecular weight CH2CO :4.203700e+01
M =
42.0370
species n Molecular mass n 42.037000 n
ans =
0
Species_SP =
'HCCO'
Molecular Weight of HCCO : molecular weight HCCO :4.102900e+01
Molecular Weight of HCCO : molecular weight HCCO :4.102900e+01
M =
41.0290
species n Molecular mass n 41.029000 n
ans =
0
Species_SP =
'HCCOH'
Molecular Weight of HCCOH : molecular weight HCCOH :4.203700e+01
Molecular Weight of HCCOH : molecular weight HCCOH :4.203700e+01
M =
42.0370
species n Molecular mass n 42.037000 n
ans =
0
Species_SP =
'H2CN'
Molecular Weight of H2CN : molecular weight H2CN :2.803400e+01
Molecular Weight of H2CN : molecular weight H2CN :2.803400e+01
M =
28.0340
species n Molecular mass n 28.034000 n
ans =
0
Species_SP =
'HCN'
Molecular Weight of HCN : molecular weight HCN :2.702600e+01
Molecular Weight of HCN : molecular weight HCN :2.702600e+01
M =
27.0260
species n Molecular mass n 27.026000 n
ans =
0
Species_SP =
'HNO'
Molecular Weight of HNO : molecular weight HNO :3.101400e+01
Molecular Weight of HNO : molecular weight HNO :3.101400e+01
M =
31.0140
species n Molecular mass n 31.014000 n
ans =
0
Species_SP =
'N'
Molecular Weight of N : molecular weight N :1.400700e+01
Molecular Weight of N : molecular weight N :1.400700e+01
M =
14.0070
species n Molecular mass n 14.007000 n
ans =
0
Species_SP =
'NNH'
Molecular Weight of NNH : molecular weight NNH :2.902200e+01
Molecular Weight of NNH : molecular weight NNH :2.902200e+01
M =
29.0220
species n Molecular mass n 29.022000 n
ans =
0
Species_SP =
'N2O'
Molecular Weight of N2O : molecular weight N2O :4.401300e+01
Molecular Weight of N2O : molecular weight N2O :4.401300e+01
M =
44.0130
species n Molecular mass n 44.013000 n
ans =
0
Species_SP =
'NH'
Molecular Weight of NH : molecular weight NH :1.501500e+01
Molecular Weight of NH : molecular weight NH :1.501500e+01
M =
15.0150
species n Molecular mass n 15.015000 n
ans =
0
Species_SP =
'NH2'
Molecular Weight of NH2 : molecular weight NH2 :1.602300e+01
Molecular Weight of NH2 : molecular weight NH2 :1.602300e+01
M =
16.0230
species n Molecular mass n 16.023000 n
ans =
0
Species_SP =
'NH3'
Molecular Weight of NH3 : molecular weight NH3 :1.703100e+01
Molecular Weight of NH3 : molecular weight NH3 :1.703100e+01
M =
17.0310
species n Molecular mass n 17.031000 n
ans =
0
Species_SP =
'NO'
Molecular Weight of NO : molecular weight NO :3.000600e+01
Molecular Weight of NO : molecular weight NO :3.000600e+01
M =
30.0060
species n Molecular mass n 30.006000 n
ans =
0
Species_SP =
'NO2'
Molecular Weight of NO2 : molecular weight NO2 :4.600500e+01
Molecular Weight of NO2 : molecular weight NO2 :4.600500e+01
M =
46.0050
species n Molecular mass n 46.005000 n
ans =
0
Species_SP =
'HCNO'
Molecular Weight of HCNO : molecular weight HCNO :4.302500e+01
Molecular Weight of HCNO : molecular weight HCNO :4.302500e+01
M =
43.0250
species n Molecular mass n 43.025000 n
ans =
0
Species_SP =
'HOCN'
Molecular Weight of HOCN : molecular weight HOCN :4.302500e+01
Molecular Weight of HOCN : molecular weight HOCN :4.302500e+01
M =
43.0250
species n Molecular mass n 43.025000 n
ans =
0
Species_SP =
'HNCO'
Molecular Weight of HNCO : molecular weight HNCO :4.302500e+01
Molecular Weight of HNCO : molecular weight HNCO :4.302500e+01
M =
43.0250
species n Molecular mass n 43.025000 n
ans =
0
Species_SP =
'NCO'
Molecular Weight of NCO : molecular weight NCO :4.201700e+01
Molecular Weight of NCO : molecular weight NCO :4.201700e+01
M =
42.0170
species n Molecular mass n 42.017000 n
ans =
0
Species_SP =
'CN'
Molecular Weight of CN : molecular weight CN :2.601800e+01
Molecular Weight of CN : molecular weight CN :2.601800e+01
M =
26.0180
species n Molecular mass n 26.018000 n
ans =
0
Species_SP =
'HCNN'
Molecular Weight of HCNN : molecular weight HCNN :4.103300e+01
Molecular Weight of HCNN : molecular weight HCNN :4.103300e+01
M =
41.0330
species n Molecular mass n 41.033000 n
ans =
0
Species_SP =
'N2'
Molecular Weight of N2 : molecular weight N2 :2.801400e+01
Molecular Weight of N2 : molecular weight N2 :2.801400e+01
M =
28.0140
species n Molecular mass n 28.014000 n
ans =
0
Species_SP =
'AR'
Molecular Weight of AR : molecular weight AR :3.994800e+01
Molecular Weight of AR : molecular weight AR :3.994800e+01
M =
39.9480
species n Molecular mass n 39.948000 n
ans =
0
Species_SP =
'C3H8'
Molecular Weight of C3H8 : molecular weight C3H8 :4.409700e+01
Molecular Weight of C3H8 : molecular weight C3H8 :4.409700e+01
M =
44.0970
species n Molecular mass n 44.097000 n
ans =
0
Species_SP =
'C3H7'
Molecular Weight of C3H7 : molecular weight C3H7 :4.308900e+01
Molecular Weight of C3H7 : molecular weight C3H7 :4.308900e+01
M =
43.0890
species n Molecular mass n 43.089000 n
ans =
0
Species_SP =
'CH3CHO'
Molecular Weight of CH3CHO : molecular weight CH3CHO :4.405300e+01
Molecular Weight of CH3CHO : molecular weight CH3CHO :4.405300e+01
M =
44.0530
species n Molecular mass n 44.053000 n
ans =
0
Species_SP =
'CH2CHO'
Molecular Weight of CH2CHO : molecular weight CH2CHO :4.304500e+01
Molecular Weight of CH2CHO : molecular weight CH2CHO :4.304500e+01
M =
43.0450
species n Molecular mass n 43.045000 n
ans =
0
>>
Results:
Specific Heat, Entropy and Enthalpy Plots for O2, N2 and Co2 species :
1. Plots for O2
a. Variation of Specific heat with the temperature of O2

b. Variation of Entropy with the temperature of O2

c. Variation of Enthalpy with the Temperature of O2

2. Plots of N2
a. Variation of specific heat with temperature of N2

b. Variation of Entropy with the Temperature of N2

c. Variation of Enthalpy with the Temperature of N2

3. Plots of CO2
a. variation of specific heat with the temperature of CO2

b. variation of enthalpy with the temp of co2

c. Variation of Entropy with the temperature of CO2

Screenshots of the Molecular weight of the species in the Command Window



























Screenshot of the window where all the folders are saved

Screenshot of the workspace also where all the values are stored:-

Conclusion:
The coefficients required to assess various thermodynamic parameters for distinct species are derived from the NASA thermodynamic data file using MATLAB code. For each species, the specific heat, enthalpy, and entropy are computed and shown against the temperature range in the area. For each species, the molecular weight is computed.