PFC离散元模拟单轴压缩声发射演化与胶结破坏能监测

发布时间:2026/9/10 6:58:55
PFC离散元模拟单轴压缩声发射演化与胶结破坏能监测 很多人第一次用PFC做单轴压缩兴致勃勃地把试件建出来、压碎然后盯着应力应变曲线发呆——宏观曲线勉强能看但一问到内部的胶结键是怎么一根根断掉的断键时释放了多少能量能不能像实验室声发射探头那样记录这些微观破裂事件就完全答不上来了。这篇东西就是聊这个用PFC离散元模拟把单轴压缩过程中的声发射演化规律和胶结破坏能监测完整做出来从建模思路、参数标定到后处理脚本尽量讲透。先说一句这里的PFC不是网上热搜里那个Power Factor Correction电路岩土工程和岩石力学圈子里的PFC是Particle Flow Code颗粒流程序。两者的区别就像面包和电路板千万别搜错方向。接下来要讲的内容适合做岩石力学、砂土胶结特性、混凝土细观损伤模拟的同行也适合刚装好PFC、不知道如何把力学模拟做出深度成果的新手。1. 为什么用PFC模拟声发射离散元视角下的微观破损研究1.1 实验室声发射能测到什么模拟里又能得到什么声发射Acoustic Emission简称AE是材料内部微裂纹萌生和扩展时以弹性波形式瞬间释放应变能的现象。在实验室里我们把压电传感器贴在试件表面捕捉这些微弱的弹性波再换算成振铃计数、能量、幅值、频率等参数用来判断试件内部损伤到了什么程度。这个方法在岩石力学里非常成熟是研究岩爆、边坡失稳、巷道破坏前兆的重要手段。但实验室声发射有一个天然缺陷你知道一个事件发生了、能量多大、大概在哪个方向却无法确定它到底是哪条微裂纹、哪一种破裂模式拉伸还是剪切造成的。传感器接收的是经过多次反射、衰减的波场源定位误差可以到厘米甚至更大。对于试件内部的细观机制实验室手段很难给出直接答案。PFC模拟正好补上这块短板。每个颗粒间的胶结键什么时候断、断在哪里、是法向拉断还是切向剪断、断裂瞬间释放了多少能量全部可以逐条记录。只要定义好声发射事件的标准就能把微观破裂事件和实验室的AE参数建立对应关系。这个思路被很多学者称为“数值声发射”或“模拟声发射”本质上就是利用离散元在细观尺度上的天然优势把看不见的微观破裂过程变成可统计、可可视化、可量化的数据。1.2 PFC凭什么适合干这件事PFC把材料看成大量圆盘二维或球三维颗粒的集合颗粒之间通过接触本构传递力。如果想要模拟岩石、混凝土这类有胶结强度的材料通常会给接触加上平行黏结Parallel Bond或接触黏结Contact Bond。平行黏结相当于在颗粒之间注入了一小段有尺寸、有刚度的“胶水”既能传力也能传力矩能更好地模拟岩石颗粒间的胶结特性。胶结键一旦承受的外力超过抗拉强度或剪切强度就会断裂。这个断裂过程是离散的、不可逆的完全天然地对应了声发射事件的物理本质一个键断裂就是一次微小破裂断裂时释放的弹性能就是AE能量。这种“颗粒—黏结—断裂”的建模方式让PFC不需要额外引入复杂的断裂准则只要本构模型和细观参数合理破裂行为会自然涌现出来。相比有限元做断裂模拟需要预制裂纹、定义扩展路径PFC的裂纹是自发形成、自由扩展的可以同时出现很多条裂纹并相互作用。这也是为什么在涉及破裂演化、碎裂过程、声发射统计规律的研究里PFC几乎是首选工具。当然代价就是计算量大、细观参数标定麻烦后面我会详细讲。2. 单轴压缩模型从零搭建参数标定是成败的关键2.1 颗粒集配与试件成型单轴压缩试件一般按照标准岩石试件的高径比建模比如φ50mm×100mm。在PFC里先生成墙围成一个矩形区域然后在区域内按指定颗粒级配生成颗粒。颗粒半径分布建议用均匀分布或高斯分布不要用单一粒径否则试件容易出现规则排列破坏模式也不真实。常见做法是设置最小半径和最大半径比如0.5~0.8mm半径比不要超过1.5否则模型颗粒数太少统计结果噪声很大。生成颗粒之后先让颗粒在无黏结状态下自由落体并达到平衡然后通过“半径膨胀法”或“服务目标孔隙率法”调整孔隙率再用FISH脚本遍历所有接触施加平行黏结。这里有一个非常容易忽略的点施加黏结之前必须把体系的不平衡力降到足够小否则残余不平衡力会让黏结刚建立就承受额外应力导致初始微裂纹直接影响声发射事件的基线。试件成型后还需要设定颗粒密度、重力方向、阻尼参数。单轴压缩模拟里重力一般可以忽略但阻尼不能省局部阻尼建议取0.7左右是为了让动能快速耗散避免冲击效应。如果阻尼设置不合理曲线会剧烈震荡声发射事件也会被虚假的惯性效应污染。2.2 细观参数标定从宏观力学响应反推微观参数这是整个模拟里最花时间、也最容易被坑的环节。PFC的细观参数和宏观力学参数不是一一对应的需要通过“试错—调整—再试错”的方式逼近实验室的宏观结果。你需要先有一个目标比如某一种砂岩的单轴抗压强度80MPa、弹性模量20GPa、泊松比0.25然后去调细观参数。影响最大的几个参数是颗粒有效模量、颗粒法向切向刚度比、平行黏结有效模量、平行黏结刚度比、黏结法向强度均值与标准差、黏结切向强度、摩擦系数。大致规律可以这样记弹性模量主要由颗粒有效模量和平行黏结有效模量决定泊松比主要由法向切向刚度比控制单轴抗压强度由黏结强度均值决定标准差控制破坏的离散性和脆性峰后曲线形态与强度比、摩擦系数有关。我经常用一组这样的参数作为砂岩模拟的起点颗粒密度2650kg/m³最小半径0.5mm最大半径0.8mm孔隙率0.12颗粒有效模量5GPa法向切向刚度比2.5平行黏结有效模量5GPa平行黏结刚度比2.5黏结法向强度均值20MPa、标准差4MPa黏结切向强度均值20MPa、标准差4MPa摩擦系数0.5。跑出来的单轴抗压强度通常在75~85MPa之间再根据偏差微调强度均值和刚度。提示PFC的强度参数是力/面积单位Pa不是接触力单位平行黏结强度能直观反映宏观抗压强度。接触黏结模型用的是力单位标定时容易让人困惑这也是我推荐用平行黏结模拟岩石类胶结材料的原因之一。2.3 加载方案与边界控制单轴压缩的加载方式一般有两种控制墙速度和伺服控制。最简单的是顶部墙以恒定速度向下运动底部墙固定。但墙速度不能随意设速度太快会产生动态效应导致破坏模式由剪切变成劈裂、声发射事件被合并成巨大事件。常规做法是先把加载速度设为0.05~0.5m/s范围跑一次观察应力应变曲线是否平滑如果不平滑就降低速度。更严谨的做法是采用应变控制或应力伺服加载。应力伺服通过FISH脚本实时调整墙速度使墙上的应力接近目标加载速率这样可以模拟准静态压缩过程得到更真实的峰后曲线。单轴压缩模拟里顶部墙和底部墙与试件端部的摩擦也很关键。如果端部摩擦太大试件两端会出现明显的锥形约束区破坏模式从贯穿剪切面变成“X”形共轭破坏。为了模拟标准试验的减摩效果可以降低墙与颗粒的摩擦系数或者把墙设置为光滑。加载过程中的数据输出也要提前规划好每循环一定步数记录一次轴向应力、轴向应变、累计裂纹数、累计AE事件数、累计破坏能并把这些数据写入文件。不要等到模拟结束再一次性提取因为PFC的中间状态数据量很大内存容易爆掉。3. 声发射模拟到底怎么实现把微破裂“翻译”成信号3.1 事件判据何时算一次声发射事件最基本的做法是把每一个黏结断裂当成一个声发射事件。这个做法的优点是简单直接不会漏掉任何破裂但缺点是噪声大因为实验室AE系统通常会设置门槛太小的信号会被滤掉。而且一个宏观裂纹的扩展往往是几十个键连续断裂的结果如果每个键都算独立事件事件数量会远大于实验室测到的数量。因此更贴近实际的做法是设置“事件聚类窗口”在时间上如果两个黏结断裂发生的时间间隔小于某个阈值比如50个计算步并且空间距离也小于某个阈值比如3倍平均颗粒半径就把它们归为同一个声发射事件。这个逻辑类似实验室里对连续波形进行事件分组把时间上重叠、空间上邻近的微破裂合并成一次大的AE事件。PFC实现聚类也不复杂。用一个全局列表记录每次黏结断裂的时间步、坐标、能量然后对新加入的断裂事件做判断如果上一个事件发生的时间间隔小于阈值且坐标距离小于阈值就把它合并进当前事件并累加能量。这个判断用FISH或Python脚本都能实现建议在PFC里直接通FISH处理避免频繁导出大量数据。3.2 能量与震级怎么算声发射能量在模拟里对应的是胶结键断裂瞬间释放的弹性应变能。平行黏结在断裂前同时存储法向和切向两个方向的弹性能法向弹性能可以表示为0.5×k_n×δ_n²切向弹性能为0.5×k_s×δ_s²其中k_n、k_s是黏结的刚度δ_n、δ_s是断裂前的相对位移。但在PFC的FISH里直接读取变形量有点绕更实用的方法是在循环里检测黏结状态从完整变成断裂的瞬间立刻读取该接触位置的法向力、切向力和对应的刚度然后用E F²/(2k)的形式计算。写FISH脚本时要注意黏结一旦断裂力和刚度信息可能在后续循环里被更新或清零所以检测到断裂后必须立即计算能量不能等到下一轮循环再去取属性。我曾经因为写偷懒把所有断键数据导出后再算能量结果发现部分键的能量归零了整个破坏能曲线变得支离破碎。有了能量E还可以换算成“模拟震级”用于b值分析。常用关系式是M (2/3) × lg(E/E0)E0可以取实验室声发射系统的最小能量阈值也可以取模拟中所有事件能量的最小非零值。这样就能把模拟事件序列变成类似于天然地震目录的“震级—频度”数据。3.3 空间定位与事件序列输出声发射空间定位在模拟里的实现非常简单每个事件都自带断裂键的三维坐标。你可以把所有事件按时间序列导出为包含时间、X、Y、Z、能量、破裂模式拉伸/剪切的文本文件然后用PFC自带的绘图功能或者第三方工具可视化。破裂模式判断也很直接平行黏结断裂时如果法向应力达到抗拉强度就是拉伸破裂如果切向应力达到剪切强度就是剪切破裂。实际岩石破坏过程中拉伸破裂和剪切破裂的地位差别很大。实验室要区分这两种模式相当困难但模拟里只需要加一个判断变量就行。这类数据在做破裂机制分析时价值极高强烈建议每个事件都记录。输出的同步问题要特别注意PFC的时间步数和实际物理时间不是一回事单轴压缩的加载速率、颗粒尺寸都影响时间步长。为了和应力应变曲线对齐建议用轴向应变作为横轴而不是循环步数。具体做法是记录每个AE事件的累计轴向应变或轴向位移后续绘图时直接按应变区间统计振铃计数和能量。4. 胶结破坏能的提取与演化规律解读4.1 胶结破坏能的计算口径“胶结破坏能”这个词在不同文献里口径不太一致我建议统一这样定义单个平行黏结从完整到断裂瞬间释放的弹性应变能单位是焦耳J。这个能量是黏结内部存储的应变能不代表全部破裂耗散能但足够用来衡量一次局部破裂的剧烈程度。计算时把线弹性阶段的应变能作为近似即可。平行黏结可以理解为一小段弹簧并联在颗粒之间弹簧既有法向分量也有切向分量断裂时两侧颗粒突然失去约束储存的弹性势能转化为颗粒动能、声辐射能量等。模拟中我们不需要追踪这些能量后续怎么转化只需把断裂瞬间释放的那部分作为AE能量记录下来。这里有一个重要的陷阱平行黏结在接近极限状态时可能先发生部分损伤吗标准线性平行黏结模型是不存在渐进损伤的键要么完好要么断裂不存在中间状态。所以能量计算就是在断裂瞬间一次性释放。如果用了平节理模型Flat-Joint或带损伤的黏结模型能量释放会分散到多个子键上计算口径要相应调整。4.2 单轴压缩全过程的破坏能演化阶段我在砂岩参数下跑出的典型破坏能演化曲线大致可以分为四个阶段。第一阶段是压密阶段轴向应变不到0.5%破坏能基本为零或只有零星几个低能事件。这些早起的零散事件通常来自试件制备过程中遗留的局部应力集中不代表原生裂纹扩展。如果你的模型在压密阶段就出现大量高能破坏事件说明试件初始状态不合格需要重新平衡。第二阶段是弹性阶段应力应变曲线近似直线破坏能事件也几乎为零。这是最“平静”的阶段胶结键整体处于安全状态只有极少数的能量极低的随机破裂。实验室声发射在这个阶段同样很安静两者对应得很好。第三阶段是裂纹稳定扩展阶段大约在峰值应力的60%~80%之间。破坏能事件开始增多事件能量整体偏低且空间上随机分布。此时试件内部已经出现微裂纹但还不足以形成贯通的破坏面。如果把事件点画出来你会看到它们分散在试件各处没有集中趋势。第四阶段是裂纹非稳定扩展阶段接近峰值和后峰值区。破坏能事件数量急剧增加单事件能量显著变大且事件空间位置开始集中到一条或几条潜在的剪切带附近。这个阶段最典型的特征就是“大能量事件开始出现”类似于实验室里AE能量从平静骤然抬升。峰值之后破坏能进一步爆发大量键在瞬间断裂形成宏观剪切破碎区这个阶段的累计破坏能占据全过程的绝大部分。4.3 破坏能监测的工程意义监测胶结破坏能的演化不只是发论文用工程上也有实际价值。试件或岩体在临近破坏时声发射累计能量曲线会出现明显的拐点破坏能释放速率突然增大。如果把这个规律映射到岩爆预警、边坡滑坡监测里就能用“破坏能突变”作为前兆信号。从数值模拟角度你可以计算全过程的累计破坏能曲线并找到曲率突变点。这个突变点对应的应力水平通常比峰值应力低5%~15%正好是所谓“临界破坏点”。很多岩石力学研究把声发射累计能量曲线的拐点作为破坏前兆模拟结果可以为此提供细观机制解释。另外一个我比较喜欢用的衍生指标是“平均单事件能量”。如果累计裂纹数增长的同时平均单事件能量也在升高说明破裂模式正在从分散的、微小的破裂转向集中的、剧烈的破裂这是接近宏观失稳的重要信号。对比实验室AE的幅值分布这个指标和b值下降往往能互相印证。5. 模拟结果到底长什么样振铃计数、能量与破裂云图的对照5.1 应力-应变曲线与声发射率的对应关系把模拟数据处理好之后我最喜欢画的一张图是横轴为轴向应变左侧纵轴为轴向应力右侧纵轴为累计AE事件数或累计破坏能。三条曲线叠在一起立刻就能看出声发射活动与应力状态的关系。弹性段累计事件数曲线是一条几乎水平的直线进入裂纹稳定扩展段后曲线开始微微上翘接近峰值强度时曲线突然“翘头”变成陡峭的上升段峰值之后继续保持高斜率。累计能量曲线的形态比事件数曲线更极端它在弹性段几乎为零到临近峰值时才骤然抬升峰后更是以接近指数形式增长。这种“先平后翘再陡”的形态与实验室声发射累计能量曲线高度一致也是判断模型质量的重要依据。如果看到累计事件数曲线在弹性段就明显上升多半是初始试件里有太多预裂纹或者加载速度太快产生伪事件。如果峰后累计事件数曲线突然中断说明模型可能发生了整体崩解式破坏大量颗粒飞出墙外接触信息丢失。遇到这种情况检查阻尼和墙范围是否合理。5.2 破裂演化的空间分布特征数值声发射比实验室声发射强的地方就是能直接看事件的空间分布演化。建议把每个AE事件按时间顺序绘制成三维事件云图颜色表示事件能量大小尺寸表示事件发生时间早晚。在模拟结果里你会看到典型的三阶段空间演化早期事件随机散布像夜空中零星的星星中期事件开始聚成几个小团团与团之间有一定关联后期这些团逐渐连接成条带状分布最终形成宏观剪切带。破裂云的演化过程可以非常直观地解释为什么有的试件破坏面是单斜面、有的却是X形共轭面——这取决于端部约束和颗粒排列的随机性。另一个值得统计的是拉伸事件和剪切事件的比例变化。岩石单轴压缩虽然宏观上是剪切破坏但细观尺度上往往拉伸事件占主导尤其在裂纹萌生阶段。随着载荷增加剪切事件占比逐渐上升峰后阶段剪切事件明显增多。这个“拉转剪”的演化特征在实验室很难测到但在PFC里可以定量统计。建议每进入一个新的应变区间就统计一次拉伸/剪切比例画成饼图或堆叠柱状图。5.3 b值与灾变前兆地震学里的Gutenberg-Richter关系在声发射领域同样适用lgN a - bM其中N是震级大于等于M的事件频数b值反映了大小事件的相对比例。b值越小说明大能量事件占比越高材料越接近失稳。我把模拟事件按震级分档统计计算不同加载阶段窗口内的b值得到的结果很符合直觉弹性阶段b值偏高通常在1.5以上说明大多是小破裂随着载荷逼近峰值b值逐渐下降到1.0甚至更低表明大能量事件开始增多峰后阶段b值进一步下降直到宏观破坏完成。这个规律在实验室里被大量验证过是公认的破坏前兆指标之一。模拟的价值在于它能在完全受控的条件下复现b值演化过程并且可以追溯到具体是哪些区域的裂纹扩展导致b值下降。我建议每个跑完的模型都统计随应变变化的b值曲线这是论文里很出彩的一张图也是理解灾变前兆的好抓手。6. 实操中必须避开的坑从参数陷阱到后处理细节6.1 加载速率对声发射结果的影响加载速率是影响模拟结果最隐蔽的坑。很多人为了省时间把墙速度提高到1~5m/s结果应力应变曲线出现明显波动峰值强度虚高破坏模式变成劈裂而不是剪切AE事件被压缩在一个极短的时间窗内完全没法做统计分析。判断加载速率是否合适的方法很简单把加载速率减半再跑一次如果应力应变曲线和累计AE事件数曲线变化不大说明速率在准静态范围。我一般控制在0.1m/s以内对应到直径50mm、高100mm的试件应变率大约是1×10⁻³/s量级再低当然更好但需要平衡计算时间。如果只想看强度趋势可以用较快速率如果要做声发射统计、b值演化务必用慢速。另一个和速率相关的坑是时间步长。PFC根据颗粒质量和刚度自动计算时间步颗粒粒径越小、刚度越大时间步越小计算越慢。不要为了加快计算而人为调大时间步这会导致接触穿透、能量不守恒破坏能计算结果完全失真。6.2 事件窗口设置与噪声过滤事件聚类窗口的阈值不能乱设。时间窗口太短一个宏观破裂被打成无数个小事件时间窗口太长不同位置的破裂被错误合并成一个大事件。我建议时间窗口设为50~200个计算步空间距离阈值设为3~5倍平均颗粒半径。具体数值需要根据你的模型颗粒尺寸调试可以先跑一个小模型把事件点云和裂纹扩展动画对照看窗口设置有没有导致明显误合并。模拟里还存在一种“伪事件”颗粒在加载过程中因为碰撞、回弹产生短暂接触力突变虽然不涉及黏结断裂但可能在能量统计里被算进去。这种做法主要出现在你直接遍历接触力变化来判断事件时。为了避免伪事件建议只把黏结断裂作为事件触发源不要用接触力变化作为判据。对于事件能量过滤可以参考实验室AE的门槛做法设置一个最小能量阈值把低于阈值的事件忽略掉。这样做出来的事件数曲线和实验室数据对比时会更接近。阈值太高会把有意义的微破裂滤掉阈值太低又会让累计事件数爆炸我一般以所有事件能量中位数的1%~5%作为门槛。6.3 黏结类型选择平行黏结与接触黏结的差异接触黏结Contact Bond只能传力不能传力矩相当于颗粒之间一个“点焊接”抗转动能力很弱。用它模拟岩石类材料得到的破坏模式往往过于脆性剪切裂纹发育不足抗压强度对围压的敏感性也不对。平行黏结Parallel Bond在接触处建立了一个有一定截面的“胶结盘”既能传力也能传力矩更接近真实矿物胶结物的力学行为所以模拟岩石类材料的声发射演化建议优先用平行黏结。这直接关系到破坏能计算结果。接触黏结断裂时因为没有力矩项释放的能量通常偏小而且切向破坏占比会异常偏高。平行黏结断裂时法向和切向弹簧同时释放能量破坏能分布更符合实验室AE的能量分布特征。有些做砂土胶结的同行喜欢用光滑节理模型或平节理模型这些模型能模拟颗粒间的粗糙接触面但参数更多、标定更复杂。我建议新手从平行黏结模型入手跑通整个流程后再尝试更复杂的模型。6.4 FISH脚本与数据导出中的常见问题最后聊几个脚本层面的实际问题。第一个是检测黏结断裂的时机。用FISH遍历所有接触时如果一个PB状态从1变成0你需要在同一轮循环内立刻读取力、刚度和坐标。稍微稳妥的做法是使用PFC提供的接触状态监测事件接口或者把循环写成这样loop while fc fc_max ... local cp_list contactmap(contact.list, 1) loop foreach cp in cp_list if contact.prop(cp, pb_status) 1 then ... ; 记录断裂信息计算能量 end_if end_loop end_loop注意顺序先备份状态再更新循环避免漏检和重复检测。第二个问题是随机种子。PFC的颗粒生成和黏结强度分配都依赖随机数种子不同种子里试件破裂路径和AE事件序列差异很大。不要在单一随机种子的结果上直接下结论至少跑3~5个不同种子取平均曲线并给出标准差范围。第三个问题是数据文件管理。单轴压缩模拟可能产生数万甚至数十万个AE事件每个事件都包含多项属性。跑完一次不要只导出一次建议每达到一定应变区间就输出一次快照后续出图会省很多事。我习惯把事件数据存成CSV文件列名依次为事件编号、时间步、轴向应变、X坐标、Y坐标、Z坐标、能量、破裂模式。这样无论用Excel还是Python都能快速读取分析。第四个坑是能量的单位换算。PFC默认单位是国际单位制长度为米质量为千克时间为秒能量单位是焦耳。但很多人在建模时为了方便把尺寸设成毫米或厘米这时候能量单位就不再是焦耳了计算b值时震级也会偏移。建模前把单位制想清楚导出的能量统一换算否则后续统计全乱。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询