Application Center - Maplesoft

App Preview:

Maximal Thermal Efficiency of Steam Turbine Cycle with two Pre-heaters

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application




Maximal Thermal Efficiency of  Steam Turbine Cycle with two Pre-heaters

Author: Valery Ochkov (http://twt.mpei.ac.ru/ochkov/v_ochkov.htm)

Introduction

 

This application calculates the maximal thermal efficiency of a steam turbine cycle with two pre-heaters: find the optimal p_2 and p_1 values.

Water/Steam Properties (wsp)

 

restart; with(ThermophysicalData); with(Units[Standard])


Specific entropy of water or steam as function of pressure and temperature

wspSPT := proc (P, T) options operator, arrow; Property(entropy, pressure = P, temperature = T, H2O) end proc:

Specific enthalpy of water or steam as function of pressure and temperature

wspHPT := proc (P, T) options operator, arrow; Property(enthalpy, pressure = P, temperature = T, H2O) end proc:

Vapor fraction of wet steam as function of pressure and specific entropy

wspXPS := proc (P, S) options operator, arrow; Property(Q, pressure = P, entropy = S, H2O) end proc:

 

Specific enthalpy of water or steam as function of temperature and vapor fraction

wspHSTX := proc (T, X) options operator, arrow; Property(enthalpy, temperature = T, Q = X, H2O) end proc:


Specific enthalpy of water at the saturated line as function of pressure

wspHSWP := proc (P) options operator, arrow; Property(enthalpy, pressure = P, Q = 0, H2O) end proc:

 

Specific entropy of water at the saturated line as function of pressure

wspSSWP := proc (P) options operator, arrow; Property(entropy, pressure = P, Q = 0, H2O) end proc:

 

Specific enthalpy of water or steam as function of pressure and specific entropy

wspHPS := proc (P, S) options operator, arrow; Property(enthalpy, pressure = P, entropy = S, H2O) end proc:

 

Temperature of water or steam as function of pressure and specific entropy

wspTPS := proc (P, S) options operator, arrow; Property(temperature, pressure = P, entropy = S, H2O) end proc:


Functions for processes steam expansion and water compression

 

wspHEXPANSIONPTPEFF := proc (p0, t0, p1, eff) local h0, s0, s1, t1, x1, h1; h0 := wspHPT(p0, t0); s0 := wspSPT(p0, t0); s1 := s0; t1 := wspTPS(p1, s1); if Property(PhaseString, pressure = p1, entropy = s1, H2O) = "twophase" then x1 := wspXPS(p1, s1); h1 := wspHSTX(t1, x1) else h1 := wspHPT(p1, t1) end if; return h0-(h0-h1)*eff end proc:

wspHCOMPRESSIONPPEFF := proc (p0, p1, eff) local h0, s0, s1, h1; h0 := wspHSWP(p0); s0 := wspSSWP(p0); s1 := s0; h1 := wspHPS(p1, s1); return h0+(h1-h0)/eff end proc:

 

Input Data

 

t_0 := Units:-Standard:-`+`(540, 273.15):

 

Calculations

 

`η_T` := proc (p_2, p_1) local equ1, equ2, h_0, h_1, h_2, h_cond, h_p1in, h_p1out, h_p2in, h_p2out, h_p3in, h_p3out, res, w_t, w_p, q_b; try equ1 := (1-`α_1`-`α_2`)*h_p1out+`α_1`*h_1 = (1-`α_2`)*h_p2in; equ2 := (1-`α_2`)*h_p2out+`α_2`*h_2 = h_p3in; h_0 := wspHPT(p_0, t_0); h_2 := wspHEXPANSIONPTPEFF(p_0, t_0, p_2, `η_i_t`); h_1 := wspHEXPANSIONPTPEFF(p_0, t_0, p_1, `η_i_t`); h_cond := wspHEXPANSIONPTPEFF(p_0, t_0, p_cond, `η_i_t`); h_p1in := wspHSWP(p_cond); h_p1out := wspHCOMPRESSIONPPEFF(p_cond, p_1, `η_i_p`); h_p2in := wspHSWP(p_1); h_p2out := wspHCOMPRESSIONPPEFF(p_1, p_2, `η_i_p`); h_p3in := wspHSWP(p_2); h_p3out := wspHCOMPRESSIONPPEFF(p_2, p_0, `η_i_p`); res := solve({equ1, equ2}, {`α_1`, `α_2`}); w_t := eval(h_0-h_2+(1-`α_2`)*(h_2-h_1)+(1-`α_1`-`α_2`)*(h_1-h_cond), res); w_p := eval((1-`α_1`-`α_2`)*(h_p1out-h_p1in)+(1-`α_2`)*(h_p2out-h_p2in)+h_p3out-h_p3in, res); q_b := h_0-h_p3out; return eval((w_t-w_p)/q_b, res) catch: return 0 end try end proc:

The thermal efficiency of a steam turbine cycle without pre-heaters (variant 1).

`η_T`(p_0, p_0)

.3668741821

(4.1)

The thermal efficiency of a steam turbine cycle without pre-heaters  (variant 2).

`η_0` := `η_T`(p_cond, p_cond)

.3668741816

(4.2)

The thermal efficiency of a steam turbine cycle with one pre-heater at p_2=p_1= 7 MPa

`η_T`(Units:-Standard:-`*`(7, Units:-Standard:-`^`(10, 6)), Units:-Standard:-`*`(7, Units:-Standard:-`^`(10, 6)))

.3829057798

(4.3)

The thermal efficiency of a steam turbine cycle with two pre-heaters at p_2=7 MPa and p_1=3 MPa

`η_T`(Units:-Standard:-`*`(7, Units:-Standard:-`^`(10, 6)), Units:-Standard:-`*`(3, Units:-Standard:-`^`(10, 6)))

.3980119701

(4.4)

Function for the 3D-plot: p_2 must be > p_1

`&eta;p_T` := proc (p_2, p_1) options operator, arrow; if p_2 < p_1 then `&eta;_0` else `&eta;_T`(p_2, p_1) end if end proc:

Create the surfase plot

plot3d(('`&eta;p_T`')(p_2, p_1), p_2 = p_0 .. p_cond, p_1 = p_0 .. p_cond, style = surfacecontour)

 

 

Calculate the maximal thermal efficiency of a steam turbine cycle with two pre-heaters (see the 3D-plot above): find the optimal p_2 and p_1 values (pascal)

Optimization:-Maximize(('`&eta;_T`')(p_2, p_1), initialpoint = {p_1 = Units:-Standard:-`*`(.8, p_0), p_2 = Units:-Standard:-`*`(.8, p_0)}, method = nonlinearsimplex, evaluationlimit = 500)

[.408765064205395989, [p_1 = HFloat(257207.13028080753), p_2 = HFloat(2865833.1985270223)]]

(4.5)

NULL