📄 form6.frm
字号:
VERSION 5.00
Begin VB.Form Form6
AutoRedraw = -1 'True
BackColor = &H00C0C0C0&
Caption = "程序计算"
ClientHeight = 3615
ClientLeft = 60
ClientTop = 345
ClientWidth = 4380
LinkTopic = "Form6"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3615
ScaleWidth = 4380
StartUpPosition = 2 '屏幕中心
Begin VB.CommandButton Command2
BackColor = &H00FFC0C0&
Caption = "返回上一级"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 2400
Style = 1 'Graphical
TabIndex = 7
Top = 3000
Width = 1750
End
Begin VB.CommandButton Command1
BackColor = &H00FFC0C0&
Caption = "确定并显示结果"
Default = -1 'True
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 240
Style = 1 'Graphical
TabIndex = 6
Top = 3000
Width = 1750
End
Begin VB.Frame Frame1
BackColor = &H00C0C0C0&
Caption = "请选择计算方程"
BeginProperty Font
Name = "楷体_GB2312"
Size = 12
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 2655
Left = 240
TabIndex = 0
Top = 120
Width = 3975
Begin VB.OptionButton Option6
BackColor = &H00C0C0C0&
Caption = "普遍化压缩因子"
Height = 375
Left = 2040
TabIndex = 8
Top = 1920
Width = 1575
End
Begin VB.OptionButton Option5
BackColor = &H00C0C0C0&
Caption = "维里方程"
Height = 375
Left = 240
TabIndex = 5
Top = 1920
Width = 1215
End
Begin VB.OptionButton Option4
BackColor = &H00C0C0C0&
Caption = "P-R方程"
Height = 375
Left = 2040
TabIndex = 4
Top = 1200
Width = 1095
End
Begin VB.OptionButton Option3
BackColor = &H00C0C0C0&
Caption = "S-R-K方程"
Height = 375
Left = 240
TabIndex = 3
Top = 1200
Width = 1335
End
Begin VB.OptionButton Option2
BackColor = &H00C0C0C0&
Caption = "R-K方程"
Height = 375
Left = 2040
TabIndex = 2
Top = 480
Width = 1215
End
Begin VB.OptionButton Option1
BackColor = &H00C0C0C0&
Caption = "范德法方程"
Height = 375
Left = 240
TabIndex = 1
Top = 480
Width = 1215
End
End
End
Attribute VB_Name = "Form6"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
y2 = 1 - y1
Dim STR1, STR2 As String
'以下是判断计算的类型(纯的还是混合流体)
If Form1.Option1 = True Then
STR1 = Chr(13) + Chr(10) + "这是" + Form1.Option1.Caption + Chr(13) + Chr(10)
Else
STR1 = Chr(13) + Chr(10) + "这是" + Form1.Option2.Caption + Chr(13) + Chr(10)
End If
'以下是输出所计算的物质
STR2 = "你选择的物质是" + Form5.Combo1.Text + "和" + Form5.Combo2.Text + Chr(13) + Chr(10)
Dim intt1, intt2 As Integer, V0, V1 As Double, strs As String
Dim T0, T1 As Double, P1, P0 As Double
Dim a11, a22, b11, b22, a12, am, bm As Double
Dim Z0, Z1 As Double
Dim a, b, h, m1, m2 As Double
Dim Tc12, Vc12, Pc12, w12, Zc12 As Double
Const R = 8.314
intt1 = Form5.Combo1.ListIndex '判断所选的物质的索引号的返回值
intt2 = Form5.Combo2.ListIndex '判断所选的物质的索引号的返回值
'以下是输出流体的临界常数
STR4 = "流体常数:" + Chr(13) + Chr(10) + Form5.Combo1.Text + ": Tc=" + Str(Tc1) + "K " + "Pc=" + Str(Pc1) + "MPa " + Chr(13) + Chr(10) + "Vc=" + Str(Vc1) + "cm3/mol " + "Zc=" + Str(Zc1) + " " + "偏心因子w=" + Str(w1) + Chr(13) + Chr(10) + Form5.Combo2.Text + ": Tc=" + Str(Tc2) + "K " + "Pc=" + Str(Pc2) + "MPa " + Chr(13) + Chr(10) + "Vc=" + Str(Vc2) + "cm3/mol " + "Zc=" + Str(Zc2) + " " + "偏心因子w=" + Str(w2) + Chr(13) + Chr(10)
On Error GoTo a0
If Form6.Option1 = True Then '以下是范德乏方程的计算
a11 = 27 * R ^ 2 * Tc1 ^ 2 / (64 * Pc1 * 1000000) '常数
a22 = 27 * R ^ 2 * Tc2 ^ 2 / (64 * Pc2 * 1000000) '常数
b11 = R * Tc1 / (8 * Pc1 * 1000000) '常数
b22 = R * Tc2 / (8 * Pc2 * 1000000) '常数
a12 = (Abs(a11) * Abs(a22)) ^ 0.5 * (1 - k)
am = y1 ^ 2 * a11 + 2 * y1 * y2 * a12 + y2 ^ 2 * a22
bm = y1 * b11 + y2 * b22
strs = "用" + Form6.Option1.Caption + "计算的结果:" + Chr(13) + Chr(10)
If Form5.Option1 = True Then
P = R * t / (V - bm) - am / V ^ 2 'vdW方程
ElseIf Form5.Option2 = True Then
t = (P + am / V ^ 2) * (V - bm) / R
ElseIf Form5.Option3 = True Then
V0 = R * t / P
Do While 1
V1 = bm + R * t / P - am * (V0 - bm) / (P * V0 ^ 2)
If Abs(V1 - V0) < 0.0000000001 Then Exit Do
V0 = V1
Loop
V = V1
End If '以上是范德乏方程的计算到此结束
ElseIf Form6.Option2 = True Then '以下是R-K方程的计算
a11 = 0.42748 * R ^ 2 * Tc1 ^ 2.5 / (Pc1 * 1000000)
a22 = 0.42748 * R ^ 2 * Tc2 ^ 2.5 / (Pc2 * 1000000)
b11 = 0.08664 * R * Tc1 / (Pc1 * 1000000)
b22 = 0.08664 * R * Tc2 / (Pc2 * 1000000)
a12 = (Abs(a11) * Abs(a22)) ^ 0.5 * (1 - k)
am = y1 ^ 2 * a11 + 2 * y1 * y2 * a12 + y2 ^ 2 * a22
bm = y1 * b11 + y2 * b22
strs = "这是用" + Form6.Option2.Caption + "计算的结果" + Chr(13) + Chr(10)
If Form5.Option1 = True Then
P = R * t / (V - bm) - am / (Sqr(t) * V * (V + bm)) 'R-K方程
Z = P * V / R / t '为下面求逸度系数服务
a = am * P / R ^ 2 / t ^ 2.5 '为下面求逸度系数服务
b = bm * P / R / t '为下面求逸度系数服务
ElseIf Form5.Option2 = True Then
Z0 = 1
Do While 1
T0 = P * V / R / Z0
a = am * P / R ^ 2 / T0 ^ 2.5
b = bm * P / R / T0
h = b / Z0
Z1 = 1 / (1 - h) - a / b * h / (h + 1)
If Abs(Z1 - Z0) < 0.000001 Then Exit Do
Z0 = Z1
Loop
Z = Z1
t = P * V / R / Z
ElseIf Form5.Option3 = True Then
a = am * P / R ^ 2 / t ^ 2.5
b = bm * P / R / t
Z0 = 1
Do While 1
h = b / Z0
Z1 = 1 / (1 - h) - a / b * h / (h + 1)
If Abs(Z1 - Z0) < 0.000001 Then Exit Do
Z0 = Z1
Loop
Z = Z1
V = Z * R * t / P
End If '以上是用R-K方程计算
Yidu1 = Exp(Log(V / (V - bm)) + b11 / (V - bm) - 2 * (y1 * a11 + y2 * a12) / bm / R / t ^ 1.5 * Log((V + bm) / V) + am * b11 / bm ^ 2 / R / t ^ 1.5 * (Log((V + bm) / V) - bm / (V + bm)) - Log(Z))
Yidu2 = Exp(Log(V / (V - bm)) + b22 / (V - bm) - 2 * (y1 * a12 + y2 * a22) / bm / R / t ^ 1.5 * Log((V + bm) / V) + am * b22 / bm ^ 2 / R / t ^ 1.5 * (Log((V + bm) / V) - bm / (V + bm)) - Log(Z))
Yidu = Exp(y1 * Log(Yidu1) + y2 * Log(Yidu2))
ElseIf Form6.Option3 = True Then '以下是S-R-K方程的计算
strs = "这是用" + Form6.Option3.Caption + "计算的结果" + Chr(13) + Chr(10)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -