ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

降雨作用下边坡变形与应力分布的COMSOL数值模拟分析

降雨作用下边坡变形与应力分布的COMSOL数值模拟分析 很多同行拿到边坡在降雨作用下的变形与应力分布研究——基于COMSOL的分析这个课题时第一反应往往是这不就是个饱和-非饱和渗流加上固体力学耦合嘛真正跑起来才发现光是边界条件怎么给、降雨时长怎么设、初始孔压场怎么标定就能卡住你好几天。这篇东西不会教你怎么打开软件界面而是把我在一类边坡模型上完整跑通降雨-变形-应力分析的经验写出来包括每一步背后的依据、涉及到参数取值时的取舍、以及那些不跑一遍根本发现不了的坑。1. 为什么偏偏是降雨作用这类课题背后的工程现实1.1 降雨触发边坡失稳的物理本质边坡在天然状态下通常是稳定的至少安全系数是勉强达标的。真正让边坡发病的往往是外界条件变化而降雨排在众多诱发因素里的第一位。原因不难理解雨水入渗会把边坡浅层土体的含水率推高基质吸力急剧下降吸力一旦消失土体等于是从有粘聚力加成的强化状态退回到纯粹靠摩擦和有效自重撑着的裸状态。更麻烦的是入渗过程还会在坡体内部形成暂态饱和区这个区域的孔隙水压力从负值变成正值直接抵消掉一部分正应力有效应力降低抗剪强度跟着缩水。这个过程的工程后果非常直接。很多边坡在晴天看起来裂隙布满、表面松散安全系数还能维持在1.05以上一场大雨下来几天后整体滑塌就是这个机理在起作用。从数值模拟的角度讲单纯把降雨当做一个外加荷载塞进模型是不对的因为雨水几乎没有冲击力它的破坏路径是通过改变土体内的含水率分布和孔压场来实现的。换句话说模拟的重点不在雨滴打在坡面上而在水在土里怎么走、走到哪里、滞留多久。1.2 数值分析在这个问题里能回答什么现场监测能告诉我们坡顶位移了5毫米或者测斜管显示变形集中在8米深度但监测手段很难给出一个全场的、连续的应力和孔压分布。数值分析的不可替代性就在这里它可以让我们在每一个时间步、每一个网格节点上回答三件事——当前土体的饱和度是多少、孔隙水压力是正是负、有效应力在哪个深度出现了明显重塑。把这些信息叠加在一起就能定位最危险滑裂面的位置以及它随降雨持续而迁移的规律。这篇博文里的具体对象可以理解为一类非常典型的均质土坡坡高12米坡率约1:1.2土层覆盖在相对不透水的基岩上。我把它称为模拟边坡X在COMSOL里用二维平面应变模型来处理。二维模型的好处是计算成本低、参数调整方便而且对于走向方向很长的边坡结果精度完全够用。三维模型虽然能捕捉坡体端部的约束效应但几何建模、网格数量和收敛难度都会上一个台阶不适合用来做机理研究阶段的参数分析。2. 模型构建的第一步几何、材料与初始状态怎么定2.1 几何建模和边界范围的取舍边坡模型的几何不宜只切一个孤零零的坡面而是应该连同坡顶平台和后侧山体一起取。边界太贴近坡面应力场会受到人为约束的污染边界太远又增加无谓的网格量。经验做法是坡脚在水平方向往前延伸至少1.5倍坡高坡顶平台保留不小于2倍的坡高延伸底部取到基岩面并设置为不透水边界。以12米坡高为例模型的横向总宽度做到80到100米纵向上土层厚度取15米左右下部再垫2到3米厚的基岩层这样的尺寸在计算精度和收敛稳定性之间比较平衡。COMSOL的几何建模可以用草图模式直接画也可以用参数化曲线让坡率、坡高、平台宽度都变成可调节参数。强烈建议把坡率、坡高、含水层厚度这些关键尺寸都设成全局参数而不是直接用固定数值这样后面做参数敏感性分析时只需改一个变量模型重建和水深重新初始化都会方便很多。2.2 材料参数别用典型值碰运气要有依据材料参数是这种渗流-应力耦合模型里最敏感、也最容易出争议的部分。土体的水力参数和力学参数不是互相独立的它们共同决定了一个关键特性当降雨入渗让饱和度上升时基质吸力下降多少、弹性模量是否随之改变、抗剪强度损失有多大。下面这组参数是我在一系列参数测试后确定的基准取值代表了一类低塑性黏性土夹粉土的情况。参数名称取值说明饱和渗透系数 K_s2.5×10⁻⁶ m/s对应中等透水的黏性粉土孔隙率 n0.42典型压实填土偏松散侧残余饱和度 S_r0.08van Genuchten模型残余参数进气值倒数 α1.2 m⁻¹控制土体从饱和到非饱和过渡的陡峭程度孔径分布参数 n_vg1.6反映土体孔径分布均匀性弹性模量 E30 MPa饱和状态下的取值非饱和时修正泊松比 ν0.3恒定值黏聚力 c18 kPa有效应力指标内摩擦角 φ24°有效应力指标有几处容易在这里翻车。第一COMSOL的Richards方程模块用的是饱和度-孔压关系通常要输入的是土水特征曲线的参数也就是van Genuchten模型里的α和n_vg这个参数和土力学教材里常见那张基质吸力-含水率曲线一一对应。很多做结构力学出身的人会把这块忽略直接用默认参数结果算出来坡体孔压场完全不合理降雨之后的响应速度也不对。第二弹性模量E不应该是一个常数比较讲究的做法是让E随基质吸力变化吸力越大土体刚度越大。在非饱和区如果还用饱和时的E值位移场会偏大而且饱和区和非饱和区之间的变形梯度看起来会很生硬。2.3 初始应力场和初始孔压场模型能不能站住的第一道关把地质体的初始状态算准是数值模拟也是整个课题最容易被低估的一步。边坡在天然状态下本来就有地应力场重力加载下土体既有竖向应力也有侧向的静止土压力。如果直接用一个从零开始的应力状态去加载降雨边界算出来的应力和变形分布不仅数值上很怪还可能在坡脚直接出现大范围的拉应力区这不符合实际。稳定做法分两步走。第一步先用线弹性或者摩尔-库仑弹塑性模型做一次只有重力加载的稳态求解让土体在自身重量下完成压缩沉降得到一个初始应力场。第二步固定住应力场的结果把位移场清零这一点很重要再开始降雨工况的瞬态求解。这相当于说地质体在历史上已经完成了沉降我们现在研究的是降雨带来的增量响应。孔压场同理。如果一个边坡长期处于非饱和状态它的初始孔压应该是负的随深度增加逐渐趋向于零。如果直接设整个模型的初始孔压为零等于默认边坡从一开始就完全饱和那降雨入渗就没有一个从干到湿的过程整个问题的物理含义就变了。我常用的做法是先给一个稳态的地下水位坡脚水平面处孔压为零水位以下孔压随深度线性增加水位以上通过静态平衡算出一个毛细上升区的负孔压分布。把这个分布作为初始条件后面瞬态分析的物理图景就顺了。3. 耦合逻辑与用户界面实现不只是一起算这么简单3.1 全耦合还是顺序耦合从物理机制说起降雨入渗对边坡的影响不是单向的。水流改变孔压场孔压场通过有效应力原理改变土体的应力状态而应力状态的改变又会引起土体骨架的变形变形改变孔隙体积进一步影响渗透系数和土水特征曲线。严格来说这是一个双向耦合过程。但问题是COMSOL里如果每步都做双向耦合计算计算时间和收敛难度都会成倍上升尤其当模型进入非饱和瞬态阶段很多时间步连牛顿迭代都不好收敛。实务上我推荐顺序耦合除非课题明确要求做完全流固耦合的Biot压缩理论。顺序耦合的做法是每个降雨时刻先求Richards方程得到孔隙水压力场把这个孔压场以体力或者等效节点力的形式加载到固体力学模块里再求解当前时刻的位移和应力分布。这样处理在数学上忽略了一个高阶小量也就是土体变形对渗透系数场本身的反馈。对于绝大多数边坡工程问题这个反馈在量级上很小忽略它不会导致结论性误差。在COMSOL的具体实现上可以理解为同时加载两个物理场接口——一个是多孔介质中的Richards方程接口另一个是固体力学接口然后在固体力学模块中把Richards方程算出来的压力场作为多孔弹性的外部载荷来源让孔隙压力参与有效应力计算。3.2 有效应力原理的具体写法耦合的核心公式是有效应力原理σ σ - u_w其中σ是总应力u_w是孔隙水压力。土力学里面有个约定要特别留意水压力拉为正应力压为正在COMSOL里处理孔压是正还是负时非常容易搞反——正孔压应当减小有效应力赋予负号而基质吸力也就是负的孔隙水压力应当增大有效应力等价于给土体加了一个压这里处理错了整个应力分布会掉个头数值结果也会变得不可信。非饱和区的情况更微妙一点因为当饱和度低于1时有效应力原理要引入吸力项常用的表述是σ (σ - u_a) χ(u_a - u_w)在COMSOL里如果通过Richards方程算出的负孔压直接参与有效应力计算实际上隐含了χ1的假定。对于砂土或者低塑性土在这个假定下的误差并不显著但如果是膨胀性强的黏土可能需要额外折减吸力项对有效应力的贡献。跑过几个对比案例后我发现对于均质土坡的宏观变形趋势而言χ1的简化不会改变结论方向但如果你做的是精细的裂隙土或者干湿循环显著的膨胀土研究这个点还是需要认真对待。3.3 降雨边界条件的施加方式COMSOL的Richards方程接口里可以直接设置降雨入渗边界也可以用通量边界条件自己定义。这两者的区别在于前者内部集成了当坡面附近土体饱和时多余水量转为坡面径流的逻辑对模拟真实降雨过程很重要——否则你算出来坡表面全是水压力无限积累的奇异状态那不符合事实。真实取降雨强度的时候也要结合地区重现期。我自己习惯取50年一遇的24小时暴雨强度比如每小时50毫米来作为基准工况。另一个关键点是降雨不是无限持续的通常按48小时总时长来设计前24小时降雨后24小时停雨、让入渗的水继续在坡体内重新分布。这两个阶段合起来才能完整刻画降雨-滞后变形-滑坡的全过程因为很多滑坡并不是雨下得最猛的时候发生反而是雨停之后孔隙水压力还在向内和向下传递最危险时刻往往出现在雨停之后的几小时到十几个小时。4. 变形与应力的变化规律一组典型结果怎么看4.1 位移场分阶段的响应特征我在模拟边坡X上跑完一个完整的降雨-再分布工况后把位移结果分时段输出趋势非常清晰。降雨刚开始的头两小时坡体表面几乎没有什么明显移动这和直觉相反。原因在于湿润锋刚进入浅层时基质吸力快速下降但还没有形成连通的暂态饱和区负孔压的下拉作用还能勉强维持颗粒间的咬合。到了降雨持续6到8小时以后浅层2到3米范围内饱和度急剧攀升吸力基本丧失位移曲线开始抬头而且在坡顶平台边缘和坡肩位置表现得最突出最大水平位移往往出现在这个区域。21到24小时这个时间段是最危险的。此时湿润锋已经推进到坡体中部甚至更深的位置全坡的含水率和孔压场发展到了最均匀且高的状态变形曲线斜率明显加大位移场上会出现一条从坡肩贯到坡脚的斜向位移集中带。这个集中带实质上就是潜在滑裂面的雏形。等到停雨进入再分布阶段以后由于水还在往深层渗透坡体顶部和浅层的饱和度开始回落位移增速反而趋缓但深层位移还在缓慢后移说明失稳的滞后效应发生在深部。4.2 应力场的分布特征应力分布上用最大主应力和剪应力云图去解读更方便。干燥状态下最大主应力方向基本是竖直的随深度线性增大坡体内部剪应力相对均匀。降雨开始后由于坡体浅层饱和重度增加、吸力丧失最大主应力的方向发生了明显偏转在坡面中下部位置尤其突出形成了明显的应力拱效应——浅层土体在雨水重力和孔压联合作用下有向坡脚推挤的趋势而中层土体相对稳定形成一条受压的应力拱带。剪应力场上最典型的特征是在坡脚区域出现应力集中。无论边界条件怎么调坡脚都天然是一个应力奇异的区域因为几何突变把应力流线强行折弯。在降雨条件下这个集中效应会被进一步放大——浅层入渗造成饱和重度增加整个浅层的下滑力变大最终剪应力的集中带会和位移集中带在位置上高度重合。这说明降雨引起的斜坡破坏并不是整体从上往下压的模式而是浅层牵引、中下部锁固、坡脚应力累积的渐进破坏过程。4.3 安全系数的估算思路COMSOL本身不带直接输出边坡安全系数的一键功能但用结果做后处理完全可以得到。常用是强度折减法思路把c和tanφ按同一个折减系数逐步折小每折减一步重新算一次应力场看位移场是否出现贯穿性的塑性应变带。折减系数从1.0拉到1.6的过程中特征点的水平位移曲线会出现一个明显的拐点拐点对应的系数就是安全系数。我实际跑下来基准工况下这个模拟边坡X的安全系数约为1.08正好处于天然稳定、降雨临界的敏感区间。并且把位移集中带和等效塑性应变区域叠加起来看滑体厚度大约4到6米滑面最深点在坡体中后部出口在坡脚附近这与很多实际滑坡的勘察结果非常接近。5. 网格、时间步进与收敛控制把坑提前踩完5.1 网格划分的偏好细在坡面和坡脚计算精度和网格密度之间有很强的边际效应不是越密越好。Richards方程在湿润锋位置上的梯度极大这个锋面从坡面向内部推进的过程中如果网格太粗湿润锋会变成一个模糊的大范围过渡带导致孔压场对降雨的响应失真进而传导到应力场。但如果全模型都加密计算量又吃不消。我的做法是采用边界层网格在坡面法线方向设置6到8层薄单元第一层厚度控制在0.15米左右然后在坡面下方2到3米范围内将法向网格逐步向内侧稀疏过渡。坡脚这种几何转折位置要用三角形单元再细化一级。模型总单元数控制在3.5万到4.5万之间计算单工况48小时降雨再分布大约需要40到55分钟这个量级在个人工作站上完全可以接受。一个非常容易被忽视的点是在瞬态计算的初期一定要限制时间步长。湿润锋刚入渗的时候坡面附近饱和度梯度的变化率最大如果自动时间步长一上来就拉大前两天算出来的结果会抖得很厉害。建议将降雨阶段初始步长控制在60秒以内每个时间步的孔压变化增量设上限比如不超过5 kPa用这种自适应步进变化量上限的组合来控制收敛速度。5.2 边界条件中的自由排水陷阱模型底部和左右两侧的边界条件直接决定孔压场能不能正确发展。底部基岩面应该设置成无流动边界因为基岩渗透性极低但左右两侧的边界如果也全设成无流动等于把一个有限的模型封闭成了一个大水盆降雨入渗后水体无法外排孔压会在坡体内部持续积累算出来的安全系数会明显偏向保守甚至失真。正确的是左右两侧边界设为开放边界或自由排水边界允许水体在边界处流出。这里要注意自由排水的涵义不是固定孔压为零而是在边界允许水流沿法向流出。坡脚下方也应当在模型底部的适当位置设置排水段以模拟真实的自然地下水排泄。如果不加这个排泄通道坡体内部的暂态孔压会偏高直接导致有效应力偏低算出来的变形会严重偏大。5.3 收敛失败时从哪个方向排查做这种耦合分析不收敛比收敛但结果不对要好处理得多因为前者至少会明确告诉你问题出在哪里。最常见的收敛失败来源有三类。第一类是非线性方程组的初始猜测不合理换句话说初始孔压场或初始应力场本身就不满足方程建议回到第2.3节那一步把稳态初始条件重算一遍。第二类是时间步长增长过快导致湿润锋在相邻两个时间步之间跨过了多个网格单元可以主动掐掉自动步长时间的加速上限。第三类是材料参数不连续比如渗透系数在水力路径上突变过大给渗透系数设置上限并保证它在饱和度接近1时不出现阶跃式的跳变。还有一类反复出现的情况值得单独提网格质量。部分网格单元质量指数低于0.6时Richards方程的雅可比矩阵就会开始出现病态不容易收敛。我每次求解前都会例行检查网格质量低于0.6的单元比例超过0.5%就直接重新划分与其等它算崩了再回来调试不如一开始就多花五分钟做检查。6. 结果讨论的边界与后续扩展方向6.1 哪些结论在推广时要谨慎一个基于特定均质土坡模型的数值分析结论的直接适用性是有边界的。这里说的均质模型没有考虑到土体的层状结构、裂隙优势通道和植被根系加筋效应而这些因素在实际边坡工程里可能是主导变量。比如说裂隙发育的坡体表面渗透系数可能是基质渗透系数的几十倍降雨会沿着裂隙迅速灌入深层湿润锋完全不是从上到下均匀推进的模式。另外模型里采用的摩尔-库仑强度准则并没有考虑应变软化和渐进破坏过程算出的安全系数本质上是达到临界滑动面形成条件的指标而不是滑体沿滑面大位移滑动的指标。如果课题目标是研究滑坡启动后的运动距离和堆积范围需要换用不同的分析框架。6.2 从这个基础模型往哪里扩展如果要在模拟边坡X的基础上继续做有价值的延伸我比较推荐几个方向。一是做降雨重现期、降雨历时、前期含水率的参数敏感性分析把几个因素组合起来得到一张安全系数与降雨特征关系的响应面这是实际工程预警最有用的产出形式。二是引入真实气象数据的渐变降雨过程现在的恒定雨强本质上是一个理想化输入真实暴雨往往有雨峰尤其是雨峰滞后型降雨对边坡安全的影响比均匀雨强要大得多。三是把加固措施建模进来比如坡脚挡墙、锚杆框架梁、排水孔将降雨工况和加固措施进行联合参数化分析直接回答加多少锚索长度能把安全系数提到1.3这类工程问题。在COMSOL里这三个扩展方向都不需要重写核心框架只需要在现有模型基础上增加参数扫描研究、修改降雨边界的时间函数、或者添加结构力学域的接触/加固单元即可。我个人的体会是这种降雨-边坡模型的难点从来不在软件操作而在两个地方一是能否用物理逻辑正确设定初始孔压场和边界条件二是能否在结果云图里区分数值假象和真实规律。多跑几组对照工况把每一组结果都放回有效应力-饱和度-孔压这条因果链上检查一遍模型就不会变成黑箱。最后再分享一个小技巧如果只是为了看安全系数趋势可以先算无降雨、小降雨两个工况做收敛性验证等模型完全稳定下来再去跑48小时长历时大暴雨工况这样能节省很多调试时间。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进