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

📄 hybridgas.frm

📁 现在的热物理行业或者相关的专业经常需要计算干湿气体的物性参数
💻 FRM
📖 第 1 页 / 共 3 页
字号:
Cp = 0
Text5.Enabled = True '**************************\

For I = 0 To 5                                      '检查体积百分含量的填写错误
  If Text1(I).Text = "" And Text2(I).Text <> "" Then
   MsgBox "输入不对应", vbCritical, "错误"
   Exit Sub
  End If
  If Text2(I).Text = "" And Text1(I).Text <> "" Then
    MsgBox "请输入" & Text1(I).Text & "体积含量", vbCritical, "错误"
  Exit Sub
  End If
  Sumcontent = Sumcontent + Val(Text2(I).Text)
Next I
If Sumcontent > 100.5 Or Sumcontent < 99.5 Then '检查含量
  MsgBox "输入总含量有误,请重新输入!", vbCritical, "错误"
  flag = 0
  Exit Sub
  Else
End If

'**********************以下为计算**********************************
For I = 1 To 6              '体积百分含量赋值
  c_vol(I) = Val(Text2(I - 1).Text)
Next I
For I = 1 To 6
  Wm_m = Wm_m + c_vol(I) * Val(Text3(I - 1).Text) * 0.01
Next I
If Wm_m = 0 Then
   MsgBox "请输入含量", vbCritical, "错误"
Exit Sub
Else
  R_m = 8315.488 / Wm_m
End If
For I = 1 To 6
 emi(I) = c_vol(I) * Val(Text3(I - 1).Text) * 0.01 / Wm_m
Next I

For I = 1 To 6
  Cp = Cp + emi(I) * Cp1(I)
Next I
  k = Cp * 1000 / (Cp * 1000 - R_m)
  dens = p / (R_m * T) ' 按照理想气体计算空气的密度
  RdRw = 18.016 / Wm_m
If Option1.Value = True Then                               '输入条件判断
 ElseIf Option3.Value = True And Option4.Value = False Then
    hum_r = Val(Text4.Text)
    If p - ps * hum_r * 0.01 < 100 Then
       MsgBox "气体接近液化,请重新输入气体温度,湿度和压力", vbCritical, "警告"
    Else
     hum_a = RdRw * hum_r * 0.01 * ps / (p - ps * hum_r * 0.01) '计算绝对湿度
    End If
    Rm_h = (R_m + hum_a * 0.4616) / (1 + 0.001 * hum_a) '混合气体和水蒸气混合后的气体常数
    Sk = Cp * 1000 / (Cp * 1000 - Rm_h) '混合气体和水蒸气混合后的绝热指数
    dens = p / (Rm_h * T)
    R_m = Rm_h
    k = Sk
ElseIf Option3.Value = False And Option4.Value = True Then
    hum_a = Val(Text5.Text) * 0.001
    hum_r = hum_a * 100 * p / ((hum_a + RdRw) * ps)
    If p - ps * hum_r * 0.01 < 100 Then
    MsgBox "气体接近液化,请重新输入气体温度,湿度和压力", vbCritical, "警告"
    End If
    Text4.Text = hum_r
    Rm_h = (R_m + hum_a * 0.4616) / (1 + 0.001 * hum_a) '混合气体和水蒸气混合后的气体常数
    Sk = Cp * 1000 / (Cp * 1000 - Rm_h) '混合气体和水蒸气混合后的绝热指数
    dens = p / (Rm_h * T)
    R_m = Rm_h
    k = Sk
End If '文本框输出最后结果
  Text4.Text = hum_r
  Text5.Text = hum_a * 1000
  Text6(0).Text = k
  Text6(1).Text = Cp * 1000
  Text6(2).Text = R_m          '输出混合气体常数
  Text6(3).Text = dens         '输出混合气体密度
  Text6(4).Text = u & "*10^-6" '输出动力粘度系数
  Text6(5).Text = Wm_m
For I = 1 To 6
   Text1(I - 1).Text = test1(I)
   Text2(I - 1).Text = test2(I)
   Text3(I - 1).Text = test3(I)
If Val(test2(I)) = 0 Then
   Text2(I - 1) = ""
   Text3(I - 1) = ""
   Text1(I - 1) = ""
End If
   Next I

End Sub


