Application Center - Maplesoft

App Preview:

Steam expansion in the turbine on the h-s (Mollier) chart

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

Learn about Maple
Download Application




Steam expansion in the turbine on the h-s (Mollier) chart

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

Introduction

 

This application shows how to create

• 

a h-s (Mollier) chart

• 

 and place and isobar, an isotherm, and isochor of steam on the chart

 

Water/steam Properties (wsp) and users procedure

 

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

Density water or steam as function of pressure and temperature

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

 

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

wspSDT := proc (D, T) options operator, arrow; Property(entropy, density = D, temperature = T, H2O) end proc

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

wspHDT := proc (D, T) options operator, arrow; Property(enthalpy, density = D, temperature = T, H2O) end proc

 

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

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

 

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

wspSSWT := proc (T) options operator, arrow; Property(entropy, temperature = T, Q = 0, H2O) end proc

 

Specific enthalpy of steam at the saturated line as function of temperature

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

 

Specific entropy of steam at the saturated line as function of temperature

wspSSST := proc (T) options operator, arrow; Property(entropy, temperature = T, Q = 1, 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

Vapor fraction of 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 entropy of water or steam as function of temperature and vapor fraction

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

 

Temperature at saturated line as function of pressure

wspTSP := proc (P) options operator, arrow; Property(temperature, pressure = P, Q = 1, H2O) end proc

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

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

Dry ratio of wet steame as function of pressure and specific enthalpy

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

Specific entropy of wet steam as function of pressure and dry ratio

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

 

wspHEXPANSIONPTPEFF := proc (p0, t0, p1, eff) local h0, s0, s1, t1, x1, h1; try 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 catch: return 0*(Unit('J')/Unit('kg')) end try; return h0-(h0-h1)*eff end proc

 

t_triple := 273.16*Unit('K'); t_critical := 647.096*Unit('K'); p_triple := 611.657*Unit('Pa'); p_critical := 22.064*Unit('MPa'); t_1 := t_triple; t_2 := 1000*Unit('K'); p_1 := p_triple; p_2 := 50*Unit('MPa')

Input Data

 

Temperature and pressure in the point where an Isobar, an isotherm, and isochor must cross

t_0 := (550+273.15)*Unit('K'); p_0 := 300*Unit('atm'); p_c := 50*Unit('kPa'); eta := .87

Calculations

 

Live steam density

`ρ_0` := wspDPT(p_0, t_0)

99.92088861*Units:-Unit(kg/m^3)

(4.1)

Live steam specific enthalpy

h_0 := wspHPT(p_0, t_0)

3274.884500*Units:-Unit(kJ/kg)

(4.2)

Live steam specific entropy

s_0 := wspSPT(p_0, t_0)

6.029487974*Units:-Unit(kJ/(kg*K))

(4.3)

 

Temperature in the condencer

t_c := wspTSP(p_c); t_c-273.15*Unit('K')

81.3168931*Units:-Unit(`°C`)

(4.4)

Specific enthalpy of wet steam in the condencer

h_c := wspHEXPANSIONPTPEFF(p_0, t_0, p_c, eta)

2244.906418*Units:-Unit(kJ/kg)

(4.5)

Vapor ratio of wet steam in the condencer

x_c := wspXSPH(p_c, h_c)

.8263056203

(4.6)

Specific entropy of wet steam in the condencer

s_c := wspSSPX(p_c, x_c)

6.463674563*Units:-Unit(kJ/(kg*K))

(4.7)

Specific turbine work

h_0-h_c

1029.978082*Units:-Unit(kJ/kg)

(4.8)

Plots

 

p1 := plot([(1/1000)*wspSSWT(t), (1/1000)*wspHSWT(t), t = t_triple/Unit('K') .. t_critical/Unit('K')], color = "Blue", thickness = 3, linestyle = "solid", legend = "Water on saturated line")

p2 := plot([(1/1000)*wspSSST(t), (1/1000)*wspHSST(t), t = t_triple/Unit('K') .. t_critical/Unit('K')], color = "Red", thickness = 3, linestyle = "solid", legend = "Steam on saturated line")

 

p3 := plot([(1/1000)*wspSPT(p_0/Unit('Pa'), t), (1/1000)*wspHPT(p_0/Unit('Pa'), t), t = t_1/Unit('K') .. t_2/Unit('K')], color = "Black", thickness = 1, linestyle = "longdash", legend = "Isobar p_0")

 

p4 := plot([(1/1000)*wspSPT(p, t_0/Unit('K')), (1/1000)*wspHPT(p, t_0/Unit('K')), p = p_1/Unit('Pa') .. p_2/Unit('Pa')], color = "Red", thickness = 1, linestyle = "longdash", legend = "Isotherm t_0")

 

p5 := plot([(1/1000)*wspSDT(`ρ_0`*Unit('m')^3/Unit('kg'), t), (1/1000)*wspHDT(`ρ_0`*Unit('m')^3/Unit('kg'), t), t = t_1/Unit('K') .. t_2/Unit('K')], color = "Blue", thickness = 1, thickness = 1, linestyle = "longdash", legend = "Isochor ρ_0")

 

p6 := plot([(1/1000)*wspSPT(p_c/Unit('Pa'), t), (1/1000)*wspHPT(p_c/Unit('Pa'), t), t = t_1/Unit('K') .. t_2/Unit('K')], color = "Black", thickness = 1, thickness = 1, linestyle = "dash", legend = "Isobar p_c")

 

p7 := plot([(1/1000)*wspSPT(p, t_c/Unit('K')), (1/1000)*wspHPT(p, t_c/Unit('K')), p = p_1/Unit('Pa') .. p_2/Unit('Pa')], color = "Red", thickness = 1, linestyle = "dash", legend = "Isoterm t_c")

 

p8 := plot([(1/1000)*wspSSTX(t, x_c), (1/1000)*wspHSTX(t, x_c), t = t_triple/Unit('K') .. t_critical/Unit('K')], color = "Red", thickness = 1, linestyle = "dot", legend = "x=constant line")

 

p9 := plots:-pointplot([[s_c*Unit('kg')*Unit('K')/Unit('kJ'), h_c*Unit('kg')/Unit('kJ')], [s_0*Unit('kg')*Unit('K')/Unit('kJ'), h_0*Unit('kg')/Unit('kJ')]], connect = true, thickness = 5, color = ["Blue", "Red"], legend = "Steam expansion line: from dry to wet steam")

Plot of steam expansion in the turbine

 

plots:-display(p1, p2, p3, p4, p5, p6, p7, p8, p9, labels = [s*[kJ/(kg*K)], h*[kJ/kg]], size = [1000, 700], gridlines)

 

 

 

NULL