📄 form9.frm
字号:
VERSION 5.00
Begin VB.Form Form9
AutoRedraw = -1 'True
BackColor = &H00C0C0C0&
Caption = "优化设计"
ClientHeight = 4845
ClientLeft = 60
ClientTop = 450
ClientWidth = 4080
LinkTopic = "Form9"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 4845
ScaleWidth = 4080
StartUpPosition = 1 '所有者中心
Begin VB.CommandButton Command1
BackColor = &H00FFC0C0&
Caption = "返回上一级"
Default = -1 'True
Height = 375
Left = 600
Style = 1 'Graphical
TabIndex = 3
Top = 3840
Width = 1100
End
Begin VB.CommandButton Command2
BackColor = &H00FFC0C0&
Caption = "退出"
Height = 375
Left = 2160
Style = 1 'Graphical
TabIndex = 2
Top = 4320
Width = 1100
End
Begin VB.CommandButton Command4
BackColor = &H00FFC0C0&
Caption = "优化设计"
Height = 375
Left = 600
Style = 1 'Graphical
TabIndex = 1
Top = 4320
Width = 1100
End
Begin VB.CommandButton Command3
BackColor = &H00FFC0C0&
Caption = "返回首页"
Height = 375
Left = 2160
Style = 1 'Graphical
TabIndex = 0
Top = 3840
Width = 1100
End
End
Attribute VB_Name = "Form9"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Form4.Cls
Unload Me
If oo = 0 Then
Form3.Show
ElseIf oo = 1 Then
Form6.Show
End If
End Sub
Private Sub Command2_Click()
Dim s%
s = MsgBox("您真的要退出吗?", vbOKCancel + vbQuestion, "程序")
If s = 1 Then
Unload Form1
Unload Form2
Unload Form4
Unload Form3
Unload Form5
Unload Form6
Unload FORM7
Unload Form8
Unload Form9
End
End If
End Sub
Private Sub Command3_Click()
Form9.Cls
Unload Form2
Unload Form4
Unload Form3
Unload Form5
Unload Form6
Unload FORM7
Unload Form8
Unload Form9
Form1.Show
End Sub
Private Sub Command4_Click()
If Form5.Option1 = True Then
P00 = Val(InputBox("请输入实验压强初值" + Chr(13) + Chr(10) + "单位(Pa)", "数据输入"))
sss = "实验压力值为" + Str(P00 / 1000000) + "MPa"
ElseIf Form5.Option2 = True Then
T00 = Val(InputBox("请输入实验温度初值" + Chr(13) + Chr(10) + "单位(K)", "数据输入"))
sss = "实验温度值为" + Str(T00) + "K"
ElseIf Form5.Option3 = True Then
V00 = Val(InputBox("请输入实验体积初值" + Chr(13) + Chr(10) + "单位(m3/mol)", "数据输入"))
sss = "实验体积值为" + Str(V00) + "m3/mol"
End If
Form10.Label2.Caption = sss
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
Dim YI1(5), YI2(5), YI(5) 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)
'以下是范德乏方程的计算
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
If Form5.Option1 = True Then
HH(1) = R * t / (V - bm) - am / V ^ 2 'vdW方程
ElseIf Form5.Option2 = True Then
HH(1) = (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
HH(1) = V1
End If '以上是范德乏方程的计算到此结束
'以下是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
If Form5.Option1 = True Then
HH(2) = 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
HH(2) = 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
HH(2) = Z * R * t / P
End If '以上是用R-K方程计算
YI1(2) = 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))
YI2(2) = 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))
YI(2) = Exp(y1 * Log(YI1(2)) + y2 * Log(YI2(2)))
'以下是S-R-K方程的计算
If Form5.Option1 = True Then
m1 = 0.48 + 1.574 * w1 - 0.176 * w1 ^ 2
m2 = 0.48 + 1.574 * w2 - 0.176 * w2 ^ 2
a11 = 0.42748 * R ^ 2 * Tc1 ^ 2 / (Pc1 * 1000000) * (1 + m1 * (1 - t ^ 0.5 / Tc1 ^ 0.5)) ^ 2
a22 = 0.42748 * R ^ 2 * Tc2 ^ 2 / (Pc2 * 1000000) * (1 + m2 * (1 - t ^ 0.5 / Tc2 ^ 0.5)) ^ 2
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
HH(3) = R * t / (V - bm) - am / (V * (V + bm)) 'S-R-K方程
a = am * P / R ^ 2 / t ^ 2 '为下面求逸度系数服务
b = bm * P / R / t '为下面求逸度系数服务
ElseIf Form5.Option2 = True Then
m1 = 0.48 + 1.574 * w1 - 0.176 * w1 ^ 2
m2 = 0.48 + 1.574 * w2 - 0.176 * w2 ^ 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -