BASIC RANKINE CYCLE
AIM:
To simulate the Rankine cycle
OBJECTIVE:
- To understand the concept of Rankine cycle and find about the states of the cycle
- To understand all the parameters and efficiency factors of the cycle
- To gain more practice on how to create different thermodynamic cycles in MATLAB
- To understand how to get the data from external given functions
- To understand the various parameters in the steam table
INTRODUCTION:
The Rankine cycle is a model used to predict the performance of steam turbine systems. It was also used to study the performance of reciprocating steam engines. The Rankine cycle is an idealized thermodynamic cycle of a heat engine that converts heat into mechanical work while undergoing phase change. It is an idealized cycle in which friction losses in each of the four components are neglected. The heat is supplied externally to a closed loop, which usually uses water as the working fluid.
The different processes undergoing in different phases are as follows:
- 1-2 : Isentropic Expansion in the turbine
- 2-3 : Isobaric Heat Rejection by the condenser
- 3-4 : Isentropic Compression in the pump
- 4-1 : Isobaric Heat Addition by the boiler
PROCEDURE OF COMPLETION:
- First, all the required variables and parameters were found out to calculate.
- Then, using the ‘XSteam’ library function, all the parameters were sorted out.
- Then, the usual calculations and plotting of the graphs were done as per the theory of thermodynamics.
The following code snippet can be considered for the completion of the project:
%% Rankine Cycle Simulator
% This program is for simulation of a basic Rankine cycle.
clear all;
close all;
clc;
%% Displaying the processes undergoing in the cycle
disp('PROCESSES IN RANKINE CYCLE : ')
disp('1-2 : Isentropic Expansion in the turbine ')
disp('2-3 : Isobaric Heat Rejection by the condenser ')
disp('3-4 : Isentropic Compression in the pump ')
disp('4-1 : Isobaric Heat Addition by the boiler ')
disp(' ')
%% Initialization of variables and parameters
t = linspace(0,373.15,400);
P1 = input('Enter the pressure at the Turbine inlet(in bar) : ');
T1 = input(['Enter the temperature at the Turbine inlet(in ' char(176) 'C) : ']);
P2 = input('Enter the pressure at the Condenser(in bar) : ');
disp(' ')
%% Assigning the values of P,T,h,s for each state using 'XSteam' library
% At state 1
h1 = XSteam('h_pT',P1,T1); % Enthalpy
s1 = XSteam('s_pT',P1,T1); % Entropy
hl1 = XSteam('hL_p',P1); % Saturated liquid enthalpy
hg1 = XSteam('hV_p',P1); % Saturated vapour enthalpy
sl1 = XSteam('sL_p',P1); % Saturated liquid entropy
sg1 = XSteam('sV_p',P1); % Saturated vapour entropy
Tsat1 = XSteam('Tsat_p',P1); % Saturation temperature
% At state 2
s2 = s1;
sl2 = XSteam('sL_p',P2);
sg2 = XSteam('sV_p',P2);
d = (s2-sl2)/(sg2-sl2); % dryness fraction
hl2 = XSteam('hL_p',P2);
hg2 = XSteam('hV_p',P2);
h2 = hl2 + d*(hg2-hl2);
T2 = XSteam('T_ph',P2,h2);
Tsat2 = XSteam('Tsat_p',P2);
% At state 3
h3 = hl2;
s3 = sl2;
P3 = P2;
T3 = T2;
% At state 4
s4 = s3;
P4 = P1;
h4 = XSteam('h_ps',P4,s4);
T4 = XSteam('T_ps',P4,s4);
%% Plotting
% T-s graph
figure(1), clf
hold on
% Saturation curve
for i = 1:length(t)
plot(XSteam('sL_T',t(i)),t(i),'r.')
plot(XSteam('sV_T',t(i)),t(i),'r.')
end
% Cycle
plot([s1 s2],[T1 T2],'linew',2)
text(s1,T1,'1','FontSize',15)
if d > 1
T3 = Tsat2;
plot([s2 sg2 s3 s4],[T2 Tsat2 T3 T4],'linew',2)
T2 = Tsat2;
text(s2,T2,'2','FontSize',15)
text(s3,T3,'3','FontSize',15)
else
plot([s2 s3 s4],[T2 T3 T4],'linew',2)
text(s2,T2,'2','FontSize',15)
text(s3,T3,'3','FontSize',15)
end
n = linspace(T1,T2,500);
for i = 1:length(n)
plot(XSteam('s_pT',P1,n(i)),n(i),'.','linew',2)
end
plot([sl1 sg1],[Tsat1 Tsat1],'linew',2)
text(sl1,Tsat1,'4','FontSize',15)
xlabel('Entropy(kJ/kg-K)')
ylabel('Temperature(k)')
title('T-s graph')
% h-s graph
figure(2), clf
hold on
% Saturation curve
for i = 1:length(t)
plot(XSteam('sL_T',t(i)),XSteam('hL_T',t(i)),'r.')
plot(XSteam('sV_T',t(i)),XSteam('hV_T',t(i)),'r.')
end
% Cycle
plot([s1 s2 s3 s4 s1],[h1 h2 h3 h4 h1],'linew',2)
text(s1,h1,'1','FontSize',15)
text(s2,h2,'2','FontSize',15)
text(s3,h3,'3','FontSize',15)
text(s4,h4+90,'4','FontSize',15)
xlabel('Entropy(kJ/kg-K)')
ylabel('Enthalpy(kJ/kg)')
title('h-s graph')
%% Calculations
% Work done by turbine
Wt = h1 - h2;
% Work done by pump
Wp = h4 - h3;
% Net work dome
Wnet = Wt - Wp;
% Thermal efficiency
Ntherm = (1 - ((h2 - h3)/(h1 - h4)))*100;
% Back work ratio
BWR = Wp/Wt;
% Specific Steam Conductivity
S.S.C = 3600/Wt;
%% Displaying in the command window
disp('RESULTS :')
disp('At state point 1: ')
fprintf('P1 = %.2f bar \n',P1)
fprintf(['T1 = %.2f' char(176) 'C \n'],T1)
fprintf('h1 = %.2f kJ/kg \n',h1)
fprintf('s1 = %.2f kJ/kgK \n',s1)
disp(' ')
disp('At state point 2: ')
fprintf('P2 = %.2f bar /n',P2)
fprintf(['T2 = %.2f' char(176) 'C \n'],T2)
fprintf('h2 = %.2f kJ/kg \n',h2)
fprintf('s2 = %.2f kJ/kgK \n',s2)
disp(' ')
disp('At state point 3: ')
fprintf('P3 = %.2f bar \n',P3)
fprintf(['T3 = %.2f' char(176) 'C \n'],T3)
fprintf('h3 = %.2f kJ/kg \n',h3)
fprintf('s3 = %.2f kJ/kgK \n',s3)
disp(' ')
disp('At state point 4: ')
fprintf('P4 = %.2f bar \n',P4)
fprintf(['T4 = %.2f' char(176) 'C \n'],T4)
fprintf('h4 = %.2f kJ/kg \n',h4)
fprintf('s4 = %.2f kJ/kgK \n',s4)
disp(' ')
fprintf('Work done by turbine = %.2f kJ/kg \n', Wt)
fprintf('Work done by pump = %.2f kJ/kg \n', Wp)
fprintf('Net work done = %.2f kJ/kg \n', Wnet)
fprintf('Thermal efficiency = %.2f %% \n', Ntherm)
fprintf('Back-work ratio = %f \n', BWR)
fprintf('Specific Steam Conductivity = %.2f kg/kWh \n', S.S.C)
OBSERVATIONS:
The following parameters can be calculated using the basic concept of Rankine cycle:
The T-s cycle and h-s cycle are as follows respectively:
ERRORS:
- Typo errors
- Difficulty in understanding the 'XSteam.m' library function at first glance
CONCLUSION:
Rankine cycle is the basic cycle for understanding about the steam turbine systems in thermodynamics. Rankine cycle converts thermal energy to mechanical energy. On-road vehicles, which convert around one third of the fuel energy into useful mechanical energy for propulsion, are moving energy conversion systems that generate considerable waste heat. It is found from prior research that the Rankine Cycle has great potential in automobile waste heat harvesting applications which can in turn be connected to the combustion engine which will result in better wasted heat consumption and increasing the performance of the vehicle and helping the environment.
REFERENCES: