In [1]:

```
# Variables
P1 = 3.5; #Pressure at entry in MN/(m**2)
T1 = 773.; #Temperature at entry in K
P2 = 0.7; #Pressure at exit in MN/(m**2)
ma = 1.3; #mass flow rate of air in kg/s
y = 1.4; #Ratio of specific heats
R = 0.287; #Universal gas constant in KJ/Kg-K
# Calculations
c = y/(y-1); #Ratio
Pt = ((2/(y+1))**c)*P1; #Throat pressure in MN/(m**2)
v1 = (R*T1)/(P1*1000); #Specific volume at entry in (m**3)/kg
Ct = ((2*c*P1*v1*(1-((Pt/P1)**(1/c))))**0.5)*1000; #Velocity at throat in m/s
vt = v1*((P1/Pt)**(1/y)); #Specific volume at throat in (m**3)/kg
At = ((ma*vt)/Ct)*(10**6); #Area of throat in (mm**2)
C2 = ((2*c*P1*v1*(1-((P2/P1)**(1/c))))**0.5)*1000; #Velocity at exit in m/s
v2 = v1*((P1/P2)**(1/y)); #Specific volume at exit in (m**3)/kg
A2 = ((ma*v2)/C2)*(10**6); #Area of exit in (mm**2)
M = C2/Ct; #Mach number at exit
# Results
print 'Throat area is %3.0f mm**2 \
\nExit area is %3.0f mm**2 \
\nMach number at exit is %3.2f'%(At,A2,M)
# rounding off error
```

In [2]:

```
# Variables
T1 = 273.; #Temperature at section 1 in K
P1 = 140.; #Pressure at section 1 in KN/(m**2)
v1 = 900.; #Velocity at section 1 in m/s
v2 = 300.; #Velocity at section 2 in m/s
Cp = 1.006; #Specific heat at constant pressure in kJ/kg-K
Cv = 0.717; #Specific heat at constant volume in kJ/kg-K
y = 1.4; #Ratio of specific heats
# Calculations
c = y/(y-1); #Ratio
R = Cp-Cv; #Universal gas constant in KJ/Kg-K
T2 = T1-(((v2)**2-(v1)**2)/(2000*c*R)); #Temperature at section 2 in K
DT = T2-T1; #Increase in temperature in K
P2 = P1*((T2/T1)**c); #Pressure at section 2 in KN/(m**2)
DP = (P2-P1)/1000; #Increase in pressure in MN/(m**2)
IE = Cv*(T2-T1); #Increase in internal energy in kJ/kg
# Results
print 'Increase in temperature is %3.0f K \
\nIncrease in pressure is %3.2f MN/m**2 \
\nIncrease in internal energy is %3.0f kJ/kg'%(DT,DP,IE)
```

In [2]:

```
# Variables
P1 = 2; #Pressure at entry in MN/(m**2)
T1 = 598; #Temperature at entry in K
P2 = 0.36; #Pressure at exit in MN/(m**2)
m = 7.5; #mass flow rate of steam in kg/s
n = 1.3; #Adiabatic gas constant
v1 = 0.132; #Volume at entry in (m**3)/kg from steam table
Ts = 412.9; #Saturation temperature in K
# Calculations
c = n/(n-1); #Ratio
Pt = ((2/(n+1))**c)*P1; #Throat pressure in MN/(m**2)
Ct = ((2*c*P1*v1*(1-((Pt/P1)**(1/c))))**0.5)*1000; #Velocity at throat in m/s
vt = v1*((P1/Pt)**(1/n)); #Specific volume at throat in (m**3)/kg
At = ((m*vt)/Ct)*(10**6); #Area of throat in (mm**2)
C2 = ((2*c*P1*v1*(1-((P2/P1)**(1/c))))**0.5)*1000; #Velocity at exit in m/s
v2 = v1*((P1/P2)**(1/n)); #Specific volume at exit in (m**3)/kg
A2 = ((m*v2)/C2)*(10**6); #Area of exit in (mm**2)
T2 = T1*((P2/P1)**(1/c)); #Temperature at exit in K
D = Ts-T2; #Degree of undercooling at exit in K
# Results
print 'Throat area is %3.0f mm**2 \
\nExit area is %3.0f mm**2 \
\nDegree of undercooling at exit is %3.1f K'%(At,round(A2,-1),D)
```

In [3]:

