没有合适的资源?快使用搜索试试~ 我知道了~
最全空气物性计算-源代码-VBA-加载模块.docx
0 下载量 91 浏览量
2024-03-10
10:56:40
上传
评论
收藏 19KB DOCX 举报
温馨提示
试读
13页
"空气物性计算加载宏-VBA.bas 直接导入Excel模板里,在Excel单元格里就可以直接调用函数进行计算了。 压力单位Pa,温度单位K,焓单位j/kg,比容单位m3/kg,密度单位kg/m3,熵单位j/kg.K,音速单位m/s,普朗特数没有单位,'导热系数单位W/m.K,粘度单位'kg/m.s。 H_PT_Air(P,T),根据压力,温度计算焓值; S_PT_Air(P,T),根据压力,温度计算熵值; V_PT_Air(P,T),根据压力,温度计算比容; rou_PT_Air(P,T),根据压力,温度计算密度; yita_PT_Air(P,T),根据压力,温度计算粘度; lamda_PT_Air(P,T),根据压力,温度计算导热系数; Pr_PT_Air(P,T),根据压力,温度计算普朗特数; Vs_PT_Air(P,T),根据压力,温度计算音速; Z_PT_Air(P,T),根据压力,温度计算压缩因子; 还可以反算,如: H_PS_Air(P,S)根据压力,熵反算焓 S_PH_Air(P,S)根据压力,焓反算熵 T_PH_Air(P,H)根据压力,焓反算温度 T_PS_Air
资源推荐
资源详情
资源评论
'空气
'常数
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
Dim A0, a, B0, b, c
A0 = 157.204
a = 0.000666782
B0 = 0.0015922
b = -0.00038018
c = 1498.62
Dim V
V = V_PT_Air(P, T)
cv_PT_Air = cv0_T_Air(T) + (6 * R * c / ((T ^ 3) * V)) * (1 + B0 / V * (0.5 - b / (3 * V)))
End Function
Function cp_PT_Air(P, T)
Dim A0, a, B0, b, c
A0 = 157.204
a = 0.000666782
B0 = 0.0015922
b = -0.00038018
c = 1498.62
Dim V
V = V_PT_Air(P, T)
Dim z1, z2, z3, m1, m2, m3, m4, m5
z1 = V + B0 * (1 - b / V)
z2 = 1 + 2 * c / (T * T * T * V)
z3 = R * (z1 * z2) ^ 2
剩余12页未读,继续阅读
资源评论
CODE-boy1
- 粉丝: 169
- 资源: 158
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功