Eclipse数值模拟软件问答(初级)
1. ECLIPSE输出结果文件是哪些?
.GRID或.FGRID: 网格文件
.EGRID: 网格文件,与GRID格式不同,文件要小的多。(用关键字GRIDFILE来控制输出类型)
.INIT或.FINIT: 属性文件。(用关键字INIT来控制输出)
.PRT: 报告输出。 文件很大,模型处理及计算结果详细报告。(RPTGRID,RPTPROP,RPTSOL,RPTSCHED控制输出)
.LOG: 后台作业时的输出报告,文件比PRT要小很多。可用于错误检查。
.DBG: Debug文件,一般不用。可用于检查ECLIPSE如何处理输入参数。
.SAVE: 用于快速重启。(用关键字SAVE来控制输出)
.RFT:RFT计算结果。(用关键字WRFTPLT来控制输出)
.FLUX: 流动边界。 (用关键字DUMPFLUX来控制输出)
.Snnnn或.UNSMRY: 图形文件输出(在SUMMARY部分定义)
.Xnnnn或.UNRST: 重启文件输出(用RPTRST,RPTSOL或RPTSCHED来控制输出)
2. ECLIPSE输出文件都有什么格式?
格式化输出: 可读文件,文件大。(用关键字FMTOUT来控制)
非格式化输出:不可读文件,文件小。
多输出文件: 每一时间步一个输出文件。
单文件输出: 所有时间步输出到一个文件。(用关键字UNIFOUT来控制)
ECLIPSE缺省输出: 非格式化,多文件输出。
3. ECLIPSE数据文件分几部分,各部分定义什么数据类型?
ECLIPSE数据类型分八部分,各部分内的关键字除几个个别的外不能混用。
RUNSPEC: 定义模型维数以及模型基本类型,包括模型网格维数,最大井数,井组数,流体类型,输出类型控制等。
GRID: 定义模型网格和属性,包括顶部深度,厚度,孔隙度,渗透率,净毛比,一般由前处理软件Flogrid或Petrel输出。
EDIT: 编辑孔隙体积,传导率。
PROPS: 流体PVT及岩石数据,包括油、气体积系数,粘度随压力变化,水的体积系数,粘度;油,气,水地面密度等。岩石数据是相渗曲线和毛管压力。
REGIONS: 分区数据,包括流体分区,岩石分区,储量区,平衡区等。
SOLUTION: 平衡区数据,包括油水界面、油气界面、参考压力、参考深度、水体参数。
SUMMARY: 计算结果输出,包括油田,井组,单井的油、气、水产量,压力输出,网格的压力,饱和度输出等。
SCHEDULE: 动态数据部分,包括定义井位,射孔,产量,压力,历史拟合,预测等。
4. 在RUNSPEC中定义什么内容?
模型大小:DIMENS
模型流体:OIL,GAS,WATER,DISGAS,VAPOIL,根据油藏实际情况选用不同组合。
模型单位:METRIC, FIELD, LAB
模型维数:WELLDIMS(井,射孔和井组维数),VFPIDIMS(注水井VFP表),VFPPDIMES(生产井VFP表),EQLDIMS(平衡区),TABDIMS(流体及岩石维数)
模型输出格式控制:UNIFOUT,FMTOUT,UNIFIN,FMTIN
特殊功能:API,BRINE,DUALPERM,DUALPORO,MISCIBLE,TRACES
标题: TITLES
模拟开始时间:START
5.在GRID部分需要定义什么参数?
模型构造: COORD,ZCORN或DX,DY,DZ,TOPS;
模型孔隙度:PORO;
模型渗透率:PERMX,PERMY,PERMZ;
模型净毛比或净厚度:NTG,DZNET;
断层: FAULTS。
可以采用正交网格或角点网格,还可以采用PEBI网格。网格部分数据最好由前处理软件提供。
6. 如何修改GRID部分参数?
COPY: 拷贝
ADD: 增加
MULTIPLY: 乘
7. 如何修改断层传导率?
用MULTFLT修改每条断层的传导率。
8. 如何定义流体?
流体数据来自于试验报告,描述油、气体积系数,粘度随压力的变化,油、气、水地面密度等。
油、气、水、溶解气和挥发油: PVTO(或PVCO), PVTG,PVTW;
油、气、水和溶解气: PVTO(或PVCO),PVDG(或PVZG),PVTW;
油、水: PVDO(或PVCDO),PVTW;
气、水: PVDG,PVTW。
9. 如何定义不同类型流体?
提供多个流体定义表,在REGIONS部分定义PVT分区,每一个网格将对应一套PVT属性表。
10. 如何定义岩石?
用关键字ROCK定义。需要定义在参考压力下岩石的压缩系数。如果岩石随地层压力变化,孔隙度和渗透率会发生变化,可以用ROCKTAB来定义岩石压缩表。这样当断层压力降低造成上浮压力上升,ECLIPSE会通过ROCKTAB来模拟孔隙度和渗透率的变化。
11. 如何定义相对渗透率和毛管压力曲线?
来自于试验报告,两相相对渗透率和毛管压力曲线。
油水: SWOF或SWFN,SOF2;
油气: SGOF或SGFN,SOF3。
12. 如何定义分区?
实际油藏非常复杂,在不同部位可能流体属性不同,同时由于非均质造成不同的岩石属性,需要应用不同的相对渗透率和毛管压力曲线,或者油藏有多个油水界面,这是都需要对模型进行分区。可以进行以下分区:
储量分区: FIPNUM 不同分区可以输出不同的储量;
PVT分区: PVTNUM 对应不同的流体类型;
岩石分区: SATNUM 对应不同的相对渗透率和毛管压力曲线;
平衡分区: EQUNUM 对应不同的油气或油水界面。
通常需要用前处理软件FLOGRID或PETREL来帮助进行分区,比如根据孔隙度的不同范围进行岩石分区,使孔隙度不同范围的网格应用不同的相渗曲线。
13. 在SOLUTION部分如何进行模型初始化?
需要提供参考深度、参考深度对应的原始压力、油水界面、油水界面处的毛管压力、气水界面、气水界面处的毛管压力和饱和压力或溶解油气比表。
如果油水界面为*水面,则油水界面处的毛管压力为0。
ECLIPSE将计算原始条件下压力分布,油,气,水饱和度分别。计算原始油,气,水储量及各分区储量。
14. 如何开始历史拟合?
需要定义井口位置(WELSPECS);
井轨迹和井射孔位置(COMPDAT);
井的类型(WELSPECS),包括生产井和注水,注气井;
井的实际产油量、产气量、产水量、井口压力和井底流压(WCONHIST)。
这部分数据量非常大,需要用ECLIPSE前处理软件SCHEDULE来完成。
15. 历史拟合阶段控制什么生产?
可以定油量、气量、水量、液量和定油藏产量,井口压力和井底压力此时只用于与计算结果拟合,不会对生产进行控制。
16. 如何拟合井口压力?
首先需要为每口井提供其垂直管流表(VFP),此表由前处理软件VFPi生成,描述不同井口压力在不同产量、含水、油气比条件下对应的井底压力。然后在WCONHIST里为每口井设置其所用的VFP表,这样ECLIPSE就会在每一时间步输出井口压力,对比此压力与实际压力来完成历史拟合。
压力拟合可以有两种方式,一种是拟合在一定油、气、水产量和井口压力时不同井筒深度对应的压力,也就是压力剖面。另一种是拟合对应不同产量和井口压力时的不同井底压力。
对于第一种方式,输入THP, tubing pressure是对应不同深度的压力剖面。
对于第二种方式,输入THP, tubing pressure就是BHP。
17. 如何定义注水和注气井?
对于注水和注气井,历史拟合和预测阶段用不同的关键字。在历史拟合阶段用WCONINJH,此时ECLIPSE控制地面注入量,而BHP和THP用于拟合,不用于控制。在预测阶段用WCONINJE,此时注入井可以控制地面注入量,油藏注入量,BHP或THP控制以及井组控制。
18. 如何定义产量预测?
用WCONPROD来定义产量预测。可以定地面油、气、水、液量或油藏产量生产,也可定BHP、THP或井组产量生产。要注意此时所有的数据项都起控制作用,比如井在定油量生产时,其产水量、产气量受WCONPROD上限控制,BHP和THP受WCONPROD下限控制。
19. 如何控制经济极限?
可以用CECON、WECON或\GECON控制产层、井和井组最小产油量、产气量;最大含水、油气比。在违背经济极限时可以采用一系列作业,比如关井、封层(WPLUG)、修井(WORKTHP)、气举(WLIFT)、换油管(WLIFT)、钻新井(QDRILL)等。
20. 如何定义井组生产?
用GCONPROD定义井组生产。井组生产可以定地面油、气、水、液量或油藏产量。该井组可以受上一级井组产量控制或独立于上一级井组。
21. 如何定义井组注入?
用GCONINJE定义井组注入。井组可以定地面注入量、油藏注入量、地面注采比和油藏亏空。
22. 如何控制ECLIPSE计算时间步?
通常情况下ECLIPSE缺省计算参数设置是最好的,所以一般情况下不需要修改ECLIPSE计算参数设置。在模型出现收敛性问题时可以用TUNING来修改ECLIPSE计算参数。比如最大时间步、最小时间步、非线形收敛误差、物质平衡误差和最大时间截断误差等。
建议需要时只修改最大时间步,不要修改其他参数。
23. 什么是重启计算?
历史拟合结束后需要进行产量预测,在进行产量预测计算时,不需要再从历史拟合开始时进行计算,可以直接从历史拟合结束的时间接着往下算。这种应用上一次计算的输出作为下一次计算的初始输入计算就叫重启计算。
要进行重启计算,首先要定义重启时间步的输出。可以用RPTRST来定义输出每时间步,每月,每年或每隔几月几年重启时间步文件。如果采用多文件格式输出,则文件后缀为:.X0000, .X0001等,如果是单文件输出,则输出文件为.UNRST.
重启文件记录了每时间步模型压力分布,饱和度分布,溶解油气比分布,同时也记录所有井的井位,射孔位置,产量控制。不过重启文件没有记录垂直管流表(VFP表),所以在应用垂直管流表时要记住重启时需加上垂直管流表。
24. 如何进行重启计算?
ECLIPSE有两种重启计算方法,快速重启和完全重启。
快速重启不需要重新处理RUNSPEC,GRID,EDIT,PROPS和REGIONS部分,如果在历史拟合计算时设了SAVE关键字,这些部分将保存在输出的SAVE文件中,这样在重启计算时不用再计算传导率。
完全重启需要重新处理RUNSPEC,GRID,EDIT,PROPS和REGIONS部分,要重新计算传导率。
完全重启步骤:
在历史拟合部分用RPTRST要求输出重启文件。
在PRT文件中检查重启时间对应的重启文件步。
将历史拟合文件拷贝为重启文件。
删掉SOLUTION部分中的EQUIL和水体部分,用RESTART关键字设重启。
在SCHEDULE部分用SKIPREST或删掉所有历史拟合时间步。
如果有VFP表,要保留VFP表。
增加新时间步进行预测计算。
快速重启步骤:
在历史拟合部分用SAVE和RPTRST要求输出SAVE文件和重启文件。
将历史拟合文件拷贝为重启文件。
删掉所有SUMMARY以前部分。
用LOAD关键字装载SAVE文件。
用RESTART设重启时间。
在SCHEDULE部分用SKIPREST或删掉所有历史拟合时间步。
如果有VFP表,要保留VFP表。
增加新时间步进行预测计算。
快速重启和完全重启的优劣:
快速重启不用重新计算传导率。对于大模型,可以节省时间。
完全重启可以修改历史拟合部分参数。
25. 如何将CMG模型转换为ECLIPSE模型?
(1)CMG软件使用"**$"作为注释行,ECLIPSE软件使用“--”作为注释行。
ECLIPSE软件许多关键字结束后需要用“/”来表示结束,而CMG不需要。
在采用公制时,CMG压力单位KPA,而ECLIPSE为BARS.
(2)网格部分的转换:
CMG Gridbuilder可以输出ECLIPSE格式网格数据,所以只需要将CMG模型输入到CMG Gridbuilder,然后再输出ECLIPSE格式就可以了。
属性参数只需要改关键字。
CMG用MOD修改参数,而ECLIPSE用ADD,MULTIPLY。
(3)PVT数据与相渗曲线转换:
CMG与VIP类似,主要是关键字的转换,数据格式不一致。不过在EXCEL的帮助下都可以得到转换。ECLIPSE定义PVT数据时将油气、油水分开用不同的关键字定义,而CMG同时定义。所以在转换时需要分开数据。相渗曲线没有区别。但注意毛管压力单位,ECLISPE米制用BARS,CMG用KPA。
对于组分模型,区别也主要是关键字不同。EOS是一样的。
(3)分区数据:
只需要转换关键字。
(4)平衡数据:
数据量很小,转换简单。要注意压力单位,用公制的话,ECLIPSE参考面压力单位是BARS,而CMG是KPA。
水体定义不同,需要做拟合。
(5) 生产数据:
这是最复杂的部分,建议不要转换,有原始数据的话,重新从头做。VFP表也不同,最好重做。
如果必须转换,需要编程。
ECLIPSE对于历史拟合和产量预测用不同的控制关键字,历史拟合时用WCONHIST,此时定义的BHP和THP不起控制作用,只用于拟合,在预测时用WCONPROD,此时BHP和THP起控制作用。CMG对于历史拟合和产量预测没有区别。
CMG会将所有井排序,在定义产量控制时,直接用井的序列号。ECLIPSE用井名或井组定义。
(6)检查
检查三维模型,是否发生坐标倒转,属性与网格是否对应。
检查储量是否拟合。
检查井位是否正确。
产量是否拟合。
26. 如何将VIP模型转换为ECLIPSE模型?
VIP软件提供转换器,可以自动将ECLIPSE模型转换为VIP模型。但ECLIPSE并不提供此类转换器,需要手工转换。下面介绍详细步骤:
(1)VIP软件使用"C"作为注释行,ECLIPSE软件使用“--”作为注释行。
ECLIPSE软件许多关键字结束后需要用“/”来表示结束,而VIP不需要。
在采用公制时,VIP压力单位KPA,而ECLIPSE为BARS。
VIP模型初始化和生产分两部分,而ECLIPSE在一个文件。
ECLIPSE模型数据体分为RUNSPEC(维数定义),GRID(网格定义),EDIT(修改),PROPS(流体及岩石参数),SOLUTION(油水、气水界面和初始压力),REGIONS(分区),SUMMARY(输出参数),SCHEDULE(生产数据)。
VIP模型数据体先定义输出参数,然后定义油水、气水界面,初始压力,流体及岩石参数和定义网格。在另一个文件里定义生产数据。
ECLIPSE通常缺省计算方法是最好的,一般不用设置控制计算参数,除非在不收敛情况下。VIP往往要设置计算控制参数。
(2) 网格部分的转换:
VIP用一个关键字COPR来定义角点网格,ECLIPSE使用两个关键字COORD和ZCORN来定义网格。COORD定义从顶到底的坐标,ZCORN定义每个角点的深度。可以用ECLIPSE软件中的GRID来帮助将VIP网格转化为ECLIPSE网格。步骤为:
"Edt model"
Enter the name of the model
or RETURN for menu options \'dummy\'
Model DUMMY does not exist.
Create new model ? (Y/n) \'Y\'
AVAILABLE MAP PROJECTIONS
1. Universal Transverse Mercator
2. Oblique Mercator (Hotine)
3. Transverse Mercator
4. Mercator
5. Lambert Conformal Conic
6. Albers Equal Area
7. Universal Polar Stereographic
8. Azimuthal Equidistant
9. None ( normal cartesian coordinates )
Choose an option ( H for HELP )
or RETURN for 9 \' \'
Enter units for model area ( H for Help )
or RETURN for METRES \'METRES\'
Enter minimum X and Y coordinates for model area \'0 0\' (you can use your axis value in the model )
Enter maximum X and Y coordinates for model area \'10000 10000\' (you can use your axis value in the model)
Define default number of mesh rows & columns
as NROW & NCOL or XINC & YINC ? (R/i) \'R\'
Enter default number of mesh rows or RETURN for 50 \' \'
Enter default number of mesh columns or RETURN for 50 \' \'
Enter maximum number of model strata ( 1-100 )
or RETURN for 1 \' \'
"Return"
====================================================
Create a grid
====================================================
"Edt grid"
Enter the name of the grid \'xxx\'
Grid XXX does not exist. Create new grid ? (Y/n) \'Y\'
Enter name of map ( H for Help ) \' \'
====================================================
====================================================
"Input grid"
Enter depth units for grid or RETURN for FEET \'FEET\'
Enter origin as MAP coords, or G for grid default or D to digitize...&
Enter MAP coords or option (g/D) \'D\'
\'0 0\'
Enter a point along the X axis \'100 0\'
Does the Y axis point upwards? (y/N) \'Y\'
Okay to continue with these axes ? (Y/n) \'Y\'
Input Eclipse EGRID or GRID file, data file or VIP file ? (e/g/D/v) V\'
Enter name of file to be read \'
Enter units of input grid or RETURN for METRES \'feet\'
Is the grid in map coordinates ? (y/N) \'y\'
Output ECLIPSE Grid
也可以用GRIDSIM来转还网格数据。
属性数据将关键字转换后可以直接用,但一定要先检查好坐标方向,确定两模型方向一致,否则将会上下颠倒。
VIP数据修改直接在所需修改数据下用MOD,而ECLIPSE用ADD,MULTIPLY来修改参数。
(2)PVT数据与相渗曲线转换:
主要是关键字的转换,数据格式不一致。不过在EXCEL的帮助下都可以得到转换。ECLIPSE定义PVT数据时将油气,油水分开用不同的关键字定义,而VIP同时定义。所以在转换时需要分开数据。相渗曲线没有区别。但注意毛管压力单位,ECLISPE米制用BARS,VIP用KPA。
对于组分模型,区别也主要是关键字不同。EOS是一样的。
(3)分区数据:
只需要转换关键字。不过一定要检查坐标方向,否则是不对的。
(4) 平衡数据:
数据量很小,转换简单。VIP直接在IEQUIL里定义饱和压力,ECLIPSE用PDVD或RSVD来定义随深度变化。要注意压力单位,用公制的话,ECLIPSE参考面压力单位是BARS,而VIP是KPA.
水体定义不同,需要做拟合。
(5) 生产数据:
这是最复杂的部分,建议不要转换,有原始数据的话,重新从头做。VFP表也不同,最好重做。
如果必须转换,需要编程。
ECLIPSE对于历史拟合和产量预测用不同的控制关键字,历史拟合时用WCONHIST,此时定义的BHP和THP不起控制作用,只用于拟合,在预测时用WCONPROD,此时BHP和THP起控制作用。VIP对于历史拟合和产量预测没有区别。
VIP会将所有井排序,在定义产量控制时,直接用井的序列号。ECLIPSE用井名或井组定义。
(6)检查
检查三维模型,是否发生坐标倒转,属性与网格是否对应。
检查储量是否拟合。
检查井位是否正确。
产量是否拟合。