Challenge

Project 2 - Rankine cycle Simulator

AIM:

  1. Create a Rankine Cycle Simulator using MATLAB.
  2. calculate the state points of the Rankine Cycle based on given inputs.
  3. plot the corresponding T-s and h-s plots. Title and axes labels are a must, while legends could be used if necessary.
  4. explaining the working of a Rankine cycle simulator.

OBJECTIVE:

  1. To Create a Rankine Cycle Simulator using OCTAVE/MATLAB.
  2. To calculate the state points of the Rankine Cycle based on given inputs.
  3. To plot the corresponding T-s and h-s plots. Title and axes labels are a must, while legends could be used if necessary.
  4. To explaining the working of a Rankine cycle simulator.

GOVERNING EQUATIONS:

RANKINE CYCLE EXPLANATION:

The four processes of an ideal Rankine cycle are as follows;

Process 1-2: Isentropic compression in a pump. Here the working fluid is pumped from low to high pressure.

Process 2-3: Constant pressure heat addition in the boiler. In this process, the high-pressure liquid is added to the boiler and is heated at constant pressure to become a dry saturated vapour.

Process 3-4: Isentropic expansion in a turbine. The dry saturated vapour expands through the turbine resulting in the generation of power.

Process 4-1: Constant pressure heat rejection in a condenser. Wet vapour is condensed at a constant pressure to become a saturated liquid.

CODE WITH EXPLANATION:

  1. clear all, close all, clc, use to clear any previously defined values.
  2. First step is bring the given inputs to the program, for that the 'input()' command use. The user inputs include temperature and pressure entry to the turbine and pressure after existing to the turbine.
  3. Using the given inputs all four stages points are calculated.

(H-Enthalpy, S-Entropy, T-Temperature, P-Pressure, x-Dryness factor, )

  1. After calculating all parameters, now calculate the Pump_work, Turbine Work, Net_work output, Back Ratio, Thermal Efficiency.
  2. Now to display all inputs 'fprintf()' command use.
  3. Next is to plot the graph, H-S & T-S, First step to calculate the saturation curve for loop use.
clear all
close all
clc

% Rankine Cycle Simulator

fprintf(' Rankine Cycle\n ')
fprintf('1-2 is Isentropic Expansion in Turbine\n')
fprintf(' 2-3 is constant pressure heat removal\n')
fprintf(' 3-4 is Isentropic Compression in Pump \n')
fprintf(' 4-1 Constant pressure Heat addition in Boiler\n')

% Entering the input data for calculation of state points
p1 = 50;        %Pressure at Turbine Inlet
T1 = 500;       %Temperature at Turbine Inlet
p2 = 5;      %Pressure at Condenser

% Taking data from Xsteam file for State point 1
h1 = XSteam('h_pT', p1, T1);        % Enthaply at pressure and Temp 1
s1 = XSteam('s_pT', p1, T1);        % Entropy at pressure and Temp 1

% Taking data from Xsteam file for State point 2
s2 = s1;                            % Because of Isentropic Expansion
sf2 = XSteam('sL_p', p2);           % Saturated liquid entropy at pressure 2
sg2 = XSteam('sV_p', p2);           % Saturated vapour entropy at pressure 2
x2 = (s2-sf2)/(sg2-sf2);            % Vapour Fraction at state point 2
hf2 = XSteam('hL_p', p2);           % Saturated liquid Enthalpy at pressure 2
hg2 = XSteam('hV_p', p2);           % Saturated vapour Enthalpy at pressure 2
h2 = hf2 + (x2*(hg2-hf2));          % Enthalpy at state point 2

% Taking data from Xsteam file for state point 3
p3 = p2;                            % Constant Pressure heat removal process
s3 = XSteam('sL_p', p3);            % Saturated liquid entropy at Pressure 3
h3 = XSteam('hL_p', p3);            % Saturated liquid Enthalpy at Pressure 3

