'空气
'常数
Const R = 287.11 'J/kg.K,气体常数
Const M = 0.02896 'kg/mol,空气的分子量
'Const Pcr = 5 'MPa,临界压力
'Const roucr = 536 'kg/m3,临界密度
'Const tb = -185.86 '℃,沸点
'Const tm = -189.37 '℃,熔点
'Const cp0 = 5198 'J/kg.K
'Const cv0 = 3121 'J/kg.K
Const h0 = -5059 'J/kg 温度315.56℃,压力0.1013MPa时空气的焓
Const s0 = 2607.17 'J/kg.K 温度315.56℃,压力0.1013MPa时空气的熵
Const T0 = 273.15 'K
Const p0 = 100000 'Pa
'Const rou0 = 0.1762 'kg/m3
'空气状态方程
Function f_vpT_Air(V, P, T) 'p-MPa,T-K,v-m3/kg
Dim A0, a, B0, b, c
A0 = 157.204
a = 0.000666782
B0 = 0.0015922
b = -0.00038018
c = 1498.62
'p = p * 1000000
Dim f
f = ((R * T * (1 - c / (V * T ^ 3))) / (V ^ 2)) * (V + B0 * (1 - b / V))
f = f - (1 - a / V) * A0 / V ^ 2
f_vpT_Air = f - P
'f = f
On Error Resume Next
End Function
'A.1. 比容,m3/kg
Function V_PT_Air(P, T)
Dim vi(10000)
vi(1) = 0.01
vi(2) = 2
WuCha = 0.00001
If f_vpT_Air(vi(1), P, T) <> 0 And f_vpT_Air(vi(2), P, T) Then
vi(3) = vi(2) - f_vpT_Air(vi(2), P, T) * (vi(2) - vi(1)) / (f_vpT_Air(vi(2), P, T) - f_vpT_Air(vi(1), P, T))
'Debug.Print "vi(3)="; vi(3)
'v = vi(3)
End If
If f_vpT_Air(vi(2), P, T) <> 0 And f_vpT_Air(vi(3), P, T) Then
vi(4) = vi(3) - f_vpT_Air(vi(3), P, T) * (vi(3) - vi(1)) / (f_vpT_Air(vi(3), P, T) - f_vpT_Air(vi(1), P, T))
'Debug.Print "vi(4)="; vi(4)
'v = vi(4)
End If
Dim i As Integer
i = 4
'Debug.Print "f(vi(1),p,T)="; f(vi(1), p, T)
'Debug.Print "f(vi(2),p,T)="; f(vi(2), p, T)
Do Until Abs(f_vpT_Air(vi(i), P, T)) < 0.00001
vi(i + 1) = vi(i) - f_vpT_Air(vi(i), P, T) * (vi(i) - vi(1)) / (f_vpT_Air(vi(i), P, T) - f_vpT_Air(vi(1), P, T))
i = i + 1
'Debug.Print "vi("; i; ")="; vi(i)
'Debug.Print "f("; i; ","; p; ","; T; ")="; f(vi(i), p, T)
If i >= 10000 Then
Exit Function
End If
Loop
V_PT_Air = vi(i)
On Error Resume Next
End Function
'A.2.密度,kg/m3
Function rou_PT_Air(P, T)
rou_PT_Air = 1 / V_PT_Air(P, T)
End Function
'B.空气的比热
Function cp0_T_Air(T)
Dim b()
ReDim Preserve b(0 To 4)
b(0) = 3.688476
b(1) = -0.001642285
b(2) = 0.000004196653
b(3) = -0.000000002986517
b(4) = 7.194228E-13
cp0_Air = 0
For i = 0 To 4
cp0_Air = cp0_Air + b(i) * T ^ (i)
Next
cp0_T_Air = R * cp0_Air
End Function
Function cv0_T_Air(T)
cv0_T_Air = cp0_T_Air(T) - R
End Function
Function cv_PT_Air(P, T) 'J/kg.K<