IFC97版水蒸气程序--源代码-VBA版-加载宏-可以在Excel单元格里直接调用:在Excel后台里插入模块,然后复制粘贴输入下面代码,就可以在前面Excel单元格里调用计算

Function psk(t)
Dim pct, tct As Double

Dim a, b, c As Double
Dim sita As Double
Dim an As Variant
an = Array(0, 1167.0521452767, -724213.16703206, -17.073846940092, 12020.82470247, -3232555.0322333, 14.91510861353, -4823.2657361591, _
     405113.40542057, -0.23855557567849, 650.17534844798)
pct = 1
tct = 1
    sita = t / tct + an(9) / ((t / tct) - an(10))
    a = sita ^ 2 + an(1) * sita + an(2)
    b = an(3) * sita ^ 2 + an(4) * sita + an(5)
    c = an(6) * sita ^ 2 + an(7) * sita + an(8)
    psk = pct * (2 * c / (-b + (b ^ 2 - 4 * a * c) ^ 0.5)) ^ 4
End Function

Function pt_1(p, t, v, u, s, h, cp, cv, w)
     '温度的范围是:273.15K<=T<=623.15K,region 1
            '压力的范围是:Ps(T)<=P<100MPa
Dim an, ai, aj As Variant

    an = Array(0, 0.14632971213167, -0.84548187169114, -3.756360367204, 3.3855169168385, -0.95791963387872, 0.15772038513228, _
                   -0.016616417199501, 8.1214629983568E-04, 2.8319080123804E-04, -6.0706301565874E-04, -0.018990068218419, -0.032529748770505, _
                   -0.021841717175414, -5.283835796993E-05, -4.7184321073267E-04, -3.0001780793026E-04, 4.7661393906987E-05, -4.4141845330846E-06, _
                   -7.2694996297594E-16, -3.1679644845054E-05, -2.8270797985312E-06, -8.5205128120103E-10, -2.2425281908E-06, -6.5171222895601E-07, _
                   -1.4341729937924E-13, -4.0516996860117E-07, -1.2734301741641E-09, -1.7424871230634E-10, -6.8762131295531E-19, 1.4478307828521E-20, _
                   2.6335781662795E-23, -1.1947622640071E-23, 1.8228094581404E-24, -9.3537087292458E-26)
                   
    aj = Array(0, -2, -1, 0, 1, 2, 3, 4, 5, -9, -7, -1, 0, 1, 3, -3, 0, 1, 3, 17, -4, 0, 6, -5, -2, 10, -8, -11, -6, -29, -31, -38, -39, -40, -41)
    ai = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 8, 8, 21, 23, 29, 30, 31, 32)
    
    
Dim pct, tct, pai, tao As Double
   
    pct = 16.53
    tct = 1386
    pai = p / pct
    tao = tct / t
Dim ga, gap, gapp, gat, gatt, gapt As Double
    ga = 0
    gap = 0
    gapp = 0
    gat = 0
    gatt = 0
    gapt = 0
For i = 1 To 34
    ga = ga + an(i) * ((7.1 - pai) ^ ai(i)) * ((tao - 1.222) ^ aj(i))
    gap = gap - an(i) * ai(i) * ((7.1 - pai) ^ (ai(i) - 1)) * ((tao - 1.222) ^ aj(i))
    gapp = gapp + an(i) * ai(i) * (ai(i) - 1) * ((7.1 - pai) ^ (ai(i) - 2)) * ((tao - 1.222) ^ aj(i))
    gat = gat + an(i) * ((7.1 - pai) ^ ai(i)) * aj(i) * ((tao - 1.222) ^ (aj(i) - 1))
    gatt = gatt + an(i) * ((7.1 - pai) ^ ai(i)) * aj(i) * (aj(i) - 1) * ((tao - 1.222) ^ (aj(i) - 2))
    gapt = gapt - an(i) * ai(i) * ((7.1 - pai) ^ (ai(i) - 1)) * aj(i) * ((tao - 1.222) ^ (aj(i) - 1))
Next i

    R = 0.461526
    
    v = gap * pai * R * t / p
    u = (tao * gat - pai * gap) * R * t
    s = (tao * gat - ga) * R
    h = tao * gat * R * t
End Function