Private Sub Command2_Click()         '清空湿度和进口参数列表
Text4.Text = ""
Text5.Text = ""
Text7(0).Text = ""
Text7(1).Text = ""
Text7(2).Text = ""
Text7(3).Text = ""
Text8(0).Text = ""
Text8(1).Text = ""
For I = 1 To 6
    Text6(I - 1).Text = ""
    Text1(I - 1).Text = test1(I)
    Text2(I - 1).Text = test2(I)
    Text3(I - 1).Text = test3(I)
  Next I
For I = 1 To 6
   If Val(test2(I)) = 0 Then
     Text1(I - 1) = ""
     Text2(I - 1) = ""
     Text3(I - 1) = ""
    End If
Next I
End Sub
Private Sub Command3_Click() '清空混合气体种类和体积百分含量
For I = 0 To 5
   Text1(I).Text = ""
   Text2(I).Text = ""
   Text3(I).Text = ""
   Text6(I).Text = ""
   test1(I + 1) = ""
   test2(I + 1) = ""
   test3(I + 1) = ""
 Next I
  flag = 0
End Sub
Private Sub Command4_Click()
If Text7(0).Text = "" And Text7(1).Text = "" And Text7(2).Text = "" And Text7(3).Text = "" Then '程序初始化
 p = 101325

 Text7(0).Text = p
 Text7(1).Text = p * 10 ^ (-6) '压力单位由Pa转化为Mpa
 Text7(2).Text = (p * 10 ^ -4) / 9.8 '压力单位由Pa转化为公斤力
 Text7(3).Text = p / 100000
 ElseIf Text7(0).Text <> "" Then '如果输入压力单位为Pa
  p = Val(Text7(0).Text)
  Text7(1).Text = p * 10 ^ (-6) '压力单位由Pa转化为Mpa
  Text7(2).Text = (p * 10 ^ -4) / 9.8 '压力单位由Pa转化为公斤力
  Text7(3).Text = p / 100000     '压力单位由Pa转化为巴
 ElseIf Text7(1).Text <> "" Then '如果输入压力单位为Mpa
    p = Val(Text7(1).Text) * 10 ^ 6
    Text7(0).Text = p
    Text7(2).Text = (p * 10 ^ -4) / 9.8 '压力单位由Pa转化为公斤力
    Text7(3).Text = p / 100000     '压力单位由Pa转化为巴
 ElseIf Text7(2).Text <> "" Then  '如果输入压力为公斤力
    p = Val(Text7(2).Text) * 98000
    Text7(0).Text = p
    Text7(1).Text = p * 10 ^ -6 '压力单位由Pa转化为MPa
   Text7(3).Text = p / 100000     '压力单位由Pa转化为巴
  ElseIf Text7(3).Text <> "" Then  '如果输入压力为巴
    p = Val(Text7(3).Text) * 100000
    Text7(0).Text = p
    Text7(1).Text = p * 10 ^ -6 '压力单位由巴转化为MPa
   Text7(2).Text = (p * 10 ^ -4) / 9.8 '压力单位由巴转化为公斤力
 End If
 If Text8(0).Text = "" And Text8(1).Text = "" Then
      T = 293.15
      Text8(0).Text = T
      Text8(1).Text = Val(Text8(0).Text) - 273.15
    ElseIf Text8(0) <> "" Then
      T = Val(Text8(0).Text)
      Text8(1).Text = T - 273.15
     ElseIf Text8(1) <> "" Then
      T = Val(Text8(1).Text) + 273.15
      Text8(0).Text = T
 End If

 
 
 u = viscous(T) '插值产生动力粘度系数,认为仅于温度有关
 ps = pressure(T, pa, ta) '插值产生对应于温度T的饱和水蒸气压力
If Option1.Value = True Then
  Else
   If Option3.Value = True Or Option4.Value = True Then
        If Text4.Text = "" And Text5.Text = "" Then
          MsgBox "请输入湿度", vbCritical, "错误"
          Command4.Enabled = True
          Exit Sub
        Else
            If Val(Text4.Text) > 100 Or Val(Text5.Text) > 100 Or Val(Text4.Text) < 0 Or Val(Text5.Text) < 0 Then
                MsgBox "输入数值无效", vbCritical, "请重新输入"
                Exit Sub
            Else
               End If
      
       End If
   Else
       If Option3.Value = False Or Option4.Value = False Then
            MsgBox "请选择湿度类型", vbCritical, "错误"
       Exit Sub
       End If
       End If
