CMG软件培训讲义-STARS水驱油藏数值模拟
Computer Modelling Group, Inc.
培训讲义
使用
Builder STARS &
2007.10 2007.10
建立、运算并分析
“STARS 水驱” 油藏模拟模型
目 录
用 BUILDER 2007.10创建一个黑油模型 …. …. …. …………….3
启动 CMG主界面 3
打开 BUILDER 3
创建模拟网格 3
定义模型的孔隙度和渗透率 6
创建PVT 数据 7
创建相对渗透率数据 8
创建初始条件 9
创建井轨迹和导入射孔文件……………………………………………9
添加历史生产数据………………………………………………………12
创建月度生产/注入动态数据 12
创建历史拟合文件 (*.fhf) 13
井定义和约束条件 13
往重启动文件中写入重启动信息…………………………………………15
运行STARS 数据体……………………………………………………...15
用Results Graph 查看模拟结果………………………………………...16
在历史数据的基础上启动预测运算……………………………………..17
1
用BUILDER 2007.10创建一个黑油模型
在你硬盘上创建一个工作目录,把与该指南相关的图放在该目录下。
启动 CMG 主界面 (桌面上的图标或者开始/程序/CMG/Launcher)
, 选择菜单项 Projects, 然后 Add Project
, 浏览并选择存储图文件的目录
,
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
命名为 Tutorial
, 点击 确定 回到主界面
, 现在你应该能看到工作目录
打开 BUILDER 2007.10 (双击图标)
, 选择:
STARS Simulator, SI Units, Single Porosity
Starting date 1991-01-01
, 点击2次 确定
创建模拟网格 (构造数据)
, 点击 File (位于左上角的菜单栏),然后 Open Map File
, 选择 Map Type – Atlas Boundary format,x/y坐标系的单位为 m
, 点击Browse按钮选择并导入构造顶部文件To10flt.bna
, 点击 确定
1
, 点击窗口最大化按钮(窗口右上角的方块)使窗口最大化,以方便观察 , 点击 Reservoir (位于菜单栏)
, 选择 Orthogonal Corner Point 定义网格为 25 (I-方向) x 35 (J-方向 x 4
(K-方向)。
, 在I方向文本框输入 25*110 (意思是 I-方向的25列长度均为110 m) , 在J方向文本框输入35*125 (意思是 J-方向的35行宽度均为125 m) , 点击 确定
, 按住 Shift 键并按下鼠标左键可移动网格
, 按住 Ctrl 键并按下鼠标左键可旋转网格
2
, 排列一下网格和断层,使得断层沿着网格边界分布,并且网格能完全覆盖
整个区域。
, 点击左上角的工具栏按钮 将显示模式切换到 Probe mode
, 点击 Specify Property 按钮 (屏幕中间顶部) 打开下图的 General
Property Specification
, 选择属性Grid Top下layer 1对应的文本框,右键选择Geological Map 作
为数据源。
3
, 点击 Values in file1 按钮,然后浏览并选择构造顶深文件To10flt.bna (在之
前的操作中应该已经被选择)
, 点击 确定 回到
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
格窗口
, 对Grid Thickness 的 layer1 重复以上操作,不过这次在Values in file1中
选择Thickflt.bna。并且要在times 框中输入 0.25 (也在属性定义菜单中),
目的是要使网格中4个层的厚度均为总厚度的25% 。最后,拷贝
layer1,Grid Thickness 表格内容粘贴到 layer2, layer3 和 layer4 对应的表
格中完成所有4个层网格厚度的定义。你可以用Cntrl-C 和 Cntrl-V从第一
个层拷贝到其它3个层,点击 确定
, 点击Calculate Property 按钮并确定将顶深和厚度值赋给网格 (该操作是
BUILDER通过插值将等值线数据赋给网格)。
, 将视图从IJ-2D Areal 改到 3-D View (位于左上角!!)
4
, 点击 rotate 3D view 按钮 (位于工具栏) ,按下鼠标左键旋转视图,
使用指针移动模型。同时按下Cntrl 键和鼠标左键,向上移动鼠标可缩小
视图,向下移动鼠标放大视图。
, 要将等值线从视图中去掉,可以在指针位于视图任何位置时点击鼠标右
键,从弹出菜单中选择 Properties (位于菜单底部),从目录树中选择Maps ,
最后使 Show Map Contours Lines and Fault 前面的复选框为未选。
定义模型的孔隙度和渗透率
, 对Porosity重复该操作,但是选择等值图文件 porosflt.dig。对每个层使用
相同的等值图。注意输入等值图文件的值单位是%,而模拟器需要的是小
数 ( 需要对每个文件乘以0.01)
5
, 从面板列表中选择 Permeability I
, 输入以下数值:
Layer 1 50
Layer 2 250
Layer 3 500
Layer 4 100
, 在 Whole Grid行选择Permeability J 并点击右键 , 点击表格选择EQUALSI然后 确定
, 对Permeability K 进行同样操作
, 点击表格选择EQUALSI
, 在第一个框中选择 * ,然后 Value 为0.1 (即Kv/Kh =0.1) ,然后确定
, 退出 General Property Specification,点击 Calculate Property , 如果上面操作正确,Reservoir选项卡应该通过检查。
定义其它油藏属性
, 选择 Other Reservoir Properties,弹出如下窗口:
6
, 点击 按钮,选择New Thermal Rock Type,选择Rock Compressibility
选项卡
, 设置岩石压缩系数为 2E-5 1/kPa,参考压力为20000kPa,单位将自动给出
, 退出 回到主面板中
, 此时正应该保存你的数据文件。点击 File 然后 Save Dataset as. ,将文件
保存为Tutorial.dat.
创建组分性质数据
, 切换到 Component 选项, Add/Edit Component, 从组分库中选择 “H2O”,定
义为水相组分,同时还可以根据相平衡常数存在于气相中 (Steam) 。 , (不要担心关于的密度的警告信息!!!)
, 添加另一个组分,命名 “Dead Oil”, 定义为油相组分,没有相平衡常数劈分(该
油中没有溶解气)
, 输入分子量 0.6 (相当于 600 gm/g-mole), Pc, Tc 等于0,
, 点击应用并确定.
, 选择 Densities 选项卡, 选择Mass Densities,输入以下值:
Water 1000 Kg/m3
Dead Oil 980 Kg/m3
液体压缩系数和热膨胀系数先空着不填(使用缺省值!!!)
, 切换到 Liquid Viscosity 数据段,选择 “Use viscosity table” 选项,输入下表中
油的粘度, 水粘度输入0值 (这将激发程序对水使用缺省值!!),
(注意: 输入数据时使用Ctrl I 来插入行!!!!!)
7
Temperature Viscosity
25 5780
40 1380
65.5 187
93.3 47
121.1 17.4
148.9 8.5
176.7 5.2
260.0 2.5
426.7 2.5
, 点击 确定,所有值都应该ok!!
创建相对渗透率数据
, 点击 Rock Fluid数据段
, 双击树状菜单中的 Rock Fluid Type,将弹出一个菜单。通过点击 按
钮选择New Rock Type 来选择岩石类型
, 选择 Tools 和 Generate Table using correlation
, 输入以下参数用于生成相对渗透率曲线
Swcon 0.2
Swcrit 0.2
Soirw 0.4
Sorw 0.4
Soirg 0.2
Sorg 0.2
Sgcon 0.05
Sgcrit 0.05
Krocw 0.8
Krwro 0.3
Krgcl 0.3
Krogcg 0.8 (可选,不输入)
所有指数均为 2.0
, 然后 应用,确定,会出现一个包含相对渗透率数据的表。
, Rock Fluid 数据段应该ok,保存文件。
8
创建初始条件
, 点击BUILDER树形菜单中的 Initial 选项卡
, 双击 Initial Conditions
, 选择 Water-Oil-Gas 作为油藏流体的初始化分布,进行重力-毛管力平衡计
算
, 输入:
27600 (kpa) -Reference pressure 窗口
3050 (m)- Depth of reference pressure 窗口
3080 (m) - Water-oil contact窗口
1980 (m) - Gas-oil contact窗口
, 其它表格留作空白
, 点击 应用;然后 确定
, 你现在应该回到BUILDER的主菜单,除了动态数据部分,其它选项卡都
已经ok。
, 建议此时再次保存文件,从顶部菜单中选择 File ,Save Dataset.
创建井轨迹和射孔数据
创建完静态模型后,我们现在就要将井轨迹和射孔数据加进模型中。
, 点击 Wells and Recurrent 选项卡
9
, 打开菜单 Well Trajectories
, 点击 按钮,选择Create New Trajectories from completions (PERF)…
将弹出下面的窗口:
, 该窗口可根据等值线图为每口井创建一个垂向井轨迹,点击 确定来创建这
些垂向井轨迹;
, 现在回到菜单 Well Trajectories,选择 Trajectory perforation Intervals…,
弹出下面的窗口:
, 点击 Read File, 选择文件 MODIFIED-PERFS.PeRF, 选择SI单位制,然
后 open
10
, 若操作正确,该窗口将更新到如下:
, 点击 应用 和 确定;
, 完成了模型中井的轨迹和射孔定义
添加历史生产数据
我们要做的最后一项工作就是要将历史生产数据添加到模型中,这样就能进行历史拟合运算
, 再回到顶部菜单选择 Import Production/Injection data (该向导用来为模
!!) 拟器创建生产动态数据并定义每口井的状态
, STEP 1:该向导的第一步是指定生产文件的类型和名字。在我们的算例中,
我们将使用General 类型,从指南目录中选择文件 Production-history.prd
, STEP 2: 按照指导,选中包含生产数据和井名的第一行, 然后下一步 [使
用面板上的 Next/Back 按钮在上一步和下一步之间进行切换]
, STEP 3: 如果数据分列没有问题,就进入第4步
, STEP 4: 进入第3至5列,在标志行中对每一列选择Oil Produced, Water
Produced 和 Gas Produced。
, STEP 5:这里告诉你哪些井的生产数据已经被导入,哪些还没有被导入。比
如,程序没有找到well 5, 7 和 9的生产数据,因为这些井没有生产历史,
最简单的处理方法就是删除这些井,我们后面再做。除此之外,点击完成。
11
Highlight these lines
创建月平均生产/注入数据
我们下一步就是要生成每个月的动态数据。
再回到顶部菜单选择 Average Production/Injection Data
现在将鼠标移到y轴上点击右键,将弹出一个菜单允许你将平均时间段改成月度平均、半年度平均或年度平均(monthly, bi-annually, yearly)等 。
选择 monthly 并 确定
12
创建历史拟合文件 (*.fhf)
我们下一步就要创建历史拟合文件,这样就能对模拟计算结果和实际生产数据
进行对比。
再回到顶部菜单选择Create Field History file, 然后提供一个文件名 (也可以
使用缺省的)
井定义和约束条件
对那些没有生产历史的井,我们要么把它删掉,要么定义成生产井或注入井,
然后关井,这样就不影响历史拟合。
在该指南中,我们删除well 5,将well 7 和9改成注入井。
打开树状视图,选择 Well 5 点击右键,选择delete 和 yes
选择well 7, 右键, Properties,将弹出一个新菜单:
点击 ID & Type, 选上 Edit 复选框,选择井类型Type为 Injector Mobweight
打开 Constraints 选项卡, (若问到是否应用修改则回答YES!!),选上
constraint definition 复选框。
在select new下,输入OPERATE, BOTTOM HOLE PRESSURE, MAX,25000
KPA
打开 Injected Fluid ,选择 Water 作为注入流体。
13
打开 Options,选上Status 复选框,在该时间点选择 Shut-in well 。
现在,我们将以上设置拷贝到well 9 。为此,确保你在well 7 中选上
INJECTOR, constraints, Injected fluid, SHUTIN (所有项!!!),选择屏幕底端的
Tools ,点击菜单顶部的 Copy events using filter,弹出一个新菜单,然后选
择 well 9,打开 Date Selection 选项卡,选上 1991-01-01,然后Search and Add,
如下所示:
点击 确定,对well 9创建了与well 7 相同的所有约束条件。
如果弹出对话框要求改变well 9的状态,选择 “YES”,
一切就绪后,所有的选项卡前面都打上对勾。
请再次保存文件!!!
, 我们现在就定义了一个完整的油藏模型,可以提交模拟器计算了~
现在可以将数据体 tutorial.dat拖放到主界面窗口中的 STARS图标上进行计算,后面我们分析一下计算结果。
注意:要刷新主界面窗口的显示内容,可以点击左边文件夹显示窗口的文件夹进行刷新。你也可以通过选择主界面菜单选项View; Advanced options 设置自动刷新频率。已生成了包含ASCII文本输出的out文件以及包含图形数据的irf和mrf文件。你可以使用主界面右上角的文件过滤器设置
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的或自定义文件后缀。
14
往重启动文件中写入重启动信息
, 点击 I/O Control 选项卡
, 选择 Restart
, 点击 Enable Restart Writing
, 点击 + 号,选择第一个时间点 1991-01-01.
, 选择第一个选项 At every time…..
, 点击 确定 回到主面板
, 点击 File- Save Dataset as. 保存为 tutorial_hm.dat
, 我们现在已经完成了整个数据体,可以退出Builder了。将tutorial_hm.dat
拖放到 STARS 图标上运算。使用重启动计算就可以在不重新计算历史拟
合部分的前提下进行预测计算。
运算STARS数据体
, 一切完备后,你就可以运算数据体
, 首先在主界面中找到 Tutorial-hm.dat ,然后拖放到 STARS 2007.10 上释
放鼠标,会弹出一个新菜单,选择RUN IMMEDIATELY.
, 如没有错误,会打开一个MS-DOS 窗口,告诉你计算的过程。计算完成后,
输入EXIT 回到主界面。
使用RESULTS GRAPH 和RESULTS -3D查看模拟结果
我们现在可以查看模拟运算结果,并与历史数据相比较,看看油藏如何变化。
15
, 将 tutorial_hm.irf 拖放到 Results Graph 2007.10 图标上 , 从菜单中选择 File- Open Field History
, 选择我们在生产数据向导第8步创建的production-history.fhf , 点击添加曲线按钮
, 选择要显示数据的文件,比如 tutorial_hm.irf ; 选择曲线参数 Oil Rate
SC; 选择 Well 3, 然后 确定
, 重复以上操作,但这次选择 production-history.fhf,我们要比较模拟计算
数据和历史实际数据
, 你会看到如下的曲线:
, 重复以上操作,这次选择曲线为Water Production Rate 和 Gas Production
Rate
, 要看所有生产井的这条曲线,可以使用Repeat origins 按钮 , 选择 All Producers 并 确定 来生成多条曲线
, 你现在应该已经拥有一系列关于每口井历史拟合和预测的曲线 , 你现在可以用Results Graph 和Results 3D继续分析计算结果,并且发现对
你分析数据有价值的各种特征。
16
在历史数据的基础上启动预测运算
我们想预测截止到1/1/1993的油藏变化,生产井BHP 为 15000 Kpa.
, 将 tutorial_hm.dat 重新导入 Builder
, 点击主面板中的 I/O Control
, 选择Restart选项卡
, 选上 Restart from previous simulation run (RESTART) , 浏览并选择 tutorial_hm.irf
, 点击 Record to Restart from:
, 注意有一系列的重启动时间点可供选择
, 打开 Dates 选择 1991/09/01, 然后确定 回到 BUILDER的主菜单 , 点击 Well and Recurrent Data 数据段
, 选择 1991-09-01, 双击
, (如果该时间点的Set stop 复选框被选上就去掉),然后点击 add a range of
dates
, 添加的日期从 1991-09-01到 1993-01-01,然后确定
, 回到 WELLS, 展开目录树,双击 Well 1
, 将日期改到 1991-09-01,点击Constraint 选项卡;
, 选上 constraint definition 复选框,然后改变 operate minimum bottom
hole pressure 为 15000 kpa
, 现在的面板如下:
17
, 点击 应用,在1991-09-01对 Well 1创建一个新的约束条件 , 下一个任务就是把相同的约束条件拷贝给其它所有井进行预测 , 选中 Well 1 的constraint (注意是1991-09-01),点击并确保选择的是
OPERATE BHP BOTTOM HOLE PRESSUE (*), 点击屏幕底部的 Tools
and Copy events using filter
, 除了 wells 7 和 9外,选上其它所有的井,点击Date Selection 选项卡, 只
选择 1991-09-01。点击 Search and Add,然后 确定.
, 除了wells 7 和 9 外,所有的井在1991-09-01都有了一个新的约束条件 , 点击确定 回到主菜单
, 保存文件为 tutorial_pred.dat
, 现在我们可以退出Builder ,将 tutorial_pred dat 拖放到STARS图标上开
始运算
现在我们可以看看模拟运算,将其与历史数据对比,看看油藏将如何变化
, 将 tutorial_pred.irf 拖放到 Results Graph 图标上
, 选择菜单项 File,然后Open Field History
, 选择我们在生产数据向导第8步创建的production-history.fhf , 点击添加曲线按钮
, 选择要显示数据的文件tutorial_pred.irf ; 选择曲线参数 Oil Rate SC;
然后 确定
, 重复以上操作,但这次选择 tutorial_hm.irf,我们要比较模拟计算数据和
历史实际数据
, 要增大历史数据标记可以选择菜单 View; Properties
, 选择 Curve 选项卡,将数据标记大小从4改到8,然后 确定
18
添加一个水层
我们下面要做的是添加一个水层,将计算结果与没有水层的模型进行比较,看看有何区别。
, 将 tutorial_ pred.dat 拖放到Builder图标上
, 进入 Builder后打开Reservoir ,选择Create/Edit Aquifers….
, (或者,你也可以点击Create/Edit Aquifers 按钮 (在左侧工具栏从下面数第
二个)
, 选择第一种类型 – 底水(Bottom aquifer),然后 确定
, 选择Modelling Method – Carter-Tracey (infinite)。其它项保持空白。
, 确定 退出并关闭该面板回到显示区域
, 打开 File; Save dataset as…将文件名改为 tutorial_pred_aq.dat
, 确定保存文件退出Builder
19
你现在可以将 tutorial_pred_aq.dat 拖放到 STARS 图标上了。
分析数据
, 可以将 tutorial_hm_aq.irf 拖放到 Results Graph 图标上
, 从菜单栏选择File; Open CMG Results ,选择 tutorial_pred.irf , 我们现在载入了2个模拟结果,可以进行对比了
, 点击 添加一条曲线
, 选择 Origin Type – Sector (Region)
, 参数 – Ave Pres HC POVO SCTR
, 点击 确定 显示曲线
, 重复以上操作,只是文件名改为 tutorial_pred _aq.irf
, 我们现在可以看到如下的对比曲线:
, 你还可以从这里进入3D显示区域,这两种显示方式在这里都有。你保存的 .ses (曲
线) 或.3tp (3D 视图) 文件其实是一个模板,可用来重新生成以前生成的图片,可
以用同一个数据文件,也可以用其它文件。
, 结果非常直观,并且很多功能可以通过菜单或在显示区域点击鼠标右键实现。
进一步分析
如果你在Results 3D里面查看tutorial_pred 的三组分相图会发现,在模拟末期南部
20
背斜仍然有大量剩余油分布。作为油藏开发
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
的一部分,我们将于1/1/1992打一口水平井开采这部分剩余油。
, 将 tutorial_pred dat载入Builder
, 确保显示的是IJ-2D areal视图,这样我们能比较容易的确定要添加井的位
置
, 选择菜单项 File; Open well trajectory file
, 选择 File Type 为 Table format
, 浏览并选择 well-11.wdb
, 点击Next,确保正在导入的是W-11 的井轨迹,并且清除目前所有的井轨
迹
, 点击Next, 点击按钮 “Go to Perfs”
21
, 新菜单弹出时,点击 “Read File” ,选择“Well-11.perf” ,确保单位制为
“SI”,然后 打开,确定
, 井W11 应该已经显示在你的视图中。你也可以在IK方向的26和27切面
上看到。注意:准确的网格位置可能与你下面看到的略有差别。
, 注意随着GridBuilder 中显示日期的变化,射孔将显示或消失,但是井轨迹
将一直显示。
, 井W11 应该已经出现在井列表中
, 在井W11 上点左键,看到有一个日期1991-12-01。如果有模拟开始的日期
1991-01-01 ,那么就在右边的面板中选上该日期并在顶部菜单中选择Wells;
Delete dates for well;然后对井 W11 确定1991-01-01的筛选结果。这将删
除不需要的日期。
22
, 确保显示在面板顶部的日期是 1991-12-01, 因为这是我们定义这口新井的
日期:
, 在井W11上点击右键,选择 Properties
, 选择 Type 选项卡,选中 PRODUCER
, 确定 后退出
, 在井W11上点击右键,选择Constraints
, 选择Constraint 选项卡,选中 Define the well constraints 复选框
, 点击 Add ,输入OPERATE; Bottom Hole Pressure; Min; 10,000
, 确定2次回到主面板
, 现在已经完整定义了井W11,保存文件为tutorial4.dat,退出
现在运算数据体,并与 tutorial_pred.dat比较。在Results 3D 中看看模拟末期的含油饱和度,在 Results Graph中看看 Field oil production rate. 注意打开水平井后提高的产量。