Function pt_2(p, t, v, u, s, h, cp, cv, w)
             '273.15K<=T<=623.15K,0<P<=Ps(T),eq.(30)
            '623.15K<T<=863.15K,0<P<=P(T),eq.(5)
            '863.15K<T<=1073.15K,0<P<=100MPa
            
            
            
    Dim ano, ajo, anr, air, ajr As Variant

    ano = Array(0, -9.6927686500217, 10.086655968018, -0.005608791128302, 0.071452738081455, -0.40710498223928, 1.4240819171444, _
                   -4.383951131945, -0.28408632460772, 0.021268463753307)
                   
    ajo = Array(0, 0, 1, -5, -4, -3, -2, -1, 2, 3)
    anr = Array(0, -1.7731742473213E-03, -0.017834862292358, -0.045996013696365, -0.057581259083432, -0.05032527872793, -3.3032641670203E-05, _
                   -1.8948987516315E-04, -3.9392777243355E-03, -0.043797295650573, -2.6674547914087E-05, 2.0481737692309E-08, 4.3870667284435E-07, _
                   -3.227767723857E-05, -1.5033924542148E-03, -0.040668253562649, -7.8847309559367E-10, 1.2790717852285E-08, 4.8225372718507E-07, _
                   2.2922076337661E-06, -1.6714766451061E-11, -2.1171472321355E-03, -23.895741934104, -5.905956432427E-18, -1.2621808899101E-06, _
                   -0.038946842435739, 1.1256211360459E-11, -8.2311340897998, 1.9809712802088E-08, 1.0406965210174E-19, -1.0234747095929E-13, _
                   -1.0018179379511E-09, -8.0882908646985E-11, 0.10693031879409, -0.33662250574171, 8.9185845355421E-25, 3.0629316876232E-13, _
                   -4.2002467698208E-06, -5.9056029685639E-26, 3.7826947613457E-06, -1.2768608934681E-15, 7.3087610595061E-29, 5.5414715350778E-17, _
                   -9.436970724121E-07)
    air = Array(0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 10, 10, 10, 16, 16, 18, 20, 20, 20, 21, 22, 23, 24, 24, 24)
    
    ajr = Array(0, 0, 1, 2, 3, 6, 1, 2, 4, 7, 36, 0, 1, 3, 6, 35, 1, 2, 3, 7, 3, 16, 35, 0, 11, 25, 8, 36, 13, 4, 10, 14, 29, 50, 57, 20, 35, 48, 21, 53, 39, 26, 40, 58)
    
    Dim pct, tct, pai, tao As Double
    
    
    pct = 1
    tct = 540
    pai = p / pct
    tao = tct / t
    Dim rr, rrp, rrpp, rrt, rrtt, rrpt As Double
    rr = 0
    rrp = 0
    rrpp = 0
    rrt = 0
    rrtt = 0
    rrpt = 0
    For i = 1 To 43
    rr = rr + anr(i) * (pai ^ air(i)) * (tao - 0.5) ^ ajr(i)
    rrp = rrp + anr(i) * air(i) * (pai ^ (air(i) - 1)) * ((tao - 0.5) ^ ajr(i))
    rrpp = rrpp + anr(i) * air(i) * (air(i) - 1) * (pai ^ (air(i) - 2)) * ((tao - 0.5) ^ ajr(i))
    
    rrt = rrt + anr(i) * (pai ^ air(i)) * ajr(i) * ((tao - 0.5) ^ (ajr(i) - 1))
    
    rrtt = rrtt + anr(i) * (pai ^ air(i)) * ajr(i) * (ajr(i) - 1) * ((tao - 0.5) ^ (ajr(i) - 2))
    
    rrpt = rrpt + anr(i) * air(i) * (pai ^ (air(i) - 1)) * ajr(i) * ((tao - 0.5) ^ (ajr(i) - 1))
    
Next i
Dim ro, rop, ropp, rot, rott, ropt, a As Double
    ro = 0
    rop = 0
    ropp = 0
    rot = 0
    rott = 0
    ropt = 0
For i = 1 To 9
    ro = ro + ano(i) * (tao ^ ajo(i))
    rop = 1 / pai
    ropp = -1 / (pai ^ 2)
    rot = rot + ano(i) * ajo(i) * (tao ^ (ajo(i) - 1))
    rott = rott + ano(i) * ajo(i) * (ajo(i) - 1) * (tao ^ (ajo(i) - 2))
    ropp = 0
Next i
    ro = ro + Log(pai) / Log(2.71828)

    R = 0.461526
    
    v = (rop + rrp) * pai * R * t / p
    u = (tao * (rot + rrt) - pai * (rop + rrp)) * R * t
    s = (tao * (rot + rrt) - (ro + rr)) * R
    h = tao * (rot + rrt) * R * t
    cp = -(tao ^ 2) * (rott + rrtt) * R

