2. Eclipse产量曲线数据来源与导出

在Eclipse中看到的每一条产量曲线,都不是“仿真跑完自动出现”的,而是由Summary关键字在模拟过程中主动记录、写入汇总文件,再由后处理工具读取绘制出来的。理解这条数据链路,是做好历史拟合误差判读的前提:如果某个关键字没有在SCHEDULE段中声明,那么无论模型跑得多好,对应的曲线都不会存在;如果记录频率设置不当,曲线在时间轴上就会出现台阶或断点,误判为“模型异常”。本节围绕“关键字配置—文件生成—历史数据加载—曲线导出”这条主线,完成一次可复现的曲线导出任务。

一、数据从哪里来:SUMMARY关键字与汇总文件

Eclipse的产量数据来源可以分成三层。第一层是SCHEDULE段的SUMMARY关键字,它决定“记录什么”;第二层是运行时生成的汇总文件,它决定“数据存在哪里”;第三层是后处理端(Office中的Summary Plot、Floviz或外部工具)读取汇总文件,决定“怎么画”。三层缺一不可。

常用的产量类关键字按对象可分为:

  • 油田级:FOPR(日产油)、FOPT(累产油)、FWPR(日产水)、FWCT(含水率)、FGPR(日产气)、FPR(平均地层压力)、FVIR/FPVIR(累注采比)等;
  • 井级:WOPR、WWPR、WGPR、WBHP(井底流压)、WTHP(井口压力),需配合井名通配符使用,如 WOPR 后跟 '*' 表示全部井;
  • 井组/区域级:GOPR、GWPR,配合 GOPR + 组名或 FOPR + 区域定义使用。

需要特别注意的是,FPR是平均地层压力,其计算依赖网格孔隙体积加权,属于“场变量”而非井口计量量;而FOPR是各井产油量之和,属于“流量累加量”。二者在历史拟合中的判读逻辑完全不同:前者反映能量保持水平,后者反映产出能力,不能混为一谈。

二、关键字配置:写对、写全、写对频率

SUMMARY关键字必须写在SCHEDULE段中,且通常放在第一个报告步(RPTON)之前。一个典型的配置片段如下(示例参数,仅作教学演示):

SCHEDULE
-- 油田级产量与压力
FOPR
FOPT
FWPR
FWCT
FGPR
FPR
-- 井级产量与流压(* 表示全部井)
WOPR
  '*'
WWPR
  '*'
WBHP
  '*'
-- 记录频率:每个时间步都写
RPTONLY
/

这里有两个容易踩坑的点。第一,关键字大小写不敏感,但井名通配符必须用单引号包裹,写成 WOPR '*' 而不是 WOPR *,否则解析器会报错或静默忽略。第二,记录频率由RPTONLY/RPTON等报告控制字决定:默认情况下Eclipse按报告步写汇总数据,如果时间步被自适应压缩,曲线在图上会呈现“稀疏采样”,看起来像台阶。对于历史拟合,建议对关键曲线使用每个时间步记录(或在TSTEP中显式设置较小步长),保证月度和日度对比时不会因采样不足产生假误差。

如果模型已经跑完才发现漏了某个关键字,不必重跑全模型:可以在SCHEDULE中补上关键字后,用重启(RESTART)方式从某个已保存的 restart 步继续运行,新关键字从该步起生效。这也是“重启文件与历史数据加载”在实际工作中的典型用法。

三、重启文件与历史数据加载

历史拟合场景下,产量曲线通常要和实测历史数据放在同一张图上对比。Eclipse本身不存储实测数据,实测数据一般以文本表(日期+数值)形式存在,通过Office的Summary Plot导入,或在Floviz中作为“观测曲线”叠加。加载时要注意三点:

  1. 时间基准一致:实测数据常用日历日期,而Eclipse汇总文件用“自START起算的天数”。导入时需确认后处理工具已正确识别START日期,否则整条曲线会整体平移,产生系统性偏差。
  2. 单位一致:Eclipse默认输出为METRIC(m³/d)或FIELD(STB/d),实测数据若为吨/日,需先换算,不能直接叠加比较。
  3. 重启文件的作用:当需要从历史拟合的某一中间时刻(如某次调整后)继续预测时,读取 .UNRST/.RST 重启文件,配合 RESTART 关键字,可保证压力场、饱和度场连续,避免“从零重算”导致曲线在接缝处跳变。

四、一次完整的曲线导出任务

下面以“导出FOPR、FWCT、FPR三条曲线并与历史对比”为例,给出可执行的操作闭环(示例模型参数为教学假设,非实测结果):

  1. 确认关键字:在SCHEDULE段检查FOPR、FWCT、FPR是否存在,井级曲线是否带通配符;
  2. 运行并生成汇总文件:正常提交运算,得到 *.SMSPEC(索引)与 *.UNSMRY(数据)两个文件;
  3. 打开Summary Plot:加载UNSMRY,在变量树中勾选FOPR、FWCT、FPR,确认X轴为日期;
  4. 叠加历史:导入实测文本表,检查时间基准与单位后叠加;
  5. 导出:将曲线导出为CSV(日期、模拟值、实测值三列),供后续误差统计使用。

导出的CSV应至少包含“日期、模拟值、实测值、差值”四列,差值定义为模拟值减实测值(全文统一此约定,正号表示模拟偏高)。这一步看似简单,却是后续误差判读的数据基础——很多“曲线对不上”的争议,根源在于导出时时间轴或单位没有对齐。

Eclipse产量曲线数据链路与导出流程 ① SCHEDULE 段关键字 FOPR / FOPT / FWPR FWCT / FGPR / FPR WOPR '*' / WBHP '*' 决定“记录什么” ② 运行时汇总文件 *.SMSPEC(变量索引) *.UNSMRY(时间序列) *.RST / *.UNRST(重启) 决定“数据存在哪里” ③ 后处理与导出 Summary Plot / Floviz 叠加实测历史曲线 导出 CSV(日期/模拟/实测) 决定“怎么画、怎么比” 补关键字后从重启步继续(RESTART) 导出曲线示意(示例数据,非实测) 时间(月) 产量 / 压力 FOPR 模拟 FOPR 实测 FWCT FPR 差值 = 模拟 − 实测

五、导出后的检查要点

曲线导出完成并不等于任务结束,还需要做三项快速自检。其一,首末点核对:模拟曲线第一个点应等于START时刻的初始值,末点应等于END时刻,若首点缺失,多半是关键字写在第一个报告步之后。其二,量纲核对:FOPR单位应为m³/d(METRIC),若显示为1e3量级,说明误用了FIELD单位或未换算。其三,采样密度核对:在含水快速上升段(如见水初期),若曲线呈明显折线台阶,说明记录频率不足,应回到SCHEDULE调整报告步,而不是直接判定模型误差大。

常见误区:把“曲线缺失”当成“模型没收敛”。实际上,曲线缺失绝大多数是SUMMARY关键字未声明或井名通配符写错导致的,与收敛性无关。排查时应先看SMSPEC文件中的变量列表,确认关键字是否真的被记录,再谈拟合质量。