Challenge

Project 2 - Rankine cycle Simulator

OBJECTIVE :

  1. To develop a basic program that calculates the state points.
  2. To add the thermodynamics relation to get the points in between the state variables
  3. To plot rankine cycle on T-S and H-S curve.

THEORY :

Rankine cycle -

The Rankine cycle is an idealized thermodynamic cycle describing the process by which certain heat engines, such as steam turbines or reciprocating steam engines, allow mechanical work to be extracted from a fluid as it moves between a heat source and heat sink. The Rankine cycle is named after William John Macquorn Rankine, a Scottish polymath professor at Glasgow University.

Heat energy is supplied to the system via a boiler where the working fluid (typically water) is converted to a high pressure gaseous state (steam) in order to turn a turbine. After passing over the turbine the fluid is allowed to condense back into a liquid state as waste heat energy is rejected before being returned to boiler, completing the cycle. Friction losses throughout the system are often neglected for the purpose of simplifying calculations as such losses are usually much less significant than thermodynamic losses, especially in larger systems.

The four processes in the Rankine cycle -

  • Process 1–2: The working fluid is pumped from low to high pressure. As the fluid is a liquid at this stage, the pump requires little input energy. Process 1-2 is isentropic compression.
  • Process 2–3: The high-pressure liquid enters a boiler, where it is heated at constant pressure by an external heat source to become a dry saturated vapour. The input energy required can be easily calculated graphically, using an enthalpy–entropy chart (h–s chart, or Mollier diagram), or numerically, using steam tables or software. Process 2-3 is constant pressure heat addition in boiler.
  • Process 3–4: The dry saturated vapour expands through a turbine, generating power. This decreases the temperature and pressure of the vapour, and some condensation may occur. The output in this process can be easily calculated using the chart or tables noted above. Process 3-4 is isentropic expansion.
  • Process 4–1: The wet vapour then enters a condenser, where it is condensed at a constant pressure to become a saturated liquid. Process 4-1 is constant pressure heat rejection in condenser.

MAIN CODE -

%Rankine cycle simulator

clear all

close all

clc

%

disp('RANKINE CYCLE');

disp('1-2 is isentropic Expansion in the turbine');

disp('1-2 is constant pressure heat removal in the condenser');

disp('1-2 is isentropic Compression in the pump');

disp('1-2 is constant pressure heat addition in the boiler');

%

%Obtaining the input data

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 temperature at condenser inlet, p2(in bar) = ');

%Extracting data _ defining variables

%State 1

h1 = XSteam('h_pT',p1, T1);

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

%State 2

s2 = s1;

sf2 = XSteam('sL_p',p2);

sg2 = XSteam('sV_p',p2);

x2 = (s2-sf2)/(sg2-sf2);

hf2 = XSteam('hL_p',p2);

hg2 = XSteam('hV_p',p2);

h2 = hf2 + (x2*(hg2-hf2));

%State 3

p3 = p2;

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 out of the system

Qout = h2 - h3;

%Thermal efficiency

eff = (Wnet/Qout)*100;

%Specific Steam Consumption

%SSC = mass flow rate/power

SSC = (3600/Wnet);

%

%Calculating temperature at the 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],'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,T1,'1')

text(s2+0.1,T2,'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

disp('RESULTS');

fprintf('At State Point 1:n');

fprintf('p1: %8.3f barn',p1);

fprintf('p1: %8.3f Cn',T1);

fprintf('h1: %8.3f KJ/kgn',h1);

fprintf('s1: %8.3f KJ/kgknn',s1);

fprintf('At State Point 2:n');

fprintf('p1: %8.3f barn',p2);

fprintf('p1: %8.3f Cn',T2);

fprintf('h1: %8.3f KJ/kgn',h2);

fprintf('s1: %8.3f KJ/kgknn',s2);

fprintf('At State Point 3:n');

fprintf('p1: %8.3f barn',p3);

fprintf('p1: %8.3f Cn',T3);

fprintf('h1: %8.3f KJ/kgn',h3);

fprintf('s1: %8.3f KJ/kgknn',s3);

fprintf('At State Point 4:n');

fprintf('p1: %8.3f barn',p4);

fprintf('p1: %8.3f Cn',T4);

fprintf('h1: %8.3f KJ/kgn',h4);

fprintf('s1: %8.3f KJ/kgknn',s4);

fprintf('Turbine Work: %8.3f KJ/kgn',Wt);

fprintf('Pump Work: %8.3f KJ/kgn',Wp);

fprintf('Efficiency: %8.3f kJ/kgn',Wnet);

fprintf('Efficiency %8.3f Percent n ',eff);

fprintf('S.S.C: %8.3f kJ/kwh', SSC );

OUTPUT :

1.Temperature vs Entropy curve for rankine cycle for given inputs

2.Enthalpy vs Entropy curve for rankine cycle for given inputs

Results in the command window for entire calculation :

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.