End Function

Function p_b23(t)
    Dim n
        n = Array(0, 348.05185628969, -1.1671859879975, 1.0192970039326E-03, 572.54459862746, 13.91883977887)

        p_b23 = n(1) + n(2) * t + n(3) * t ^ 2
End Function
Function pt_3(p, t, v, u, s, h, cp, cv, w)
Dim p, t, v, u, s, h, cp, cv, w As Double
Dim abn, abi, cdn, cdi, ghn, ghi, ijn, IJI, jkn, jki, mnn, mni, opn, opi, qun, qui, rxn, rxi, an
Dim ai, aj, bn, bi, bj, cn, ci, cj, dn, di, dj, en, ei, ej, fn, fi, fj, gn, gi, gj
Dim hn, hi, hj, in1, ii, ij, jn, ji, jj, kn, ki, kj, ln, li, lj, mn, mi, mj, nn, ni
Dim nj, on1, oi, oj, pn, pi, pj, QN, qi, qj, rn, ri, rj, sn, si, sj, tn, ti, tj, un
Dim ui, uj, vn, vi, vj, wn, wi, wj, xn, xi, xj, yn, yi, yj, zn, zi, zj, uvn, uvi, wxn
Dim wxi
Dim ijn, IJI, jkn, jki, mnn, mni, in1, ii, ij, jn, ji, jj, kn, ki, kj, ln, li, lj, mn, mi, mj, nn, ni, nj As Double


abn = Array(0, 1547.93642129415, -187.661219490113, 21.3144632222113, -1918.87498864292, 918.419702359447)
abi = Array(0, 0, 1, 2, -1, -2)
cdn = Array(0, 585.276966696349, 2.78233532206915, -1.27283549295878E-02, 1.59090746562729E-04)
cdi = Array(0, 0, 1, 2, 3)
ghn = Array(0, -24928.4240900418, 4281.43584791546, -269.02917314013, 7.51608051114157, -7.87105249910383E-02)
ghi = Array(0, 0, 1, 2, 3, 4)
ijn = Array(0, 584.814781649163, -0.616179320924617, 0.260763050899562, -5.87071076864459E-03, 5.15308185433082E-05)
IJI = Array(0, 0, 1, 2, 3, 4)
jkn = Array(0, 617.229772068439, -7.70600270141675, 0.697072596851896, -1.57391839848015E-02, 1.37897492684194E-04)
jki = Array(0, 0, 1, 2, 3, 4)
mnn = Array(0, 535.339483742384, 7.61978122720128, -0.158365725441648, 1.92871054508108E-03)
mni = Array(0, 0, 1, 2, 3)
opn = Array(0, 969.461372400213, -332.500170441278, 64.2859598466067, 773.845935768222, -1523.13732937084)
opi = Array(0, 0, 1, 2, -1, -2)
qun = Array(0, 565.603648239126, 5.29062258221222, -0.102020639611016, 1.22240301070145E-03)
qui = Array(0, 0, 1, 2, 3)
rxn = Array(0, 584.561202520006, -1.02961025163669, 0.243293362700452, -2.94905044740799E-03)
rxi = Array(0, 0, 1, 2, 3)
uvn = Array(0, 528.199646263062, 8.90579602135307, -0.222814134903755, 2.86791682263697E-03)
uvi = Array(0, 0, 1, 2, 3)
wxn = Array(0, 7.2805260914538, 97.3505869861952, 14.7370491183191, 329.196213998375, 873.371668682417)
wxi = Array(0, 0, 1, 2, -1, -2)
pct = 1
tct = 1
an = Array(0, 1.10879558823853E-03, 572.616740810616, -76705.1948380852, -2.53321069529674E-02, 6280.08049345689, 234105.654131876, _
            0.216867826045856, -156.237904341963, -26989.3956176613, -1.80407100085505E-04, 1.16732227668261E-03, 26.698704085601, _
            28277.6617243286, -2424.31520029523, 4.35217323022733E-04, -1.22494831387441E-02, 1.79357604019989, 44.2729521058314, _
            -5.93223489018342E-03, 0.453186261685774, 1.3582570312914, 4.08748415856745E-02, 0.474686397863312, 1.18646814997915, _
            0.546987265727549, 0.195266770452643, -5.02268790869663E-02, -0.369645308193377, 6.3382803752842E-03, 7.97441793901017E-02)