End If
List1.Enabled = True
End Sub

Private Sub Command7_Click()
Dim hum_r As Single  '相对湿度
Dim hum_a As Single  '绝对湿度
Dim c_vol(1 To 6) As Single '体积百分比
Dim emi(1 To 6) As Single
Dim k As Single '绝热指数
For I = 1 To 6
  c_vol(I) = 0
  emi(I) = 0
  test2(I) = Val(Text2(I - 1).Text)
Next I
hum_r = 0
hum_a = 0
Sumcontent = 0 'Sumcontent初始化
Wm_m = 0
Cp = 0
Text5.Enabled = True '**************************\

For I = 0 To 5                                      '检查体积百分含量的填写错误
  If Text1(I).Text = "" And Text2(I).Text <> "" Then
   MsgBox "输入不对应", vbCritical, "错误"
   Exit Sub
  End If
  If Text2(I).Text = "" And Text1(I).Text <> "" Then
    MsgBox "请输入" & Text1(I).Text & "体积含量", vbCritical, "错误"
  Exit Sub
  End If
  Sumcontent = Sumcontent + Val(Text2(I).Text)
Next I

If Sumcontent > 100.5 Or Sumcontent < 99.5 Then '检查含量
  MsgBox "输入总含量有误,请重新输入!", vbCritical, "错误"
  flag = 0
  Exit Sub
  Else
End If
End Sub

Public Sub List1_Click()
    Dim gasname As String
    Dim Cp2() As Single
     Call init
     ReDim Cp2(1 To sum)
     gasname = items(List1.ListIndex + 1)
    If flag >= 6 Then
      MsgBox "气体种类已经选满", vbCritical, "错误"
      Exit Sub
    End If
    Text1(flag).Text = gasname
    test1(flag + 1) = gasname
    Text3(flag).Text = molweight(List1.ListIndex)
    test3(flag + 1) = molweight(List1.ListIndex)
    Cp2(flag + 1) = Cpi(List1.ListIndex + 1)
    Cp1(flag + 1) = Cp2(flag + 1)
    For I = 0 To flag - 1
      If Text1(I).Text = Text1(flag).Text Then
       MsgBox "重复选择", vbCritical, "错误"
       Text1(flag) = ""
       Text3(flag) = ""
       flag = flag - 1
       GoTo error               '跳转到 error
      End If
    Next I
error:
      flag = flag + 1
      
End Sub


Private Sub Option1_Click()
Option1.Value = True
Option2.Value = False
Option3.Enabled = False
Option4.Enabled = False
Text4.Enabled = False
Text5.Enabled = False
Text4.Text = ""
Text5.Text = ""
End Sub
Private Sub Option2_Click()
Option1.Value = False
Option2.Value = True
Option3.Value = False
Option4.Value = False
Option3.Enabled = True
Option4.Enabled = True
Text4.Enabled = False
Text5.Enabled = False
Text4.Text = ""
Text5.Text = ""
End Sub

Private Sub Option3_Click()
Text5.Text = ""
Text4.Enabled = True
Text5.Enabled = False
End Sub
Private Sub Option4_Click()
Text4.Text = ""
Text5.Enabled = True
Text4.Enabled = False
End Sub
Private Sub Text7_Change(Index As Integer)
If flag1 = True Then
For I = 0 To 3
  Text7(I) = ""
Next I
End If
 flag1 = False
End Sub
Private Sub Text7_GotFocus(Index As Integer)
If Text7(0).Text = "" And Text7(1).Text = "" And Text7(2).Text = "" And Text7(3).Text = "" Then
    flag1 = False
Else
 flag1 = True
End If
End Sub
Private Sub Text8_GotFocus(Index As Integer)
If Text8(0).Text = "" And Text8(1).Text = "" Then
  flag2 = False
Else
flag2 = True
End If
End Sub

Private Sub Text7_LostFocus(Index As Integer)
flag1 = False
End Sub

Private Sub Text8_Change(Index As Integer)
If flag2 = True Then
For I = 0 To 1
  Text8(I) = ""
Next I
End If
 flag2 = False
End Sub


Private Sub Text8_LostFocus(Index As Integer)
flag2 = False
End Sub


⌨️ 快捷键说明

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