分享

饱和水汽压的计算

 吃草的鱼仔 2018-08-04

人们平时所说的“空气”,实际上是含有水蒸汽的湿空气;虽然水蒸汽在“空气”中的含量极少,但其对空气环境的干燥与潮湿程度产生重要影响,使得湿空气的物理性质发生改变。在一定温度下,只有当水蒸汽压力恰好处于某一定值时,水与水汽之间、或冰与水汽之间的蒸发与凝结过程,才能够保持动态平衡状态。当空气中存在着这样的水汽压平衡体系时,称之为“饱和”,此时空气中的水蒸汽压力称为饱和水蒸汽分压。饱和水蒸汽分压力是计算湿空气的密度、露点等性质的基础。

饱和水蒸汽分压力是绝对温度T的函数,其计算公式繁多,举例如:Goff-Gratch(戈夫、格雷奇)公式、Magnus(马格努斯)公式、Hyland-Wexler(海兰、韦克斯勒)公式、Tetens(泰登)公式、Buck(巴克)公式、Marti-Mauersberger(马蒂、毛厄斯贝格尔)公式等。其中,Goff-Gratch公式是联合国世界气象组织(World Meteorological OrganizationWMO1966年建议采用的饱和水蒸气分压计算公式,是权威计算公式。在热力学中,可使一种物质的三相(气相液相固相)共存时的温度压强的数值,称为这种物质的三相点。水的三相点0.01℃273.15+0.01 = 273.16K)、611.657Pa

1.  世界气象组织推荐的Goff-Gratch公式如下。

在纯水、平面表面的饱和水汽压Ew单位hPa1hPa = 100Pahhecto的缩写)的常用对数方程为:

lgEw = C1 × (1-T1/T) + C2 × lg(T/T1) + C3 × [ 1-10C6×(T/T1-1) ] + C4 × [ 10C7×(1-T1/T) - 1 ] + C5

在这个方程中,C1 = 0.107 957 4 × 102C2 = - 0.502 8 × 10C3 = 0.150 475 × 10-3C4 = 0.428 73 × 10-3C5 = 0.786 14C6 = - 0.829 69 × 10C7 = 0.476 955 × 10 ; T1 = 273.16K(水的三相点温度),T = 273.15+t (K)

2.  Goff-Gratch公式的改良版见下。

