All Courses
All Courses
Courses by Software
Courses by Semester
Courses by Domain
Tool-focused Courses
Machine learning
POPULAR COURSES
Success Stories
Aim: To simulate basic Rankine Cycle Objective: Creating a Rankine Cycle Simulator using OCTAVE/MATLAB. Calculating the state points of the Rankine Cycle based on user inputs. Then plotting the corresponding T-S and H-S plots for the given set of inputs. Rankine cycle: The different processes here are: Process 1-2: Isentropic…
Sanket Nehete
updated on 01 Sep 2021
Aim: To simulate basic Rankine Cycle
Objective:
Rankine cycle:
The different processes here are:
Process 1-2: Isentropic Expansion in the turbine
Process 2-3: Isobaric Heat Rejection by the condenser
Process 3-4: Isentropic Compression in the pump
Process 4-1: Isobaric Heat Addition by the boiler
Here the given inputs values are:
Turbine inlet temperature = 400oC
Turbine Inlet Pressure = 30 bars
Turbine Outlet Pressure = 0.05 bars = Condenser Inlet Pressure
MATLAB Program:
clear all
close all
clc
%Inputs
disp('Rankine Cycle Simulator')
disp('1-2 corresponds to isentropic expansion in turbine')
disp('2-3 corresponds to constant pressure heat rejection in condenser')
disp('3-4 orresponds to isentropic compression in pump')
disp('4-1 corresponds to constant pressure heat addition in boiler')
fprintf('n')
p1 = input('Enter the pressure at the inlet of turbine (bar):');
t1 = input('Enter the temp at the inlet of the turbine (degree C):');
p2 = input('Enter the pressure at the inlet of condensor (bar):');
%At state point 1
h1 = XSteam('h_pT', p1, t1);
s1 = XSteam('s_pT', p1, t1);
%At state point 1
%Since 1-2 is isentropic process
s2=s1;
sf2 = XSteam('sL_p', p2);
sg2 = XSteam('sV_p', p2);
sfg2 = (sg2 - sf2);
%Finding dryness fraction (s2 = sf2 + x2* sfg2)
x2 = (s2 - sf2)/sfg2;
x2<1;
disp('Steam is wet at the inlet of the condenser')
fprintf('n')
%Finding Enthalpy
hf2 = XSteam ('hL_p',p2);
hg2 = XSteam ('hV_p',p2);
hfg2 = hg2 - hf2;
h2 = hf2 + x2*hfg2;
t2 = XSteam('Tsat_p',p2);
%Workdone by Turbine
wt = h1 - h2;
%For state point 3
%Work done by pump
p3 = p2;
vf3 = XSteam('vL_p',p3);
v3 = vf3;
wp = v3*(p1 - p2)*100;
t3 = XSteam('Tsat_p',p2);
h3 = XSteam('hL_p', p2);
s3 = XSteam('sL_p',p2);
%At point 4
p4 = p1;
h4 = wp + h3;
t4 = XSteam('T_ph',p4, h4);
s4 = s3;
%Heat supplied to boiler
qs = h1 - h4;
%Heat Rejected by condenser
qr = h2 - h3;
%Work ratios and efficiency of turbine
w_net = wt - wp;
net_work_ratio = w_net/wt;
efficiency = w_net/qs;
%back work ratio
back_work_ratio = wp/wt;
%Specific Steam Consumption
SSC = 3600/w_net;
tf_sat = XSteam('Tsat_p',p1);
sf_sat = XSteam('sL_p',p1);
hf_sat = XSteam('hL_p',p1);
sg_sat = XSteam('sV_p',p1);
hg_sat = XSteam('hV_p',p1);
%Plotting saturation liquid and vapour lines
temp_range = linspace(1,373,1000);
for i = 1:length(temp_range)
S_L(i) = XSteam('sL_T',temp_range(i));
S_V(i) = XSteam('sV_T', temp_range(i));
end
%Plotting T-S diagram
figure(1)
hold on
plot(S_L,temp_range,'b')
plot(S_V,temp_range,'b')
plot([s1 s2], [t1 t2],'r')
plot([s2 s3], [t2 t3],'g')
plot([s3 s4], [t3 t4],'b')
%Plotting curved constant pressure line 3 to 4
t_cons_p = linspace(t4, XSteam('Tsat_p',p1),30);
for i = 1:length(t_cons_p)
S(i) = XSteam('s_pt',p1,t_cons_p(i));
end
plot(S,t_cons_p,'k')
t0_cons_p = linspace(XSteam('Tsat_p',p1),t1,300);
for i=1:length(t0_cons_p)
S0(i)=XSteam('s_pt',p1,t0_cons_p(i));
end
plot(S0,t0_cons_p,'k')
%Plotting the straight line of the phase change region
plot([sf_sat sg_sat], [tf_sat tf_sat], 'k')
title('T-S diagram')
xlabel('Entropy kJ/kgK')
ylabel('Temperature degree C')
axis([0 10 0 700])
legend('Saturation curve L', 'Saturation curve R', 'Turbine', 'Condenser', 'Pump', 'Boiler', 'location','northwest')
%Plotting H-S diagram
figure(2)
hold on
%Plotting saturation curves
temp_range1 = linspace(1, 373, 1000);
for i=1:length(temp_range1)
H_L1(i) = XSteam('hL_T', temp_range1(i));
H_V1(i) = XSteam('hV_T', temp_range1(i));
end
plot(S_L, H_L1,'b')
plot(S_V, H_V1,'b')
plot([s1 s2], [h1 h2],'r')
plot([s2 s3], [h2 h3],'g')
plot([s3 s4], [h3 h4],'r')
%For plotting the line between the pump and boiler
s_pump = linspace(s3, s1, 1000);
for i =1:length(s_pump)
h_pump(i)=XSteam('h_ps',p1,s_pump(i));
end
plot(s_pump, h_pump, 'k')
title('H-S Diagram')
xlabel('Entropy kJ/kgK')
ylabel('Enthalpy kJ/kgK')
legend('Saturation curve L','Saturation curve R','Turbine','Condenser','Pump','Boiler','location','northwest')
%Displaying the value of state point variables at each point
P_final = [p1 p2 p3 p4];
T_final = [t1 t2 t3 t4];
H_final = [h1 h2 h3 h4];
S_final = [s1 s2 s3 s4];
for i=1:4
fprintf('At state point %d n', i)
fprintf('Pressure p%d : %4.4f (bar) n',i,P_final(i))
fprintf('Temperature t%d : %4.4f (degree C) n',i,T_final(i))
fprintf('Enthalpy h%d : %4.4f (kJ/kgK) n',i,H_final(i))
fprintf('Entropy s%d : %4.4f (kJ/kg) n',i,S_final(i))
fprintf('n')
end
fprintf('The net work ratio is: %f n', net_work_ratio)
fprintf('The back work ratio is: %f n', back_work_ratio)
fprintf('The entered values are not valid as the steam is either Saturated or Super-saturated at the inlet of the condenser n')
fprintf('Enter the valid values by running the program again n')
return;
Explanation for the code:
Outputs:
Command Window Output:
At state point 1 nPressure p1 : 30.0000 (bar)
Temperature t1 : 400.0000 (degree C)
Enthalpy h1 : 3231.5710 (kJ/kgK)
Entropy s1 : 6.9233 (kJ/kg)
At state point 2 nPressure p2 : 0.0500 (bar) n
Temperature t2 : 32.8755 (degree C) n
Enthalpy h2 : 2110.7082 (kJ/kgK) n
Entropy s2 : 6.9233 (kJ/kg) nn
At state point 3 nPressure p3 : 0.0500 (bar) n
Temperature t3 : 32.8755 (degree C) n
Enthalpy h3 : 137.7651 (kJ/kgK) n
Entropy s3 : 0.4763 (kJ/kg) nn
At state point 4 nPressure p4 : 30.0000 (bar) n
Temperature t4 : 32.9639 (degree C) n
Enthalpy h4 : 140.7761 (kJ/kgK) n
Entropy s4 : 0.4763 (kJ/kg) nn
The net work ratio is: 0.997314 n
The back work ratio is: 0.002686
Workspace Output:
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.
Other comments...
Week 7 State of charge estimation
Aim1: Simulate the 3 test cases from harness dashboard and write a detailed report on the results Solution: Battery Management System (BMS) – A battery management system is the electronic system that manages the rechargeable battery, such as by protecting the battery from operating outside its safe operating area, monitoring…
23 Nov 2021 07:00 AM IST
Project 2-Highway Assistant-Lane Changing Assistant
AIM: To develop an algorithm for one of the features of the Highway Lane Changing Assistance, create a Simulink Data Dictionary for the given signals data lists, develop a model advisor report and generate a C code for it using AUTOSAR coder in SIMULINK Objective: Model development in MATLAB Simulink as per MBD guidelines…
16 Oct 2021 06:49 PM IST
Project 1- Traffic Jam Assistant Feature
Aim: To create a Simulink Data Dictionary, develop an algorithm for one of the features of the Traffic jam Assistance and generate a C code for it using Simulink. Objective: Model Development as per the MBD guidelines Creation of Simulink Data Dictionary Code generation using Embedded Coder Generating Model Advisor Report…
13 Oct 2021 11:22 AM IST
Project 1 (Mini Project on Vehicle Direction Detection
Aim: To make a model for vehicle direction determination and making the sldd file Introduction: Identifying the direction of the vehicle is one of the important & diverse features in Autonomous driving & Advanced Driver Assistance Features. This particular sub-feature of identifying the direction of vehicle…
05 Oct 2021 07:56 AM IST
Related Courses
Skill-Lync offers industry relevant advanced engineering courses for engineering students by partnering with industry experts.
© 2025 Skill-Lync Inc. All Rights Reserved.