Rankine cycle Simulator using matlab
Program to stimulate the rankine cycle.
Coding:
coding is made based on the given snippet
%program to stimulate the Rankine Cycle
clear all
close all
clc
% Intro about rankine cycle
fprintf(' RANKINE CYCLE SIMULATOR');
fprintf('\n 1-2 is Isentropic Expansion in the turbine');
fprintf('\n 2-3 is constant pressure heat removal in the condenser');
fprintf('\n 3-4 is Isentropic compression in the pump');
fprintf('\n 4-1 is Constant pressure heat addition in the boiler');
%Obtaining the input data from the user
p1 = input('Value of pressure at turbine inlet, p1(in bar) = ');
T1 = input('Value of temperature at turbine inlet, T1(in degree.C) = ');
p2 = input('Value of pressure at condenser inlet, p2(in bar) = ');
% obtaining the required values from the Xsteam program
% State 1
h1 = XSteam('h_pT', p1, T1);
s1 = XSteam('s_pT', p1, T1);
% State 2
s2 = s1; % Isentropic expansion
sf2= XSteam('sL_p', p2); % Saturated liquid Entropy
sg2 = XSteam('sV_p', p2); % Saturated Vapour Entropy
x2 = (s2-sf2)/(sg2-sf2);
hf2 = XSteam('hL_p', p2);
hg2 = XSteam('hV_p', p2);
h2 = hf2 + (x2*(hg2-hf2));
% State 3
p3 = p2; % Constant pressure Heat rejection in condenser
s3= XSteam('sL_p', p3);
h3 = XSteam('hL_p', p3);
% State 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
eff = (Wnet/Qin)*100;
%Specific Steam Consumption
SSC = (3600/Wnet);
%Calculating temperatures at the state points
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
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,375,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, 'r','linewidth',1)
plot(sg, T, 'r','linewidth',1)
plot([s1 s2], [T1 T2], 'k', 'linewidth', 2)
plot([s2 s3], [T2 T3] ,'k', 'linewidth', 2)
plot([s3 s4], [T3 T4], 'k', 'linewidth', 2)
plot([s4 s5], [T4 T5], 'k', 'linewidth', 2)
plot([s5 s6], [T5 T6], 'k', 'linewidth', 2)
sc1 = linspace(s6, s1, 1000);
for l = 1:length(sc1)
Tc1(l) = XSteam('T_ps', p1, sc1(l));
end
plot(sc1, Tc1, 'k', 'linewidth', 2)
text(s1+0.1, T1, '1')
text(s2+0.1, T2, '2')
text(s3, T3-20, '3')
text(s4, T4+20, '4')
title('Temp vs Entropy plot')
xlabel('Entropy ,S (Kj/kgk')
ylabel('Temperature (degree C) ')
legend('Saturation curve')
%Plotting h-s diagram
figure(2)
hold on
plot(sf, hf, 'r', 'linewidth', 1)
plot(sg, hg, 'r', 'linewidth', 1)
plot([s1 s2], [h1 h2], 'k', 'linewidth', 2)
plot([s2 s3], [h2 h3], 'k', 'linewidth', 2)
plot([s3 s4], [h3 h4], 'k', 'linewidth', 2)
hc = linspace(h4, h5, 100);
for k = 1:length(hc)
sch(k) = XSteam('s_ph', p1, hc(k));
end
plot(sch,hc, 'k', 'linewidth', 2)
plot([s5 s6], [h5 h6], 'k', 'linewidth', 2)
for m = 1:length(sc1)
hc1(m) = XSteam('h_ps', p1, sc1(m));
end
plot(sc1, hc1, 'k', 'linewidth', 2)
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 plot')
xlabel('Entropy , S (KJ/kgk) ')
ylabel('Enthalpy , H (KJ/kg)')
legend('Saturation curve','location','northwest')
% Displaying Results
fprintf(' RESULTS');
fprintf('\n At State Point 1:');
fprintf('\n p1: %8.3f barn', p1);
fprintf('\n T1: %8.3f Cn', T1);
fprintf('\n h1: %8.3f KJ/kgn', h1);
fprintf('\n s1: %8.3f KJ/kgKnn', s1);
fprintf('\n At State Point 2:n');
fprintf('\n p2: %8.3f barn', p2);
fprintf('\n T2: %8.3f Cn', T2);
fprintf('\n h2: %8.3f kJ/kgn', h2);
fprintf('\n s2: %8.3f kJ/kgKn', s2);
fprintf('\n x2: %8.3fnn', x2);
fprintf('\n At State Point 3:n');
fprintf('\n p3: %8.3f barn', p3);
fprintf('\n T3: %8.3f Kn', T3);
fprintf('\n h3: %8.3f kJ/kgn', h3);
fprintf('\n s3: %8.3f kJ/kgKnn', s3);
fprintf('\n At State Point 4:n');
fprintf('\n p4: %8.3f barn', p4);
fprintf('\n T4: %8.3f Kn', T4);
fprintf('\n h4: %8.3f KJ/kgn', h4);
fprintf('\n s4: %8.3f kJ/kgKnn', s4);
fprintf('\n Turbine Work: %8.3f kJ/kgn', Wt);
fprintf('\n Pump Work: %8.3f kJ/kgn', Wp);
fprintf('\n Wnet: %8.3f kJ/kgn', Wnet);
fprintf('\n Efficiency: %8.3f Percent n ', eff);
fprintf('\n S.S.C: %8.3f kJ/kWh', SSC);
Results
plots:
REPORT:
1.Aim:
To write a program in matlab/octave for rankine cycle simulator
2.Objective
The Rankine cycle is the fundamental operating cycle of all power plants where an operating fluid is continuously evaporated and condensed. The selection of operating fluid depends mainly on the available temperature range.
The pressure-enthalpy (p-h) and temperature-entropy (T-s) diagrams of this cycle are given in the output The Rankine cycle operates in the following steps:
-
1-2-3 Isobaric Heat Transfer. High pressure liquid enters the boiler from the feed pump (1) and is heated to the saturation temperature (2). Further addition of energy causes evaporation of the liquid until it is fully converted to saturated steam (3).
-
3-4 Isentropic Expansion. The vapor is expanded in the turbine, thus producing work which may be converted to electricity. In practice, the expansion is limited by the temperature of the cooling medium and by the erosion of the turbine blades by liquid entrainment in the vapor stream as the process moves further into the two-phase region. Exit vapor qualities should be greater than 90%.
-
4-5 Isobaric Heat Rejection. The vapor-liquid mixture leaving the turbine (4) is condensed at low pressure, usually in a surface condenser using cooling water. In well designed and maintained condensers, the pressure of the vapor is well below atmospheric pressure, approaching the saturation pressure of the operating fluid at the cooling water temperature.
-
5-1 Isentropic Compression. The pressure of the condensate is raised in the feed pump. Because of the low specific volume of liquids, the pump work is relatively small and often neglected in thermodynamic calculations.
3.Explanation:
(i) print the process occuring in the rankine cycle.
(ii) Getting the input from the users such as turbine inlet pressure, turbine inlet temperature, condenser inlet pressure.
(iii) Obtaining the required values from the Xsteam program and calculates the enthalpy entropy and pressure, temperature values at every points.
(iv) Calculating the work done by the turbine.
(v) Calculating the work done by the pump.
(vi) Effeciency of the system is calculated.
(vii) Specific steam consumption is calculated.
(viii) Plotting the saturation h-s curve and T-s curve.
(ix) Displaying the obtained desired results.
4.Conclusion:
Thus the program for Rankine cycle simulator is created which calculates the required values and plot the T-s and h-s curve.