⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form9.frm

📁 基于VB语言编写的热力学性质计算的应用软件(数据库操作)
💻 FRM
📖 第 1 页 / 共 2 页
字号:
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 + -