Challenge

Project 2 - Rankine cycle Simulator

AIM:

To create a program code to run Rankine Cycle Simulator.

SOFTWARE USED:

Matlab

GOVERNING EQUATIONS:

1-2 is Isentropic Expansion in the Turbine

2-3 is Constant Pressure Heat Rejection by the Condensor

3-4 is Isentropic Expansion in the Pump

4-1 is Constant Pressure Heat Addition to the Boiler

OBJECTIVES:

  1. Create a Rankine Cycle Simulator using MATLAB.
  1. Plot the corresponding T-s and h-s plots for the given set of inputs.

Required Inputs:

Turbine Inlet temperature = 400° C

Turbine Inlet Pressure = 30 bars

Turbine Outlet Pressure = 0.05 bars = Condenser Inlet Pressure

BODY OF CONTEXT:

% PROJECT: Rankine Cycle Simulator

clear all; % clear all variables in workspace

close all;% close all plots

clc;%clear command window

disp(' RANKINE CYCLE SIMULATOR');

disp('1-2 is Isentropic Expansion in the Turbine');

disp('2-3 is Constant Pressure Heat Rejection by the Condensor');

disp('3-4 is Isentropic Expansion in the Pump');

disp('4-1 is Constant Pressure Heat Addition to the Boiler');

%Inputs

disp('INPUTS');

P1=input('Enter the Pressure at turbine inlet(bar):');

T1=input('Enter the Temperature at the Turbine inlet(degree C):');

P2=input('Enter the Pressure at the Condensor(bar):');

%Using the Xsteam functions, enthalpy and entropy at various points can be

%calculated

%Calculating enthalpy(h) and entropy(s) at point 1:

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

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

%Calculating pressure(P),enthalpy(h) and entropy(s) at point 2

%Since isentropic expansion

s2=s1;

%For isentropic expansion, (T2/T1)=(P2/P1)^(1-(1/g))

g=1.4;

power=1-(1/g);

T2=T1*((P2/P1)^power);

h2=XSteam('h_pT',P2,T2);

%Calculating pressure, enthalpy and entropy at point 2

%Since constant pressure heat removal

P3=P2;

T3=T2;

h3=XSteam('hL_T',T3);

s3=XSteam('sL_T',T3);

%Calculating pressure, enthalpy and entropy at point 4

%Since isentropic compression

s4=s3;

%Since constant pressure proces

P4=P1;

T4=XSteam('T_ps',P4,s4);

h4=XSteam('h_pT',P4,T4);

h41=XSteam('hL_p',P4);

s41=XSteam('sL_p',P4);

h42=XSteam('hV_p',P4);

s42=XSteam('sV_p',P4);

T41=XSteam('T_hs',h41,s41);

T42=XSteam('T_hs',h42,s42);

%Calculating entropy and enthalpy at the saturation curve

Temp=linspace(0,500,600);

for i=1:length(Temp)

sv(i)=XSteam('sV_T',Temp(i));

sl(i)=XSteam('sL_T',Temp(i));

hv(i)=XSteam('hV_T',Temp(i));

hl(i)=XSteam('hL_T',Temp(i));

end

%Calculating the net work output (W_net)

W_t=h1-h2;

W_p=h4-h3;

W_net=W_t-W_p;

%Calculating back work ratio

Bw_ratio=W_p/W_t;

%Calculating thermal efficiency

Q_in=h1-h4;

eff_thermal=(W_net/Q_in)*100;

%Calculating specific steam consumption, 1J=3600 kg/s

SSC=3600/W_net;