ⅰ. t<0℃(T<273.15K在纯冰、平面表面的饱和水汽压Ei(单位:hPa)的常用对数方程为:

lgEi = C1 × (T1/T -1) + C2 × lg(T1/T) + C3 × (1-T/T1) + lg(C4)

在这个方程中,C1 = - 0.909 718 × 10C2 = - 0.356 654 × 10C3 = 0.876 793C4 = 0.610 710 × 10T1 = 273.16K(水的三相点温度),T = 273.15+t (K)

ⅱ. t>0℃(T>273.15K在纯水、平面表面的饱和水汽压Ew(单位:hPa)的常用对数方程为:

lgEw = C5 × (T2/T -1) + C6 × lg(T2/T) + C7 × [ 10C9×(1-T/T2) - 1 ] + C8 ×[ 10C10×(T2/T-1) - 1 ] + lg(C11)

在这个方程中,C5 = - 0.790 298 × 10C6 = + 0.502 808 × 10C7 = - 0.138 160 × 10-6C8 = + 0.813 280 × 10-2C9 = + 0.113 440 × 102C10 = - 0.349 149 × 10C11 = + 101.3246 × 10T2 = 373.16KT = 273.15+t (K)

3.  Hyland-Wexler公式见下。

ⅰ. t = (-1000)在纯冰、平面表面的饱和水汽压Ei(单位:Pa)的自然对数方程为:

lnEi = C1/T + C2 + C3T + C4T2 + C5T3 + C6T4 + C7ln(T)  

在这个方程中,C1 = - 0.567 453 59 × 104C2 = 0.639 252 47 × 10C3 = - 0.967 784 30 × 10-2C4 = 0.622 157 01 × 10-6C5 = 0.207 478 25 × 10-8C6 = - 0.948 402 40 × 10-12C7 = 0.416 350 19 × 10T = 273.15+t (K)

ⅱ. t = (0200)在纯冰、平面表面的饱和水汽压Ew(单位:Pa)的自然对数方程为:

lnEw = C8/T + C9 + C10T + C11T2 + C12T3 + C13ln(T)  

在这个方程中,C8 = - 0.580 022 06 × 104C9 = 0.139 149 93 × 10C10 = - 0.486 402 39 × 10-1C11 = 0.417 647 68 × 10-4C12 = - 0.144 520 93 × 10-7C13 = 0.654 596 73 × 10T = 273.15+t (K)

1.2 饱和水汽压的Matlab计算

1.2.1 世界气象组织推荐Goff-Gratch公式的Matlab语言函数

1.  饱和水汽压EiEw单位hPa)的常用对数lgE的计算。

function lgE = Goff_Gratch_WMO (t)

% 输入量t空气温度℃。请记为一个行向量。

% 输出量lgE:饱和水汽压Ew(单位:hPa1hPa = 100Pahhecto的缩写)的常用对数.

%%%%%% 常量、常数 %%%%%%

t1 = 273.15 + 0.01 ;      

%%%%%% 因子 %%%%%%

c1 = + 0.1079574 * 10^2 ;     

c2 = - 0.502800 * 10 ;     

c3 = + 0.150475 * 10^(-3) ;

c4 = + 0.42873 * 10^(-3) ; 

c5 = + 0.78614 ;   

c6 = - 0.82969 * 10 ;   

c7 = + 0.476955 * 10 ;    

%%%%%% 绝度温度 %%%%%%

tk = t + 273.15 ;           % 将实验中测得的摄氏温度值转换为绝对温度值

%%%%%% 主体计算 %%%%%%

[row, column] = size(t) ;  

for i = 1:column

    lgE(i) = c1 * ( 1 - t1/tk(i)               ...

+ c2 * log10( tk(i)/t1 )              ...

+ c3 * ( 1 - 10^ ( c6 * (tk(i)/t1-1 ) )  ...

+ c4 * ( 10^ ( c7 * ( 1- t1/tk(i) ) ) -1 )   ...

+ c5 ;  %(单位:hPa

end

2.  饱和水汽压EiEw单位kPa)的计算。

function E = E_GoffGratch_WMO (t)

% 输入量t空气温度℃。请记为一个行向量。

% 输出量E:饱和水汽压Ew(单位:kPa

%%%%%% 常量、常数 %%%%%%

lgE = Goff_Gratch_WMO (t) ;  % 此处,饱和水汽压EEw)的单位是hPa100Pa

E_hPa = 10 .^ lgE ;           % E_hPa单位仍然是hPa

E = E_hPa / 10 ;             % E单位是是kPa

1.2.2 Goff-Gratch公式改良版的Matlab语言函数

1.  饱和水汽压EiEw单位hPa)的常用对数lgE的计算。

function lgE = Goff_Gratch (t)

% 输入量t空气温度℃。请记为一个行向量。

% 输出量lgE:饱和水汽压EiEw(单位:hPa1hPa = 100Pahhecto的缩写)的常用对数.

%%%%%% 常量、常数 %%%%%%

t1 = 273.15 + 0.01 ;        % 使用于当t < 0℃的时候

t2 = t1 + 100 ;            % 使用于当t > 0℃的时候

%%%%%% 因子 %%%%%%

c1 = - 0.909718 * 10 ;      % 使用于当t < 0℃的时候

c2 = - 0.356654 * 10 ;      % 使用于当t < 0℃的时候

c3 = + 0.876793 ;         % 使用于当t < 0℃的时候

c4 = + 0.610710 * 10 ;      % 使用于当t < 0℃的时候

c5 = - 0.790298 * 10 ;      % 使用于当t > 0℃的时候

c6 = + 0.502808 * 10 ;     % 使用于当t > 0℃的时候

c7 = - 0.138160 * 10^(-6) ;  % 使用于当t > 0℃的时候

c8 = + 0.813280 * 10^(-2) ;  % 使用于当t > 0℃的时候

c9 = + 0.113440 * 10^2 ;    % 使用于当t > 0℃的时候

c10 = - 0.349149 * 10 ;     % 使用于当t > 0℃的时候

c11 = + 101.3246 * 10 ;     % 使用于当t > 0℃的时候

%%%%%% 绝度温度 %%%%%%

tk = t + 273.15 ;           % 将实验中测得的摄氏温度值转换为绝对温度值

%%%%%% 主体计算 %%%%%%

[row, column] = size(t) ;  

for i = 1:column

    if t(i) < 0

        lgE(i) = c1 * ( t1/tk(i) - 1    ...

+ c2 * log10( t1/tk(i) )   ...

+ c3 * ( 1 - tk(i)/t1    ...

+ log10 (c4) ;  %(单位:hPa

    else

        lgE(i) = c5 * ( t2/tk(i) - 1 )      ...

+ c6 * log10( t2/tk(i) )    ...

+ c7 * ( 10^ ( c9 * ( 1 - tk(i)/t2 ) ) -1 )   ...

+ c8 * ( 10^ ( c10 * ( t2/tk(i) -1 ) ) -1 )  ...

+ log10 (c11) ;  %(单位:hPa

    end

end

2.  饱和水汽压EiEw单位kPa)的计算。

function E = E_GoffGratch (t)

% 输入量t空气温度℃。请记为一个行向量。

% 输出量E:饱和水汽压EiEw(单位:kPa

%%%%%% 常量、常数 %%%%%%

lgE = Goff_Gratch (t) ;  % 此处,饱和水汽压EEiEw)的单位是hPa100Pa

E_hPa = 10 .^ lgE ;     % E_hPa单位仍然是hPa

E = E_hPa / 10 ;       % E单位是是kPa

1.2.3 Hyland-Wexler公式Matlab语言函数

1.  饱和水汽压EiEw单位Pa)的自然对数lnE的计算。

function lnE = Hyland_Wexler (t)

% 输入量t空气温度℃。请记为一个行向量。

% 输出量lgE:饱和水汽压EiEw(单位:Pa)的自然对数.

%%%%%% 因子 %%%%%%

c1 = - 0.56745359 * 10^4        % 使用于t = (-1000)℃的时候

c2 = + 0.63925247 * 10         % 使用于t = (-1000)℃的时候

c3 = - 0.96778430 * 10^(-2)      % 使用于t = (-1000)℃的时候

c4 = + 0.62215701 * 10^(-6) ;     % 使用于t = (-1000)℃的时候

c5 = + 0.20747825 * 10^(-8) ;     % 使用于t = (-1000)℃的时候

c6 = - 0.94840240 * 10^(-12) ;     % 使用于t = (-1000)℃的时候

c7 = + 0.41635019 * 10 ;         % 使用于t = (-1000)℃的时候

c8 = - 0.58002206 * 10^4 ;        % 使用于t = (0200)℃的时候

c9 = + 0.13914993 * 10 ;         % 使用于t = (0200)℃的时候

c10 = - 0.48640239 * 10^(-1)   % 使用于t = (0200)℃的时候

c11 = + 0.41764768 * 10^(-4) ;    % 使用于t = (0200)℃的时候

c12 = - 0.14452093 * 10^(-7) ;     % 使用于t = (0200)℃的时候

c13 = + 0.65459673 * 10 ;        % 使用于t = (0200)℃的时候

%%%%%% 绝度温度 %%%%%%

tk = t + 273.15 ;                 % 将实验中测得的摄氏温度值转换为绝对温度值

%%%%%% 主体计算 %%%%%%

[row, column] = size(t) ;  

for i = 1:column

    if  ( t(i) >= -100 ) && ( t(i) < 0 )

        lnE(i) = c1/tk(i) + c2 + c3*tk(i) + c4*(tk(i)^2) + c5*(tk(i)^3) + c6*(tk(i)^4) + c7*log(tk(i)) ; %(单位:Pa

    elseif  ( t(i) >= 0 ) && ( t(i) <= 200 )

        lnE(i) = c8/tk(i) + c9 + c10*tk(i) + c11*(tk(i)^2) + c12*(tk(i)^3) + c13*log(tk(i)) ;  %(单位:Pa

    end

end

2.  饱和水汽压EiEw(单位:kPa)的计算。

function E = E_HylandWexler (t)

% 输入量t空气温度℃。请记为一个行向量。

% 输出量E:饱和水汽压EiEw(单位:kPa

%%%%%% 常量、常数 %%%%%%

lnE = Hyland_Wexler (t) ;  % 此处,饱和水汽压EEiEw)的单位是Pa

E_Pa = exp(lnE) ;        % E_Pa单位仍然是Pa

E = E_Pa / 1000 ;        % E单位是kPa

 

1.3 M-函数”的计算误差

1.  Matlab 7.0中的程序代码

t = [ -100, -10, 0, 1, 10, 100] ;

E1 = E_GoffGratch_WMO (t)

E2 = E_GoffGratch (t)

E3 = E_HylandWexler (t)

2.  Matlab 7.0中的执行结果

E1 =  0.0000  0.2862  0.6107  0.6565  1.2271  101.3251

E2 =  0.0000  0.2595  0.6103  0.6561  1.2264  101.2884

E3 =  0.0000  0.2599  0.6112  0.6571  1.2280  101.4187

3.  偏差

温度t

-100

-10

0

1

10

100

E1 = E_GoffGratch_WMO (t)

0.0000

0.2862

0.6107

0.6565

1.2271

101.3251

E2 = E_GoffGratch (t)

0.0000

0.2595

0.6103

0.6561

1.2264

101.2884

查表值(在百度中搜索“饱和水汽压表”)

-

-

0.61129

0.65716

1.2281

101.32 

GB/T 6072.1-2008中的P13“附录B

-

0.30

0.60

0.64

1.20

-

E2 = E_HylandWexler (t)

0.0000

0.2599

0.6112

0.6571

1.2280

101.4187

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多