我前阵子把Abaqus隧道开挖的几条常见路线完整地走了一遍,从双洞隧道开挖、双盾构隧道开挖、小净距隧道开挖到连拱隧道开挖,每一类都重新搭了模型、调了参数、排了一圈坑。说实话,这四个工况看起来都是“挖洞、衬砌、看沉降”,但背后的建模策略、工序模拟思路甚至网格布置卡的“命门”都不一样。如果你也正准备在Abaqus里做这类岩土工程分析,或者已经被地应力平衡、单元生死、接触不收敛折腾到怀疑人生,这篇就按step by step的节奏,把我实际跑通的流程和踩过的坑都摊开讲清楚。
这篇内容适合三类人:一是刚上手Abaqus的学生,需要照着搭出一个能出结果的隧道开挖模型;二是做施工方案比选的技术人员,想快速评估双洞间距、开挖顺序对地表沉降和中间岩柱的影响;三是自己写论文需要一套可靠分析能耗的人。我不讲花哨的二次开发,所有操作都基于Abaqus内置功能,尽量让你能直接复现。
1. 拿到这类隧道开挖课题,先把仿真策略想清楚
1.1 四种隧道的技术特点是选型的前提
很多人一看到“双洞”“双盾构”“小净距”“连拱”就以为差不多,实际在仿真里它们对应的力学难点差异很大。普通双洞隧道是两座单洞在平面位置上接近,开挖相互影响通过围岩传递;小净距隧道则强调两洞之间的净距小于一倍洞径,甚至有小于0.5倍洞径的情况,两洞之间那块“夹心岩柱”承担了大部分荷载,是最容易发生塑性贯通的位置;双盾构隧道开挖的重点不在洞形上,而在施工工艺,盾壳推进、管片拼装、注浆层硬化都是分步激活的,模拟的核心是工序时序;连拱隧道开挖则是两洞的拱部连成一个整体,中间有一道中隔墙,施工上通常先挖中导洞再做中墙,再分部开挖左右洞,整个结构受力有点像“M形”,中墙的受力路径尤其关键。
把这些区别先列成一张对比表,后面的建模就不会跑偏。
| 工况类型 | 核心关注点 | 仿真难点 | 常用分析维度 |
|---|---|---|---|
| 双洞隧道开挖 | 两洞相互影响、地表沉降叠加 | 对称性利用、先后开挖顺序 | 二维平面应变或三维整体分析 |
| 双盾构隧道开挖 | 盾壳推进、管片拼装、壁后注浆 | 工序时序和单元激活顺序 | 三维逐环掘进,需定义盾壳和注浆圈 |
| 小净距隧道开挖 | 中间岩柱稳定、塑性区贯通 | 网格密度、材料软化、工序错距 | 二维或三维,重点加密夹心岩柱 |
| 连拱隧道开挖 | 中隔墙受力、左右洞相互影响 | 分部开挖步序、中墙先期浇筑 | 二维够用,中墙局部可用三维校验 |
1.2 先想清楚用什么模型:二维断面还是三维掘进
我在实际项目里的习惯是:先做二维平面应变分析,判断开挖顺序和支护参数对位移、塑性区的基本趋势,再用三维模型验算关键断面的纵向效应。二维模型的优势非常明显,计算快、调参方便、应力场清晰,做方案比选足够。但双盾构挖掘这种问题,因为盾构是沿着纵向连续推进的,开挖面有支护压力、盾壳有锥度、管片是分环拼装的,二维根本反映不了,必须上三维。
二维和三维的选择还有一个现实约束:网格预算。一个三维隧道模型动辄几十万甚至上百万单元,如果同时模拟双洞和盾构逐环掘进,普通电脑很容易卡死。我自己会控制在两万到八万单元之间,用对称模型减半,再用“等效地层损失率”校准结果。如果你只是算地表沉降槽,二维已经够用;如果要算盾构推力的影响、管片环间接头,再加三维。
2. 几何建模与网格划分:双洞、小净距和连拱的细节
2.1 从断面中心线开始搭几何
不管哪种隧道,建模的第一步都不是直接画圆,而是从断面中心线开始。我会先把土体“Part”建成长方形或长方体,然后在草图中画出左右隧道的圆心位置和半径。对双洞和小净距,最关键的两个几何参数是隧道中心距和开挖半径,它们直接决定中间岩柱的厚度。比如两洞开挖直径都是10米,中心距15米,中间岩柱就是5米,属于典型的小净距,这个岩柱区域要单独切分出来,后面才好加密网格。
切分几何时我强烈建议用“Partition”功能把围岩切成多个区域:左右隧道一定范围内的“开挖影响圈”、两洞之间的棱形岩柱、外围远场区域。不要嫌麻烦,这一步越细,后面网格布种越可控。Abaqus的自动网格划分在没有Partition的复杂多孔部件上经常给出楔形单元,虽然也能算,但隧道开挖这种强非线性分析特别吃网格质量,锥形单元一多就容易不收敛。
另外,连拱隧道不要直接从两个圆相切画,正确做法是先用中导洞轮廓减去中墙区域,再把左右主洞轮廓切割进去。中墙通常宽1到2米,最后浇筑混凝土,它在几何模型里一开始是不存在的,要等导洞开挖掉后才能“生长”出来。我见过不少人把中墙一开始就画在土体里,结果开挖步还没到,墙先跟土体互相存在,应力场就乱了。
2.2 网格布种:洞周加密、中间岩柱是命门
隧道开挖的核心力学响应都发生在洞室周边,网格必须在径向和周向都足够密,否则算出的塑性区范围和地表沉降会严重偏低。我的参考做法:隧道径向离洞壁四周切出一圈厚1倍洞径的“加密区”,沿径向布10到15个单元,周向布48到64个单元。这样一来洞壁附近的最小单元尺寸约0.3到0.5米,外围可以逐渐过渡到2到4米。
小净距隧道的中间岩柱是另一个加密重点。两洞间距只有几米,岩柱内可能只排得下4到8个单元,宜多不宜少。单元少了,塑性区被“锁死”,根本没法体现夹心岩柱的渐进破坏。我自己用6面体单元C3D8R,差一层的楔形单元都尽量避开。
双盾构三维模型的网格策略要特别注意纵向分段。管片环宽一般是1.2米或1.5米,纵向网格就按一环留2到4层单元格。盾壳长度通常8米左右,要单独建立为薄壳或实体层。几何上我会把盾壳建为壳单元,管片建为实体,注浆圈也建为实体,三套网格耦合在同一个模型中。网格尺寸在纵向和环向都对齐,方便后续用*Model Change整环激活或钝化。
2.3 盾构隧道的三层结构要在几何里建出来
双盾构隧道分析里有一句话,叫作“结构没分层,盾构没法模拟”。盾构机尾部的围岩和管片之间有一个壁后空隙,这个空隙会被同步注浆填满,浆液早期和硬化后的刚度差异非常大。在几何模型里我会建三层:
- 盾壳单元:厚度取实际盾壳厚度,简化为壳单元,材料用弹性钢,主要承受围岩压力和传递推进力;
- 注浆圈层:厚度0.2到0.3米,分成“未硬化”和“硬化”两个阶段,通过单元组在不同分析步替换材料属性;
- 管片层:厚度0.3到0.5米,用实体单元,材料为钢筋混凝土等效弹性。
三层结构要分别独立建Part,再通过装配定义位置关系。管片环和环之间如果要做精细分析,还需要定义环间接头,但在工程简化计算中,我会把管片环缝的刚度损失系数折进材料模量里。三层结构在几何上的互相嵌套位置很容易产生初始交叠,装配后一定用“切分”或者“调整位置”确保表面贴合,宁可留微小缝隙也不要交叠,否则接触和激活都会出问题。
3. 参数、边界和地应力:决定算不算得动的三道关
3.1 材料参数别照抄书本,先搞清本构
隧道开挖分析里围岩用弹塑性本构最普遍,Abaqus里常用摩尔库仑或者德鲁克普拉格。摩尔库仑参数直观,有粘聚力c和内摩擦角φ,但它在三维应力状态下有时收敛不顺畅;德鲁克普拉格参数c、φ换算后更平滑,我倾向于在三维盾构模型里用DP。
围岩模量和强度参数的选择直接决定开挖面是否稳定。以Ⅳ级围岩为例,我的常用取值:弹性模量1.0到1.5GPa,泊松比0.32,密度2000到2200kg/m³,粘聚力100到200kPa,内摩擦角22到28度。如果做的是软土盾构隧道,则改用修正剑桥模型或小应变硬化土模型,参数就要做三轴试验标定,不是查表能解决的。
衬砌材料在Abaqus里可以用线弹性混凝土模型模拟,弹性模量约30GPa,泊松比0.2,重度25kN/m³。管片和喷射混凝土的等效方法差别很大:盾构管片是预制拼装的,接缝多,整体刚度打折;连拱隧道的中墙和初衬通常是现浇的,可以按完整混凝土考虑。注浆圈未硬化时模量只有20到50MPa,硬化后可以达到200到500MPa,这个变化要在分析步里用*Field或者材料场变量控制。
3.2 地应力平衡:百分之八十的报错都出在这
我接触过的隧道模型,不收敛和初始位移异常大概率都栽在地应力平衡上。所谓地应力平衡,就是让模型在开挖前已经处于初始地表应力状态下,并且初始位移接近零。Abaqus里最干净的做法是:建立完整土体模型,施加重力,在第一个分析步用Geostatic或者通用静力步计算初始应力,然后把应力结果以Initial Conditions, Type=Stress, Geostatic的形式导入,重新进行计算。
但你如果直接按上述流程,多半会发现导入的应力场和单元网格不完全匹配。我更常用的替代方案是“两步法”:第一步只施加重力和边界条件,计算得到土体自重应力场;第二步将第一步得到的应力场定义为初始应力,再进行开挖。
注意一个细节:用Geostatic分析步时,屈服面不能有初始屈服点,否则地应力平衡后会带着塑性应变和位移进入开挖阶段。因此第一步最好先用弹性模型计算应力场,再在后续开挖步改成弹塑性模型,这样可以避免很多“初始塑性应变”的麻烦。泊松比引起的侧压力系数也要算清楚,通常K0=S/(1-S),如果围岩还有构造应力,直接在初始应力里加一个侧压力系数增量。
3.3 边界条件:把模型扔回“地层”里
隧道开挖模型的边界范围我一直遵循“上下左右至少取3到5倍洞径”的原则。底部约束三个方向,侧边约束法向位移,顶部自由。如果你建的是半对称模型,对称面上要加对称约束,但双隧道开挖如果土层不均匀或者施工不同步,对称假设就要慎重。
三维盾构模型纵向前后两端也要处理。盾构机的切口和盾尾都在模型内部,模型纵向长度至少要覆盖“盾构机全长+已拼装10环管片+前方20米围岩”,否则边界附近的人工约束会影响开挖面的应力状态。我一个常用的模型纵向长度是80米,盾构机从第20米推进到第60米,前后各留20米缓冲区。
远场边界还有一个小技巧:把侧边界改用弹簧约束,通过子空间类无限元吸收波。不过在纯静力隧道开挖中,单精度工程、法向约束足够,无限元更多是对动力分析。别为了炫技把边界条件搞得过于复杂,先保证正常收敛出结果。
4. 用Model Change把开挖工序“step by step”叠出来
4.1 为什么要用生死单元
隧道开挖的本质是不断“移除”洞内土体、“添加”支护结构。Abaqus里对应的功能就是Model Change, Remove和Model Change, Add。每次开挖前把将要挖掉的一批单元从计算中移除,它们的应力就释放到剩余网格里;紧接着把衬砌或盾壳单元激活,让它开始承受后续的荷载重分布。
这个操作看似简单,但Set的定义和时序经常把新手坑住。我会在装配模块里提前创建若干单元集合,命名规则用“开挖区1”“开挖区2”“衬砌1”“衬砌2”,确保一个分析步里只remove一个开挖区,只add一个衬砌区。关键的一点是,remove和add不要放在同一个分析步里做,最好用两个分析步,先remove土体,等土体应力调整一个增量步后再add衬砌。虽然理论上一句话也能跑,但同一步内同时移除和添加会让接触和应力状态变得非常不稳定。
4.2 双盾构掘进的模拟顺序
双盾构三维模型里,我通常把掘进过程切成若干个“推进步”。每个推进步长度等于一环管片宽度,典型流程如下:
- 当前分析步里remove掉盾构机前方下一环范围内的土体单元,模拟刀盘开挖;
- 激活盾壳单元向前推进一环,盾壳覆盖住新的开挖面;
- 在盾壳尾部移除盾壳单元,同时激活已拼接的一环管片,模拟管片脱出盾尾;
- 在管片外激活注浆圈单元,并附加注浆压力载荷。
实际Inp层级的体现大致是:
*Step, name=drivestep1, nlgeom=ON *Static ... *Model Change, Remove soil_excav1 *Model Change, Add shield_front1, lining_ring1, grout_ring1 *End Step这里要特别注意“盾壳推进”的实现方式:盾壳单元不应该全部重新定义,而是采用“跟着盾构机头部走”的激活逻辑。也就是前部新增一段盾壳,尾部同步移除一段盾壳,让盾壳在网格里始终存在默认长度,只是位置随分析步变化。这套做法我已经跑通了,计算量也完全可控。
注浆圈的材料要设置随时间变化的力学行为。同一环注浆圈在早期为流动浆体,对管片提供均布压力;随着浆液硬化,逐渐承担长期围岩荷载。我通过给注浆圈定义场变量,在后续分析步里不断更新其弹性模量,模拟养护硬化过程。
4.3 小净距隧道的先后开挖顺序
小净距双洞同步开挖在Abaqus里可以建,但实际施工很少允许两洞掌子面完全齐头并进,因为爆破和变形会互相扰动。仿真里我一般对比三种方案:两洞同时开挖、左右洞错距开挖、两洞分别全断面开挖。错距的量通常取1到2倍洞径。
你可以把这些差异通过分析步顺序体现出来。比如左侧洞先开挖到某一环,右侧洞才开始开挖;右侧洞开挖时左边洞已经打好衬砌,刚度上去了。这个方法在二维里同样有效——先在左侧洞remove掉开挖区并add衬砌,等到应力稳定后再开挖右侧洞。
结果往往会发现,中间岩柱的塑性区跟开挖错距的关系非常敏感。错距太小,左右洞的应力释放叠加在岩柱中间,塑性区连成一条“纵向破裂带”;错距太大,先挖的洞室在两侧卸载下产生过大变形。具体最优错距要根据围岩级别做参数扫描,通常小净距隧道规范里建议错距不小于1.5倍洞径,仿真正好可以验证这一条。
4.4 连拱隧道的中导洞和分部开挖
连拱隧道的开挖步骤比双洞复杂,但用Model Change依然是老一套逻辑。典型工艺是“中导洞先行—中墙浇筑—左右洞开挖”。建模顺序如下:
- 第一步remove中导洞土体,激活中导洞初期支护;
- 第二步在中导洞内add中隔墙混凝土,模拟中墙现浇;
- 第三步remove左主洞土体,激活左洞初期支护;
- 第四步remove右主洞土体,激活右洞初期支护;
- 根据施工图决定是否需要二次衬砌,按需要激活二衬。
这里面最不容易想到的是中导洞支护和左右洞开挖的先后关系。中墙混凝土浇筑后,需要拆除导洞临时支护并把应力转换给中墙,所以在建模时要分两批“remove”:第一批是把导洞内的核心土体remove,第二批是把临时支护单元remove。如果不remove临时支护,它对后续左右洞开挖的约束作用会让中墙受力偏小。
双洞之间的二衬施作时机也要考虑。实际工程中,左右洞往往不等衬砌完全达到强度就继续掘进,所以我在分析步里通过混凝土强度增长曲线,把二衬刚度从早龄期低模量逐步提高到目标模量。这在分析步里很多,但这个方法比“一激活就算满强度”要真实得多。
4.5 分析步与输出设置
为了避免开挖过程中应力突变导致不收敛,我用Standard里的*Static通用静力分析步,并打开几何非线性。开挖工况如果预计有较大塑性区,会开启自动稳定(Automatic Stabilization)功能,阻尼系数调低,仅用于辅助收敛。但自动稳定是一把双刃剑,阻尼太大会让位移失真,所以我一般在第一分析步关闭稳定,确认收敛困难以后再逐步加。
输出设置上,我习惯场输出固结位移U、应力S、塑性应变PEEQ;在关键点定义历史输出,包括拱顶沉降、地表沉降、拱脚位移、中墙顶部竖向应力。地表沉降的横向测点布置和三维模型的纵向测点布置,在建模初期就做成Set,这样历史输出直接引用Set编号,不用后处理再找节点。
分析步不要贪多。每个开挖步都用一个分析步,最多也就几十步。我把增量步初始值设成0.01,最大增量步设为0.1,最小设在1e-5。实际跑起来大部分工况都能在20到50个增量步内完成一个分析步。如果某个开挖步连续出现“Too many attempts”,先别忙着减小增量步,回到网格和接触设置里找问题。
5. 常见问题与排查技巧实录
5.1 不收敛先别急着调增量步
不收敛是隧道开挖模型最常遇到的事。我一开始也习惯先猛砍增量步大小,结果事倍功仟。后来学乖了:先看monitor里前几个增量步的残差模式和PEEQ云图,再判断问题根源。
常见原因是开挖面一次性被remove太多单元,应力释放过猛。解法是把一个大开挖步拆成几段,每次只挖一小部分,中间让模型稳定一个增量步。另一个常见原因是单元畸变,尤其在小净距岩柱或者注浆圈这种薄层里。我会先检查单元受压后的最小尺寸,如果出现负Jacobi,说明单元的过度压缩了,这时候不是调增量步,而是重新划分该区域网格,让单元更接近六面体。
还有一种隐蔽的原因是接触对的主从面没选好。盾壳、盾尾、注浆层、管片之间的接触,如果从面刚度小于主面,就会导致穿透,收敛很困难。我会把较硬的盾壳设为主面,较软的注浆层设为从面,单纯摩擦接触时摩擦系数按0.2到0.4设置。
5.2 衬砌一激活就拉裂的奇怪现象
很多模型看起来正常,但衬砌单元一激活就立刻出现大范围拉裂,这通常不是材料强度不够,而是“该处理的应力释放没做”。实际问题在于:开挖步里移除土体单元后,如果直接在同一分析步激活衬砌,衬砌相当于在开挖瞬间就承担了全部卸载荷载,变形被强行限制,自然拉裂。
我的处理办法:土体移除后先保留围岩自由变形若干个增量步,让应力释放得差不多,再激活衬砌。如果应力释放率很高,还可以先加一个“应力释放系数”,用等效面力来模拟支护延迟效应。这个操作在二维和三维里都可行,只需在开挖面边界施加一个渐减的面力载荷,模拟从开挖到支护完成这段时间的荷载转移。
5.3 双洞交互影响下中间岩柱的塑性区异常
中间岩柱塑性区连续贯通,有时候并不是计算错误,而是小净距隧道的真实失稳机制。但如果位移结果大到离谱,就要检查两点:一是岩柱区域的网格是否够密,二是初始应力和边界条件是否让模型过于“软”。
我给中间岩柱加密网格后,还会把岩柱单元单独建立Set,在后处理里专门看PEEQ和最大剪应变。如果塑性区已经贯通且模型变形趋势一边倒,说明模拟出的施工顺序已经导致局部失稳,这不是bug,而是方案本身需要改错距或加固。仿真反而是负责任的“预警”。
有时候岩柱区域也会因为采用关联流动法则产生不合理的体积膨胀,导致位移偏大。可以切换成非关联流动法则,并将剪胀角设置成低于内摩擦角,默认0到5度即可。
5.4 计算时间太长的实际妥协方案
三维双盾构逐环掘进模型如果开挖步设置了六七十个,计算时间确实很长。我自己试过一台配置和建模方式中等的机器,一个模型跑出来要十几个小时,而且只算了少量输出。这提醒我,做这类分析要在精度和成本之间找平衡。
按照我的经验,先从二维模型入手,把所有参数、本构、开挖顺序都调通,再上三维。三维模型里如果对称性好,就可以只建一半,并用纵向分段来压缩计算规模;也可以把每两环管片合并成一个开挖步,减少分析步数量。只要纵向位移场的变化趋势正确,这种简化是可接受的。必要的时候用*Model Change, Remove配合单元“静力凝聚”策略,把距离隧道较远的围岩网格放大,把计算资源集中到开挖影响范围内。
最后再分享一个我常用的自检方法:每次跑完一个开挖步后,先不用等整体结果,直接查看当前增量步内监测点的位移历史曲线。如果曲线呈连续光滑增减,说明模型状态正常;如果曲线出现锯齿状跳变,大概率是接触或者单元生死顺序错了,宁可在这里停下来,也不要让错误延续到下一步。
做隧道开挖仿真,最怕的就是把Abaqus的每一个按钮都点明白了,却不知道每个操作在力学上意味着什么。我踩过的这些坑,基本都集中在工序时序、地应力平衡和网格局部质量上。你按照上面的思路搭模型,把每一步的力学逻辑理顺,后面就能少走很多弯路。