Challenge

Project 2 - Rankine cycle Simulator

AIM:

To Create a Rankine Cycle Simulator using MATLAB.

OBJECTIVES:

  • To write code to calculate the state points of the Rankine Cycle (any type of your choice) based on user inputs. 
  • To plot the corresponding T-s and h-s plots for the given set of inputs. Title and axes labels are a must, while legends could be used if necessary.
  • The presentation of  code and Labelling sections of your code using comments

THEORY:

  • Four components of the Rankine cycle:
  1. Pump
  2. Boiler
  3. Turbine
  4. Condenser

Required Inputs:

Turbine Inlet temperature = 400° C

Turbine Inlet Pressure = 30 bars

Turbine Outlet Pressure = 0.05 bars = Condenser Inlet Pressure

The Rankine cycle closely describes the process by which steam-operated  heat engines commonly found in thermal power generation plants generate power.

  • 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

       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]

PROGRAM:

%Rankine Cycle Simulator

close all

clear all

clc

disp('RANKINE CYCLE SIMULATOR')

disp('1-2 is isentropic expansion in turbine')

disp('2-3 is constant pressure heat rejection in condenser')

disp('3-4 is isentropic compression in pump')

disp('4-1 is constant pressure heat addition in boiler')

p1=input('enter the pressure at the inlet of turbine (in bar)=    ');

t1=input('enter the temp at the inlet of turbine (in degree C)=    ');

p2=input('enter the pressure at the inlet of condenser (in bar)=   ');

%steam condition at the inlet of turbine

h1=XSteam('h_pt',p1,t1);

s1=XSteam('s_pt',p1,t1);

%steam condition at the outlet of turbine

sg2=XSteam('sV_p',p2);

sf2=XSteam('sL_p',p2);

sfg2=sg2-sf2;

x2=(s1-sf2)/sfg2;

s2=sf2+x2*sfg2;

hf2=XSteam('hL_p',p2);

hg2=XSteam('hV_p',p2);

hfg2=hg2-hf2;

h2=hf2+x2*hfg2;

t2=XSteam('Tsat_p',p2);

%workdone by the turbine

W_t=h1-h2;

%steam condition at the outlet of condenser

p3=p2;

t3=XSteam('Tsat_p',p2);

h3=XSteam('hL_p',p2);

s3=XSteam('sL_p',p2);

vf=XSteam('vL_p',p2);

t22=t3;

%calculation of pump work

W_p=vf*(p1-p2)*100;

%steam Condition at state 4

p4=p1;

h4=W_p+h3;

s4=s3;

t4=XSteam('T_ph',p4,h4);

%work net

W_net=W_t-W_p;

%heat supplied

Q_s=h1-h4;

%heat rejected

Q_r=h2-h3;

%efficiency

efficiency=(W_net/Q_s);

%specific steam consumption

SSC=3600/W_net;

tf_sat=XSteam('Tsat_p',p1);

sf_sat=XSteam('sL_p',p1);

hf_sat=XSteam('hL_p',p1);

sg_sat=XSteam('sV_p',p1);

hg_sat=XSteam('hV_p',p1);

%plotting T-S diagram

hold on

%for plottin saturation curve

tsat1=linspace(0,374,1000);

for i=1:length(tsat1)

ss1(i)=XSteam('sL_T',tsat1(i));

end

for j=1:length(tsat1)

ss2(j)=XSteam('sV_T',tsat1(j));

end

plot(ss1,tsat1,'b')

 plot(ss2,tsat1,'r')

%for saturation temp at p1

temp=XSteam('Tsat_p',p1);

t=linspace(t4,temp,30);

for i=1:length(t)

    S(i)=XSteam('s_pt',p1,t(i));

    hold on

end

t0=linspace(temp,t1,300);

for i=1:length(t0)

    S0(i)=XSteam('s_pt',p1,t0(i));

end

 %for plotting turbine work

 plot([s1 s2],[t1 t2],'g')

 %for heat rejection in condenser

 plot([s2 s3],[t2 t3],'b')

 %for pump work

 plot([s3 s4],[t3 t4],'r')

 %plotting curved line(constant pressure line in wet region) from outlet of

 %the pump to the point from where phase change starts

plot(S,t,'y')

%plotting the phase change region

 plot([sf_sat sg_sat],[tf_sat tf_sat],'y')

 %plotting the curved constant pressure line from where the phase change

 %ends to the superheated point

 plot(S0,t0,'y')

legend('Saturation Curve L','Saturation Curve V','Turbine','condenser','pump','boiler','location','northwest')

title('T-S Diagram')

xlabel('Entropy')

ylabel('Temperature')

%plotting H-S diagram

figure(2)

hold on

%for plotting the saturation curve

tsat1=linspace(0,374,1000);

for i=1:length(tsat1)

