Project 2 - Rankine cycle Simulator
MATLAB PROGRAM FOR RANKINE SIMULATOR:
clear all
close all
clc
disp('RANKINE CYCLE');
disp('1-2 is Constant pressure heat addition in the boiler');
disp('2-3 is Isentropic Expansion in the Turbine') ;
disp('3-4 is Constant pressure heat removal in the Condenser');
disp('4-1 is Isentropic compression in the pump') ;
%Entering the input data for calculation for state point
p1 = 30; % pressure at turbine
T1 = 400; %temperature at turbine
p2 = 0.05; %pressure at condenser
% taking data from Xsteam file for State point 1
h1 = XSteam('h_pT', p1, T1); % Extracting Enthalpy at state pt 1
s1 = XSteam('S_pT', p1, T1); % Similarly
%taking data from Xsteam file for State point 2
s2 = s1; %Because of Isentropic Expansion
sf2= XSteam('sL_p', p2); %Saturated Liquid Entropy at pressure 2
sg2= XSteam('sV_p', p2); %Saturated Vapour Entropy at pressure 2
x2 = (s2-sf2)/(sg2-sf2); %Vapour fraction at state point 2
hf2 = XSteam('hL_p', p2); %Saturated Liquid Enthalpy at pressure 2
hg2 = XSteam( 'hV_p',p2); %Saturated Liquid Enthalpy at pressure 2
h2 = hf2 + (x2*(hg2-hf2)); %Enthalpy at state point 2
%taking data from Xsteam file for State point 3
p3 = p2; %Constant pressure Heat removal process
s3= XSteam('sL_p',p3); %Saturated Vapour Entropy at pressure 3
h3 = XSteam('hL_p',p3); %Saturated Liquid Enthalpy at pressure 3
%%taking data from Xsteam file for State point 4
s4 = s3;
p4 = p1;
% Work done by turbine
Wt = h1-h2;
% Work done to run pump
v3 = XSteam( 'vL_p', p3) ;
Wp = v3*(p4-p3)*100;
h4 = h3+Wp;
%Net work
Wnet = Wt-Wp;
%Heat into the system
Qin = h1-h4;
%Heat out of the system
Qout = h2-h3;
%Thermal efficiency
thermal_eff = (Wnet/Qin)*100;
%Specific Steam Consumption
%SSC = mass flow rate/power
sps = (3600/Wnet) ;
%back ratio work
BW=(Wp/Wt);
% Calculation of Temperatures at the state points 2, 3, 4
T3 = XSteam ('Tsat_p',p3) ;
T2 = T3;
Cp4 = XSteam('Cp_ps', p4, s4);
Cv4 = XSteam('Cv_ps', p4, s4);
k = Cp4/Cv4;
T4 = T3/((p3/p4)^((k-1)/k));
%Calculating Temperature, Entropy and Enthalpy at the vapour and liquid
%line for plotting
T6 = XSteam ('Tsat_p',p1) ;
s5 = XSteam ('sL_p',p1);
s6 = XSteam ('sV_p',p1);
h5 = XSteam ('hL_p',p1);
h6 = XSteam ('hV_p',p1);
T5 = T6;
%Plotting the saturation curve
T= linspace(1,560,1000);
for i = 1:length(T)
sf(i) = XSteam('sL_T',T(i));
sg(i) = XSteam('sV_T',T(i));
hf(i) = XSteam('hL_T',T(i));
hg(i) = XSteam('hV_T',T(i));
end
%Plotting T-s diagram
figure(1)
hold on
plot(sf,T,'color','r','Linewidth',2)
plot(sg,T,'color','r','linewidth',2)
plot([s1 s2],[T1 T2],'color','b','linewidth',3)
plot([s2 s3], [T2 T3],'color','b','linewidth',3)
plot([s3 s4], [T3 T4],'color','b','linewidth',3)
plot([s4 s5], [T4 T5],'color','b','linewidth',3)
plot([s5 s6], [T5 T6],'color','b','linewidth',3)
sc1 = linspace(s6, s1, 1000);
for j = 1:length(sc1)
Tc(j) = XSteam('T_ps',p1,sc1(j));
end
plot(sc1, Tc,'colo','b','linewidth', 3)
text(s1+0.1, T1,'1')
text(s2+0.1, T2,'2')
text(s3, T3-20,'3')
text(s4, T4+20,'4')
title('Temperature vs Entropy')
xlabel( 'Entropy, S (Kj/kgk')
ylabel( 'Temperature (degree C)')
legend ('Saturation curve' )
%Plotting h-s diagram
figure(2)
hold on
plot(sf, hf,'color','b','linewidth',2)
plot(sg, hg,'color','b','linewidth',2)
plot([s1 s2], [h1 h2],'color','r','linewidth',3)
plot([s2 s3], [h2 h3],'color','r','linewidth',3)
plot([s3 s4], [h3 h4],'color','r','linewidth',3)
hc = linspace (h4,h5,100);
for r = 1:length(hc)
sch(r) = XSteam('s_ph',p1,hc(r));
end
plot(sch, hc,'color','r','linewidth', 3)
plot([s5 s6], [h5 h6],'color','r', 'linewidth', 3)
for m = 1: length(sc1)
hc1 (m) = XSteam('h_ps', p1, sc1(m));
end
plot(sc1, hc1,'color','r','linewidth', 3)
text(s1+0.1, h1,'1')
text(s2+0.1, h2,'2')
text (s3, h3-100,'3')
text(s4, h4 +200,'4')
title('Enthalpy vs Entropy')
xlabel( 'Entropy,S (KJ/kgk')
ylabel('Enthalpy,H (KJ/kg)')
legend('Saturation curve', 'location', 'northwest')
% Displaving the Results in the Command Window:
disp('Results');
p1= p1;
T1= T1;
p2= p2;
disp('At stage point 1');
n1 = sprintf ('P1 is %.3f bar', p1);
disp(n1);
n2 = sprintf ('T1 is %.3f C', T1);
disp(n2);
n3 = sprintf('h1 is %.3f kJ/kg' ,h1);
disp(n3);
n4 = sprintf('s1 is %.3f kJ/kgK', s1);
disp(n4);
disp('At stage point 2');
n11 = sprintf( 'P2 is %.3f bar', p2);
disp(n11);
n21 = sprintf ('T2 is %.3f C', T2);
disp(n21);
n31 = sprintf('h2 is %.3f kJ/kg', h2);
disp(n31);
n41 = sprintf(' s2 is %.3f kJ/kgK' , s2);
disp(n41);
disp('At stage point 3');
n12 = sprintf('P3 is %.3f bar', p3);
disp(n12);
n22 = sprintf('T3 is %.3f C',T3);
disp(n22);
n32 = sprintf('h3 is %.3f kJ/kg',h3) ;
disp(n32);
n42 = sprintf(' s3 is %.3f kJ/kgK',s3) ;
disp(n42);
disp('At stage point 4');
n13 = sprintf( 'P4 is %.3f bar', p4) ;
disp(n13);
n23 = sprintf( 'T4 is %.3f C', T4) ;
disp(n23);
n33 = sprintf('h4 is %.3f kJ/kg' ,h4);
disp(n33);
n43 = sprintf('s4 is %.3f kJ/kaK',s4);
disp(n43);
n14 = sprintf('Wt is %.3f kJ/kg', Wt);
disp(n14);
n15 = sprintf('wp is %.3f kJ/kg' , Wp);
disp(n15);
n16 = sprintf('Wet is %.3f kJ/kg', Wnet);
disp(n16);
n17 = sprintf('Thermal_efficiency is %.2f Percent',thermal_eff);
disp(n17);
n18 = sprintf('SSC is %.2f kg/kWh',sps);
disp(n18);
n19 = sprintf('Back work ratio is %.3f ',BW);
disp(n19);
EXPLANATION OF PROGRAM:
- Xsteam data is used to extract steam and water properties ofenthaly, entropy at specific pressure and temperatures for sat liquid, sat vapour conditions etc.
- The program requires the input of Pressure (in bar) at state point 1 ( turbine inlet), Temperature at same point (degree celcius) and pressure at condenser inlet (point 2).
- With the help of these inlets & from steam data, the program calculates all the state points of the Rankine cycle .
- The Xsteam data works as, hi = XSteam(h_pT', pi, TI) it returns the enthalpy of water at given pressure and temperature in bar and degC respectively.
- As we extract the data, we use thermodynamic relation to further find state points and extract their data from XSteam which are mentioned after studvina the Rankine evcle.
- Sf and sg, hf and hg, where f and g stands for saturated liquid and saturated vapour respectively are calculayed after studying the plots of Rankine cycles and extracting data from Xsteam file.
- The net work, work done by turbine, work done to run the pump Heat in and heat out are calculated using standard thermodynamic relation.
- Efficiency and Specific steam consumption (s..c) of the Rankine cycle is calculated from thermodynamic relations and mentioning them in program using relations.
- T, sand h are extracted at vapour and liquid line for plotting purpose, after 4th point for the variation you observe in the plot.
- Saturation curve is plotted in red for saturated liquid and saturated gas in T-S and in H-S it is black.
- Plot of T vs s and h vs s is created from all the points obtained from the program using the plot command and mentioning all the lables, linewidth, color and title.
- The plot changes as the user input changes for the above mentioned inputs.
- Results are displayed in the command window by using sprint Command.
RESULT:
The input, ouput screen and the various state points with various parameters generated in the command window are shown below



RESULTS AND PLOTS:
The performance of the Heat Engine was calculated and the following Observations were made:
1. Net Work = 1120.863kJ/kg
2. Thermal Efficiency = 36.17%
3. Back Work Ratio = 0.003
The T-S and H-S performance curves of the
Rankine Cycle were plotted.

