气井井筒天然气流动规律及应用研究 第11页
附录1平均温度、平均偏差系数法计算境地压力程序及其运行结果
一、 平均温度、平均偏差系数法计算井底压力程序
#include"math.h"
#include"stdio.h"
#define H 2500
#define PTS 9.4202
#define PPC 4.8028
#define TTS 304.15
#define TWS 366.15
#define TAV 335.15
#define TPC 192.4
#define RG 0.570
#define PWSM 11.1458
#define EO 1
#define EF 0.02
#define N 2
main()
{double pav[N],ppr[N],Tpr,pws[N+1],Zav[N],ef[N],E[N];
int i;
if(H<1680)
pws[0]=PTS*exp(1.293*pow(10,-4)*RG*H);
else if(H>=1680&&H<3000)
pws[0]=PTS*exp(1.251*pow(10,-4)*RG*H);
printf("\npws[0]=%6.4fMPa\n",pws[0]);
for(i=0;i<N;i++)
{switch(i+1)
{case 1:printf("1st Test:\n");break;
case 2:printf("2nd Test:\n");break;
case 3:printf("3rd Test:\n");break;
default:printf("4th Test:\n");
751com.cn
ppr[i]=pav[i]/PPC;
Tpr=TAV/TPC;
printf("ppr=%5.2fMPa, Tpr=%5.2fK\n",ppr[i],Tpr);
Zav[i]=1-3.52*ppr[i]/pow(10,0.9813*Tpr)+0.274*ppr[i]*ppr[i]/pow(10,0.8157*Tpr);
printf("Zav=%f\n",Zav[i]);
pws[i+1]=PTS*exp(0.03415*RG*H/TAV/Zav[i]);
printf("pws=%6.4fMPa\n",pws[i+1]);
ef[i]=fabs(pws[i+1]-pws[i]);
printf("ef=%f\n",ef[i]);
E[i]=(PWSM-pws[i+1])/PWSM*100;
printf("E=%3.2f%\n",E[i]);
}
for(i=0;i<N;i++)
if(fabs(E[i])<EO&&ef[i]<EF)
{printf("The Answer Is Test %d:\n",i+1);
printf("pav=%6.4fMPa,ppr=%6.2fMPa\n",pav[i],ppr[i]);
printf("Tpr=%5.2fK,Zav=%4.3f\n",Tpr,Zav[i]);
printf("pws=%6.4fMPa,ef=%f<EF,E=%3.2f%<EO\n",pws[i+1],ef[i],E[i]);
}
}
二、 程序运算结果
pws[0]=11.2585MPa
1st Test:
ppr= 2.15MPa, Tpr= 1.74K
Zav=0.900208
pws=11.0690MPa
ef=0.189462
E=0.69%
2nd Test:
ppr= 2.13MPa, Tpr= 1.74K
Zav=0.900685
pws=11.0681MPa
ef=0.000945
751com.cn
The Answer Is Test 2:
pav=10.2446MPa,ppr= 2.13MPa
Tpr= 1.74K,Zav=0.901
pws=11.0681MPa,ef=0.000945<EF,E=0.70%<EO
三、 程序说明及备注
本程序只适用于用平均温度、平均偏差因子方法求取静态气柱井底压力,在井深小于3000m的气井上,由已知井的参数可便于推广应用。对于井深为3000m以上的气井采用此方法计算,可将井深分为2~4段处理,通过已知井参数,逐次利用本程序可以求得较为精确的井底压力。
本程序中求取偏差因子的方法源于参考文献[5]中的近似计算公式,使得本程序能够方便易行,其结果与查表所得到的偏差系数误差不大,对结果几乎无影响。
对于流动气柱采用此方法求井底压力,可将其中某些公式依据实际参数条件做相应调整后,即可应用。
<< 上一页 [11]
气井井筒天然气流动规律及应用研究 第11页下载如图片无法显示或论文不完整,请联系qq752018766