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

📄 form9.frm

📁 基于VB语言编写的热力学性质计算的应用软件(数据库操作)
💻 FRM
📖 第 1 页 / 共 2 页
字号:
       b11 = 0.08664 * R * Tc1 / (Pc1 * 1000000)
       b22 = 0.08664 * R * Tc2 / (Pc2 * 1000000)
       bm = y1 * b11 + y2 * b22
       Z0 = 1
       Do While 1
         T0 = P * V / R / Z0
         a11 = 0.42748 * R ^ 2 * Tc1 ^ 2 / (Pc1 * 1000000) * (1 + m1 * (1 - T0 ^ 0.5 / Tc1 ^ 0.5)) ^ 2
         a22 = 0.42748 * R ^ 2 * Tc2 ^ 2 / (Pc2 * 1000000) * (1 + m2 * (1 - T0 ^ 0.5 / Tc2 ^ 0.5)) ^ 2
         a12 = (a11 * a22) ^ 0.5 * (1 - k)
         am = y1 ^ 2 * a11 + 2 * y1 * y2 * a12 + y2 ^ 2 * a22
         a = am * Z0 ^ 2 / V ^ 2 / P
         b = bm * Z0 / V
         h = b / Z0
         Z1 = 1 / (1 - h) - a / b * h / (1 + h)
         If Abs(Z0 - Z1) < 0.000000001 Then Exit Do
         Z0 = Z1
       Loop
       Z = Z1
        HH(3) = P * V / R / Z
    ElseIf Form5.Option3 = 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
        a = am * P / R ^ 2 / t ^ 2
        b = bm * P / R / t
        Z0 = 1
       Do While 1
         h = b / Z0
         Z1 = 1 / (1 - h) - a / b * h / (1 + h)
         If Abs(Z1 - Z0) < 0.0000000001 Then Exit Do
         Z0 = Z1
       Loop
      Z = Z1
       HH(3) = Z * R * t / P
    End If                       '以上是用S-R-K方程计算
 
    YI1(3) = Exp(b11 / bm * (Z - 1) - Log(Z - b) - a / b * (2 * (y1 * a11 + y2 * a12) / am - b11 / bm) * Log(1 + bm / V))
    YI2(3) = Exp(b22 / bm * (Z - 1) - Log(Z - b) - a / b * (2 * (y1 * a12 + y2 * a22) / am - b22 / bm) * Log(1 + bm / V))
    YI(3) = Exp(y1 * Log(YI1(3)) + y2 * Log(YI2(3)))

 
     '以下是P-R方程的计算
    If Form5.Option1 = True Then
       m1 = 0.37646 + 1.54226 * w1 - 0.26992 * w1 ^ 2
       m2 = 0.37646 + 1.54226 * w2 - 0.26992 * w2 ^ 2
       a11 = 0.45724 * R ^ 2 * Tc1 ^ 2 / (Pc1 * 1000000) * (1 + m1 * (1 - t ^ 0.5 / Tc1 ^ 0.5)) ^ 2
       a22 = 0.45724 * R ^ 2 * Tc2 ^ 2 / (Pc2 * 1000000) * (1 + m2 * (1 - t ^ 0.5 / Tc2 ^ 0.5)) ^ 2
       b11 = 0.077796 * R * Tc1 / (Pc1 * 1000000)
       b22 = 0.077796 * 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(4) = R * t / (V - bm) - am / (V * (V + bm) + bm * (V - bm)) 'P-R方程
       a = am * P / R ^ 2 / t ^ 2   '为下面求逸度系数服务
       b = bm * P / R / t           '为下面求逸度系数服务
    ElseIf Form5.Option2 = True Then
       m1 = 0.37646 + 1.54226 * w1 - 0.26992 * w1 ^ 2
       m2 = 0.37646 + 1.54226 * w2 - 0.26992 * w2 ^ 2
       b11 = 0.077796 * R * Tc1 / (Pc1 * 1000000)
       b22 = 0.077796 * R * Tc2 / (Pc2 * 1000000)
       bm = y1 * b11 + y2 * b22
       Z0 = 1
       Do While 1
         T0 = P * V / R / Z0
         a11 = 0.45724 * R ^ 2 * Tc1 ^ 2 / (Pc1 * 1000000) * (1 + m1 * (1 - T0 ^ 0.5 / Tc1 ^ 0.5)) ^ 2
         a22 = 0.45724 * R ^ 2 * Tc2 ^ 2 / (Pc2 * 1000000) * (1 + m2 * (1 - T0 ^ 0.5 / Tc2 ^ 0.5)) ^ 2
         a12 = (Abs(a11) * Abs(a22)) ^ 0.5 * (1 - k)
         am = y1 ^ 2 * a11 + 2 * y1 * y2 * a12 + y2 ^ 2 * a22
         a = am * Z0 ^ 2 / V ^ 2 / P
         b = bm * Z0 / V
         h = b / Z0
         Z1 = 1 / (1 - h) - a / b * h / (1 + 2 * h - h ^ 2)
         If Abs(Z0 - Z1) < 0.00001 Then Exit Do
         Z0 = Z1
       Loop
       Z = Z1
       HH(4) = P * V / R / Z
    ElseIf Form5.Option3 = True Then
         m1 = 0.37646 + 1.54226 * w1 - 0.26992 * w1 ^ 2
         m2 = 0.37646 + 1.54226 * w2 - 0.26992 * w2 ^ 2
         a11 = 0.457235 * R ^ 2 * Tc1 ^ 2 / (Pc1 * 1000000) * (1 + m1 * (1 - t ^ 0.5 / Tc1 ^ 0.5)) ^ 2
         a22 = 0.457235 * R ^ 2 * Tc2 ^ 2 / (Pc2 * 1000000) * (1 + m2 * (1 - t ^ 0.5 / Tc2 ^ 0.5)) ^ 2
         b11 = 0.077796 * R * Tc1 / (Pc1 * 1000000)
         b22 = 0.077796 * 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
         a = am * P / R ^ 2 / t ^ 2
         b = bm * P / R / t
         Z0 = 1
       Do While 1
         h = b / Z0
         Z1 = 1 / (1 - h) - a / b * h / (1 + 2 * h - h ^ 2)
         If Abs(Z0 - Z1) < 0.0000000001 Then Exit Do
         Z0 = Z1
       Loop
       Z = Z1
       HH(4) = Z * R * t / P
    End If                       '以上是用P-R方程计算
    YI1(4) = Exp(b11 / bm * (Z - 1) - Log(Z - b) - a / Sqr(8) / b * (2 * (y1 * a11 + y2 * a12) / am - b11 / bm) * Log((V + (1 + Sqr(2)) * bm) / (V + (1 - Sqr(2)) * bm)))
    YI2(4) = Exp(b22 / bm * (Z - 1) - Log(Z - b) - a / Sqr(8) / b * (2 * (y1 * a12 + y2 * a22) / am - b22 / bm) * Log((V + (1 + Sqr(2)) * bm) / (V + (1 - Sqr(2)) * bm)))
    YI(4) = Exp(y1 * Log(YI1(4)) + y2 * Log(YI2(4)))

     '以下是维里方程的计算
    Tc12 = (Tc1 * Tc2) ^ 0.5 * (1 - k)
    Vc12 = (0.5 * ((Vc1 / 1000000) ^ (1 / 3) + (Vc2 / 1000000) ^ (1 / 3))) ^ 3
    Zc12 = (Zc1 + Zc2) / 2
    Pc12 = Zc12 * R * Tc12 / Vc12
    w12 = (w1 + w2) / 2
    
   If Form5.Option1 = True Then
      b12 = R * Tc12 / Pc12 * (0.083 - 0.422 * Tc12 ^ 1.6 / t ^ 1.6 + w12 * (0.139 - 0.172 * Tc12 ^ 4.2 / t ^ 4.2))
      b11 = R * Tc1 / (1000000 * Pc1) * (0.083 - 0.422 * Tc1 ^ 1.6 / t ^ 1.6 + w1 * (0.139 - 0.172 * Tc1 ^ 4.2 / t ^ 4.2))
      b22 = R * Tc2 / (1000000 * Pc2) * (0.083 - 0.422 * Tc2 ^ 1.6 / t ^ 1.6 + w2 * (0.139 - 0.172 * Tc2 ^ 4.2 / t ^ 4.2))
      b = y1 ^ 2 * b11 + 2 * y1 * y2 * b12 + y2 ^ 2 * b22
      Z = 1 + b * P / R / t
      HH(5) = Z * R * t / V
    ElseIf Form5.Option2 = True Then
       T0 = P * V / R
       Do While 1
         Z0 = P * V / R / T0
         b12 = R * Tc12 / Pc12 * (0.083 - 0.422 * Tc12 ^ 1.6 / T0 ^ 1.6 + w12 * (0.139 - 0.172 * Tc12 ^ 4.2 / T0 ^ 4.2))
         b11 = R * Tc1 / (1000000 * Pc1) * (0.083 - 0.422 * Tc1 ^ 1.6 / T0 ^ 1.6 + w1 * (0.139 - 0.172 * Tc1 ^ 4.2 / T0 ^ 4.2))
         b22 = R * Tc2 / (1000000 * Pc2) * (0.083 - 0.422 * Tc2 ^ 1.6 / T0 ^ 1.6 + w2 * (0.139 - 0.172 * Tc2 ^ 4.2 / T0 ^ 4.2))
         b = y1 ^ 2 * b11 + 2 * y1 * y2 * b12 + y2 ^ 2 * b22
         Z1 = 1 + b * P / R / T0
         If Abs(Z0 - Z1) < 0.00001 Then Exit Do
         T0 = P * V / R / Z1
       Loop
       Z = Z1
       HH(5) = P * V / R / Z
    ElseIf Form5.Option3 = True Then
      b12 = R * Tc12 / Pc12 * (0.083 - 0.422 * Tc12 ^ 1.6 / t ^ 1.6 + w12 * (0.139 - 0.172 * Tc12 ^ 4.2 / t ^ 4.2))
      b11 = R * Tc1 / (1000000 * Pc1) * (0.083 - 0.422 * Tc1 ^ 1.6 / t ^ 1.6 + w1 * (0.139 - 0.172 * Tc1 ^ 4.2 / t ^ 4.2))
      b22 = R * Tc2 / (1000000 * Pc2) * (0.083 - 0.422 * Tc2 ^ 1.6 / t ^ 1.6 + w2 * (0.139 - 0.172 * Tc2 ^ 4.2 / t ^ 4.2))
      b = y1 ^ 2 * b11 + 2 * y1 * y2 * b12 + y2 ^ 2 * b22
      Z = 1 + b * P / R / t
      HH(5) = Z * R * t / P
    End If                       '以上是用维里方程计算
    YI1(5) = Exp(P / R / t * (b11 + y2 ^ 2 * (2 * b12 - b11 - b22)))
    YI2(5) = Exp(P / R / t * (b22 + y1 ^ 2 * (2 * b12 - b11 - b22)))
    YI(5) = Exp(y1 * Log(YI1(5)) + y2 * Log(YI2(5)))




 