```
# Variables
P1 = 2.2; #Pressure at entry in MN/(m**2)
T1 = 533.; #Temperature at entry in K
P2 = 0.4; #Pressure at exit in MN/(m**2)
m = 11.; #mass flow rate of steam in kg/s
n = 0.85; #Efficiency of expansion
h1 = 2940.; #Enthalpy at entrance in kJ/kg from Moiller chart
ht = 2790.; #Enthalpy at throat in kJ/kg from Moiller chart
h2s = 2590.; #Enthalpy below exit level in kJ/kg from Moiller chart
vt = 0.16; #Throat volume in (m**3)/kg
v2 = 0.44; #Volume at exit in (m**3)/kg
# Calculations
Ct = (2000*(h1-ht))**0.5; #Throat velocity in m/s
h2 = ht-(0.85*(ht-h2s)); #Enthalpy at exit in kJ/kg
C2 = (2000*(h1-h2))**0.5; #Exit velocity in m/s
At = ((m*vt)/Ct)*(10**6); #Area of throat in (mm**2)
A2 = ((m*v2)/C2)*(10**6); #Area of exit in (mm**2)
# Results
print 'Throat velocity is %3.0f m/s \
\nExit velocity is %3.0f m/s \
\nThroat area is %3.0f mm**2 \
\nExit area is %3.0f mm**2 '%(Ct,C2,round(At,-1),A2)
```

In [5]:

```
# Variables
P1 = 35.; #Pressure at entry in bar
T1 = 573.; #Temperature at entry in K
P2 = 8.; #Pressure at exit in bar
Ts = 443.4; #Saturation temperature in K
Ps = 3.1; #Saturation pressure in bar
m = 5.2; #mass flow rate of steam in kg/s
n = 1.3; #Adiabatic gas consmath.tant
v1 = 0.06842; #Specific volume at entry in (m**3)/kg from steam table
v3 = 0.2292; #Specific volume at exit in (m**3)/kg from steam table
h1 = 2979.; #Enthalpy in kJ/kg from Moiller chart
h3 = 2673.3; #Enthalpy in kJ/kg from Moiller chart
# Calculations
c = n/(n-1); #Ratio
C2 = ((2*c*P1*(10**5)*v1*(1-((P2/P1)**(1/c))))**0.5); #Velocity at exit in m/s
v2 = v1*((P1/P2)**(1/n)); #Specific volume at exit in (m**3)/kg
A2 = ((m*v2)/C2)*(10**4); #Area of exit in (cm**2)
a = ((A2/18)**0.5)*10; #Length in mm
b = 3*a; #Breadth in mm
T2 = T1*((P2/P1)**(1/c)); #Temperature at exit in K
D = Ts-T2; #Degree of undercooling in K
Ds = P2/Ps; #Degree of supersaturation
hI = h1-h3; #Isentropic enthalpy drop in kJ/kg
ha = (C2**2)/2000; #Actual enthalpy drop in kJ/kg
QL = hI-ha; #Loss in available heat in kJ/kg
DS = QL/Ts; #Increase in entropy in kJ/kg-K
C3 = (2000*(h1-h3))**0.5; #Exit velocity from nozzle
mf = ((A2*C3*(10**-4))/v3); #Mass flow rate in kg/s
Rm = m/mf; #Ratio of mass rate
# Results
print 'Cross section of nozzle is %3.1f mm * %3.1f mm \
\nDegree of undercooling is %3.1f K and Degree of supersaturation is %3.2f \
\nLoss in available heat drop due to irreversibility is %3.2f kJ/kg \
\nIncrease in entropy is %3.5f kJ/kg-K \
\nRatio of mass flow rate with metastable expansion to the thermal expansion is %3.3f'%(b,a,D,Ds,QL,DS,Rm)
```

In [1]:

```
import math
# Variables
m = 14.; #Mass flow rate of steam in kg/s
P1 = 3.; #Pressure of Steam in MN/(m**2)
T1 = 300.; #Steam temperature in oC
h1 = 2990.; #Enthalpy at point 1 in kJ/kg
h2s = 2630.; #Enthalpy at point 2s in kJ/kg
ht = 2850.; #Enthalpy at point t in kJ/kg
n = 1.3; #Adiabatic gas consmath.tant
C2 = 800.; #Exit velocity in m/s
v2 = 0.4; #Specific volume at exit in (m**3)/kg
# Calculations
x = n/(n-1); #Ratio
Pt = ((2/(n+1))**x)*P1; #Temperature at point t in MN/(m**2)
h2 = h1-((C2**2)/2000); #Exit enthalpy in kJ/kg
nN = ((h1-h2)/(h1-h2s))*100; #Nozzle efficiency
A2 = ((m*v2)/C2)*(10**6); #Exit area in (mm**2)
Ct = math.sqrt(2*(h1-ht)*10**3); #Throat velocity in m/s
# Results
print 'Nozzle efficiency is %3.1f percent \
\nExit area is %3.0f mm**2 \
\nThroat velocity is %3.0f m/s'%(nN,A2,Ct)
```

In [6]:

```
import math
# Variables
P1 = 10.; #Pressure at point 1 in bar
P2 = 0.5; #Pressure at point 2 in bar
h1 = 3050.; #Enthalpy at point 1 in kJ/kg
h2s = 2480.; #Enthalpy at point 2s in kJ/kg
ht = 2910.; #Enthalpy at throat in kJ/kg
n = 1.3; #Adiabatic gas constant
r = 0.1; #Total available heat drop
v1 = 0.258; #Specific volume at point 1 in (m**3)/kg
h2f = 340.6; #Enthalpy for exit pressure from steam tables in kJ/kg
hfg = 2305.4; #Enthalpy for exit pressure from steam tables in kJ/kg
m = 0.5; #Mass flow rate in kg/s
# Calculations
x = n/(n-1); #Ratio
Pt = ((2/(n+1))**x)*P1; #Temperature at throat in bar
h2 = h2s+(r*(h1-h2s)); #Enthalpy at point 2 in kJ/kg
vt = ((P1/Pt)**(1/n))*v1; #Specific volume at throat in (m**3)/kg
v2 = ((P1/P2)**(1/n))*v1; #Specific volume at point 2 in (m**3)/kg
Ct = math.sqrt(2000*(h1-ht)); #Throat velocity in m/s
At = ((m*vt)/Ct)*(10**6); #Throat area in (mm**2)
C2 = math.sqrt(2000*(h1-h2)); #Exit velocity in m/s
A2 = ((m*v2)/C2)*(10**6); #Exit area in (mm**2)
x2 = ((h2-h2f)/hfg)*100; #Steam quality at exit
# Results
print 'Throat area is %d mm**2 \
\nExit area is %d mm**2 \
\nSteam quality at exit is %3.0f percent'%(At,A2,x2)
# rounding off error
```

In [7]:

```
import math
# Variables
P1 = 3.5; #Dry saturated steam in bar
P2 = 1.1; #Exit pressure in bar
At = 4.4; #Throat area in cm**2
h1 = 2731.6; #Enthalpy at P1 in kJ/kg
v1 = 0.52397; #Specific volume at P1 in m**3/kg
n = 1.135; #Adiabatic gas constant
ht = 2640.; #Enthalpy at Pt in kJ/kg
vt = 0.85; #Specific volume at throat in m**3/kg
h2 = 2520.; #Enthalpy at P2 in kJ/kg
v2 = 1.45; #Specific volume at P2 in m**3/kg
# Calculations
x = n/(n-1); #Ratio
Pt = ((2/(n+1))**x)*P1; #Throat pressure in bar
Ct = math.sqrt(2000*(h1-ht)); #Throat velocity in m/s
mmax = ((At*Ct*(10**-4))/vt)*60; #Maximum discharge in kg/min
C2 = math.sqrt(2000*(h1-h2)); #Exit velocity in m/s
A2 = ((mmax*v2)/(C2*60))*(10**6); #Exit area in mm**2
# Results
print 'Maximum discharge is %3.3f kg/min \
\nExit area is %3.1f mm**2'%(mmax,A2)
```

In [5]:

```
import math
# Variables
P1 = 10.; #Pressure at point 1 in bar
T1 = 200.; #Temperature at point 1 in oC
P2 = 5.; #Pressure at point 2 in bar
n = 1.3; #Adiabatic gas consmath.tant
h1 = 2830.; #Enthalpy at P1 in kJ/kg
ht = 2710.; #Enthalpy at point Pt in kJ/kg
vt = 0.35; #Specific volume at Pt in m**3/kg
m = 3. #Nozzle flow in kg/s
# Calculations
x = n/(n-1); #Ratio
Pt = ((2/(n+1))**x)*P1; #Throat pressure in bar
Ct = math.sqrt(2000*(h1-ht)); #Throat velocity in m/s
At = (m*vt)/Ct; #Throat area in m**2
# Results
print 'Since throat pressure is greater than exit pressure,nozzle used is\
convergent-divergent nozzle \
\nMinimum area of nozzle required is %.2e m**2'%(At)
```

In [1]:

```
import math
# Variables
P1 = 10.5; #Pressure at point 1 in bar
x1 = 0.95; #Dryness fraction
n = 1.135; #Adiabatic gas constant
P2 = 0.85; #Pressure at point 2 in bar
vg = 0.185; #Specific volume in m**3/kg
# Calculations
c = n/(n-1); #Ratio
Pt = round(((2/(n+1))**c)*P1,2); #Throat pressure in MN/(m**2)
v1 = round(x1*vg,3); #Specific volume at point 1 in m**3/kg
Ct = round(math.sqrt((2*n*P1*v1*(10**5)/(n+1))),2); #Velocity at throat in m/s
vt = round(((P1/Pt)*(v1**n))**(1/1.135),3); #Specific volume at throat in m**3/kg
m = Ct/vt; #Mass flow rate per unit throat area in kg/(m**2)
# Results
print 'Throat velocity is %3.2f m/s \
\nMass flow rate of steam is %3.2f kg/m**2'%(Ct,m)
```

In [2]:

```
# Variables
P1 = 10.; #Pressure at point 1 in bar
T1 = 452.9; #Temperature at point 1 in K
P2 = 4.; #Pressure at point 2 in bar
n = 1.3; #Adiabatic gas constant
Ps = 0.803; #Saturation pressure at T2 in bar
Ts = 143.6; #Saturation temperature at P2 in oC
# Calculations
x = (n-1)/n; #Ratio
T2 = ((P2/P1)**x)*T1; #Temperature at point 2 in K
Ds = P2/Ps; #Degree of supersaturation
Du = Ts-(T2-273); #Degree of undercooling
# Results
print 'Degree of supersaturation is %3.2f \
\nDegree of undercooling %3.0f C'%(Ds,Du)
```

In [14]:

```
import math
# Variables
P1 = 9.; #Pressure at point 1 in bar
P2 = 1.; #Pressure at point 2 in bar
Dt = 0.0025; #Throat diameter in m
nN = 0.9; #Nozzle efficiency
n = 1.135; #Adiabatic gas constant
h1 = 2770.; #Enthalpy at point 1 in kJ/kg
ht = 2670.; #Throat enthlapy in kJ/kg
h3 = 2400.; #Enthlapy at point 2 in kJ/kg
x2 = 0.96; #Dryness fraction 2
vg2 = 0.361; #Specific volume in m**3/kg
# Calculations
x = n/(n-1); #Ratio
Pt = ((2/(n+1))**x)*P1; #Throat pressure in bar
Ct = math.sqrt(2000*(h1-ht)*nN); #Throat velocity in m/s
At = (3.147*2*(Dt**2))/4; #Throat area in m**2
vt = x2*vg2; #Specific volume at throat in m**3/kg
m = (At*Ct)/vt; #Mass flow rate of steam in kg/s
hact = nN*(h1-h3); #Actual enthalpy drop in kJ/kg
C2 = math.sqrt(2000*hact); #Exit velocity of steam in m/s
# Results
print 'Quantity of steam used per second is %3.3f kg/s \
\nExit velocity of steam is %3.2f m/s'%(m,C2)
```

In [15]:

```
# Variables
C1 = 1000.; #Steam velocity in m/s
a1 = 20.; #Nozzle angle in degrees
U = 400.; #Mean blade speed in m/s
m = 0.75; #Mass flow rate of steam in kg/s
b1 = 33.; #Blade angle at inlet from the velocity triangle in degrees
b2 = b1; #Blade angle at exit from the velocity triangle in degrees
Cx = 1120.; #Change in whirl velocity from the velocity triangle in m/s
Ca = 0; #Change in axial velocity from the velocity triangle in m/s
# Calculations
Fx = m*Cx; #Tangential force on blades in N
Fy = m*Ca; #Axial thrust in N
W = (m*Cx*U)/1000; #Diagram power in kW
ndia = ((2*U*Cx)/(C1**2))*100; #Diagram efficiency
# Results
print 'Blade angles are %3.0f degrees, %3.0f degrees \
\nTangential force on blades is %3.0f N \
\nAxial thrust is %3.0f \
\nDiagram power is %3.0f kW \
\nDiagram efficiency %3.1f percent'%(b1,b2,Fx,Fy,W,ndia)
```

In [14]:

```
# Variables
D = 2.5; #Mean diameter of blade ring in m
N = 3000.; #Speed in rpm
a1 = 20.; #Nozzle angle in degrees
r = 0.4; #Ratio blade velocity to steam velocity
Wr = 0.8; #Blade friction factor
m = 10.; #Steam flow in kg/s
x = 3.; #Sum in blade angles in degrees
b1 = 32.5; #Blade angle at inlet from the velocity triangle in degrees
W1 = 626.7; #Relative velocity at inlet from the velocity triangle in m/s
Cx = 967.; #Change in whirl velocity from the velocity triangle in m/s
# Calculations
U = (3.147*D*N)/60; #Blade velocity in m/s
C1 = U/r; #Steam velocity in m/s
b2 = b1-x; #Blade angle at exit in degrees
W2 = Wr*W1; #Relative velocity at outlet from the velocity triangle in m/s
W = (m*Cx*U)/1000; #Power developed in kW
ndia = ((2*U*Cx)/(C1**2))*100; #Blade efficiency
sc = (m*3600)/W; #Steam consumption in kg/kWh
# Results
print 'Power developed is %3.0f kW \
\nBlade efficiency is %3.1f percent \
\nSteam consumed is %3.2f kg/kWh'%(round(W,-1),ndia,sc)
```