hh1(i)=XSteam('hL_T',tsat1(i));

end

for j=1:length(tsat1)

hh2(j)=XSteam('hV_T',tsat1(j));

end

plot(ss1,hh1,'b')

plot(ss2,hh2,'r')

%for plotting tubine

plot([s1 s2],[h1 h2],'g')

%for condenser

plot([s2 s3],[h2 h3],'b')

%for plotting pump

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

s=linspace(s3,s1,1000);

for i=1:length(s)

h(i)=XSteam('h_ps',p1,s(i));

end

%for plotting boiler

% plot([s4 s1],[h4 h1],'y')

plot(s,h,'y')

legend('Saturation Curve L','Saturation Curve V','Turbine','condenser','pump','boiler','location','northwest')

title('H-S Diagram')

xlabel('Entropy')

ylabel('Enthalpy')

%outputs

%at state 1

fprintf('At State Point 1:\r\n')

fprintf('P1 is : %f Bar\r\n',p1)

fprintf('T1 is : %f Deg Celcius\r\n',t1)

fprintf('H1 is : %f KJ/Kg\r\n',h1)

fprintf('S1 is : %f KJ/KgK\r\n',s1)

%at state 2

fprintf('At State Point 2:\r\n')

fprintf('P2 is : %f Bar\r\n',p2)

fprintf('T2 is : %f Deg Celcius\r\n',t2)

fprintf('H2 is : %f KJ/Kg\r\n',h2)

fprintf('S2 is : %f KJ/KgK\r\n',s2)

fprintf('X is  : %f \r\n',x2)

%at state 3

fprintf('At State Point 3:\r\n')

fprintf('P3 is : %f Bar\r\n',p3)

fprintf('T3 is : %f Deg Celcius\r\n',t3)

fprintf('H3 is : %f KJ/Kg\r\n',h3)

fprintf('S3 is : %f KJ/KgK\r\n',s3)

%state 4

fprintf('At State Point 4:\r\n')

fprintf('P4 is : %f Bar\r\n',p4)

fprintf('T4 is : %f Deg Celcius\r\n',t4)

fprintf('H4 is : %f KJ/Kg\r\n',h4)

fprintf('S4 is : %f KJ/KgK\r\n',s4)

%calculations

fprintf('Work Done By Turbine : %f kJ/kg\r\n',W_t)

fprintf('Work Done By Pump : %f kJ/kg\r\n',W_p)

fprintf('Heat Added in The Boiler: %f KJ/kg\r\n',Q_s)

fprintf('Heat Rejected in The Condenser: %f KJ/kg\r\n',Q_r)

fprintf('Thermal Efficiency is : %f %%\r\n',efficiency*100)

fprintf('Specific Steam Consumption : %f KJ/kWh\r\n',SSC)

EXPLANATION:

  • The Program begins with clear all, close all, clc to erase the workspace and plots..
  • Input variables p1,T1,p2 are given by input command whose values are entered in command window while executing the Program.
  • @State-1, Values for Enthalpy & Entropy are extracted as a function of Pressure & Temperature.
  • h_pT, s_pT, hL_p, sV_p etc.... are the default variables whose value is stored in XSteam file.
  • Similarly, all the variables for all states are extracted using a suitable format.[**The Formulae for the State Variables and other depending factors are referred from Power Plant Reference Books.]
  • Pressure, Temperature, Enthalpy, Entropy for all the State Variables are Extracted as a function of the dependent variable from the XSteam File.
  • @State 2 is a Condenser inlet where the High-Pressure Steam is converted into Low-Pressure Water and hence Dryness Fraction, Enthalpy & Entropy for Saturated Vapour & Saturated Water are considered to Calculate the Specific Enthalpy.
  • @State-3 The water is condensed back to its Saturation Temperature and fed to the Pump, This temperature of water at the exit of the Condenser and entry of Pump is the same.
  • @State-4 This is Constant Pressure Heat addition, hence pressure is equal to p1, but the temperature increases on heating at Constant Pressure & Constant Volume as our Entropy remains same and hence Cp/Cv=gamma is considered to find temperature T4.
  • define two more points 5 and 6 to plot cycle in detail.
  • Finally Work done and Heat Evolved & SSC are calculated by basic formulae.
  • To plot the Saturation Curve, a Temperature range is defined using linspace command and for the overall length of this Temperature values of Enthalpy and Entropy are calculated at every temperature point. The Break in the Saturation Curve separates the Liquid Phase & Vapour Phase.
  • Now all the necessary data is found out, Plotting is done for both T-S & H-S curves using the plot commands. Annotations are assigned using text command.
  • Results of the Cycle Simulation is displayed over Comand window using fprintf command.

ERROR FACED

OUTPUT:

The Rankine cycle plots have generated by calculating the state points, efficiency and the output is printed in the command window.

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.