ai = Array(0, -12, -12, -12, -10, -10, -10, -8, -8, -8, -6, -5, -5, -5, -4, -3, -3, -3, -3, -2, -2, -2, -1, -1, -1, 0, 0, 1, 1, 2, 2)
aj = Array(0, 5, 10, 12, 5, 10, 12, 5, 8, 10, 1, 1, 5, 10, 8, 0, 1, 3, 6, 0, 2, 3, 0, 1, 2, 0, 1, 0, 2, 0, 2)
PCTA = 100
TCTA = 760
VCTA = 0.0024
bn = Array(0, -8.27670470003621E-02, 41.6887126010565, 4.83651982197059E-02, -29103.2084950276, -111.422582236948, -2.02300509338515E-02, _
            294.002509338515, 140.244997609658, -344.384158811459, 361.182452612149, -1406.99677420738, -2.02023902676481E-03, _
            171.346792457471, -4.25597804058632, 6.91346085000334E-06, 1.51140509678925E-03, -4.16375290166236E-02, -41.3754957011042, _
            -50.6673295721637, -5.72212965569023E-04, 6.08817368401785, 23.9600660256161, 1.22261479925384E-02, 2.16356057692938, _
            0.398198903368642, -0.116892827834085, -0.102845919373532, -0.492676637589284, 0.065554045640679, -0.24046253507853, _
            -2.69798180310075E-02, 0.128369435967012)
bi = Array(0, -12, -12, -10, -10, -8, -6, -6, -6, -5, -5, -5, -4, -4, -4, -3, -3, -3, -3, -3, -2, -2, -2, -1, -1, 0, 0, 1, 1, 2, 3, 4, 4)
bj = Array(0, 10, 12, 8, 14, 8, 5, 6, 8, 5, 8, 10, 2, 4, 5, 0, 1, 2, 3, 5, 0, 2, 5, 0, 2, 0, 1, 0, 2, 0, 2, 0, 1)
PCTB = 100
TCTB = 860
VCTB = 0.0041
cn = Array(0, 3.1196778876303, 27671.3458847564, 32258310.3403269, -342.416065095363, -899732.529907377, -79389204.9821251, _
            95.3193003217388, 2297.84742345072, 175336.675322499, 7912143.65222792, 3.19933345844209E-05, -65.9508863555767, _
            -833426.563212851, 6.45734680583292E-02, -3820310.20570813, 4.06398848470079E-05, 31.0327498492008, -8.92996718483724E-04, _
            234.604891591616, 3775.15668966951, 1.58646812591361E-02, 0.707906336241843, 12.601622514657, 0.736143655772152, _
            0.676544268999101, -17.8100588189137, -0.156531975531713, 11.7707430048158, 8.40143653860447E-02, -0.186442467471949, _
            -44.0170203949645, 1232904.23502494, -2.40650039730845E-02, -1070777.16660869, 4.38319858566475E-02)
ci = Array(0, -12, -12, -12, -10, -10, -10, -8, -8, -8, -6, -5, -5, -5, -4, -4, -3, -3, -2, -2, -2, -1, -1, -1, 0, 0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 8)
cj = Array(0, 6, 8, 10, 6, 8, 10, 5, 6, 7, 8, 1, 4, 7, 2, 8, 0, 3, 0, 4, 5, 0, 1, 2, 0, 1, 2, 0, 2, 0, 1, 3, 7, 0, 7, 1)
PCTC = 40
TCTC = 690
VCTC = 0.0022
dn = Array(0, -4.52484847171645E-10, 3.15210389538801E-05, -2.14991352047545E-03, 508.058874808345, -12712303.6845932, 1153711331204.97, _
            -1.97805728776273E-16, 2.41554806033972E-11, -1.56481703640525E-06, 2.77211346836625E-03, -20.3578994462286, 1443694.89909053, _
            -41125421794.6539, 6.23449786243773E-06, -22.1774281146038, -68931.5087933158, -19541952.5060713, 3163.73510564015, _
            2240407.54426988, -4.36701347922356E-06, -4.04213852833996E-04, -348.153203414663, -385294.213555289, 1.35203700099403E-07, _
            1.34648383271089E-04, 125031.835351736, 9.68123678455841E-02, 225.660517512438, -1.90102435341872E-04, -2.99628410819229E-02, _
            5.00833915372121E-03, 0.387842482998411, -1385.35367777182, 0.870745245971773, 1.7194625206

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CODE-boy1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值