📄 initial.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 + -