In [17]:

```
# Variables
m = 3.; #Mass flow rate of steam in kg/s
C1 = 425.; #Steam velocity in m/s
r = 0.4; #Ratio of blade speed to jet speed
W = 170.; #Stage output in kW
IL = 15.; #Internal losses in kW
a1 = 16.; #Nozzle angle in degrees
b2 = 17.; #Blade angle at exit in degrees
W1 = 265.; #Relative velocity at inlet from the velocity triangle in m/s
W2 = 130.; #Relative velocity at outlet from the velocity triangle in m/s
# Calculations
U = C1*r; #Blade speed in m/s
P = (W+IL)*1000; #Total power developed in W
Cx = P/(m*W); #Change in whirl velocity in m/s
ndia = ((2*U*Cx)/(C1**2))*100; #Blading efficiency
Wr = W2/W1; #Blade velocity co-efficient
# Results
print 'Blading efficiency is %3.1f percent \
\nBlade velocity co-efficient is %3.2f'%(ndia,Wr)
```

In [18]:

```
# Variables
C1 = 375.; #Steam velocity in m/s
a1 = 20.; #Nozzle angle
U = 165.; #Blade speed in m/s
m = 1.; #Mass flow rate of steam in kg/s
Wr = 0.85; #Blade friction factor
Ca1 = 130.; #Axial velocity at inlet from the velocity triangle in m/s
Ca2 = Ca1; #Axial velocity at outlet in m/s
W1 = 230.; #Relative velocity at inlet from the velocity triangle in m/s
Cx = 320.; #Change in whirl velocity from the velocity triangle in m/s
# Calculations
b2 = 41; #Blade angle at exit from the velocity triangle in degrees
b1 = 34; #Blade angle at exit from the velocity triangle in degrees
W = (m*Cx*U)/1000; #Power developed by turbine in kW
# Results
print 'Blade angles assumed are %3.0f degrees, %3.0f degrees \
\nPower developed by turbine is %3.1f kW'%(b1,b2,W)
```

In [19]:

```
# Variables
m = 2.; #Mass flow rate of steam in kg/s
W = 130.; #Turbine power in kW
U = 175.; #Blade velocity in m/s
C1 = 400.; #Steam velocity in m/s
Wr = 0.9; #Blade friction factor
W1 = 240.; #Realtive velocity at inlet from the velocity triangle in m/s
# Calculations
Cx1 = (W*1000)/(m*U); #Whirl velocity at inlet in m/s
W2 = Wr*W1; #Realtive velocity at outlet from the velocity triangle in m/s
a1 = 19; #Nozzle angle from the velocity triangle in degrees
b1 = 33; #Blade angle at inlet from the velocity triangle in degrees
b2 = 36; #Blade angle at outlet from the velocity triangle in degrees
# Results
print 'Nozzle angle is %3.0f degrees \
\nBlade angles are %3.0f degrees, %3.0f degrees'%(a1,b1,b2)
```

In [20]:

```
# find Diagram efficiency
# Variables
U = 150.; #Blade speed in m/s
m = 3.; #Mass flow rate of steam in kg/s
P = 10.5; #Pressure in bar
r = 0.21; #Ratio blade velocity to steam velocity
a1 = 16.; #Nozzle angle in first stage in degrees
b2 = 20.; #Blade angle at exit in first stage in degrees
a3 = 24.; #Nozzle angle in second stage in degrees
b4 = 32.; #Blade angle at exit in second stage in degrees
Wr = 0.79; #Blade friction factor for first stage
Wr2 = 0.88; #Blade friction factor for second stage
Cr = 0.83; #Blade velocity coefficient
W1 = 570.; #Relative velocity at inlet from the velocity triangle for first stage in m/s
C2 = 375.; #Velocity in m/s
W3 = 185.; #Relative velocity at inlet from the velocity triangle for second stage in m/s
# Calculations
C1 = U/r; #Steam speed at exit in m/s
W2 = Wr*W1; #Relative velocity at outlet for first stage in m/s
C3 = Cr*C2; #Steam velocity at inlet for second stage in m/s
W4 = Wr2*W3; #Relative velocity at exit for second stage in m/s
DW1 = W1+W2; #Change in relative velocity for first stage in m/s
DW2 = 275; #Change in relative velocity from the velocity triangle for second stage in m/s
ndia = ((2*U*(DW1+DW2))/(C1**2))*100; #Diagram efficiency
# Results
print 'Diagram efficiency is %3.1f percent'%(ndia)
```

In [21]:

```
import math
# Variables
b1 = 30.; #Blade angle at inlet in first stage in degrees
b2 = 30.; #Blade angle at exit in first stage in degrees
b3 = 30.; #Blade angle at inlet in second stage in degrees
b4 = 30.; #Blade angle at exit in second stage in degrees
t1 = 240.; #Temperature at entry in oC
P1 = 11.5; #Pressure at entry in bar
P2 = 5.; #Pressure in wheel chamber in bar
vl = 10.; #Loss in velocity in percent
h = 155.; #Enthalpy at P2 in kJ/kg
W4 = 17.3; #Relative velocity at exit from the velocity triangle for second stage in m/s
a4 = 90.; #Nozzle angle in second stage in degrees
C3 = 33.; #Steam velocity at inlet from the velocity triangle for second stage in m/s
W2 = 49.; #Relative velocity at outlet from the velocity triangle for first stage in m/s
x = 15.; #Length of AB assumed for drawing velocity triangle in mm
y = 67.; #Length of BC from the velocity triangle in mm
# Calculations
C1 = math.sqrt(2000*h); #Velocity of steam in m/s
W3 = W4/0.9; #Relative velocity at inlet for second stage in m/s
C2 = C3/0.9; #Velocity in m/s
W1 = W2/0.9; #Relative velocity at inlet for first stage in m/s
C1n = C1/y; #Velocity of steam in m/s
U = x*C1n; #Blade speed in m/s
a3 = 17.; #Nozzle angle in second stage from the velocity triangle in degrees
a2 = 43.; #Nozzle angle from the velocity triangle in degrees
DW1 = 731.5; #Change in relative velocity from the velocity triangle for first stage in m/s
DW2 = 257.5; #Change in relative velocity from the velocity triangle for second stage in m/s
ndia = ((2*U*(DW1+DW2))/(C1**2))*100; #Diagram efficiency
# Results
print 'Blade speed is %3.1f m/s \
\nBlade tip angles of the fixed blade are %3.0f degrees and %3.0f degrees \
\nDiagram efficiency is %3.1f percent'%(U,a3,a2,ndia)
```

In [17]:

```
# Variables
C1 = 600.; #Steam velocity in m/s
b1 = 30.; #Blade angle at inlet in first stage in degrees
b2 = 30.; #Blade angle at exit in first stage in degrees
b3 = 30.; #Blade angle at inlet in second stage in degrees
b4 = 30.; #Blade angle at exit in second stage in degrees
a4 = 90.; #Nozzle angle in second stage in degrees
m = 3.; #Mass of steam in kg/s
x = 15.; #Length for drawing velocity triangle in mm
y = 56.; #Length of BC from the velocity triangle in mm
# Calculations
C1n = round(C1/y,1); #Velocity of steam in m/s
U = round(x*C1n,1); #Blade speed in m/s
l = 103.; #Length from velocity triangle in mm
P = (m*l*C1n*U)/1000; #Power developed in kW
# Results
print 'Blade speed is %3.1f m/s \
\nPower developed by the turbine is %3.2f kW'%(U,P)
```

In [18]:

```
import math
# Variables
N = 400.; #Speed in rpm
m = 8.33; #Mass of steam in kg/s
P = 1.6; #Pressure of steam in bar
x = 0.9; #Dryness fraction
W = 10.; #Stage power in kW
r = 0.75; #Ratio of axial flow velocity to blade velocity
a1 = 20.; #Nozzle angle at inlet in degrees
a2 = 35.; #Nozzle angle at exit in degrees
b1 = a2; #Blade tip angle at exit in degrees
b2 = a1; #Blade tip angle at inlet in degrees
a = 25.; #Length of AB from velocity triangle in mm
vg = 1.091; #Specific volume of steam from steam tables in (m**3)/kg
# Calculations
Cx = 73.5; #Change in whirl velocity from the velocity triangle by measurement in mm
y = Cx/a; #Ratio of change in whirl velocity to blade speed
U = math.sqrt((W*1000)/(m*y)); #Blade speed in m/s
D = ((U*60)/(3.147*N))*1000; #Mean diameter of drum in mm
v = m*x*vg; #Volume flow rate of steam in (m**3)/s
# Results
print 'Mean diameter of drum is %3.0f mm \
\nVolume of steam flowing per second is %3.2f m**3/s'%(D,v)
# rounding off error
```

In [24]:

```
import math
# Variables
N = 300.; #Speed in rpm
m = 4.28; #Mass of steam in kg/s
P = 1.9; #Pressure of steam in bar
x = 0.93; #Dryness fraction
W = 3.5; #Stage power in kW
r = 0.72; #Ratio of axial flow velocity to blade velocity
a1 = 20.; #Nozzle angle at inlet in degrees
b2 = a1; #Blade tip angle at inlet in degrees
l = 0.08; #Tip leakage steam
vg = 0.929; #Specific volume of steam from steam tables in (m**3)/kg
# Calculations
mact = m-(m*l); #Actual mass of steam in kg/s
a = (3.147*N)/60; #Ratio of blade velocity to mean dia
b = r*a; #Ratio of axial velocity to mean dia
c = 46; #Ratio of change in whirl velocity to mean dia
D = math.sqrt((W*1000)/(mact*c*a)); #Mean dia in m
Ca = b*D; #Axial velocity in m/s
h = ((mact*x*vg)/(3.147*D*Ca))*1000; #Blade height in mm
D1 = D-(h/1000); #Drum dia in m
# Results
print 'Drum diameter is %3.3f m \
\nBlade height is %3.0f mm'%(D1,h)
```

In [27]:

```
import math
# Variables
P0 = 800.; #Steam pressure in kPa
P2 = 100.; #Pressure at point 2 in kPa
T0 = 973.; #Steam temperature in K
a1 = 73.; #Nozzle angle in degrees
ns = 0.9; #Steam efficiency
m = 35.; #Mass flow rate in kg/s
Cp = 1.005; #Specific heat at constant pressure in kJ/kg-K
y = 1.4; #Ratio of specific heats
# Calculations
tanb1 = math.tan(math.radians(a1))/2; #Blade angle at inlet in degrees
b1 = math.degrees(math.atan(tanb1))
b2 = b1; #Blade angle at exit in degrees
p = 2/math.tan(math.radians(a1)); #Flow coefficient
s = p*(math.tan(math.radians(b1))+math.tan(math.radians(b2))); #Blade loading coefficient
Dh = ns*Cp*T0*(1-((P2/P0)**((y-1)/y))); #Difference in enthalpies in kJ/kg
W = (m*Dh)/1000; #Power developed in MW
# Results
print 'Rotor blade angles are %3.2f degrees and %3.2f degrees \
\nFlow coefficient is %3.3f \
\nBlade loading coefficient is %3.0f \
\nPower developed is %3.1f MW'%(b1,b2,p,s,W)
# answer in book is wrong for W. please check.
```

In [10]:

```
import math
# Variables
P0 = 100.; #Steam pressure in bar
T0 = 773.; #Steam temperature in K
a1 = 70.; #Nozzle angle in degrees
ns = 0.78; #Steam efficiency
m = 100.; #Mass flow rate of steam in kg/s
D = 1.; #Turbine diameter in m
N = 3000.; #Turbine speed in rpm
h0 = 3370.; #Steam enthalpy from Moiller chart in kJ/kg
v2 = 0.041; #Specific volume at P2 from steam tables in (m**3)/kg
v4 = 0.05; #Specific volume at P4 from steam tables in (m**3)/kg
# Calculations
U = (3.147*D*N)/60; #Blade speed in m/s
C1 = (2*U)/math.sin(math.radians(a1)); #Steam speed in m/s
b1 = math.tan(math.radians(a1))/2; #Blade angle at inlet for first stage in degrees
b1 = math.degrees(math.atan(b1))
b2 = b1; #Blade angle at exit for first stage in degrees
b3 = b1; #Blade angle at inlet for second stage in degrees
b4 = b2; #Blade angle at exit for second stage in degrees
Wt = (4*m*(U**2))/(10**6); #Total workdone in MW
Dh = (2*(U**2))/1000; #Difference in enthalpies in kJ/kg
Dhs = Dh/ns; #Difference in enthalpies in kJ/kg
h2 = h0-Dh; #Enthalpy at point 2 in kJ/kg
h2s = h0-Dhs; #Enthalpy at point 2s in kJ/kg
Dh2 = (2*(U**2))/1000; #Difference in enthalpies in kJ/kg
Dh2s = Dh2/ns; #Difference in enthalpies in kJ/kg
h4 = h2-Dh2; #Enthalpy at point 4 in kJ/kg
h4s = h2-Dh2s; #Enthalpy at point 4s in kJ/kg
Ca = C1*math.cos(math.radians(a1)); #Axial velocity in m/s
hI = (m*v2)/(math.pi*D*Ca); #Blade height at first stage in m/s
hII = (m*v4)/(math.pi*D*Ca); #Blade height at second stage in m/s
# Results
print 'Rotor blade angles for first stage are %3.2f degrees and %3.2f degrees \
\nRotor blade angles for second stage are %3.2f degrees and %3.2f degrees \
\nPower developed is %3.2f MW \
\nFinal state of steam at first stage is %3.2f kJ/kg \
\nFinal state of steam at second stage is %3.2f kJ/kg \
\nBlade height at first stage is %3.4f m \
\nBlade height at second stage is %3.4f m'%(b1,b2,b3,b4,Wt,h2s,h4s,hI,hII)
# rounding off error
```

In [4]:

```
import math
# Variables
P0 = 100.; #Steam pressure in bar
T0 = 773.; #Steam temperature in K
a1 = 70.; #Nozzle angle in degrees
ns = 0.78; #Steam efficiency
m = 100.; #Mass flow rate of steam in kg/s
D = 1.; #Turbine diameter in m
N = 3000.; #Turbine speed in rpm
h0 = 3370.; #Steam enthalpy from Moiller chart in kJ/kg
P4 = 27.; #Pressure at point 4 in bar
T4 = 638.; #Temperature at point 4 in K
v4 = 0.105; #Specific volume at P4 from mollier chart in (m**3)/kg
ns = 0.65; #Stages efficiency
# Calculations
U = (3.147*D*N)/60; #Blade speed in m/s
C1 = (4*U)/math.sin(math.radians(a1)); #Steam speed in m/s
Ca = C1*math.cos(math.radians(a1)); #Axial velocity in m/s
tanb1 = (3*U)/Ca; #Blade angle at inlet for first stage in degrees
b1 = math.degrees(math.atan(tanb1))
b2 = b1; #Blade angle at exit for first stage in degrees
b4 = math.degrees(math.atan(U/Ca)); #Blade angle at exit for second stage in degrees
b3 = b4; #Blade angle at inlet for second stage in degrees
WI = m*6*(U**2); #Power developed in first stage in MW
WII = m*2*(U**2); #Power developed in second stage in MW
W = (WI+WII)/(10**6); #Total power developed in MW
Dh = (W*1000)/100; #Difference in enthalpies in kJ/kg
Dhs = (W*1000)/(ns*100); #Difference in enthalpies in kJ/kg
h4 = h0-Dh; #Enthalpy at point 4 in kJ/kg
h4s = h0-Dhs; #Enthalpy at point 4s in kJ/kg
h = (m*v4)/(3.147*D*Ca); #Rotor blade height in m
# Results
print 'Rotor blade angles for first stage are %3.2f degrees and %3.2f degrees \
\nRotor blade angles for second stage are %3.2f degrees and %3.2f degrees \
\nPower developed is %3.2f MW \
\nFinal state of steam at first stage is %3.1f kJ/kg \
\nFinal state of steam at second stage is %3.2f kJ/kg \
\nRotor blade height is %3.4f m'%(b1,b2,b3,b4,W,h4,h4s,h)
# rounding off error
```

In [40]:

```
import math
# Variables
a1 = 30.; #Nozzle angle in degrees
Ca = 180.; #Axial velocity in m/s
U = 280.; #Rotor blade speed in m/s
R = 0.5; #Degree of reaction
# Calculations
a1n = 90-a1; #Nozzle angle measured from axial direction in degrees
Cx1 = Ca*math.tan(math.radians(a1n)); #Whirl velocity in m/s
b1 = math.degrees(math.atan((Cx1-U)/Ca)); #Blade angle at inlet in degrees
b2 = a1n; #Blade angle at exit in degrees
# Results
print 'Blade angle at inlet is %3.0f degrees \
\nBlade angle at exit is %3.0f degrees'%(b1,b2)
```

In [30]:

```
import math
# Variables
P0 = 800.; #Steam pressure in kPa
T0 = 900.; #Steam temperature in K
a1 = 70.; #Nozzle angle in degrees
ns = 0.85; #Steam efficiency
m = 75.; #Mass flow rate of steam in kg/s
R = 0.5; #Degree of reaction
U = 160.; #Blade speed in m/s
# Calculations
C1 = U/math.sin(a1); #Steam speed in m/s
Ca = C1*math.cos(a1); #Axial velocity in m/s
b1 = 0; #Blade angle at inlet from velocity triangle in degrees
b2 = a1; #Blade angle at exit in degrees
a2 = b1; #Nozzle angle in degrees
W = (m*(U**2))/(10**6); #Power developed in MW
Dhs = (W*1000)/(ns*m); #Isentropic enthalpy drop in kJ/kg
# Results
print 'Rotor blade angles are %3.0f degrees and %3.0f degrees \
\nPower developed is %3.2f MW \
\nIsentropic enthalpy drop is %3.2f kJ/kg'%(b1,b2,W,Dhs)
```