《EnABLE软件培训教程XXXX.pdf》由会员分享,可在线阅读,更多相关《EnABLE软件培训教程XXXX.pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 EnABLE 辅助历史拟合软件 辅助历史拟合软件 培训教程培训教程 北京万格迪信息技术有限公司 北京万格迪信息技术有限公司 2008 年 11 月 6 日2008 年 11 月 6 日 1 目录 目录 一一 软件概况软件概况.2 二二 软件功能软件功能.2 三三 培训内容培训内容.2 1、数据准备、数据准备.2 2、油藏模型输入、油藏模型输入.4 3、检查模型、修改属性、检查模型、修改属性.5 4、设置、设置Scoping Runs.5 5、输入历史数据、输入历史数据Import the well history.6 6、设置历史拟合点和容差、设置历史拟合点和容差history match
2、points and tolerances.7 7、验证拟合点和容差、验证拟合点和容差.10 8、初始化、初始化stochastic estimator,设置,设置refinement runs.11 9、预测、预测.12 10、最优化、最优化.15 11、结果分析工具、结果分析工具.16 2一 软件概况 一 软件概况 EnABLE是一个加快油藏数值模拟工作和增强对油藏认识的软件产品。它帮助油藏工程师高效的完成历史拟合工作,并且认识油藏动态的不确定性。EnABLE可以辅助你完成历史拟合、帮助你管理历史拟合结果、智能地为你更新拟合参数的修正系数、以及自动地提交运行,并且提供油田开发不同阶段的油田
3、动态预测的统计估量。EnABLE同你的油藏数值模拟器一起可以给你带来巨大的收益,辅助你获得好的历史拟合结果,帮助你在油田评价和开发阶段提高决策水平(包括提供最优开发方案)。二 软件功能二 软件功能 EnABLE具有如下主要功能:1、在现有的油藏模型修改范围内快速识别是否存在可以接受的历史拟合;2、帮助用户识别多个可以接受的历史拟合和最好的历史拟合;3、支持方案优化(井位,射孔位置等);4、可以进行评价,敏感性分析,提供统计结果;5、定量评估油藏动态预测的不确定性;6、定量评估历史拟合的质量;EnABLE的主要目的是减少油藏模拟的成本提高油藏规划决策水平。EnABLE 是用 Java 编写的。其
4、界面友好,使用方便。它支持 Eclipse 以及其它的商业油藏模拟器(包括 Tempest-More,CMGs IMEX&STARS,VIP,VIPComp,Eclipse 100 and 300 and 3DSL)和别的石油公司自己的模拟器(如 Sensor,MoReS and Powers)。它通过在用户的控制下自动提交模拟运行进行评价、拟合、预测和优化最等工作。三 培训内容 三 培训内容 本次培训的数据是 Eclipse 模拟器格式的数据文件。1、数据准备、数据准备 1)使用使用modifiers EnABLE 使用 Modifiers 来改变油藏模型。Modifiers 可以表示 re
5、present 数据文件中的任何数字。在建立 EnABLE 项目之前,你必须首先在数据文件中定义 modifiers。在模拟器运行之前 EnABLE 会对这些 Modifiers 产生新的值然后写 3回到数据文件中。用户可以在 EnABLE 中选择 modifiers 是否处于激活状态。EnABLE 仅对处于激活状态的 modifiers 产生新值。如果需要改变非数字值,可以通过 User functions 来实现。.注注:除了在项目开始,不要随便改变 modifiers 的激活状态。EnABLE 中使用 4 种类型的 modifiers::?user modifiers 用户(自定义)mo
6、difiers user modifiers 要在数据文件的开始部分进行定义,然后在数据文件中进行调用,可以整型或连续变量。user modifiers 适用于所有的模拟器。?cell modifiers 数组 modifiers 主要用来修改数组参数,要求在主数据文件中进行定义。?fault modifiers 断层 modifiers 修改断层的传导率,也可用 User modifiers 进行替代。?Corey modifiers 仅适用于个别模拟器(VIP,3DSL,PSim and Sensor)。从saturation tables读取值,然后产生新的 saturation tab
7、les.。EnABLE 在模拟器运行前改变 modifiers 的值。另外 EnABLE 有一个强有力的工具 adjunct:user functions,你可以通过这些函数定义不同的 user modifiers 的关系。通过使用user modifiers 和user functions有可以告诉EnABLE 如何修改数据文件。2)创建数据文件原则创建数据文件原则?在主文件里面设置所有的 modifiers,不要将 modifiers 放在 Include文件里面;?定义的 modifiers 要尽量接近地质模型(范围尽可能小);?modifiers 要可能少;?Use modifiers
8、 的值变化要尽可能光滑;?在数据文件中尽量包含所有的井;?在数据文件中仅定义你需要的井输出结果;-ENABLE STARTUSER -%GOC%3750-%OWC%4500 4-%SKINP1%1.0-ENABLE ENDUSER -RUNSPEC -TITLE ECLIPSE example 2:EnABLE user modifiers DIMENS 20 10 10 /.MULTIPLY PERMX 1.0 1 20 1 10 1 1/PERMX 1.0 1 20 1 10 2 2/PERMX 1.0 1 20 1 10 3 3/PERMX 1.0 1 20 1 10 4 4/PERMX
9、 1.0 1 20 1 10 5 5/PERMX 1.0 1 20 1 10 6 6/PERMX 1.0 1 20 1 10 7 10/.SOLUTION -DATUM PRES OWC Pcw GOC Pcg EQUIL%GOC%3500%OWC%0.0%GOC%0.0 /.EnABLE 可以将数据文件中的任何不太确定的值(数字)设置为变量 user modifier,并在文件的开头定义它的可能的值以及变化范围 2、油藏模型输入、油藏模型输入 选择 FileNew Project,打开 New Project 界面,选择模型数据。3、检查模型、修改属性、检查模型、修改属性 选择 Tools
10、eSetup Modifiers 打开 Setup Modifiers 界面.检查 modifier,如果需要的话可以进行如下修改:?改变最大/最小值?设置 modifier 是否激活(Active)4、执行、执行 Scoping Runs scoping run 是 EnABLE 为了采样解空间二做的几组模拟运行,解空间就是 EnABLE 可以产生的所有可能的潜在的 modifiers 的组合,其主要目的是为了认识油藏,为建立估算器模型做准备。1)选择 ToolsScoping Runs。2)在Total number of runs输入运行的数目(一般 25)。3)在Number of s
11、imultaneous runs输入同时运行的数目。54)点击 Generate runs。5)点击 Run。在每次运行时根据产生的新的 modifiers 值创建新的数据文件、然后运行模拟器、最后将模拟运行结果输入到项目 project 文件 5、输入历史数据、输入历史数据 Import the well history 点击 FileImportWell History 对于 Eclipse 数据,如果你在卡片中使用了 WCONHIST,历史数据会写入到 RSM 文件。历史数据格式 历史数据文件通常用逗号分开。在列中也可以包含日期date,日期可以用如下格式表示 dd-m-yyyy(for
12、 example,m=2)dd-mm-yyyy(for example,m=02)dd-mmm-yyyy(for example,mmm=FEB)分隔符也可以是(-,/,.)。具体的C-1井的历史数据文件格式如下:Well,Date,Time,Oil_rate_prod,Water_cut,BHP_prod,Grid_block_pressure Name,days,stb/d,C-1,31/12/99,0,0,0,1346 C-1,01/01/00,1,8500,0,1177,6 7C-1,01/02/00,32,8500,0,813,C-1,01/03/00,61,8500,0,593,C
13、-1,01/04/00,92,8500,0,323,C-1,01/05/00,122,5558,0,300,C-1,01/06/00,153,3515,0,300,C-1,01/07/00,183,2266,0,300,C-1,01/08/00,214,1518,0,300,C-1,01/09/00,245,1145,0,300,C-1,01/10/00,275,0,0,364 C-1,01/11/00,306,1562,0,300,C-1,01/12/00,336,1270,0,300,C-1,01/01/01,367,1159,0,300,6、设置历史拟合点和容差、设置历史拟合点和容差 h
14、istory match points and tolerances 估算点是一个井或井组曲线上的点 有三种类型的估算点 estimator point:?history match point 历史拟合点?prediction point 预测点?optimisation point 优化点 在选择估算点 estimator point 之前,你必须首先执行 scoping runs.。你可以在以下两种数据上选择 estimator points 估算点:?所有的井结果数据?全油田或井组结果数据?沿井径的 RFT 数据 data along the well bore path.6.1 历史
15、拟合点设置历史拟合点设置 history match points 1)点击 ToolsSetupWell Variable。2)选择一口井或井组(well well group)3)点击 Plot.4)选择拟合类型(默认历史拟合)5)浏览不同的变量.6)选择合适的拟合点 Select the appropriate match points 7)浏览下一个变量,选择拟合点。重复此过程,直到你已经选择该井所有的拟合点。8)关闭 Well Plot 89)选择下一口井,重复以上操作(3-8),直到所有的井都定义完毕。6.2 设置容差设置容差 tolerances 在历史拟合过程中,历史拟合点的容
16、差是你同 EnABLE 进行交流的方式。减少拟合点的容差会加强该点的重要性;增加容差会减小该点的重要性。改变容差会影响每次运行的 modifier 值。在历史拟合时,容差值可以表达你对油藏的认识:?实际观测数据(历史数据)的精确程度?可以接收的历史拟合结果范围 你可以改变容差的默认设置或分别改变不同拟合点的容差 1)在 Setup Well Variables 界面上点击拟合点直接修改容差。2)点击 ToolsOptions 选择 Tolerances 97、验证拟合点和容差、验证拟合点和容差 7.1 历史拟合质量曲线检查历史拟合质量曲线检查 在 view-well plot 以图形方式检查不
17、同井的拟合质量 过滤显示最好的三个历史拟合结果。7.2 验证拟合点和容差验证拟合点和容差 检查井的模拟运行结果以及拟合质量,确认现有模型是否适当(能否得到满意的拟合结果),?如果是,继续进行refinement runs?否则重新修改模型或调整拟合目标 1)增加新的 modifier 102)调整 modifier 3)修改 modifier 变化范围 4)调整拟合点 match point 及容差 tolerance 8、执行、执行 refinement runs 8.1 初始化初始化 stochastic estimator(可选)一般情况下,建议每做 25-30 个运行人工初始化 est
18、imator 估算器 要初始化 estimater 估算器 1)点击 ToolsAdvancedInitialise Estimatior 2)点击 Initialise Estimatior 8.2 设置设置 refinement runs EnABLE 会利用 scoping runs 和选择的 estimator points 拟合点,进行初始化估算器,通过执行 refinement runs 可以提高估算器的质量。1)点击 ToolsRefinement Runs.11 2)输入 Total number of runs 总的运行数目 3)输入同时运行的数目(可选)4)选择目标 有三种
19、类型的 refinement runs A.Most informative(MI)run(一般 12).Enable 尝试获取油藏最多的信息 B.Best match(BM)run(一般 3).Enable 尝试发现最好的历史拟合 C.Optimisation run.Enable 尝试发现最大化用户定义目标的 modifier。9、预测、预测 9.1 设置设置 scoping runs(一般 15)在数据卡片中增加预测控制,执行预测运行 9.2 选择预测点选择预测点 prediction points 12 9.3 设置设置 most informative(MI)runs and bes
20、t match(BM)runs 例如 A.12 most informative(MI)runs.B.3 best match(BM)runs.C.12 most informative(MI)runs.D.3 best match(BM)runs.可以得到预测点的 P10,P50,P90 13 查找最好的历史拟合预测结果 9.4 查看预测点的概率及累计概率分布查看预测点的概率及累计概率分布 在 Diagnostics-Prediction 查看预测点的概率及累计概率分布 14 预测点的概率及累计概率分布 10、最优化、最优化 1)增加 user modifiers 2)设置 project
21、3)检查 modifier,如果需要进行修改 4)确认 user modifiers(优化)的 type 为 Control.5)创建井组 well group 6)设置 scoping runs(一般 15)7)选择最优化点 optimisation points 158)设置 most informative(MI)runs(typically 20)9)设置 optimisation runs.(一般 5)10)检查曲线,确定最优结果 11)查看 Modifiers 确认产生最优结果的 control modifiers 11、结果分析工具、结果分析工具 11.1 使用使用 sensit
22、ivity 分析结果分析结果 Sensitivity 是结果对 modifiers 的敏感性的度量。你可以 以表格的方式或 tornado chart.图的形式查看参数的敏感性。敏感性分析结果只有在估算器初始化之后才能看到。1)点击 DiagnosticsSensitivities.2)可选改变 Lower value and the Upper value 3)点击 Calculate.4)查看 sensitivities 5)选择感兴趣的拟合目标点 6)点击 plot 16 表格显示 modifiers 的敏感性 同过旋风图可以直观的显示不同 modifiers 对拟合目标的影响 17 1
23、811.2 使用拟合质量值分析运行结果使用拟合质量值分析运行结果 使用 Quality values 可以帮助你判断是否存在一个好的历史拟合结果。你可以通过调整容差,增加后较少历史拟合来控制历史拟合进程。调整的主要目的是使 quality values 值和你判断的好的历史拟合结果相一致。.运行的拟合质量可以帮助你决定是否存在好的历史拟合结果,或决定是否继续进行 most informative(MI)runs 和 best match(BM)runs 来提高 estimator 估算器。历史拟合点的质量是历史拟合点和计算点的距离(偏差)除以容差tolerance。每个历史拟合点都有一个拟合质
24、量测量值。拟合质量越低,表示拟合结果越好。拟合质量表可以帮助你识别问题所在。历史拟合点的拟合质量可以合并产生一个 overall 总质量,有两种方法计算总质量:?最大总质量最大总质量 Maximum overall quality.最大总质量是所有拟合点的拟合质量的最大的一个。?平均总质量平均总质量 Average overall quality.所有拟合点的平均质量是每个拟合点的拟合质量的平均值。要显示拟合质量值 1 点击 DiagnosticsQualities.出现 Qualities 界面 2 点击 Overall 列可以对总质量进行排序 值越小,颜色越绿,拟合质量越好。3 在上图中点
25、击 Plot 查看不同运行的拟合质量演进图 不同模型运行结果拟合点的拟合质量演进图。1911.3 分析分析 modifier 值的分布范围值的分布范围 我们可能很想知道最好的运行的 modifiers 的分布范围。比如他们是在最小值和最大值之间均匀分布呢,还是集中分布在某一个值附近。通过使用Modifiers and Qualities 工具可以实现这个功能。1 点击 DiagnosticsModifiers and Qualities.绿色表示拟合质量好,红色表示拟合质量差 modifier 的拟合质量分布图 2 通过移动右侧的滑动条可以减少 Quality Filter 的值,仅仅显示最好
26、运行的 modifiers 的分布.3 在图或图例上点击,可以显示一条线所连接的某个运行的 modifiers 20 拟合质量较好的 modifiers 的分布范围 21 22附录附录 1、历史拟合工作流程、历史拟合工作流程 1.数据文件准备及输入 2.检查 modifier,如果需要进行以下修改?改变 modifier 最小、最大值?设置 modifier 是否激活(EnABLE 是否对其改变)3.执行 scoping runs(初试运行),一般 25.4.输入历史数据.5.选择历史拟合点,如果需要调整容差,此步至关重要,也是难点。6.检查模型拟合点和容差是否合适(是否可能存在可以接收的历史
27、拟合结果)。检查 scoping runs 运行结果,确定是否存在可以接收的结果。如果是,进行下一步,否则,创建新的模型,回到第 1 步。Validate the history match points and tolerances.7.执行 refinement runs 精细运行。例如:a)12 最有意义 most informative 的运行 b)3 最好的运行 best match(BM)runs.c)12 最有意义的运行 12 most informative(MI)runs.d)3 最好的运行 3 best match(BM)runs.8.使用拟合质量工具分析运行结果?如果拟合
28、质量好,最好的运行接近历史,历史拟合完成,可以进行预测或优化。注注.在预测时可以继续历史拟合质量,所以你可以在拟合质量不是很好的情况下就进行预测。?如果拟合质量好,但是最好的运行偏离历史数据,可进行如下操作:1)调整容差 tolerances.2)人工初始化 estimator 估算器 3)回到第 7 步.?如果历史拟合质量不好 1)检查 tolerances 容差。如果 tolerances 太小,可以调大,然后再次查看拟合质量 2)手工初始化估算器 estimator.3)回到第 7 步 注注.如果多次运行之后拟合质量仍不好,回到第六步,检查模型 附录附录 2 自动(运行)宏自动(运行)宏
29、 Automation macros 你可以使用自动运行宏 Automation macros 来提交多个命令。例如,你可以离开,让计算机自动执行 scoping runs、初始化 estimator 和执行 most informative runs 等任务 创建 automation macro 的步骤如下:1 点击 ToolsAdvancedAutomation Macros.Automation Macro 界面出现 2 双击 Command Type 列出现下拉菜单,从下拉菜单中选择命令 3 对于选择的运行命令可以做以下工作 For a command which sets of r
30、uns,do one or more of these:?定义运行的数目 Specify the number of runs?选择同时运行的数目(可选)?定义运行的最大持续时间,用来限制连续多个 most informative(MI)runs 的运行时间。4 点击保存,出现 Supply New Macro Name 界面。5 填写名字,点击 OK 。6 点击 Start 可以运行 macro。7 点击 Close 关闭 23 24附录附录 3 User functions 用户函数是用户为了执行任务而自定义的一个函数。它使用 perl 编程语言写在数据文件的开头。要使用函数,要求用户对
31、user modifiers 和 perl 语言有一定的了解。一些典型的用法是:?调用用户编写的 perl 子程序?运行其它程序?定义 Include 文件名?产生新的文件并读取它们?在 Include 文件声明 user modifiers 用户函数 user functio 可以对 EnABLE 产生的 user modifiers 值进行运算。并在返回一个值,替换数据文件中的 user functions。返回的值可以是数字,字符串、文件名或或仅仅是一个注释符。如果没有新行字符(n),你可以在数据文件的一行合并函数 user functions 和user modifiers User
32、functions 可以调用存在 enable/bin/UF_utilities.pm 文件里面的 User functions 应用程序(perl 子程序)在 enable/test/UserFunctionFiles 下有一些用户自写的例子,用户可以根据自己的需要进行修改后可以使用。eclpse 模拟器产生饱和度表例子文件 SWFN,SOF3 and SGFN 的函数定义如下:-ENABLE STARTUSER-%var1%46.6-%Krwmax%.3 .25 .35-%Krgmax%1.0 1.2 0.8-%Krogmax%0.7 0.6 0.8-%WExp%5.0 4.0 6.0-%
33、GExp%2.5 2.0 3.0-%Owexp%2.5 2.0 3.0-%Ogexp%5 4.0 6.0-%Swcr%.25 .2 .3-%Sowcr%.25 .2 .3-%Sgcr%.02 0 .04 25-%Sogcr%.25 .2 0.3-function%write_eclipse_sat_tables%-use UF_utilities;-%Swmax%=1-%Sowcr%;-%Sgmax%=1-%Swcr%-%Sogcr%;-%rock_type%=1;-%npts%=15;-%string%=nSWFNn;-%string%.=create_eclipse_swfn_table_
34、endpt_scal(%rock_type%,%npts%,%Krwmax%,%WExp%,%Swcr%,%Swmax%);-%string%.=nSGFNn;-%string%.=create_eclipse_sgfn_table_endpt_scal(%rock_type%,%npts%,%Krgmax%,%GExp%,%Sgcr%,%Sgmax%);-%string%.=nSOF3n;-%string%.=create_eclipse_sof3_table_endpt_scal(%rock_type%,%npts%,%Krogmax%,%Owexp%,%Ogexp%,%Swcr%,%Sg
35、cr%,%Sowcr%,%Sogcr%);-return%string%;-endfunction 附录附录 4 Results Calculator 你可以对模拟运行结果进行计算产生新的结果。例如,你可以通过计算得到一些经济指标 NPV。这些新的结果叫 derived well variable,你可以通过 Results Calculator 来实现。添加一个新的 well variable 1 点击 ToolsAdvancedResults Calculator.出现 Results Calculator 界面。2 点击 Add.Edit Results Calculation 界面出现
36、 3 在界面的上部添加计算公式?复制或粘贴计算公式?输入计算公式(可以通过双击添加界面下面的 functions,well variables 和 operators.)4 点击 OK.Results Calculator 界面显示新的 well variable.5 点击 OK 关闭 Results Calculator 界面.6 你现在可以在 ViewPlot Wells,查看新的 well variable 26 27附录附录 5 Install EnABLE 1.Installing FLEXlm 1)在 c 盘下建立 FLEXLM 目录 2)将 enscitic,lmgrd,lmut
37、il 和 license 文件文件拷贝到该目录下 3)点击 lmutil 配置服务 2.Installing Perl 点击 supportwin32perlActivePerl-5.8.4.810-MSWin32-x86.msi 或 supportwin64perlActivePerl-5.8.8.820-MSWin32-x64-274739.msi 安装 3.Installing EnABLE 1)在 C 盘下建立 c:esl 目录 2)将安装文件enable_win98_2K_XP.zip,install.bat,install_enable_win32.pl 文件拷贝到 c:esl 目录下 3)将 enable_win98_2K_XP.zip 解压到 c:esl 当前目录下 4)检查 install 文件里面 perl 路径是否正确,如果不对要修改。5)双击 install.bat 进行安装 A.定义安装位置;c:esl B.定义 EnABLE 使用最大内存 C.定义模拟器的名字 D.定义模拟器描述 E.定义运行模拟器的命令 F.定义服务器地址:ip 地址 4.点击 c:eslenable 下 enable.bat 启动软件 注 如果有错误可以修改 c:eslenable 下 configml.xml 文件里面内容