Petrel压裂模拟全流程:Kinetix与Visage地应力耦合实操与避坑指南
发布时间:2026/10/17 8:08:05 锦皓数字建站

简介资源围绕Petrel一体化软件平台的压裂模块Kinetix与地应力模块Visage展开面向油气工程师、油藏技术人员及数字化油藏项目参与者提供从基础概念到高级应用的系统性学习资料。内容覆盖Kinetix在裂缝预测、压裂效果模拟和方案优化中的操作办法以及Visage在储层应力场建模、地应力计算与结果解释中的应用路径并附三套模型文件用于对照实操。整包331KB共11个文件以6个txt说明、2个html页面、2个doc笔记和1张jpg示意图组成文本材料便于检索阅读Word文档对培训内容与模型结构作了更细致展开。目前已有538人学习使用适合正在补强Petrel模块操作、需要打通压裂设计与地应力分析流程的工程师直接参考。通过文档引导加三套模型文件演练可以系统熟悉界面操作、参数设置、结果解读等关键环节掌握Kinetix裂缝预测与效果模拟、Visage应力场建模与地应力解释的基本方法整体体量小便于个人自学或团队内训复用。1. 为什么压裂模拟总差一截从Kinetix模块到Visage地应力场的完整链路去年复核某致密气区块压裂设计对方在Petrel里用Kinetix模块报出裂缝半长280 m邻井微地震主缝只有190 m——再翻模型地应力场是从邻区平移凑数的压根没跑Visage。按钮全会按、参数全在抄是压裂模拟最常见的死法。这套Petrel一体化平台培训视频正好卡在痛点上Kinetix压裂模块管裂缝扩展与铺砂剖面Visage地应力模块管三维应力场与耦合边界视频把两条线串成完整流程另附三套可直接加载的模型文件覆盖直井、水平井分段、含天然裂缝三类场景。适合两类人正在用Petrel做压裂设计、却没系统学过裂缝扩展与地应力耦合的工程师刚接手区块、要快速跑通一体化流程的技术人员。下面按概念、参数、实操、避坑的顺序拆。2. 先把原理立住Kinetix裂缝扩展模拟的物理内核与三套模型文件视频前半段把Kinetix的物理内核讲得很细这部分不看后面参数设了也白设。核心一句话裂缝扩展不是画一条缝而是压裂液在缝内流动、岩石在缝口张开这两个过程互相咬合的瞬态问题。理解这一点再看Plan与Simulate两套模式的差异、参数表怎么填、三套模型文件为什么是递进关系全部能串起来。2.1 缝内流动与岩石破裂的耦合Kinetix在解什么方程Kinetix内部把缝内压裂液当作幂律流体处理需要n流性指数和K稠度系数两个流变参数。缝宽由弹性方程给出裂缝是否继续向前扩展由应力强度因子或能量平衡准则判断每推进一个时间步程序都要保证缝内压力、缝宽分布、裂缝几何三者自洽。换句话说模拟出来的裂缝半长和缝宽不是某个公式直接算出来的而是流动与岩石变形反复迭代收敛的结果。视频里专门对比了Plan和Simulate两套模式。Plan模式是快速半解析算法假设裂缝沿最小主应力方向对称扩展单段几分钟就能出结果适合方案比选和参数敏感性扫描。Simulate模式走真正的三维网格能考虑层间应力差异、上下隔层遮挡、多簇同时扩展时的应力干扰计算量高一个量级但结果才经得起现场复核。我的习惯是先Plan扫因再Simulate出终版别一上来就开全三维。还有一个容易忽略的输入滤失系数Cw。它控制压裂液向地层渗漏的速度对缝长和净压力影响极大。视频里演示了用压降测试反算Cw的过程先算完这个再进Kinetix否则你调的排量和液量都是在替错误的滤失系数背锅。2.2 三套模型文件怎么选从单井直井到平台水平井附带的模型文件一共三套视频按难度排了顺序我建议你也按这个顺序跑不要直接跳过前两套去玩第三套。模型井型与场景网格规模适合练什么第一套单井直井三层岩性剖面小几十万单元量级参数敏感性、缝高控制、Plan与Simulate差异第二套水平井分段多簇平台井组中等百万级单元缝间应力干扰、多簇同时扩展、压力历史拟合第三套含断层与天然裂缝的复杂模型较大非均匀网格Visage-Kinetix双向耦合、天然裂缝开启、地应力校准第一套模型用来建立手感所有参数都简化跑一轮只要几分钟。第二套开始接触真实的平台场景多簇射孔共用一个井筒段簇与簇之间隔着几十米应力阴影会改变每簇的起裂压力和裂缝形态这一套最容易出外行看不懂、内行一眼假的错误结果。第三套是贴近现场的综合案例断层附近地应力方向会发生偏转裂缝不再对称扩展需要把Visage的应力场接进来才算完整。模拟之前还有个绕不开的环节网格。Simulate模式里井筒附近单元尺寸决定缝宽分辨率和裂缝尖端应力的精度射孔簇位置需要局部加密到分米级远处可以放到十米级。时间步的设置是类似的道理注入期间以秒到分钟级推进停泵压降段可以放宽到分钟到小时级。视频专门演示了自动时间步与手动干预的对比调好一遍建议存成模板后面每套模型直接复用。2.3 岩石力学参数怎么进模型从室内实验到Kinetix输入材料参数是Kinetix和Visage共用的地基填错一个等于全盘皆输。视频里最强调的几个参数、来源和常见坑我整理成一张表参数实验室/现场来源常用单位最常见的坑杨氏模量三轴实验静态或声波测井动态GPa或psi动静态模量差20%-30%混用直接带偏缝宽和净压力泊松比三轴实验无量纲正常范围0.1-0.35超出说明数据可疑Biot系数实验室或按岩性经验0-1低渗致密岩石取0.7-0.9取下限会低估有效应力滤失系数Cw压降测试反算ft/min^0.5 或 m/s^0.5两种单位差约0.0394倍换算错缝长直接翻倍断裂韧性KIc实验或按岩性经验MPa·m^0.5影响缝高能否穿隔层的判断动静态模量那个坑视频花了不少篇幅。声波测井算出来的是动态模量三轴实验得到的是静态模量两者差别可以到20%-30%。直接拿动态模量进Visage地应力场会系统性偏高后面算出的最小主应力比实测微压裂值高出2~3 MPa是常有的事。注意动静态模量校正是这套视频反复强调的步骤省略它会让地应力场系统性偏高2~3 MPa后续所有结论都跟着偏。输入之前还有单位体系问题。Kinetix输入模板里的单位跟随Petrel工程设置工程用公制m、MPa、kg/m³与经典美制ft、psi间切换时最埋雷。我一般会先在草稿纸上把所有参数带单位写一遍再往界面里填填完回头核对一遍单位能省掉一半以上的返工。3. 实测流程三套模型文件的加载、参数设置与运行检查视频后半段全是界面操作我按自己复现的顺序整理成三步导入检查、参数设置、运行判定。照这个顺序走三套模型都能顺利跑完反过来直接加载就点运行大概率会踩到后面第5章那几个坑。3.1 导入前必查的三件事坐标系、深度基准与井轨迹第一步是建工程、加载数据。常见的数据源格式是Petrel工程导出包也有把模拟结果以ASCII数据体给过来的情况。不管哪种格式加载完成后不要急着看参数面板先做三件事核对坐标系与投影参数工区范围、井口坐标和地震或构造图对齐误差控制在米级以内。核对深度基准统一补心海拔KB确认测深、垂深的换算关系在各对象间一致。检查井轨迹与网格的包含关系在3D窗口里看轨迹是否全程落在网格体内射孔段是否落在目标储层内。坐标系不一致最典型的后果是井轨迹整体漂移几十米射孔段落到设计层位之外模拟出的裂缝位置毫无意义。深度基准出问题则是射孔往上错一层在薄互层里会直接改写缝高判断——你以为被隔层挡住了实际根本没有。这一步我建议按表逐项确认检查项操作位置通过标准坐标系与投影工程全局设置井口坐标与构造图误差小于1 m深度基准井头信息补心海拔统一闭合差为零井轨迹范围3D窗口轨迹全段在网格体内末端不穿出分层与射孔段属性剖面射孔段落在目标储层岩性体内提示导入模型后先在3D窗口里看井轨迹与网格的关系再进参数界面能省掉一半的返工。3.2 压裂设计参数表排量、液量、砂比与泵注程序一个压裂段的设计要素就是这几样泵注排量、总液量、前置液与携砂液及顶替液的分配、砂比爬升曲线、支撑剂规格、压裂液体系。视频以某水平井单段为例给了一套示例参数我抄成表参数示例段取值调参方向与说明泵注排量10~14 m³/min排量越大净压力越高缝高失控风险越大总液量1800~2200 m³决定裂缝规模敏感性分析的首选扫掠参数前置液比例30%~40%比例偏低易端部脱砂砂比爬升4%→12%阶梯式每级台阶持续10~15 min避免一步到位支撑剂规格20/40目陶粒密度2.65 g/cm³高闭合应力场景换高强度产品压裂液体系滑溜水低浓度冻胶低渗致密层以滑溜水为主严重滤失段用冻胶段设置完成后先跑Plan模式做敏感性分析。常见做法是把排量、液量、砂比各扫3个水平9轮计算跑完看半长和导流能力的响应趋势再决定Simulate模式用哪组参数。砂比爬升曲线切忌一步到位端部脱砂的典型特征是净压力异常抬升如果模拟里出现压力曲线尾部陡增先怀疑砂比台阶设置再去查滤失参数。3.3 运行设置与收敛判据怎么判断一次模拟靠谱运行设置包括并行核数、内存上限、时间步策略和收敛容差。Kinetix任务在Petrel后台计算可以在计算任务面板里看日志和残差。判断一次模拟靠不靠谱我的标准有四条裂缝半长和净压力曲线随时间平滑推进没有锯齿状跳动每个时间步的压力残差低于设定容差一般按1e-4量级控制缝宽分布无负值、无突变停泵后压降段压力曲线形态与G函数压降分析的趋势一致。跑完之后结果分布在Petrel的模拟结果面板里主要看五样东西输出量位置用途裂缝半长模拟结果-裂缝几何与微地震事件半长对比净压力曲线压力历史图与井口施工压力拟合平均缝宽与缝高剖面裂缝剖面图铺砂与隔层遮挡判断铺砂浓度剖面裂缝剖面图导流能力评价滤失量分布结果属性体液量优化依据从Plan切到Simulate时有三处设置要单独确认三维网格的选择用模型自带网格还是重新加密、裂缝初始尺寸初始缝长给太大会跳过早期扩展段、黏滞衰减开关低黏滑溜水场景建议开启。这三处不确认就点运行算完后大概率还得回来重跑。跑完第一遍建议做一个自带测试把泵注排量设成现场施工平均值看模拟净压力是否与井口压力减去孔眼摩阻后的数值一致。一致这轮模拟才具备参考价值不一致先查摩阻系数和井口附件设置。4. Visage地应力实战从一维应力剖面到三维场耦合到这一章才真正回答第1章那个280 m对190 m的问题。裂缝往哪个方向走、缝多高、压开几条缝全由地应力场决定。Visage在Petrel平台里就是干这个的三维有限元地应力求解器视频用第三套模型演示了从建模到结果的完整链路这一章把链路里的关键决策点单拎出来讲。4.1 建模输入与边界条件侧压系数还是实测应力约束Visage的输入链是三维网格力学属性体弹性模量、泊松比、密度、孔隙压力边界条件。地应力初始化有两条常见路线视频把两者适用条件对比得很清楚。侧压系数法垂向应力由密度体沿深度积分得到两个水平主应力由侧压系数换算或直接按垂向应力的倍数给定。优点是参数少、跑得快适合区域初筛和资料不足阶段的趋势分析。缺点是井点应力对不上实测某口井的微压裂值差3~5 MPa都不奇怪。实测约束法用一口井的微压裂测试、声发射或压裂施工停泵压力反推的最小主应力值反算边界位移或边界应力让模拟出的井点应力与实测一致。优点是井点应力匹配好平台井组的精细设计基本都用它。缺点是需要可靠的实测数据反演过程多一轮调试。做法适用阶段优点缺点侧压系数法区域初筛参数少、速度快井点应力对不上实测实测约束法单井/平台精细设计井点应力匹配好依赖实测数据与反演调试断层构造加载复杂断块模型能体现断层对应力方向的偏转收敛慢、接触参数多孔隙压力场也是关键输入。Visage里Biot系数和孔隙压力共同决定有效应力孔隙压力应该用模拟或实测数据插值出的属性体而不是填一个全区常数。把孔隙压力当常数井底周围的有效应力分布会严重失真。第三套模型带断层断层要单独设置接触属性摩擦系数、黏聚力否则断层会像被焊死在网格里一样对应力场的调节作用完全失效。4.2 应力阴影与缝高控制耦合算例里看什么压开第一条缝后缝两侧地层的水平应力会升高这就是应力阴影。第二套模型里多簇同时扩展最有意思的现象是中间簇净压力高、缝短两侧簇缝长铺得开——这是典型的应力阴影互相挤压。Visage能把压完一簇后的应力场变化直接输出这也是Kinetix与Visage耦合的核心价值。耦合开关在Kinetix Simulate设置里打开使用Visage应力场之后计算顺序是这样的先由Visage算出初始地应力场Kinetix在一个时间步内推进裂缝再把缝宽引起的应变传回Visage更新应力场如此循环到停泵结束。视频里明确建议方案比选阶段用单向耦合就够了把Visage的初始应力场喂给Kinetix不反馈缝宽应变能省大量时间终版设计再开双向耦合。缝高控制是现场最关心的问题之一看的是垂直剖面上最小主应力曲线。视频给了一个快速判断表储层与隔层最小主应力差缝高行为大于2 MPa缝高基本稳定隔层遮挡有效0.5~2 MPa缝高缓慢上穿需要控制排量小于0.5 MPa缝高压穿隔层的概率很大判断缝高时还要结合断裂韧性一起看这就是为什么2.3里强调KIc不能随便填。最小主应力差很小但隔层韧性高时裂缝可能仍然被限制住反过来应力差够大但隔层有天然裂缝照样穿层。第三套模型的综合案例演示了从Visage结果里提取位移矢量、判断裂缝延展方向的操作建议完整复现一遍。4.3 结果输出与现场反演校验Visage的输出很丰富应力张量体、最大/最小主应力方向、剪切破坏与张性破坏指示体、井壁稳定性指标。视频演示了一个常用操作把最小主应力体沿井轨迹抽曲线与声波测井解释的应力剖面叠在一起看二者趋势一致说明模型基本可信。输出没问题之后还要做现场反演校验。最有效的校验数据是井壁破坏——掉块、扩径、钻井诱导缝。逻辑是这样如果Visage预测井壁稳定但实际测井显示严重扩径说明水平应力方向或数值需要调整反过来模型预测会掉块而井壁完整说明输入参数偏保守。视频给的调参顺序是先调最小主应力大小再调应力方向最后才动弹性参数。一上来就改杨氏模量的做法往往把原本合理的应力场越调越乱。校验通过的模型才谈得上导出给压裂设计用。视频最后演示的导出动作包括剖面图、应力曲线和应力体属性这里建议养成一个习惯导出的每个结果都标注对应的模型版本号不然敏感性分析做了三轮之后你根本分不清哪张图是哪版模型算的。5. 避坑复盘五个高频翻车点的现象、原因与解法视频教程看到最后很多人的问题是跟着演示跑没问题换到自己的井就四处报错。这不是操作不熟而是模拟类工具的共性报错大多发生在隐藏条件上。下面五个翻车点是我在复现三套模型文件过程中实际撞过的也基本覆盖了Kinetix与Visage联用的高频故障。5.1 单位换算翻车裂缝半长突然差出40%现象同一套模型、同一组设计参数A组跑出裂缝半长280 mB组跑出200 m谁都没改设计文件谁也说不清差在哪。原因Kinetix与Visage的输入界面里单位跟随Petrel工程设置但部分参数在公制与美制工程之间切换时不会自动换算。滤失系数Cw从ft/min^0.5换到m/s^0.5差约0.0394倍断裂韧性也有类似问题手工填表漏掉一轮换算半长就飘了。解决建工程时锁定单位体系中途不来回切换。每套模型加载后先过一遍单位检查表重点核对Cw、弹性模量、应力、密度四项。不确定当前工程是什么单位体系时直接把Petrel工程设置切到公制把所有参数重填一遍再运行。5.2 井轨迹穿出网格射孔段落在网格外现象Simulate模式正常计算完成但裂缝位置明显偏离井轨迹平面或检查射孔段发现它不在储层岩性体内结果图根本没法讲。原因导入模型时坐标系或深度基准不一致井轨迹整体漂移另一种情况是网格边界比设计研究区小轨迹末端穿出网格范围程序把网格外的井段按最近单元外推处理。解决按第3章的检查清单逐项核对坐标与深度这几分钟值得花。轨迹末端穿出网格时把网格边界向井底方向扩展至少2~3层单元重新生成网格。射孔段位置必须在剖面图上核实只看平面图看不出来。5.3 Kinetix与Visage耦合后不收敛现象单独跑Kinetix完全正常单独跑Visage也能收敛一打开双向耦合残差飙升或者直接发散日志文件刷满警告。原因耦合时间步太大缝内压力在一个时间步内变化超过岩石响应能承受的范围井筒附近网格太粗缝宽的变化量在有限元分辨率里显示不出来迭代自然稳不住。解决把耦合时间步缩小到常规注入步长的1/5到1/10。井筒周边网格加密到分米级远离井筒再放宽。还不行就退回单向耦合——用Visage的应力场喂给Kinetix但不反馈缝宽应变先确认初始应力场下结果合理再逐步打开反馈项。视频里给了一个结论单向耦合能解决80%以上的方案比选问题。5.4 动态静态模量混用地应力场整体偏高现象Visage输出的最小水平主应力比同井实测微压裂值高出2~3 MPa而且是全区一致偏高不是个别点问题。原因用声波测井的动态模量直接填进力学属性体没有做动静态校正。动态模量普遍比静态模量高20%~30%模量一高水平应力跟着抬升系统性偏差就这样来的。解决井上有三轴实验的用实验数据对测井动态模量做回归校正式常见的动态/静态模量比在1.2~1.4之间泊松比按岩性做对应校正。没有实验井的借用邻区成熟校正系数并在模拟报告里把不确定性写清楚。5.5 边界效应污染应力云图在井筒周围失真现象井筒附近的应力云图出现规则的放射状条纹远离井筒又恢复均匀而现场实测和区域地应力方向都没有这种规律性分布。原因模型侧向边界离井筒太近边界位移约束把应力顶回井筒附近区域形成数值假象。断层附近的网格尺寸突变也会造成局部应力集中看起来像异常高应力区实际是网格过渡太陡。解决侧向边界向外扩至少3~5倍研究区尺寸底部用位移固定四周用应力加载而不是完全锁死。断层附近网格过渡比控制在1.5以内。结果解读时只看离边界2~3个网格单元以外的区域边界带内的异常一律不算数。把上面五个问题固化成一张纸单位体系、轨迹包含、耦合步长、动静态模量、边界范围。我后来再复盘别人的模型第一件事就是按这张纸逐条对多数时候能在十分钟内指出问题大概率出在哪一步。6. 一个进阶技巧用Python脚本批量提取裂缝结果做方案对比视频里所有结果都在Petrel界面看但到了方案比选阶段一次敏感性分析要改十几个参数、跑十几轮每一轮都去界面里右键导出再人工抄表对比效率太低。我一般用一小段Python脚本把Kinetix导出的文本结果读进来自动算终态半长、平均缝宽和导流能力对比指标再画成柱状图。这段脚本不需要Petrel的二次开发环境纯标准库加numpy和matplotlib就能跑放在批量模拟的工作目录里直接调用。# -*- coding: utf-8 -*- # 读取Kinetix导出的裂缝结果示例表头time, half_length, avg_width, proppant_conc import csv import numpy as np import matplotlib.pyplot as plt def load_frac_result(path): rows [] with open(path, encodingutf-8-sig) as f: reader csv.DictReader(f) for row in reader: rows.append({k: float(v) for k, v in row.items()}) return rows def summarize(rows): arr np.array([[r[time], r[half_length], r[avg_width], r[proppant_conc]] for r in rows]) xf, w, c arr[:, 1], arr[:, 2], arr[:, 3] cond w * c # 缝宽(mm) x 铺砂浓度(kg/m2)仅作方案横向对比指标 return xf[-1], w[-1], cond[-1] # 取终态值要求文件按时间升序排列 if __name__ __main__: results [] for case in [case_base.csv, case_low_rate.csv, case_high_fluid.csv]: rows load_frac_result(case) xf, w, cond summarize(rows) results.append((case, xf, w, cond)) print(f{case}: 半长{xf:.1f}m, 平均缝宽{w:.2f}mm, 导流指标{cond:.1f}) names [r[0] for r in results] xfs [r[1] for r in results] plt.bar(names, xfs) plt.ylabel(Fracture half-length (m)) plt.title(Sensitivity comparison) plt.savefig(frac_compare.png, dpi150)代码逻辑不复杂但有三处要说明。第一load_frac_result用csv.DictReader按表头读取字段名必须与导出文件表头一致如果你的导出列名不同把代码里的键名改成实际列名即可。第二summarize用数组最后一行代表终态前提是导出文件按时间升序排列最好在脚本前段加一个时间序列排序断言防止Excel手动排序干扰。第三导流能力指标用的是平均缝宽乘铺砂浓度这个量纲与Kinetix输出的真实导流能力不同只用于方案横向对比真要算导流能力得用视频里演示的闭合应力下支撑剂渗透率数据把缝宽与渗透率乘起来。跑批的时候把三组case文件名换成实际文件确认表头一致再执行。输出会打印每个方案的半长、平均缝宽和导流指标并把对比柱状图存成PNG可以直接贴进汇报材料。这套脚本配合第3章的运行判据我用它在一小时内完成一套敏感性的初筛。从那以后我每次拿到新的模型文件都强制先过一遍第3章的导入检查再套一遍这段脚本做结果比对最后才敢把模拟数字写进设计报告。希望帮到你。本文还有配套的精品资源点击获取
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。