%Displaying 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('h1 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('W_t is %.3f kJ/kg',W_t);

disp(n14);

n15=sprintf('W_p is %.3f kJ/kg',W_p);

disp(n15);

n16=sprintf('W_net is %.3f kJ/kg',W_net);

disp(n16);

n17=sprintf('Eff_Thermal is %.2f Percent',eff_thermal);

disp(n17);

n18=sprintf('SSC is %.2f kg/kWh',SSC);

disp(n18);

figure(1)

plot([s1 s2],[T1 T2],[s2 s3],[T2 T3],[s3 s4],[T3 T4],[s4 s41],[T4 T41],[s41 s42],[T41 T42],[s42 s1],[T42 T1],'marker','*','color','r')

hold on

plot(sv,Temp)

plot(sl,Temp)

xlabel('Entropy-s(kJ/kgK)');

ylabel('Temperature-T(K)');

title('T-S Curve');

figure(2)

plot([s1 s2],[h1 h2],[s2 s3],[h2 h3],[s3 s4],[h3 h4],[s4 s1],[h4 h1],'marker','*','color','g')

hold on

plot(sv,hv)

plot(sl,hl)

xlabel('Entropy-s(kJ/kgK)');

ylabel('Enthalpy-h(kJ/K)');

title('H-S Curve');

PROGRAM CODE:

% PROJECT: Rankine Cycle Simulator
clear all; % clear all variables in workspace 
close all;% close all plots 
clc;%clear command window
disp('                             RANKINE CYCLE SIMULATOR');
disp('1-2 is Isentropic Expansion in the Turbine');
disp('2-3 is Constant Pressure Heat Rejection by the Condensor');
disp('3-4 is Isentropic Expansion in the Pump');
disp('4-1 is Constant Pressure Heat Addition to the Boiler');

%Inputs
disp('INPUTS');
P1=input('Enter the Pressure at turbine inlet(bar):');
T1=input('Enter the Temperature at the Turbine inlet(degree C):');
P2=input('Enter the Pressure at the Condensor(bar):');

%Using the Xsteam functions, enthalpy and entropy at various points can be
%calculated

%Calculating enthalpy(h) and entropy(s) at point 1:
h1=XSteam('h_pT',P1,T1);
s1=XSteam('s_pT',P1,T1);

%Calculating pressure(P),enthalpy(h) and entropy(s) at point 2
%Since isentropic expansion
s2=s1;

%For isentropic expansion, (T2/T1)=(P2/P1)^(1-(1/g))
g=1.4;
power=1-(1/g);
T2=T1*((P2/P1)^power);
h2=XSteam('h_pT',P2,T2);

%Calculating pressure, enthalpy and entropy at point 2
%Since constant pressure heat removal
P3=P2;
T3=T2;
h3=XSteam('hL_T',T3);
s3=XSteam('sL_T',T3);

%Calculating pressure, enthalpy and entropy at point 4
%Since isentropic compression
s4=s3;

%Since constant pressure proces
P4=P1;
T4=XSteam('T_ps',P4,s4);
h4=XSteam('h_pT',P4,T4);
h41=XSteam('hL_p',P4);
s41=XSteam('sL_p',P4);
h42=XSteam('hV_p',P4);
s42=XSteam('sV_p',P4);
T41=XSteam('T_hs',h41,s41);
T42=XSteam('T_hs',h42,s42);

%Calculating entropy and enthalpy at the saturation curve
Temp=linspace(0,500,600);
for i=1:length(Temp)
    sv(i)=XSteam('sV_T',Temp(i));
    sl(i)=XSteam('sL_T',Temp(i));
    
    hv(i)=XSteam('hV_T',Temp(i));
    hl(i)=XSteam('hL_T',Temp(i));
end

%Calculating the net work output (W_net)
W_t=h1-h2;
W_p=h4-h3;
W_net=W_t-W_p;

%Calculating back work ratio
Bw_ratio=W_p/W_t;

%Calculating thermal efficiency
Q_in=h1-h4;
eff_thermal=(W_net/Q_in)*100;

%Calculating sepcific steam consumption, 1J=3600 kg/s
SSC=3600/W_net;

%Displaying 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('h1 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('W_t is %.3f kJ/kg',W_t);
disp(n14);
n15=sprintf('W_p is %.3f kJ/kg',W_p);
disp(n15);
n16=sprintf('W_net is %.3f kJ/kg',W_net);
disp(n16);
n17=sprintf('Eff_Thermal is %.2f Percent',eff_thermal);
disp(n17);
n18=sprintf('SSC is %.2f kg/kWh',SSC);
disp(n18);


figure(1)
plot([s1 s2],[T1 T2],[s2 s3],[T2 T3],[s3 s4],[T3 T4],[s4 s41],[T4 T41],[s41 s42],[T41 T42],[s42 s1],[T42 T1],'marker','*','color','r')
hold on
plot(sv,Temp)
plot(sl,Temp)
xlabel('Entropy-s(kJ/kgK)');
ylabel('Temperature-T(K)');
title('T-S Curve');

figure(2)
plot([s1 s2],[h1 h2],[s2 s3],[h2 h3],[s3 s4],[h3 h4],[s4 s1],[h4 h1],'marker','*','color','g')
hold on
plot(sv,hv)
plot(sl,hl)
xlabel('Entropy-s(kJ/kgK)');
ylabel('Enthalpy-h(kJ/K)');
title('H-S Curve');





SYNTAX FOR PROGRAM WITH EXPLANATION:

disp(' RANKINE CYCLE SIMULATOR');

disp('1-2 is Isentropic Expansion in the Turbine');

disp('2-3 is Constant Pressure Heat Rejection by the Condensor');

disp('3-4 is Isentropic Expansion in the Pump');

disp('4-1 is Constant Pressure Heat Addition to the Boiler');

<--Inputs

disp('INPUTS');

P1=input('Enter the Pressure at turbine inlet(bar):');

T1=input('Enter the Temperature at the Turbine inlet(degree C):');

P2=input('Enter the Pressure at the Condensor(bar):');

<--Using the Xsteam functions, enthalpy and entropy at various points can be

<--calculated

<--Calculating enthalpy(h) and entropy(s) at point 1:

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

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

<--Calculating pressure(P),enthalpy(h) and entropy(s) at point 2

<--Since isentropic expansion

s2=s1;

<--For isentropic expansion, (T2/T1)=(P2/P1)^(1-(1/g))

g=1.4;

power=1-(1/g);

T2=T1*((P2/P1)^power);

h2=XSteam('h_pT',P2,T2);

<--Calculating pressure, enthalpy and entropy at point 2

<--Since constant pressure heat removal

P3=P2;

T3=T2;

h3=XSteam('hL_T',T3);

s3=XSteam('sL_T',T3);

<--Calculating pressure, enthalpy and entropy at point 4

<--Since isentropic compression

s4=s3;

<--Since constant pressure proces

P4=P1;

T4=XSteam('T_ps',P4,s4);

h4=XSteam('h_pT',P4,T4);

h41=XSteam('hL_p',P4);

s41=XSteam('sL_p',P4);

h42=XSteam('hV_p',P4);

s42=XSteam('sV_p',P4);

T41=XSteam('T_hs',h41,s41);

T42=XSteam('T_hs',h42,s42);

<--Calculating entropy and enthalpy at the saturation curve

Temp=linspace(0,500,600);

for i=1:length(Temp)

sv(i)=XSteam('sV_T',Temp(i));

sl(i)=XSteam('sL_T',Temp(i));

hv(i)=XSteam('hV_T',Temp(i));

hl(i)=XSteam('hL_T',Temp(i));

end

<--Calculating the net work output (W_net)

W_t=h1-h2;

W_p=h4-h3;

W_net=W_t-W_p;

<--Calculating back work ratio

Bw_ratio=W_p/W_t;

<--Calculating thermal efficiency

Q_in=h1-h4;

eff_thermal=(W_net/Q_in)*100;

<--Calculating sepcific steam consumption, 1J=3600 kg/s

SSC=3600/W_net;

<--Displaying 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('h1 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('W_t is <--.3f kJ/kg',W_t);

disp(n14);

n15=sprintf('W_p is <--.3f kJ/kg',W_p);

disp(n15);

n16=sprintf('W_net is <--.3f kJ/kg',W_net);

disp(n16);

n17=sprintf('Eff_Thermal is <--.2f Percent',eff_thermal);

disp(n17);

n18=sprintf('SSC is <--.2f kg/kWh',SSC);

disp(n18);

figure(1)

plot([s1 s2],[T1 T2],[s2 s3],[T2 T3],[s3 s4],[T3 T4],[s4 s41],[T4 T41],[s41 s42],[T41 T42],[s42 s1],[T42 T1],'marker','*','color','r')

hold on

plot(sv,Temp)

plot(sl,Temp)

xlabel('Entropy-s(kJ/kgK)');

ylabel('Temperature-T(K)');

title('T-S Curve');

figure(2)

plot([s1 s2],[h1 h2],[s2 s3],[h2 h3],[s3 s4],[h3 h4],[s4 s1],[h4 h1],'marker','*','color','g')

hold on

plot(sv,hv)

plot(sl,hl)

xlabel('Entropy-s(kJ/kgK)');

ylabel('Enthalpy-h(kJ/K)');

title('H-S Curve');

CONCLUSION:

RANKINE CYCLE SIMULATOR

1-2 is Isentropic Expansion in the Turbine

2-3 is Constant Pressure Heat Rejection by the Condensor

3-4 is Isentropic Expansion in the Pump

4-1 is Constant Pressure Heat Addition to the Boiler

INPUTS

Enter the Pressure at turbine inlet(bar):30

Enter the Temperature at the Turbine inlet(degree C):400

Enter the Pressure at the Condensor(bar):0.05

RESULTS

At stage point 1

P1 is 30.000 bar

T1 is 400.000 C

h1 is 3231.571 kJ/kg

s1 is 6.923 kJ/kgK

At stage point 2

P2 is 0.050 bar

T2 is 64.314 C

h1 is 2620.455 kJ/kg

s2 is 6.923 kJ/kgK

At stage point 3

P3 is 0.050 bar

T3 is 64.314 C

h3 is 269.206 kJ/kg

s3 is 0.885 kJ/kgK

At stage point 4

P4 is 30.000 bar

T4 is 64.446 C

h4 is 272.229 kJ/kg

s4 is 0.885 kJ/kgK

W_t is 611.116 kJ/kg

W_p is 3.023 kJ/kg

W_net is 608.093 kJ/kg

Eff_Thermal is 20.55 Percent

SSC is 5.92 kg/kWh

>>

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.