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

📄 initial.bas

📁 现在的热物理行业或者相关的专业经常需要计算干湿气体的物性参数
💻 BAS
字号:
Attribute VB_Name = "Initialization"
Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long

Public Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Cp As Single, Wm_m As Single, R_m As Single, Sk As Single, dens As Single, T As Single, u As Single, p As Single        'Cp 定压比热 Wm_m分子量,R_m 气体常数,Sk 绝热指数,dens 密度,u 动力粘度系数,T 混合气体的温度,P混合气体的压力
Public Wmi() As Single, Ak() As Single, Cpi() As Single 'Wmi(),Ak(),Cpi() 分别存放分子量,绝热指数和定压比热的动态数组
Public sum As Integer, items() As String '读取参数文件中气体种类
Public ta As Variant               '对应压强pa的饱和水蒸气温度
Public pa As Variant, I As Integer '对应温度ta的饱和水蒸气压力
Public ps As Single                'ps为t温度下饱和水蒸气的压力

Public Function readstring(section As String, key As String, size As Long) As String
Dim returnstr As String
Dim returnlng As Long
returnstr = Space(size)
returnlng = GetPrivateProfileString(section, key, vbNullString, returnstr, size, App.Path & "\" & "parameter.ini")
readstring = Left(returnstr, returnlng)
End Function
Public Function init() As Integer
 sum = GetPrivateProfileInt("Items", "Sum", 0, App.Path & "\" & "parameter.ini")
 ReDim Wmi(1 To sum), Ak(1 To sum), Cpi(1 To sum), items(1 To sum)
 For I = 1 To sum
   Wmi(I) = Val(readstring("molecularweight", "Key(" & I & ")", 256))
   Ak(I) = Val(readstring("sk", "Key(" & I & ")", 256))
   Cpi(I) = Val(readstring("Cp", "Key(" & I & ")", 256))
   items(I) = readstring("Items", "Item(" & I & ")", 256)
Next I
End Function
Public Function pressure(T As Single, pa As Variant, ta As Variant) As Single    '插值法求对应某一温度的饱和水蒸汽的压力
For I = 1 To 79
      If ((T - 273.15) > ta(I - 1) And (T - 273.15) < ta(I)) Then
        ps = pa(I - 1) + (pa(I) - pa(I - 1)) / (ta(I) - ta(I - 1)) * (T - 273.15 - ta(I - 1))
        ElseIf T = ta(I) + 273.15 Then
         ps = pa(I)
      End If
      pressure = ps
Next I
End Function

Public Function viscous(T) As Single '插值法求动力粘度
Dim Ts(1 To 3) As Single '绝对温度
Dim us(1 To 3) As Single '对应的粘度
Ts(1) = 300
Ts(2) = 400
Ts(3) = 500
us(1) = 1.865
us(2) = 2.284
us(3) = 2.692
For I = 1 To 2
 If (T > Ts(I) And T < Ts(I + 1)) Then
   u = us(I) + (us(I + 1) - us(I)) / (Ts(I + 1) - Ts(I)) * (T - Ts(I))
 ElseIf T = Ts(I) Then
 u = us(I)
 ElseIf T = Ts(3) Then
 u = us(3)
 End If
 If T < Ts(1) Then
   u = us(1)
 End If
 viscous = u
 Next I
 End Function

⌨️ 快捷键说明

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