Challenge

Project 2 - Rankine cycle Simulator

There are four processes in the rankine cycle :

Process 1-2 : Isentropic Expansion in the turbine

Process 2-3 : Constant pressure Heat rejection in condenser

Process 3-4 : Isentropic compression in the pump

Process 4-1 : Constant pressure heat addition in the boiler

Back Work Ratio:

The fraction of the work produced by the turbine that is consumed by the compressor.

BW ratio=Wp/Wt

MATLAB PROGRAM FOR RANKINE CYCLE 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');

p1 = input('nValue of pressure at turbine inlet, p1(in bar) = ');

T1 = input('nValue of temperature at turbine inlet, T1(in degree.C) = ');

p2 = input('nValue of pressure at condenser inlet, p2(in bar) = ');

% At State 1

h1 = XSteam('h_pT', p1, T1); % Extracting Enthalpy at state pt 1

s1 = XSteam('s_pT', p1, T1); % Similarly

% At 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));

% At State 3

p3 = p2; % Constant pressure Heat rejection in Condenser

s3= XSteam('sL_p', p3);

h3 = XSteam('hL_p', p3);

% At 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

thermal_eff = (Wnet/Qin)*100;

%Specific Steam Consumption

%SSC = mass flow rate/power

SSC = (3600/Wnet);

% Back Work ratio

BW = (Wp/Wt)

% Calculation of 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 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,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], 'b', 'linewidth', 2)

plot([s2 s3], [T2 T3] ,'b', 'linewidth', 2)

plot([s3 s4], [T3 T4], 'b', 'linewidth', 2)

plot([s4 s5], [T4 T5], 'b', 'linewidth', 2)

plot([s5 s6], [T5 T6], 'b', 'linewidth', 2)

sc1 = linspace(s6, s1, 1000);

for l = 1:length(sc1)

Tc1(l) = XSteam('T_ps', p1, sc1(l));

end

plot(sc1, Tc1, 'b', '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, 'k', 'linewidth', 1)

plot(sg, hg, 'k', 'linewidth', 1)

plot([s1 s2], [h1 h2], 'r', 'linewidth', 2)

plot([s2 s3], [h2 h3], 'r', 'linewidth', 2)

plot([s3 s4], [h3 h4], 'r', 'linewidth', 2)

hc = linspace(h4, h5, 100);

for r = 1:length(hc)

sch(r) = XSteam('s_ph', p1, hc(r));

end

plot(sch,hc, 'r', 'linewidth', 2)

plot([s5 s6], [h5 h6], 'r', 'linewidth', 2)

for m = 1:length(sc1)

hc1(m) = XSteam('h_ps', p1, sc1(m));

end

plot(sc1, hc1, 'r', '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 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/kgK',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('Wnet 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',SSC);

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 of enthaly , 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 Xsteam data, the program calculates all the state points of the Rankine cycle .

The Xsteam data works as , h1 = XSteam('h_pT' , p1 , T1) 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 studying the Rankine cycle.

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.s.c) of the Rankine cycle is calculated from thermodynamic relations and

mentioning them in program using relations.

T , s and 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.

RESULTS and PLOTS:

The performance of the Heat Engine was calculated and the following Observations were made:

Net Work = 1120.863kJ/kg

Thermal Efficiency = 36.17%

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.