资讯详情

地震勘探有限差分正演:波场模拟、合成记录与建模避坑

📅 2026/10/28 2:42:48 | 华诺云谱 👁 阅读
地震勘探有限差分正演:波场模拟、合成记录与建模避坑
简介围绕Tesseral-2D模型正演软件的功能与特点这份PPT面向地球物理勘探人员、地质科学家及相关系科学习者聚焦复杂介质条件下地震勘探多解性这一实际问题梳理模型正演在观测系统与采集参数设计、地下波场传播认识、处理流程测试以及解释结果验证中的作用。压缩包仅含1个PPT文件约2MB篇幅集中便于快速浏览软件的整体框架。内容涵盖Model builder、Computation Engine、Viewer和Processing Block四个功能包并展开基于有限差分的P波与SV波模拟、梯度与声学及弹性介质、各向异性、吸收衰减、初至时间场、波场快照和AVO效应等要点可帮助读者理解从模型构建到合成记录处理的基本链路。目前已有226人学习适合用作软件功能速览、方法入门和采集处理方案讨论的参考材料。1. 正演地震勘探里那味“后悔药”为什么必须在开工前吃地震勘探有个绕不开的尴尬地下看不见所有结论都是“反演”出来的。反演天然多解——同一套炮集两拨人解释出两个构造井打下去都不对。Tesseral 2D 这类模型正演软件干的就是把因果链倒过来走一遍先给定介质用有限差分把波场一步步推出去得到“已知答案的合成记录”再拿它去校验采集参数、处理流程和解释方案。它的价值不在算得多快而在于让错误提前发生在计算机里而不是发生在钻井平台上。搞懂它的机制等于掌握了地震勘探里最便宜的一次试错机会。2. 有限差分正演波场是怎么被一格一格推出去的2.1 从波动方程到差分网格为什么必须离散连续介质的弹性波传播由偏微分方程描述方程本身是解析的但只有在极少数简单几何下才有解析解。真实地下有薄层、溶洞、横向变速解析解直接失效。常见的实现思路是把空间切成网格把二阶导数换成相邻格点的差商时间也切成步长于是“求解方程”退化成“循环迭代”。以二维各向同性弹性波为例速度—应力方程组的显式差分形式大致是这样示意非源码# 二维弹性波速度-应力有限差分示意骨架 # vx, vz: 质点速度分量; sxx, szz, sxz: 应力分量 # rho: 密度网格; lam, mu: 拉梅参数网格; dt: 时间步; dx, dz: 网格间距 for it in range(nt): # 1) 更新应力应力对时间的偏导 速度的空间导数 × 弹性模量 sxx[1:-1,1:-1] dt * ((lam2*mu) * dvx_dx lam * dvz_dz) szz[1:-1,1:-1] dt * (lam * dvx_dx (lam2*mu) * dvz_dz) sxz[1:-1,1:-1] dt * mu * (dvx_dz dvz_dx) # 2) 更新速度速度对时间的偏导 应力的空间导数 / 密度 vx[1:-1,1:-1] dt / rho * (dsxx_dx dsxz_dz) vz[1:-1,1:-1] dt / rho * (dsxz_dx dszz_dz) # 3) 在震源点注入子波在边界做吸收/衰减处理 vz[src_i, src_j] wavelet(it) apply_boundary_absorb(vx, vz, sxx, szz, sxz)dvx_dx这类量就是差商通常用高阶交错网格模板算阶数越高频散越小、单步越贵。lam和mu是拉梅参数由 P 波速度、S 波速度和密度换算而来——这正是 Model builder 里要用户填密度—速度的原因模型不是画着好看的剖面图而是差分迭代每一步都要读的系数场。这里最关键的三个参数关系值得记牢稳定性dt必须满足 CFL 条件大体上dt C * min(dx,dz) / vmax其中vmax是模型里最快的速度。速度场里塞进一个高速层dt就得跟着变小否则迭代几步数值就炸。频散空间网格要足够密经验上每最短波长至少若干个格点否则波前面会出现“尾巴”看起来像真实反射其实是数值假象。边界模型左右和底部的截断边界会产生强反射回到有效区必须做吸收衰减否则解释人员会把边界假反射当构造。2.2 快照与合成记录一份计算两种产物Computation Engine 算完一轮输出两类东西。一类是合成地震记录道也就是在地表按检波点位置记录时间序列等价于真实采集另一类是波场快照把某一固定时刻整个网格上的波场值画出来原文给的例子就是t10.350 s; t20.510 s; t30.810 s; t41.110 s; t51.420 s这几个时刻的波前位置。快照的价值在于它是“因果可见”的。看合成记录你只看到一串反射同相轴不知道哪一条来自哪个界面、哪一条是多次波、哪一条是绕射看快照波从震源出发、碰到界面分叉、在溶洞上产生绕射、在薄层里来回震荡全过程摊在你面前。原文提到用快照“识别勘探目标所产生的波场、追踪其在介质中的传播过程”说的就是这个——先把波场里都有什么搞清楚再去谈成像方法能不能把它们分开。提示频散和边界假反射在快照上最容易被识破。波前面拖尾巴、边界处冒出平行反射都是数值问题而非地质响应。3. 介质模型为什么声学、弹性、各向异性要分成四套方程3.1 从声学到弹性多算一个横波代价和收益在哪声学介质假设只有纵波mu 0方程组退化成一个标量波场计算量最小。海洋资料、或者只关心纵波构造的场景用它足够。但它有个硬伤无法描述横波也就无法描述转换波、无法描述 AVO 里依赖横波速度的那部分信息。弹性介质把mu加回来P 波和 SV 波同时传播界面上还会产生转换波。原文强调“快而精确地计算在介质中传播的 P- 和 SV- 波”说的就是这一类。代价是变量从 1 个变成 5 个速度两个分量、应力三个分量内存和单步计算量都翻上去dt还要按更快的波速重新核算。我在看这类软件的介质选项时一般会这么理解它的取舍逻辑默认给最简单的方程等你明确需要横波信息时再升级。因为多算的每一个物理量都要在模型建立阶段对应地准备参数而实际项目里横波速度往往是最缺的数据。3.2 梯度介质与薄层组连续变速怎么落到网格上均匀层状模型是最理想的情况真实地层速度是连续变化的。梯度介质按垂向或横向的速度函数赋值到每个网格节点差分迭代本身不需要改改的只是lam、mu、rho三个系数场的填法。看似简单坑在于速度梯度会让射线弯曲波前不再是圆弧验证模型正确性时不能拿均匀介质的几何关系去对。薄层组是另一类麻烦。原文里那个“横向参数变化的薄层沉积模型”得到的时间剖面呈现“多相位反射层特征”本质是层厚小于子波长度时顶底反射相互干涉单一界面变成一个复合波形。这不是数值误差是真实的物理响应也正是正演能教给人的东西——你在地震记录上看到的“一套反射”地下可能是五层薄互层。# 组装一个带横向变速的薄层模型伪命令行示意建模流程 model init --grid 2001x1201 --dx 5 --dz 5 # 网格与间距决定频散水平 model set-velocity --mode gradient --v-top 2000 --v-bottom 4500 --direction z model add-layer --file thin_bed.las --top 1200 --bottom 1280 --style interbed model set-density --from-las --curve RHOB # LAS 曲线直接映射到密度场 model check --cfl --dispersion # 出计算结果前先自检--dx/--dz直接决定频散--cfl自检就是替你算一遍稳定性条件。这套流程里最容易被跳过的是最后一步跳过之后往往要等到快照出来才发现波前面全是毛刺。3.3 各向异性与吸收两个“非理想”但绕不开的物理页岩、薄互层在长波长意义下表现为各向异性波速随传播方向变化。原文列出“弹性各向异性介质模型”实现上是在弹性方程里引入刚度张量参数从两个拉梅常数变成多个独立分量。参数变多带来的直接问题是这些参数很难从常规测井里拿全多数时候靠经验关系估计于是正演结果的可靠性受限于参数假设——这一点必须在解释时交代清楚不能把各向异性正演结果当成硬约束。吸收衰减则是另一个维度波在地下传播能量会损耗高频掉得比低频快。原文提到“考虑波的能量衰减”实现上通常是在时间步进里引入品质因子控制的振幅衰减项。它的意义在于合成记录的频谱特征更接近真实资料——如果不带吸收合成记录高频“太漂亮”拿去和实际炮集对比会得出错误的频带结论。4. 四包结构Model builder 到 Processing Block 的数据是怎么流动的4.1 四个功能包各自的边界原文明确列出四个包Model builder、Computation Engine、Viewer、Processing Block。这个划分不是随手拆的它对应一条单向数据流功能包输入输出核心职责Model builderLAS 曲线、层位定义、网格参数2D 密度—速度模型把地质认识转成系数场Computation Engine模型 震源 观测系统合成道集、波场快照差分迭代求解波场Viewer道集、快照可视化结果、导出数据交互比对与属性提取Processing Block合成炮集速度谱、叠加、偏移结果用合成资料验证处理流程把处理环节也放进软件是这套设计里比较聪明的一点。合成资料的答案你是知道的处理流程在上面跑出什么结果对不对一目了然。拿真实资料做处理你永远在猜拿合成资料做处理你在核对。这就是原文那句“设计地震资料处理流程、参数控制处理质量、测试处理方法”的真正含义。4.2 LAS 曲线入库从实测数据到模型参数的那一步Model builder 支持 LAS 格式测井曲线直接输入 P 波、S 波速度和密度。这一步看着是格式转换实际是整条链上最容易被低估的环节。LAS 是深度采样的曲线网格是空间离散的系数场两者要建立对应关系# LAS 曲线 - 2D 网格空间赋值的示意逻辑 # las: 读取得到的曲线对象; model: 网格化的速度场; well_x: 井在模型中的横向位置 depth las.index.values vp las[DT].values # 声波时差需换算为速度 vs estimate_vs(vp) # 无实测横波时按经验关系估算 rho las[RHOB].values for k, z in enumerate(depth): iz depth_to_grid(z) # 深度 - 纵向网格号注意坐标原点方向 if 0 iz model.nz: model.vp[iz, well_x] vp[k] model.vs[iz, well_x] vs[k] model.rho[iz, well_x] rho[k] model.fill_lateral(methodinterp) # 井外区域横向外推或按层位插值depth_to_grid是最容易翻车的地方测井深度从上往下增网格索引方向若搞反整个模型会上下颠倒而这种错误在灰度剖面图上一眼看不出来等快照出来才发现波从底下往上跑。estimate_vs说明另一件事——很多井没有横波测井弹性正演所需的vs只能估算这是模型不确定性的一个直接来源做 AVO 分析时必须如实记录假设。fill_lateral决定了井外怎么办。单井建模时横向外推往往按层位拉伸如果实际构造有横向变化模型本身就是错的。多井时用层位约束插值会好很多。4.3 观测系统设计与 AVO 模拟正演的两个高频用法采集参数设计这块正演能回答的问题很具体最大炮检距够不够能不能接收到目标层的有效信号面元大小会不会产生空间假频目的层上的覆盖次数分布是否均匀。做法是把观测系统参数映射成震源点和检波点坐标跑一遍正演看目标界面的反射在道集上是否连续、是否被截断。AVO 模拟则更依赖弹性方程。原文列出“各向同性、各向异性、吸收、梯度、薄层”几类 AVO 效应机制上的差别在于各向同性的 AVO 由界面两侧的纵波速度、横波速度、密度差决定振幅随炮检距变化的规律相对标准各向异性会额外引入方向依赖让 AVO 曲线的形态偏离常规认识吸收造成频率随炮检距变化叠加上去会伪装成 AVO 异常薄层调谐则让振幅随炮检距的曲线出现非单调。这四种效应叠在一起时从实际资料反推岩性极其困难——正演的作用就是把它们逐个开关看清每一种单独贡献多少。5. 避坑这几处翻车我在模型正演里反复见到5.1 波前面拖尾巴却以为是多次波现象快照上主波前面后面跟着一串平行弱波前间距均匀。原因空间网格太粗高频成分无法正确传播产生数值频散。它与真实多次波的区别是间距由网格和子波频率决定不随地质结构变化。解决减小dx/dz或在震源子波上做低通滤波把超出网格分辨能力的频段去掉。改完重跑尾巴应明显减弱。5.2 迭代几十步就数值爆炸现象波场值迅速增长到异常大快照整片饱和。原因dt不满足 CFL 条件或模型里存在速度突变比如误填了一个 8000 m/s 的格点。解决先按dt C * min(dx,dz) / vmax重算时间步再检查速度场极值。建模阶段对 LAS 曲线做异常值剔除别让一个坏采样点毁掉整轮计算。5.3 边界处出现强反射被当成地下界面现象模型左右两侧或底部附近出现规则反射在合成记录上形成假同相轴。原因截断边界未做吸收处理或吸收层太薄、衰减不足。解决加厚吸收层检查吸收边界是否在所有侧都生效。判断方法很直接把模型横向加宽一圈重跑若该反射消失或位置改变就是边界问题。5.4 合成记录和实际炮集对不上频带现象正演结果高频丰富实际资料明显偏低两者无法直接对比。原因模型里没开吸收衰减或子波主频、频带设置与实际采集不一致。解决引入品质因子控制的衰减按实际资料频谱调整子波。对比时看频谱形态而不是只看波形这一步不做后面的 AVO 对比基本没有意义。5.5 模型上下颠倒现象合成记录上目标层的时间对不上波场从深部先动。原因LAS 深度方向与网格索引方向相反赋值时未做翻转。解决赋值前打印首末采样点对应的网格号确认方向。这类错误在剖面上几乎看不出来只能靠快照和已知深度的时深关系校验。6. 设计取舍正演结果的可信度取决于你承认了多少假设用久了会发现正演软件的输出质量几乎不取决于算法本身而取决于输入模型的诚实程度。有限差分求解那一层是确定的网格、步长、边界条件都有成熟判据真正的不确定性全堆在建模阶段——横波速度是估的、各向异性参数是猜的、井间是插的、衰减是套经验关系的。这些假设如果不记录正演出来的漂亮剖面会被当成证据那就背离了它原本的用途。我一般会这么看待它的定位它不是“预测地下是什么”而是“如果你假设地下是这样地震记录会长什么样”。这个方向反过来用才有杀伤力——拿实际资料去否证假设而不是拿合成记录去证实假设。原文里“对于未知地质状况相关的方法”“帮助理解波动过程”这些表述本质上说的是同一件事。验证方法上有几个成本不高但很有效的动作。一是收敛性检查把网格加密一倍、时间步减半重跑同一模型若主要同相轴位置和形态基本不变说明离散误差可控若明显变化之前的结果就不能用。二是分量对比同一模型分别跑声学和弹性差异应集中在转换波和振幅特征上若构造形态都变了说明某个环节有问题。三是处理闭环把合成炮集丢进 Processing Block 走一遍速度分析、CMP 抽道、叠加、偏移看成像结果能否回到模型本身。这一步最能暴露流程缺陷因为答案已知偏了多少一眼可见。检查项操作判据收敛性网格加密、步长减半重跑同相轴位置形态稳定边界影响模型加宽一圈重跑边界假反射消失或位移波场合理性看多时刻快照波前连续、无拖尾、能量衰减合理成像闭环合成资料走完整处理流程偏移结果与模型吻合我是被一次“看起来完美”的合成记录坑过之后才养成习惯的那次所有参数都照着经验填出图漂亮得离谱直接拿去支撑了采集设计后来复核才发现横波速度用了错误的经验关系AVO 梯度整个反了。从那以后我每次建模都强制走一遍收敛性检查和快照核对哪怕多花半天。这份资料里关于四包结构和介质类型的拆解正好适合拿来对照自己的建模习惯逐条校一遍值得存下来慢慢看。希望帮到你。本文还有配套的精品资源点击获取
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