Challenge

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:

  1. Xsteam data is used to extract steam and water properties ofenthaly, entropy at specific pressure and temperatures for sat liquid, sat vapour conditions etc.

  2. 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).

  3. With the help of these inlets & from steam data, the program calculates all the state points of the Rankine cycle .

  4. 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.

  5. 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.

  6. 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.

  7. The net work, work done by turbine, work done to run the pump Heat in and heat out are calculated using standard thermodynamic relation.

  8. Efficiency and Specific steam consumption (s..c) of the Rankine cycle is calculated from thermodynamic relations and mentioning them in program using relations.

  9. T, sand h are extracted at vapour and liquid line for plotting purpose, after 4th point for the variation you observe in the plot.

  10. Saturation curve is plotted in red for saturated liquid and saturated gas in T-S and in H-S it is black.

  11. 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.

  12.  The plot changes as the user input changes for the above mentioned inputs.

  13.  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.

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.