尧图精选

FLAC3D巷道开挖与锚杆锚索喷射混凝土联合支护数值模拟全流程解析

🕒 发布时间:2026/9/18 5:27:08 📁 来源:尧图网络
做岩土和采矿数值模拟的同行应该都有体会FLAC3D这个软件上手容易想用得明白却不容易。尤其是隧道、巷道类项目牵扯到开挖卸荷、围岩-支护相互作用网格怎么划、参数怎么给、支护结构用哪种单元、施工时序怎么模拟每一步都有门道。最近我把一个典型的巷道开挖喷浆衬砌锚杆锚索联合支护案例完整跑了一遍用的FLAC3D 6.0版本。模型不算大但覆盖了从网格搭建、初始地应力平衡到结构单元布置、结果提取的全流程。这篇文章把整套思路和实操过程整理出来希望对正在学FLAC3D建模、或者手头有类似隧道/巷道项目想快速上手的同学有个参考。我尽量把每个关键步骤“为什么要这么做”讲清楚包括我踩过的坑和后来找到的解决办法。命令流部分写的是最常见的写法新版本里同功能的命令可能改名比如结构单元的structure开头命令但不影响整体逻辑大家按自己的版本来就行。1. 案例整体设计与建模思路拆解1.1 工程原型与模型几何尺寸怎么定先交代一下案例背景。模拟对象是一条深埋巷道埋深约400m断面形状是矿山巷道里很常见的直墙半圆拱净宽5m墙高3m拱高2.5m沿走向取了30m的长度做三维分析。这里有个初学者很容易犯的错模型范围取得太小边界离巷道太近导致边界条件严重影响开挖后的应力重分布。常规做法是让模型边界距离巷道中心至少3倍洞径最好取到5倍。我这组尺寸横向x方向取30m巷道跨度5m两侧各有12.5m大约是跨度的2.5倍其实略偏保守但考虑到埋深大、围岩条件中等这个范围够用了。竖向z方向从巷道底板往下取15m往上取15m加上巷道自身高度模型总高30m。纵向y方向取30m主要为了消除端部效应也让锚杆锚索、喷射混凝土衬砌的纵向布置有足够空间。巷道中心放在模型中部z坐标大致在模型高度一半的位置。这样做的目的很直接把开挖体放在一个相对对称的位置初始应力场和边界约束都均匀后处理看位移、看塑性区也直观不容易出现因为模型范围不对称导致的假塑性区。1.2 FLAC3D 6.0里建模方式怎么选FLAC3D 6.0相比之前版本建模方式更灵活了。你可以在GUI里画几何、拖拽操作也可以用命令流一行行写还可以通过geometry导入外部网格。我的建议是如果你打算长期在这个软件上做研究或者生产项目尽量用命令流建模型。原因很简单——命令流可复现、可修改、可批量跑参数。比如我要对比锚杆间距从0.8m改到1.0m的影响用GUI改一遍再重新生成网格工作量是灾难级的而命令流只需要改一个参数重跑。6.0版本另一个好处是内置了Python环境可以写脚本做后处理、循环改参数甚至集成到自动化计算流程里。这个案例虽然没用到特别复杂的Python脚本但用history记录拱顶沉降和结构受力时配合Python导出曲线数据很方便。FLAC3D 6.0在生成网格时内部网格用zone表示开挖面、边界、分组这些信息都通过group管理。初学者要先适应“先分组、后赋值、再操作”的思路——一切计算都要依赖group来圈定范围所以建模初期把group分好后面会省很多事。1.3 网格划分策略哪里加密、哪里放大FLAC3D的网格决定了计算精度和速度的下限网格策略要有主次。对于隧道/巷道开挖问题核心关注区域是开挖面周围2倍洞径范围内这部分必须加密。我的做法是巷道拱部和两帮的网格尺寸控制在0.5m以内墙角位置适当再加密到0.3m左右因为应力集中最容易出现在墙角。离巷道超过5m的外围区域网格可以放宽到1.5m~2m那里只是传递应力和位移的远场过度加密纯粹浪费时间。FLAC3D 6.0里生成这类带空腔的网格常见做法是先建立一个大块体然后通过建圆柱体、块体组合来“切”出隧道空间或者用软件自带的径向网格生成器。直墙半圆拱断面实际上可以拆成三段中间矩形段加顶部半圆段。建模时可以把这三个区域分别建出来然后组合。如果不想手动拆也可以用外部网格工具比如ANSYS、HyperMesh画好导进来但要注意单元类型和网格质量是否符合FLAC3D的要求。网格尺寸有个重要原则相邻网格尺寸比不宜超过5否则会出现过渡区单元畸变计算时精度损失很大甚至因为畸形单元导致不收敛。所以加密区到远场区之间要设置过渡网格逐级放大。另外网格形状也不好忽略。FLAC3D对六面体网格的适应度最好但隧道开挖面附近的径向网格是不可避免的楔形或四面体只要确保单元内角不太小、边长差距不过大就行。生成网格后我建议先用工具检查一下最小单元体积和内角发现问题趁早重画不要等算到一半再翻车。2. 岩体参数、本构模型与初始地应力平衡2.1 本构模型与材料参数怎么定岩体本构模型这个案例用的是最常见的摩尔-库仑模型。不是说它一定最准确而是参数容易获取、工程界认可度高、计算稳定性好。对于巷道围岩这种以剪切破坏为主的问题摩尔-库仑基本够用。如果涉及软化、蠕变或者节理控制的破坏那就得考虑应变软化模型、蠕变模型或者遍布节理模型那些都不在今天的讨论范围。围岩参数我按中等强度岩体来取值具体如下参数取值说明密度2500 kg/m³中等偏重的深部岩体弹性模量8 GPa现场波速换算或者室内试验折减后的综合变形模量泊松比0.3岩石类材料常见值黏聚力1.5 MPa偏保守的节理岩体等效参数内摩擦角30°中等围岩常见值抗拉强度0.5 MPa注意FLAC3D的习惯抗拉强度给正值这里特别提醒一点FLAC3D里摩尔-库仑模型的抗拉强度默认是0如果你不设置单元几乎一受拉就拉坏这在巷道拱顶位置会影响塑性区分布让计算结果变得异常保守。所以即使你没做过抗拉试验也至少给一个经验值比如单轴抗压强度的1/10到1/15。2.2 初始地应力场怎么施加深埋巷道的初始地应力场以自重和构造应力为主这个案例按自重应力侧压力系数的方式处理。垂直应力按公式 σv γ × h 估算。γ取25kN/m³也就是2500kg/m³对应的重度h取400m算下来σv大约是10MPa。侧压力系数取k01.2这个取值比纯弹性自重场的经验值略高一些是为了考虑深部水平应力普遍偏大的实际情况。于是水平应力σx、σy都取12MPa。在FLAC3D里给初始地应力有种常用做法先施加边界应力然后solve elastic做一次弹性平衡让模型内部应力场稳定。具体命令大致是这个逻辑model new model large-strain off zone create brick size 20 15 20 ... zone cmodel assign mohr-coulomb zone property density 2500 young 8e9 poisson 0.3 ... zone face apply stress -12e6,0,0 range group xneg ... solve elastic“solve elastic”这步非常关键。它让整个模型在初始应力下做一个纯弹性的静力平衡确保后续开挖前模型处于一个准确的初始应力状态且不平衡力几乎为零。2.3 初始平衡阶段怎么判断收敛、怎么处理不收敛判断初始平衡是否完成FLAC3D最常用的是看最大不平衡力与典型内力之比。简单说就是监控最大不平衡力曲线是否下降到一个很小的稳定值通常控制比率在1e-5到1e-4之间同时监测几个关键点的位移确认位移不再增长。初学者常遇到的问题是初始平衡阶段模型就开始大量屈服算多少步都不收敛。这通常是两个原因造成的一是岩体强度参数太低在没开挖的情况下围岩本身已经大面积屈服二是边界应力施加方式不对导致局部应力集中。我常用的解法是初始平衡阶段先把泊松比或者模量微调必要时把岩体强度参数临时调高完成平衡后再通过zone initialize-stress重置应力场并且把参数改回真实值然后继续求解到不平衡力稳定。这个做法在行业内是常见的“两步初始应力法”处理深埋软岩特别管用。还有个小细节初始平衡前记得把重力加速度设置正确方向竖直向下。FLAC3D默认重力为0忘了设的话自重应力根本产生不了。3. 隧道开挖、锚杆锚索与喷浆衬砌联合支护的关键实现3.1 开挖模拟全断面一次开挖还是分步开挖模拟开挖最直接的方式就是把开挖区的zone设成空模型命令是zone model null range group excavation但这里面有个力学逻辑问题实际隧道是一节一节掘进的每个循环进尺后先出渣、再立拱、打锚杆、喷混凝土围岩应力是随着开挖面推进逐步释放的。全断面一次开挖相当于应力瞬间全部释放得到的位移和塑性区会比实际情况偏大。因此在正式计算时我更推荐按照施工步序来模拟比如沿走向每3m一个开挖步每步开挖后立即施加该段的支护结构。对于纵向长度30m的模型我分成10步每步开挖3m支护也跟着3m一段推进。这样得到的拱顶沉降和锚杆轴力会明显比一次开挖更接近实测值。你要是只关心最终稳定状态一次开挖也能给出参考但做支护设计建议还是用分步开挖。3.2 锚杆与锚索的等效cable单元建立与参数详解锚杆和锚索在FLAC3D里都可以用cable结构单元来模拟。cable单元本质上是杆单元界面弹簧的组合既能承受轴向力又能通过水泥浆的粘结刚度和粘结强度模拟锚固体与岩体之间的剪切传力机制。这个案例里锚杆沿巷道拱部和两帮布置排距1m每排拱部5根、两帮各2根长度3m直径22mm。锚索布置在拱顶区域每2m布置一根长度6m锚固段取端部3m自由段3m。锚杆的cable参数取值如下sel cable id 1 begin (x1,y1,z1) end (x2,y2,z2) nseg 6 sel cable prop id 1 emod 200e9 ytension 3e5 xcarea 3.8e-4 gr_coh 2e5 gr_k 1.75e7 gr_per 0.0691解释一下这些参数为什么这么定emod取200GPa是钢筋的弹性模量xcarea按直径22mm换算截面面积约3.8e-4m²ytension是抗拉强度按300kN取留了富余gr_per是锚杆周长按直径22mm算gr_k是水泥浆的剪切刚度取值1.75e7 Pa/m这个值偏保守模拟的是普通树脂药卷或水泥砂浆锚固的效果gr_coh是水泥浆与岩体的粘结强度取0.2MPa。锚索因为钢绞线直径更大、锚固段更长xcarea和ytension都要相应放大锚固段的gr_k可以取更大。锚索自由段和锚固段的模拟有个常用技巧分成两根cable单元自由段的gr_k和gr_coh设为0或者非常小的值这样自由段只能传递轴力不能把剪力传给围岩锚固段保持正常的浆体参数。用这种方式区分自由段和锚固段比用复杂接触要直观得多。3.3 喷浆衬砌的模拟shell单元建立与参数喷射混凝土层用shell单元来模拟。shell单元是一种壳体结构单元能承受膜力轴力和弯曲模拟喷层基本上是够用的。建立shell单元前需要先对开挖面表面生成一个“表面网格”在FLAC3D里可以先用zone face skin提取开挖区边界再在上面生成shell单元。命令骨架如下zone face skin range group excavation sel shell create range group skin sel shell prop isotropic thickness 0.15 young 23e9 poisson 0.2 dens 2500喷层厚度取0.15m按C25喷射混凝土取弹性模量23GPa泊松比0.2密度2500kg/m³。这些都是常见的喷射混凝土参数。实际施工中喷层往往分两步初喷薄薄一层封闭围岩然后复喷到设计厚度。模型里如果为了简化只建一层shell一般也直接按设计厚度给一次成形因为重点关心的是最终支护体系的力学响应而不是施工过程喷层的厚度变化。当然你要是做施工过程精细模拟也可以分两层shell初始喷4cm复喷到15cm但那样对结构单元之间的连接处理要求比较高。3.4 联合支护的完整施工时序与命令流逻辑联合支护不能“单片机”式地一股脑全加上要讲究桩、壳、锚的施工顺序。这个案例的时序是先开挖一段3m然后立即打该段的锚杆和锚索再喷该段的混凝土。用命令流表达就是这个节奏; 第1段开挖 zone model null range group excav1 solve ; 第1段锚杆锚索 sel cable id 101 ... range ... sel cable id 102 ... ... solve ; 第1段喷混凝土 sel shell id 1 ... solve ; 进入第2段重复 zone model null range group excav2 ...每步开挖后都先用solve让岩体应力调整紧接着布置锚杆、锚索再喷壳再求解一段。这样开挖、锚固、喷护相互耦合的过程就被模拟出来了。如果你偷懒把所有支护一次加上那模拟出的围岩变形量会偏小锚杆受力也失真因为它们在围岩还没充分变形前就“工作”了和真实施工节奏对不上。有个坑要提醒结构单元的节点必须和周围zone正确连接否则cable或shell根本不参与受力。检查连接的方法是看结构单元有没有attach到zone上通常命令是structure node attach或sel node attachment生成shell或cable后要看节点连接状态是否正常。连接不正常最直接的表现就是计算结束后锚杆轴力为零shell上的弯矩也是零。4. 结果提取与后处理位移、塑性区、支护内力怎么看4.1 拱顶沉降与两帮收敛的判断技巧计算完成后第一件事是看位移场特别是拱顶沉降和两帮水平位移。FLAC3D里可以用plot显示z方向位移云图或者用history记录某个位置的位移历史。我这案例里单独记录了拱顶正上方的z位移和两帮中部的x位移。有一类行为要特别留意如果拱顶沉降曲线在经过若干步之后依然匀速上升没有收敛趋势那说明围岩已经处于失稳状态围岩强度参数或者支护刚度需要调整。如果沉降曲线出现“阶梯状”突然增大往往意味着局部单元破坏、塑性区贯通这时候要检查是不是支护时机太晚或者支护强度不够。拱顶沉降的量级也需要对照经验。埋深400m、中等围岩的条件下30m长的巷道模型拱顶最终位移控制在5~10cm以内是相对合理的。如果算出几十厘米的位移先别急着怀疑软件检查一下参数和支护方案是不是太弱了。4.2 塑性区分布是支护效果的核心指标FLAC3D的塑性区图非常直观shear-n表示正在剪切屈服shear-p表示曾经剪切屈服历史tension-n/p对应拉伸屈服。开挖后巷道周边出现一定范围的塑性区是正常的关键是看塑性区是否向深部扩展以及是否在支护后停止扩大。这个案例跑完后我重点看拱脚和两帮的塑性区范围因为这两个位置最容易出现应力集中。如果锚杆布置后塑性区深度明显收窄说明锚固系统起到了作用如果塑性区一路延伸到模型边界那就该考虑支护方案是否需要加强或者模型范围是不是太小了。塑性区的判断有时候比位移还要直观支护加得好不好看塑性区范围的收敛趋势就能略知一二。4.3 锚杆、锚索轴力与shell内力的提取方法支护结构的受力状态是设计验证的重点。锚杆/锚索的轴力可以用sel cable list查看也可以在后处理里显示cable轴力分布云图。预期结果应该是锚杆中部轴力较大两端靠近孔口和孔底的轴力逐渐减小锚索的轴力峰值出现在自由段和锚固段的交界位置。如果锚杆轴力全段均匀或者最大值出现在端头那大概率是连接或者参数设置有问题。shell单元的内力一般看轴力和弯矩。喷射混凝土层主要是受压轴力反映截面上的压力水平弯矩反映围岩不均匀变形造成的弯曲效应。把shell内力和混凝土的允许强度对比就可以快速判断喷层是否安全。4.4 结果合理性快速检验的几条经验拿到计算结果我最喜欢做的三件快速检查第一看变形形态对不对。巷道开挖后顶板应该下沉、底板会微微隆起有底拱约束时不明显、两帮向内收敛云图应当对称模型和边界都是对称的如果出现明显单侧位移说明边界条件或者网格有问题。第二看锚杆受力是否“合理”。锚杆轴力一般不超过其抗拉强度设计值若普遍超过或者普遍为零都值得警惕。第三检查总体的不平衡力是否收敛。终点不平衡力比率要降到足够低否则结果可能还不是稳定解不太适合拿去做设计判断。5. 常见问题与排查技巧实录5.1 初始平衡不收敛怎么办这个是最常见的坑。模型一切正常一开始solve平衡结果最大不平衡力死活降不下来。大部分情况是围岩参数太低某些区域在初始应力下就屈服了。我的排查步骤先看塑性区云图如果在初始应力状态下就出现大量红色正在屈服单元首先把黏聚力和内摩擦角临时提高1.5~2倍完成弹性平衡后再用zone initialize-stress重新设置初始应力然后改回原参数继续求解。还有一个容易忽略的问题——单位不统一。FLAC3D本身没有单位系统你建模前必须把所有物理量统一到同套单位制。我常用m、kg、s、Pa这套体系密度2500kg/m³应力用Pa算出来的位移才是m。如果混用了MPa和Pa或者密度用了g/cm³计算刚度矩阵会差好几个数量级出现各种莫名其妙的数值问题。5.2 结构单元不参与受力锚杆轴力全为零这个现象几乎每个FLAC3D新手都会经历。排查顺序如下第一检查cable/shell单元是否生成成功节点坐标是否和zone对应别生成在空气里。第二检查结构节点与zone节点之间的连接。FLAC3D结构单元必须和背景网格形成连接关系才能传递力。用命令查看连接状态如果连接断开要手动attach。第三检查结构单元的材料属性是否设置成功以及开挖区域的zone在改成null之后结构单元是否还附着在正常zone上。如果shell和zone接触不紧密开个洞之后shell生成在悬空位置那它再怎么算都不受力。这种情况下通常要回到建模阶段确认哪个group才是真正的开挖边界然后重新生成shell。5.3 开挖后大变形导致单元畸变或计算崩溃巷道开挖后尤其是软岩工况围岩大变形会让网格严重畸变甚至出现负体积单元计算直接崩掉。几个解决思路一是把开挖和支护分成更小的施工步尽早施加支护避免开挖面长期裸露。二是开启大应变模式model large-strain on注意初始平衡阶段要关掉开挖阶段再打开。三是用zone densify或者外部工具在关键区域加密网格改善单元形态。四是考虑采用改进的数值方案比如给出适当的局部阻尼或黏滞边界减少数值振荡。5.4 问题排查速查表现象可能原因处理办法初始平衡不收敛岩体参数过低、重力未设置、单位不统一临时提高强度做弹性平衡重置应力后恢复参数开挖后出现不对称位移边界范围不足、网格不对称加大模型范围检查分组和网格锚杆轴力全零结构节点未与zone连接检查attach连接重新生成结构单元shell显示但无内力shell生成在悬空位置核对生成范围用zone face skin提取正确边界单元畸变/负体积大变形、局部网格过差分步开挖、提前支护、加密网格、控制大应变开关位移量级异常大参数单位错、刚度太低统一单位制复核弹性模量和边界条件5.5 算得慢的优化方向有人问过我这个模型算得慢怎么办。FLAC3D的计算效率受网格总量、材料模型复杂度和时步步长影响。对这类巷道问题优化方向有两条一是合理缩减模型范围特别是纵向长度如果只是验证断面支护方案取10~15m就够了没必要每次都是30m起步。二是用粗网格先跑通流程确认支护方案和参数合理后再对局部加密网格做最终计算。我工作里经常用“两步走”第一遍只用几百个zone的等效模型调参数、看趋势第二遍再跑精细网格既省时间又不容易出错。一些实际操作体会这个案例做下来我最深刻的感受是FLAC3D里真正的门槛不是软件操作而是模型逻辑。很多人卡在“开挖了但锚杆没受力”“算出的位移大得离谱”这类问题上本质上是对单元类型、连接关系、施工时序这三个底层逻辑没理顺。如果你手头正要学这个我建议别急着啃大项目先把我上面这套流程走通——一个简单巷道断面、一组合理参数、一套完整的开挖-锚固-喷护命令跑通之后再慢慢往模型里加细节比如分层岩性、地下水、构造应力场、不同进尺的循环步距。你在这个模型里积累的建模习惯以后做复杂隧道、大型洞室群的时候会替你省下很多弯路。最后再说一个小技巧每次改参数重跑前先在原模型目录里复制一份保存FLAC3D参数扫描最怕的就是改着改着把基准模型弄丢了到时候找不到对照组才是真的崩溃。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →