实时错误“6”溢出,这是怎么回事哈,我是个菜鸟哈,求帮助
Const T0 As Single = 273.15
Const R As Single = 8.314
Const P0 As Single = 0
Dim p As Single, T As Single, Q1 As Single, T1 As Single, Q2 As Single, T2 As Single, T3 As Single, T4 As Single
Dim Y(6) As Single, f(6) As Single
Dim A1(1, 6) As Single, B1(1, 6) As Single, C1(1, 6) As Single, D1(1, 6) As Single, E1 As Single, f1 As Single, G1 As Single, H1 As Single
Dim A2(1, 6) As Single, B2(1, 6) As Single, C2(1, 6) As Single, D2(1, 6) As Single, E2 As Single, F2 As Single, G2 As Single, H2 As Single
Dim V(1, 1) As Single
Function Tem(p) As Single
Dim a As Single
a = 6.38 * Log(9.869 * p) + 262
Tem = a
End Function
Function M1(T1) As Single
Dim w As Single, i As Integer, j As Integer, C11 As Single, C22 As Single
For i = 0 To 1 Step 1
For j = 0 To 6 Step 1
C1(i, j) = A1(i, j) / T1 * Exp(B1(i, j) / T1 + D1(i, j) / (T1 * T1))
Next j
Next i
C11 = 0: C22 = 0
For i = 0 To 6 Step 1
C11 = C11 + C1(0, i) * Y(i) * p
C22 = C22 + C1(1, i) * Y(i) * p
Next i
C11 = V(0, 0) * Log(C11 + 1) + V(0, 1) * Log(C22 + 1)
w = E1 / (R * T0) - (f1 * T0 - G1 - Q1 * T0 * T0 / 2) / R * (1 / T1 - 1 / T0) - (f1 - Q1 * T0) / R * Log(T1 / T0) - Q1 / (2 * R) * (T1 - T0) + H1 * (p - P0) / (R * T1) - C11
M1 = w
End Function
Function M2(T1) As Single
Dim w1 As Single, k As Integer, n As Integer, C3 As Single, C4 As Single, C5 As Single, C6 As Single
For k = 0 To 1 Step 1
For n = 0 To 6 Step 1
C1(k, n) = A1(k, n) / T1 * Exp(B1(k, n) / T1 + D1(k, n) / (T1 * T1))
Next n
Next k
C3 = 0: C4 = 0: C5 = 0: C6 = 0
For n = 0 To 6 Step 1
C3 = C3 + C1(0, n) * Y(n) * p
C4 = C4 + C1(1, n) * Y(n) * p
C5 = C5 - (C1(0, n) / T1 + (B1(0, n) / (T1 * T1) + 2 * D1(0, n) / (T1 * T1 * T1)) * C1(0, n)) * Y(n) * p
C6 = C6 - (C1(1, n) / T1 + (B1(1, n) / (T1 * T1) + 2 * D1(1, n) / (T1 * T1 * T1)) * C1(1, n)) * Y(n) * p
Next n
C5 = V(0, 0) * C5 / (1 + C3) + V(0, 1) * C6 / (1 + C4)
w1 = (f1 * T0 - G1 - Q1 * T0 * T0 / 2) / R / T1 / T1 - (f1 - Q1 * T0) / R / T1 - Q1 * T1 / R / 2 - C5
M2 = w1
End Function
Function M3(T1) As Single
Dim w As Single, i As Integer, j As Integer, C1 As Single, C2 As Single
For i = 0 To 1 Step 1
For j = 0 To 6 Step 1
C2(i, j) = A2(i, j) / T1 * Exp(B2(i, j) / T1 + D2(i, j) / (T1 * T1))
Next j
Next i
C1 = 0: C2 = 0
For i = 0 To 6 Step 1
C1 = C1 + C2(0, i) * Y(i) * p
C2 = C2 + C2(1, i) * Y(i) * p
Next i
C1 = V(1, 0) * Log(C1 + 1) + V(1, 1) * Log(C2 + 1)
w = E2 / (R * T0) - (F2 * T0 - G2 - Q2 * T0 * T0 / 2) / R * (1 / T1 - 1 / T0) - (F2 - Q2 * T0) / R * Log(T1 / T0) - Q2 / (2 * R) * (T1 - T0) + H2 * (p - P0) / (R * T1) - C1
M3 = w
End Function
Function M4(T1) As Single
Dim w1 As Single, k As Integer, n As Integer, C3 As Single, C4 As Single, C5 As Single, C6 As Single
For k = 0 To 1 Step 1
For n = 0 To 6 Step 1
C2(k, n) = A2(k, n) / T1 * Exp(B2(k, n) / T1 + D2(k, n) / (T1 * T1))
Next n
Next k
C3 = 0: C4 = 0: C5 = 0: C6 = 0
For n = 0 To 6 Step 1
C3 = C3 + C2(0, n) * Y(n) * p
C4 = C4 + C2(1, n) * Y(n) * p
C5 = C5 - (C2(0, n) / T1 + (B2(0, n) / (T1 * T1) + 2 * D2(0, n) / (T1 * T1 * T1)) * C2(0, n)) * Y(n) * p
C6 = C6 - (C2(1, n) / T1 + (B2(1, n) / (T1 * T1) + 2 * D2(1, n) / (T1 * T1 * T1)) * C2(1, n)) * Y(n) * p
Next n
C5 = V(1, 0) * C5 / (1 + C3) + V(1, 1) * C6 / (1 + C4)
w1 = (F2 * T0 - G2 - Q2 * T0 * T0 / 2) / R / T1 / T1 - (F2 - Q2 * T0) / R / T1 - Q2 * T1 / R / 2 - C5
M4 = w1
End Function
Private Sub Command2_Click()
Y(0) = Val(CH4input.Text): Y(1) = Val(C2H6input.Text): Y(2) = Val(C3H8input.Text)
Y(3) = Val(C4H10input.Text): Y(4) = Val(N2input.Text): Y(5) = Val(CO2input.Text)
Y(6) = Val(H2Sinput.Text)
A1(0, 0) = 48.67: B1(0, 0) = 0.00249527: D1(0, 0) = 0.00000004435: A1(1, 0) = 174.46: B1(1, 0) = 0.00249568: D1(1, 0) = 0.00000003298
A1(0, 1) = 0#: B1(0, 1) = 0#: D1(0, 1) = 0#: A1(1, 1) = 6.82: B1(1, 1) = 0.00397303: D1(1, 1) = 0.0000000465
A1(0, 2) = 0#: B1(0, 2) = 0#: D1(0, 2) = 0#: A1(1, 2) = 0.69: B1(1, 2) = 0.00375345: D1(1, 2) = 0.00000005197
A1(0, 3) = 0#: B1(0, 3) = 0#: D1(0, 3) = 0#: A1(1, 3) = 0#: B1(1, 3) = 0#: D1(1, 3) = 0#
A1(0, 4) = 63.79: B1(0, 4) = 0.00223917: D1(0, 4) = 0.00000003749: A1(1, 4) = 219.76: B1(1, 4) = 0.00201908: D1(1, 4) = 0.00000002648
A1(0, 5) = 0.0753: B1(0, 5) = 0.00418948: D1(0, 5) = 0.00000004384: A1(1, 5) = 7.62: B1(1, 5) = 0.0036632: D1(1, 5) = 0.00000002901
A1(0, 6) = 18.9: B1(0, 6) = 0.0041595: D1(0, 6) = 0.00000004613: A1(1, 6) = 286.12: B1(1, 6) = 0.00387112: D1(1, 6) = 0.00000003408
A2(0, 0) = 47.05: B2(0, 0) = 0.00247385: D2(0, 0) = 0.00000004414: A2(1, 0) = 904.59: B2(1, 0) = 0.00222312: D2(1, 0) = 0.0000000156
A2(0, 1) = 0#: B2(0, 1) = 0#: D2(0, 1) = 0#: A2(1, 1) = 108.08: B2(1, 1) = 0.00399167: D2(1, 1) = 0.00000002398
A2(0, 2) = 0#: B2(0, 2) = 0#: D2(0, 2) = 0#: A2(1, 2) = 1.81: B2(1, 2) = 0.00551284: D2(1, 2) = 0.00000003498
A2(0, 3) = 0#: B2(0, 3) = 0#: D2(0, 3) = 0#: A2(1, 3) = 0.00955: B2(1, 3) = 0.007019175: D2(1, 3) = 0.0000000469
A2(0, 4) = 63.3: B2(0, 4) = 0.00221913: D2(0, 4) = 0.00000003879: A2(1, 4) = 1200.93: B2(1, 4) = 0.00174363: D2(1, 4) = 0.00000001259
A2(0, 5) = 0.07: B2(0, 5) = 0.00418047: D2(0, 5) = 0.00000004341: A2(1, 5) = 0.76: B2(1, 5) = 0.0028971: D2(1, 5) = 0.00000001511
A2(0, 6) = 1.82: B2(0, 6) = 0.004136: D2(0, 6) = 0.00000004594: A2(1, 6) = 273.72: B2(1, 6) = 0.00320724: D2(1, 6) = 0.0000000157
E1 = 1120: E2 = 931
V(0, 0) = 0.04348: V(0, 1) = 0.13043
V(1, 0) = 0.11765: V(1, 1) = 0.05882
p = Val(Pinput.Text)
T1 = Tem(p)
If T1 > T0 Then
G1 = -4207: G2 = -4611: H1 = 4.5959: H2 = 4.99644
f1 = -34.583: F2 = -36.8607: Q1 = 0.189: Q2 = 0.1809
Else
G1 = 1714: G2 = 1400: H1 = 2.9959: H2 = 3.39644
f1 = 3.315: F2 = 1.029: Q1 = 0.0121: Q2 = 0.00377
End If
Do While Abs(T1 - T2) > 0.001
T2 = T1 - M1(T1) / M2(T1)
Loop
T3 = T2
Do While Abs(T1 - T2) > 0.001
T2 = T1 - M3(T1) / M4(T1)
Loop
T4 = T2
If T3 > T4 Then
T = T3
TYPE1output.Text = Str$(1)
Else
T = T4
TYPE1output.Text = Str$(2)
End If
Toutput.Text = Str$(T)
End Sub
Private Sub Form_Load()
M1 (T1)
End Sub
[ 本帖最后由 石头621627 于 2013-2-19 14:24 编辑 ]