Dim i%, ss(5) As String
Dim n%, tt!, fuzhi!(10), j%
   ss(1) = Form6.Option1.Caption
   ss(2) = Form6.Option2.Caption
   ss(3) = Form6.Option3.Caption
   ss(4) = Form6.Option4.Caption
   ss(5) = Form6.Option5.Caption
For i = 1 To 5
    If Form5.Option1 = True Then
        cha(i) = (Abs(HH(i) - P00)) / P00
    ElseIf Form5.Option2 = True Then
        cha(i) = (Abs(HH(i) - T00)) / T00
    ElseIf Form5.Option3 = True Then
        cha(i) = (Abs(HH(i) - V00)) / V00
    End If
Next i

For n = 1 To 5
    fuzhi(n) = cha(n)
Next n
For n = 2 To 5
  If cha(n - 1) < cha(n) Then
     tt = cha(n - 1): cha(n - 1) = cha(n): cha(n) = tt
  End If
Next n
If cha(4) < cha(5) Then tt = cha(4): cha(4) = cha(5): cha(5) = tt
For n = 1 To 5
   If fuzhi(n) = cha(5) Then j = n
Next n
Form10.Label7.Caption = "由于利用" + ss(j) + "计算的误差最小,因此此方程" + Chr(13) + Chr(10) + "最适用于计算此物质的热力学性质,其结果如下:"

   '以下是结果输出的打印