% Taking data from Xsteam file for State point 4
s4 = s3;                            % Isentropic Compression process
p4 = p1;                            % Constant Pressure heat rejection

% Work done in Turbine for the rankine cycle
W_T = h1-h2;

% Work done required for pump
v3 = XSteam('vL_p',p3);             % Saturated Liquid Vapour at pressure 3
W_P = v3*(p4-p3)*100;               % Work done for pump
h4 = h3 - W_P;                      % Enthalpy at State point 4

% Net work done for Rankine Cycle
W_net = W_T - W_P;

% Heat Addition to System
Q_in = h1-h4;

% Heat Rejection from System
Q_out = h2-h3;

% Thermal Efficiency of Rankine Cycle
T_eff = (W_net/Q_in)*100;

%specific steam consumption  = (Mass flow rate / Net work done)
Sp_S = (3600/W_net);

% Calculation of Temperature at All state Point 2, 3 and 4
T3 = XSteam('Tsat_p',p3);           % Saturation Temperature at Pressure 3
T2 = T3;                            % Becuase of Constant Pressure Heat addition
Cp4 = XSteam('Cp_ps',p4,s4);        % Specific isobaric heat capacity
Cv4 = XSteam('Cv_ps',p4,s4);        % Specific isochoric heat capacity
k = Cp4/Cv4;
T4 = T3/((p3/p4)^((k-1)/k));        % Temperature at State point 4

% Calculation of Other constant for saturated liquid and Vapour
T6 = XSteam('Tsat_p', p1);          % Saturated Temperature at Pressure 1
s5 = XSteam('sL_p', p1);            % Saturated Liquid entropy at pressure 1
s6 = XSteam('sV_p', p1);            % Saturated Vapour entropy at Pressure 1
h5 = XSteam('hL_p', p1);            % Saturated Liquid Enthalpy at Pressure 1
h6 = XSteam('hV_p', p1);            % Saturated Vapour Enthalpy at pressure 1
T5 = T6;

%Plotting for Saturation Line
T = linspace(1,560,1000);
for i = 1:length(T)
    sf(i) = XSteam('sL_T' ,T(i));   % Saturated Liquid Entropy
    sg(i) = XSteam('sV_T' ,T(i));   % Saturated Vapour Entropy
    hf(i) = XSteam('hL_T' ,T(i));   % Saturated Liquid Enthalpy
    hg(i) = XSteam('hV_T' ,T(i));   % Saturated Vapour Enthalpy
    
end

% Plotting T-S Diagram for Rankine Cycle
figure(1)
hold on
plot(sf,T,'color','b','linewidth',2)
plot(sg,T,'color','b','linewidth',2)
plot([s1 s2],[T1 T2], 'color', 'r', 'linewidth',3)
plot([s2 s3],[T2 T3], 'color', 'r', 'linewidth',3)
plot([s3 s4],[T3 T4], 'color', 'r', 'linewidth',3)
plot([s4 s5],[T4 T5], 'color', 'r', 'linewidth',3)
plot([s5 s6],[T5 T6], 'color', 'r', 'linewidth',3)
s_1 = linspace(s6,s1,1000);
for j = 1:length(s_1)
    Tc(j) = XSteam('T_ps',p1,s_1(j));
end
plot(s_1,Tc,'color','r','linewidth',3)
text(s1+0.1, T1, '1')
text(s2+0.1, T2, '2')
text(s3, T3-20, '3')
text(s4, T4+20, '4')
title('Temperature Vs Entropy')
xlabel('Entropy (Kj/kg-k)')
ylabel('Temeperature (Deg. Celcius)')
legend('Saturation Curve')

% Plotting H-S Diagram for Rankine Cycle
figure(2)
hold on
plot(sf,hf,'color','b','linewidth',2)
plot(sg,hg,'color','b','linewidth',2)
plot([s1 s2],[h1 h2],'color','r','linewidth',3)
plot([s2 s3],[h2 h3],'color','r','linewidth',3)
plot([s3 s4],[h3 h4],'color','r','linewidth',3)
hc = linspace(h4,h5,100);
for k = 1:length(hc)
    s_c(k) = XSteam('s_ph',p1,hc(k));
end
plot(s_c,hc,'color','r','linewidth',3)
plot([s5 s6],[h5 h6],'color','r','linewidth',3)
for l = 1:length(s_1)
    h_c(l) = XSteam('h_ps',p1,s_1(l));
end
plot(s_1,h_c,'color','r','linewidth',3)
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')
xlabel('Entropy (Kj/kg-k)')
ylabel('Enthalpy (KJ/Kg)')
legend('Saturation Curve')

% Displaying Results in Command window
disp('Results of Rankine Cycle')
fprintf('At state point 1\t\t\t\t\t')
fprintf('At state Point 2\n')
fprintf('P1 = %10f in Bar\t\t\t\t',p1);
fprintf('P2 = %10f in Bar\n',p2);
fprintf('T1 = %11f in Deg.Celcius\t\t',T1);
fprintf('T2 = %11f in Deg.Celcius\n',T2);
fprintf('H1 = %12f in KJ/Kg\t\t\t',h1);
fprintf('H2 = %12f in KJ/Kg\n',h2);
fprintf('S1 = %9f in KJ/Kg-k\t\t\t',s1);
fprintf('S2 = %9f in KJ/Kg-k\n',s2);
fprintf('\n')
fprintf('At state point 3\t\t\t\t\t')
fprintf('At state Point 4\n')
fprintf('P3 = %10f in Bar\t\t\t\t',p3);
fprintf('P4 = %10f in Bar\n',p4);
fprintf('T3 = %11f in Deg.Celcius\t\t',T3);
fprintf('T4 = %11f in Deg.Celcius\n',T4);
fprintf('H3 = %12f in KJ/Kg\t\t\t',h3);
fprintf('H4 = %12f in KJ/Kg\n',h4);
fprintf('S3 = %9f in KJ/Kg-k\t\t\t',s3);
fprintf('S4 = %9f in KJ/Kg-k\n',s4);
fprintf('\n')
fprintf('Turbine Work Done = %14f in KJ/Kg\n',W_T)
fprintf('Pump Work Done = %15f in KJ/Kg\n',W_P)
fprintf('Net Work Done  = %17f in KJ/Kg\n',W_net)
fprintf('Thermal Efficiency = %13f in percent\n',T_eff)
fprintf('Sp. Steam Consumption = %f in KJ/Kw\n',Sp_S)

RESULTS:

Results of Rankine Cycle
At state point 1 At state Point 2
P1 = 50.000000 in Bar P2 = 5.000000 in Bar
T1 = 500.000000 in Deg.Celcius T2 = 151.836244 in Deg.Celcius
H1 = 3434.476097 in KJ/Kg H2 = 2814.925098 in KJ/Kg
S1 = 6.977804 in KJ/Kg-k S2 = 6.977804 in KJ/Kg-k

At state point 3 At state Point 4
P3 = 5.000000 in Bar P4 = 50.000000 in Bar
T3 = 151.836244 in Deg.Celcius T4 = 231.746236 in Deg.Celcius
H3 = 640.185335 in KJ/Kg H4 = 635.268830 in KJ/Kg
S3 = 1.860599 in KJ/Kg-k S4 = 1.860599 in KJ/Kg-k

Turbine Work Done = 619.550998 in KJ/Kg
Pump Work Done = 4.916505 in KJ/Kg
Net Work Done = 614.634493 in KJ/Kg
Thermal Efficiency = 21.957448 in percent
Sp. Steam Consumption = 5.857140 in KJ/Kw

PLOTS:

CONCLUSION:

  1. Created a Rankine Cycle Simulator using MATLAB.
  2. Calculated the state points of the Rankine Cycle based on given inputs.
  3. plotted the corresponding T-s and h-s plots.
  4. Explained the working of a Rankine cycle simulator.
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.