飽和水蒸気の物性計算-温度基準(30.1~200℃)

飽和水蒸気の物性計算-温度基準(30.1~200℃)
温度T=
45 ℃
水蒸気圧 p
水の比容積 v'
水蒸気の比容積v"
H280607
0.09765 kgf/cm2 abs
0.0010099 m3/kg
15.23253 m3/kg
水の比エンタルピ- h’
45.0 kcal/kg
水蒸気の比エンタルピ- h”
617.0 kcal/kg
蒸発潜熱r
572.0 kcal/kg
Sub スプライン補間()
'1.メインルーチン
'1.1変数の定義
Dim U, NN, V, X(), Y() As Variant
ReDim X(20)
ReDim Y(20)
NN = 18 '補間基準データX(),Y()の最大番号
'1.2温度Tに対する水蒸気圧の補間計算
'水蒸気の飽和圧力データX(),Y()の設定
'X() ℃ Y() p kg/cm2 abs---機械工学便覧p11-52
X(1) = 30: Y(1) = 0.043251
X(2) = 40: Y(2) = 0.075204
X(3) = 50: Y(3) = 0.12578
X(4) = 60: Y(4) = 0.20313
X(5) = 70: Y(5) = 0.31776
X(6) = 80: Y(6) = 0.48294
X(7) = 90: Y(7) = 0.71491
X(8) = 100: Y(8) = 1.03323
X(9) = 110: Y(9) = 1.4609
X(10) = 120: Y(10) = 2.0246
X(11) = 130: Y(11) = 2.7546
X(12) = 140: Y(12) = 3.685
X(13) = 150: Y(13) = 4.8538
X(14) = 160: Y(14) = 6.3025
X(15) = 170: Y(15) = 8.0764
X(16) = 180: Y(16) = 10.224
X(17) = 190: Y(17) = 12.799
X(18) = 200: Y(18) = 15.855
U = Cells(4, 3) '補間する温度の読込-- 番号修正要
Call Spline(U, NN, V, X(), Y()) 'subプロシージャ"Spline"の呼出
Cells(4, 7) = V 'Tに対して計算した補間値
'1.3温度Tに対する水の比容積の補間計算
'水の比容積v'データX(),Y()の設定
'X() ℃ Y() v'm3/kg---機械工学便覧p11-52
X(1) = 30: Y(1) = 0.0010043
X(2) = 40: Y(2) = 0.0010078
X(3) = 50: Y(3) = 0.0010121
X(4) = 60: Y(4) = 0.0010171
X(5) = 70: Y(5) = 0.0010229
X(6) = 80: Y(6) = 0.0010292
X(7) = 90: Y(7) = 0.0010361
X(8) = 100: Y(8) = 0.0010437
X(9) = 110: Y(9) = 0.0010519
X(10) = 120: Y(10) = 0.0010606
X(11)
X(12)
X(13)
X(14)
X(15)
X(16)
X(17)
X(18)
=
=
=
=
=
=
=
=
130:
140:
150:
160:
170:
180:
190:
200:
Y(11)
Y(12)
Y(13)
Y(14)
Y(15)
Y(16)
Y(17)
Y(18)
=
=
=
=
=
=
=
=
0.00107
0.0010801
0.0010908
0.0011022
0.0011145
0.0011275
0.0011415
0.0011565
U = Cells(4, 3) '補間する温度の読込
Call Spline(U, NN, V, X(), Y()) 'subプロシージャ"Spline"の呼出
Cells(6, 7) = V 'Tに対して計算した補間値
'1.4温度Tに対する水蒸気の比容積の補間の計算
'水蒸気の比容積v”データX(),Y()の設定
'X() ℃ Y() v”m3/kg---機械工学便覧p11-52
X(1) = 30: Y(1) = 32.929
X(2) = 40: Y(2) = 19.546
X(3) = 50: Y(3) = 12.046
X(4) = 60: Y(4) = 7.6785
X(5) = 70: Y(5) = 5.0463
X(6) = 80: Y(6) = 3.4091
X(7) = 90: Y(7) = 2.3613
X(8) = 100: Y(8) = 1.673
X(9) = 110: Y(9) = 1.2099
X(10) = 120: Y(10) = 0.89152
X(11) = 130: Y(11) = 0.66814
X(12) = 140: Y(12) = 0.50849
X(13) = 150: Y(13) = 0.39245
X(14) = 160: Y(14) = 0.30676
X(15) = 170: Y(15) = 0.24255
X(16) = 180: Y(16) = 0.1938
X(17) = 190: Y(17) = 0.15632
X(18) = 200: Y(18) = 0.12716
U = Cells(4, 3) '補間する温度の読込
Call Spline(U, NN, V, X(), Y()) 'subプロシージャ"Spline"の呼出
Cells(8, 7) = V 'Tに対して計算した補間値
'1.5温度Tに対する水の比エンタルピ-の補間の計算
'水の比エンタルピ- h’データX(),Y()の設定
'X() ℃ Y() X(1) = 30: Y(1)
X(2) = 40: Y(2)
X(3) = 50: Y(3)
X(4) = 60: Y(4)
X(5) = 70: Y(5)
X(6) = 80: Y(6)
h’kcal/kg---機械工学便覧p11-52
= 30.01
= 40#
= 49.98
= 59.97
= 69.98
= 79.99
X(7) = 90: Y(7) = 90.03
X(8) = 100: Y(8) = 100.09
X(9) = 110: Y(9) = 110.18
X(10) = 120: Y(10) = 120.31
X(11) = 130: Y(11) = 130.48
X(12) = 140: Y(12) = 140.71
X(13) = 150: Y(13) = 150.99
X(14) = 160: Y(14) = 161.33
X(15) = 170: Y(15) = 171.76
X(16) = 180: Y(16) = 182.27
X(17) = 190: Y(17) = 192.87
X(18) = 200: Y(18) = 203.59
U = Cells(4, 3) '補間する温度の読込
Call Spline(U, NN, V, X(), Y()) 'subプロシージャ"Spline"の呼出
Cells(10, 7) = V 'Tに対して計算した補間値
'1.6温度Tに対する水蒸気の比エンタルピ- の補間の計算
'水蒸気の比エンタルピ- h”データX(),Y()の設定
'X() ℃ Y() h”kcal/kg---機械工学便覧p11-52
X(1) = 30: Y(1) = 610.6
X(2) = 40: Y(2) = 614.9
X(3) = 50: Y(3) = 619.1
X(4) = 60: Y(4) = 623.3
X(5) = 70: Y(5) = 627.4
X(6) = 80: Y(6) = 631.5
X(7) = 90: Y(7) = 635.3
X(8) = 100: Y(8) = 639.2
X(9) = 110: Y(9) = 642.8
X(10) = 120: Y(10) = 646.3
X(11) = 130: Y(11) = 649.6
X(12) = 140: Y(12) = 652.8
X(13) = 150: Y(13) = 655.7
X(14) = 160: Y(14) = 658.4
X(15) = 170: Y(15) = 660.9
X(16) = 180: Y(16) = 663.1
X(17) = 190: Y(17) = 665#
X(18) = 200: Y(18) = 666.6
U = Cells(4, 3) '補間する温度の読込
Call Spline(U, NN, V, X(), Y()) 'subプロシージャ"Spline"の呼出
Cells(12, 7) = V 'Tに対して計算した補間値
'1.7温度Tに対する水蒸気の比エンタルピ-の補間の計算
'水蒸気の比エンタルピ-rデータX(),Y()の設定
'X() ℃ Y() X(1) = 30: Y(1)
X(2) = 40: Y(2)
X(3) = 50: Y(3)
r kcal/kg---機械工学便覧p11-52
= 580.6
= 574.9
= 569.1
X(4) = 60: Y(4) = 563.3
X(5) = 70: Y(5) = 557.4
X(6) = 80: Y(6) = 551.5
X(7) = 90: Y(7) = 545.3
X(8) = 100: Y(8) = 539.1
X(9) = 110: Y(9) = 532.6
X(10) = 120: Y(10) = 526#
X(11) = 130: Y(11) = 519.1
X(12) = 140: Y(12) = 512.1
X(13) = 150: Y(13) = 504.7
X(14) = 160: Y(14) = 497.1
X(15) = 170: Y(15) = 489.1
X(16) = 180: Y(16) = 480.8
X(17) = 190: Y(17) = 472.1
X(18) = 200: Y(18) = 463
U = Cells(4, 3) '補間する温度の読込
Call Spline(U, NN, V, X(), Y()) 'subプロシージャ"Spline"の呼出
Cells(14, 7) = V 'Tに対して計算した補間値
End Sub
'subプロシージャ"Spline"
Sub Spline(U, NN, V, ByRef X() As Variant, ByRef Y() As Variant)
'1.係数A,B,D,F,G,Hの計算
Dim A1() As Double
ReDim A1(NN) As Double
Dim A2() As Double
ReDim A2(NN) As Double
Dim B1() As Double
ReDim B1(NN) As Double
Dim B2() As Double
ReDim B2(NN) As Double
Dim D() As Double
ReDim D(NN) As Double
Dim F() As Double
ReDim F(NN) As Double
Dim G() As Double
ReDim G(NN) As Double
Dim H() As Double
ReDim H(NN) As Double
Dim j As Variant
For j = 1 To NN - 1
If j = 2 Then
Dim k As Variant
k=2
B1(2) = (Y(2) - Y(1)) / (X(2) - X(1))
A1(2) = (Y(3) - Y(2)) / (X(3) - X(2)) - B1(2)
A2(2) = A1(2) / (X(3) - X(1))
B2(2) = B1(2) - A2(2) * (X(2) + X(1))
D(1) = 2 * A2(2) * X(1) + B2(2)
D(2) = 2 * A2(2) * X(2) + B2(2)
F(1) = D(1) * (X(2) - X(1))
G(1) = 3 * Y(2) - D(2) * (X(2) - X(1)) - 3 * Y(1) - 2 * F(1)
H(1) = Y(2) - Y(1) - F(1) - G(1)
B1(3) = (Y(3) - Y(2)) / (X(3) - X(2))
A1(3) = (Y(4) - Y(3)) / (X(4) - X(3)) - B1(3)
A2(3) = A1(3) / (X(4) - X(2))
B2(3) = B1(3) - A2(3) * (X(3) + X(2))
D(3) = 2 * A2(3) * X(3) + B2(3)
F(2) = D(2) * (X(2) - X(1))
G(2) = 3 * Y(3) - D(3) * (X(3) - X(2)) - 3 * Y(2) - 2 * F(2)
H(2) = Y(3) - Y(2) - F(2) - G(2)
ElseIf j >= 3 And j < NN - 1 Then
For k = 3 To NN - 1
B1(k) = (Y(k) - Y(k - 1)) / (X(k) - X(k - 1))
A1(k) = (Y(k + 1) - Y(k)) / (X(k + 1) - X(k)) - B1(k)
A2(k) = A1(k) / (X(k + 1) - X(k - 1))
B2(k) = B1(k) - A2(k) * (X(k) + X(k - 1))
D(k) = 2 * A2(k) * X(k) + B2(k)
F(k) = D(k) * (X(k + 1) - X(k))
G(k) = 3 * Y(k + 1) - D(k + 1) * (X(k + 1) - X(k)) - 3 * Y(k) - 2 * F(k)
H(k) = Y(k + 1) - Y(k) - F(k) - G(k)
Next k
ElseIf j = NN - 1 Then
k = NN - 1
B1(k) = (Y(k) - Y(k - 1)) / (X(k) - X(k - 1))
A1(k) = (Y(k + 1) - Y(k)) / (X(k + 1) - X(k)) - B1(k)
A2(k) = A1(k) / (X(k + 1) - X(k - 1))
B2(k) = B1(k) - A2(k) * (X(k) + X(k - 1))
k = NN
D(k) = 2 * A2(k - 1) * X(k) + B2(k - 1)
k=k-1
F(k) = D(k) * (X(k + 1) - X(k))
G(k) = 3 * Y(k + 1) - D(k + 1) * (X(k + 1) - X(k)) - 3 * Y(k) - 2 * F(k)
H(k) = Y(k + 1) - Y(k) - F(k) - G(k)
End If
Next j
'2.補間点Vの計算
Dim W As Variant
'補間点Uがx(j)より小さくなるjを見つける
j = NN
Do While (X(j) - U) >= 0
j=j-1
Loop
W = (U - X(j)) / (X(j + 1) - X(j))
V = Y(j) + W * (F(j) + W * (G(j) + W * H(j)))
End Sub