For i = 1 To 5
    Form10.Text1(i - 1).Text = Format(fuzhi(i), "###.#####%")
Next i

 '以下是结果输出的打印
  If Form5.Option1 = True Then
       Form9.Hide
       Form10.Show
       Form10.Picture1.Print STR1
       Form10.Picture1.Print STR2
       Form10.Picture1.Print STR3
       Form10.Picture1.Print STR4
       Form10.Picture1.Print Form5.Combo1.Text + "组分逸度系数等于:" + Format(YI(j), "###.####")
       Form10.Picture1.Print Form5.Combo2.Text + "组分逸度系数等于:" + Format(YI(j), "###.####")
       Form10.Picture1.Print "混合物物逸度系数等于:" + Format(YI(j), "###.####")
       Form10.Picture1.Print "压强等于" + Format(HH(j) / 1000000, "###.####") + "MPa"
  ElseIf Form5.Option2 = True Then
       Form9.Hide
       Form10.Show
       Form10.Picture1.Print STR1
       Form10.Picture1.Print STR2
       Form10.Picture1.Print STR3
       Form10.Picture1.Print STR4
       Form10.Picture1.Print Form5.Combo1.Text + "组分逸度系数等于:" + Format(YI(j), "###.####")
       Form10.Picture1.Print Form5.Combo2.Text + "组分逸度系数等于:" + Format(YI(j), "###.####")
       Form10.Picture1.Print "混合物物逸度系数等于:" + Format(YI(j), "###.####")
       Form10.Picture1.Print "温度等于" + Format(HH(j), "###.####") + "K"
  ElseIf Form5.Option3 = True Then
       Form9.Hide
       Form10.Show
       Form10.Picture1.Print STR1
       Form10.Picture1.Print STR2
       Form10.Picture1.Print STR3
       Form10.Picture1.Print STR4
       Form10.Picture1.Print Form5.Combo1.Text + "组分逸度系数等于:" + Format(YI(j), "###.####")
       Form10.Picture1.Print Form5.Combo2.Text + "组分逸度系数等于:" + Format(YI(j), "###.####")
       Form10.Picture1.Print "混合物物逸度系数等于:" + Format(YI(j), "###.####")
       Form10.Print "体积等于" + Format(HH(j), "###.########") + "m3/mol"
  End If                           '以上是结果输出
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -