Menu

Executive Programs

Workshops

Projects

Blogs

Careers

Placements

Student Reviews


For Business


More

Academic Training

Informative Articles

Find Jobs

We are Hiring!


All Courses

Choose a category

Loading...

All Courses

All Courses

logo

Loading...
Executive Programs
Workshops
For Business

Success Stories

Placements

Student Reviews

More

Projects

Blogs

Academic Training

Find Jobs

Informative Articles

We're Hiring!

phone+91 9342691281Log in
  1. Home/
  2. Yogessvaran T/
  3. Project 1 - Parsing NASA thermodynamic data

Project 1 - Parsing NASA thermodynamic data

Where, Cp=specific heat R =molar gas constant T=temperature S=Entropy H=Enthalpy a=coefficients   BODY OF THE CONTENT: Code for calling function Specific_heat(): function Cp = Specific_heat(a1,a2,a3,a4,a5,a8,a9,a10,a11,a12,T,R,global_midtemp) %calculating specific_heat for higher and lower temperature respectively if(T>=…

  • MATLAB
  • Yogessvaran T

    updated on 14 Aug 2022

Where,

Cp=specific heat

R =molar gas constant

T=temperature

S=Entropy

H=Enthalpy

a=coefficients

 

BODY OF THE CONTENT:

Code for calling function Specific_heat():

function Cp = Specific_heat(a1,a2,a3,a4,a5,a8,a9,a10,a11,a12,T,R,global_midtemp)

%calculating specific_heat for higher and lower temperature respectively

if(T>= global_midtemp)

Cp=R*(a1+(a2*T)+(a3*(T).^2)+(a4*(T).^3)+(a5*(T).^4));

else

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

end

end

 

Code for calling function Enthalpy( ):

function H = Enthalpy(a1,a2,a3,a4,a5,a6,a8,a9,a10,a11,a12,a13,T,R,global_midtemp)

%calculating enthalpy for higher and lower temperature respectively

if(T>=global_midtemp)

H=R*((a1*T)+((a2*(T).^2)/2)+((a3*(T).^3)/3)+((a4*(T).^4)/4)+((a5*(T).^5)/5)+a6);

else

H=R*((a8*T)+((a9*(T).^2)/2)+((a10*(T).^3)/3)+((a11*(T).^4)/4)+((a12*(T).^5)/5)+a13);

end

end

 

Code for calling function Entropy( ):

function S=Entropy(a1,a2,a3,a4,a5,a7,a8,a9,a10,a11,a12,a14,T,R,global_midtemp)

%calculating entropy for higher and lower temperature respectively

if(T>= global_midtemp)

S=R*(a1.log(T)+(a2*T)+((a3(T).^2)/2)+((a4*(T).^3)/3)+((a5*(T).^4)/5)+a7);

else

S=R*(a8.log(T)+(a9*T)+((a10(T).^2)/2)+((a11*(T).^3)/3)+((a12*(T).^4)/4));

end

end

Code for calculating molecular weight by calling function wt( ):

function Molecular_weight=wt(species_name)

Elements=['H' 'C' 'O' 'N' 'A' 'S'];

Atomic_weight =[1 12 16 14 40 32];

species=upper(species_name)

Molecular_weight=0;

for i=1:length(species)

for j=1:length(Elements)

if strcmp(species(i),Elements(j))

Molecular_weight=Molecular_weight+Atomic_weight(j);

k=j;

else

n=str2double(species(i));

if (n>1)

Molecular_weight=Molecular_weight+Atomic_weight(k)*(n-1);

break

end

 

MAIN CODE:

clear all

close all

clc

%R=molar gas constant

R=8.314;

%syntax to open the file THERMO.dat

f1=fopen('THERMO.dat','r')

%To read lines

l1=fgetl(f1);

l2=fgetl(f1);

value=strsplit(l2,' ');

%To get global temperatures from file in number form

global_lowtemp=str2num(value{2})

global_midtemp=str2num(value{3})

global_hightemp=str2num(value{4})

%temperature range

T=linspace(global_lowtemp,global_hightemp,1000);

%skipping these 3 lines

l3=fgetl(f1);

l4=fgetl(f1);

l5=fgetl(f1);

%Reading species ,calcuating cp,h,s and plotting

for i=1:53

tline=fgetl(f1);

A=strsplit(tline,' ');

name_of_species=(A{1});

lowtemp= str2num(A{end-3});

midtemp=str2num(A{end-2});

hightemp=str2num(A{end-1});

%Finding 7 higher coefficients and 7 lower coefficients

tline1=fgetl(f1);

a=findstr(tline1,'E');

a1=tline1(1:a(1)+3);

a1=str2num(a1);

a2=tline1(a(1)+4:a(2)+3);

a2=str2num(a2);

a3=tline1(a(2)+4:a(3)+3);

a3=str2num(a3);

a4=tline1(a(3)+4:a(4)+3);

a4=str2num(a4);

a5=tline1(a(4)+4:a(5)+3);

a5=str2num(a5);

tline2=fgetl(f1);

a=findstr(tline2,'E');

a6=tline2(1:a(1)+3);

a6=str2num(a6);

a7=tline2(a(1)+4:a(2)+3);

a7=str2num(a7);

a8=tline2(a(2)+4:a(3)+3);

a8=str2num(a8);

a9=tline2(a(3)+4:a(4)+3);

a9=str2num(a9);

a10=tline2(a(4)+4:a(5)+3);

a10=str2num(a10);


tline3=fgetl(f1);

a=findstr(tline3,'E');

a11=tline3(1:a(1)+3);

a11=str2num(a11);

a12=tline3(a(1)+4:a(2)+3);

a12=str2num(a12);

a13=tline3(a(2)+4:a(3)+3);

a13=str2num(a13);

a14=tline3(a(3)+4:a(4)+3);

a14=str2num(a14);

%calculate specific heat(cp),Enthalpy(H),Entropy(S)

Cp=Specific_heat(a1,a2,a3,a4,a5,a8,a9,a10,a11,a12,T,R,global_midtemp);

H=Enthalpy(a1,a2,a3,a4,a5,a6,a8,a9,a10,a11,a12,a13,T,R,global_midtemp);

S=Entropy(a1,a2,a3,a4,a5,a7,a8,a9,a10,a11,a12,a14,T,R,global_midtemp);


%calculating molecular weight and printing it.

Molecular_weight=wt(name_of_species);

fprintf('molecular weight of %s= %f\n',name_of_species,Molecular_weight);

%PLOTTING CP,H,T

cd('C:\Users\hhh\Desktop\matlab\NASA FILES')

%creating the folder

mkdir(name_of_species);

cd(name_of_species);


%plotting T vs cp

figure(1)

plot(T,Cp,'linewidth',5,'color','r')

xlabel('Temperature(T)')

ylabel('Specific heat(cp)')

grid on

title(name_of_species)

saveas(figure(1),'specific heat.jpg');



%Plotting T vs H

figure(2)

plot(T,H,'linewidth',5,'color','b')

xlabel('Temperature(T)')

ylabel('Enthalpy(H)')

grid on

title(name_of_species)

saveas(figure(2),'Enthalpy.jpg');

 

%Plotting T vs S

figure(3)

plot(T,S,'linewidth',5,'color','y')

xlabel('Temperature(T)')

ylabel('Entropy(S)')

grid on

title(name_of_species)

saveas(figure(3),'Entropy.jpg');

cd('C:\Users\hhh\Documents\MATLAB\nasa files')

end

 

Explanation for code:

Initially the value of ‘R’ is being defined.

Then we use a command to open the file ‘THERMO.dat’ .

Further we use the ‘fgetl’ to start reading the lines and after reading the first two lines, from the second line converting the

strings to numbers and assigning global (low,mid and high) temperatures.

Then we have written a command to get the temperature range for calculation and plotting purpose.

Then again using the fgetl command to go to thel next 3 lines and skipping it.

Then we use a for loop to get 53 species and their temperatures (low, mid, high) and the 14 coefficients.

In the for loop we again use the fgetl command and then the next line is read and from that line the species name, the three

local temperatures are read and stored.

Then we use fgetl command to go to further line and get the first 7 coefficients and store them. Similarly using the fgetl

command we move to the next two lines and get the remaining coefficients.

Then after getting the 14 coefficients, we use these coefficients and by calling the functions we calculate cp,H,S.

Further we use the Molecular weight function and calculate molecular weight for that species.

Further I have used a command to change the directory so that I can save the files at a particular location.After changing the

directory I have used ‘mkdir' to create a new folder with the name of the current species and then a ‘cd’ command to make

mkdir as the current directory.

Then further we use plot command to plot temperature vs (cp,enthalpy,entropy) .

In this plotting we use the figure command to get the three different plots and saveas command to save the figures in the

Then again we change our directory to again start the loop. So the loop continues to function till we get all the 53 species

and then gets terminated.

Leave a comment

Thanks for choosing to leave a comment. Please keep in mind that all the comments are moderated as per our comment policy, and your email will not be published for privacy reasons. Please leave a personal & meaningful conversation.

Please  login to add a comment

Other comments...

No comments yet!
Be the first to add a comment

Read more Projects by Yogessvaran T (50)

Week 14 challenge

Objective:

ASSEMBLY OF BUTTERFLY VALVE:- 1.All the parts that are saved in the required folder is opened in the Add components tool box. 2.Now using the Move option and Assembly Constraints option the different parts are joined together with the help of Align,touch,infer/Axis operations. 3. Finally,the assembly of butterfly valve…

calendar

18 Feb 2023 09:34 AM IST

    Read more

    Project - Position control of mass spring damper system

    Objective:

    To design a closed loop control scheme for a DC motor the following changes need to be done in the model in the previously created model. Speed is the controllable parameter, so we will set the reference speed in step block as 10,20, 40 whichever you want.  Subtract the actual speed from the reference speed to generate…

    calendar

    21 Jan 2023 10:29 AM IST

    • MATLAB
    Read more

    Project - Analysis of a practical automotive wiring circuit

    Objective:

    Identify each of the major elements in the above automotive wiring diagram.  Ans: Major Elements in the above automotive wiring diagram are - Genarator,                   Battery,              …

    calendar

    14 Dec 2022 03:37 AM IST

      Read more

      Week 6 - Data analysis

      Objective:

      -

      calendar

      04 Dec 2022 11:06 AM IST

        Read more

        Schedule a counselling session

        Please enter your name
        Please enter a valid email
        Please enter a valid number

        Related Courses

        coursecardcoursetype

        Post Graduate Program in Computer Vision for Autonomous Vehicles

        4.7

        223 Hours of Content

        coursecardcoursetype

        Post Graduate Program in Autonomous Vehicles

        Recently launched

        88 Hours of Content

        coursecard

        Simulation and Design of Power Converters for EV using MATLAB and Simulink

        4.9

        22 Hours of Content

        coursecard

        Introduction to Hybrid Electric Vehicle using MATLAB and Simulink

        4.8

        23 Hours of Content

        coursecardcoursetype

        Mechanical Engineering Essentials Program

        4.7

        21 Hours of Content

        Schedule a counselling session

        Please enter your name
        Please enter a valid email
        Please enter a valid number

                    Do You Want To Showcase Your Technical Skills?
                    Sign-Up for our projects.