基于 ABAQUS / Python 的三维混凝土骨料参数化建模
基于 ABAQUS软件强大的二次开发能力ꎬ本文 结合 Python语言的建模程序ꎬ提出了一种基于八面 体生成凸多面体骨料的三维建模方法[10]ꎮ引入辅 助球来构造骨料基ꎬ骨料的大小和位置由辅助球控 制ꎬ辅助球半径即为骨料粒径ꎬ然后对骨料基进行随 机延拓生成任意凸多面体骨料ꎬ并根据海伦公式计 算骨料体积ꎬ实现了对级配的精准控制本文采用球体的内切多面体生成骨料模型ꎬ并 以此为基础ꎬ通过辅助球体方法生成凸多面体骨料ꎮ为了获得较高的骨料含量ꎬ需按照骨料粒径由大到 小的分级顺序ꎬ逐个创建和放置骨料网格划分是细观数值模型建立的关键ꎬ合理的 网格密度可以更精确地模拟混凝土内部细观层面的 受力情况ꎬ从而更好地反映其宏观力学性能ꎮ此外ꎬ网格划分还可以提高模拟的精度ꎬ减少计算时间ꎬ提 高模拟的效率ꎮ由于多面体骨料颗粒形状随机ꎬ细观结构高度非结构化ꎬ四面体网格能更好地模拟骨 料的真实形状ꎬ同时为体现多面体骨料表面不规则 棱角处的应力集中ꎬ本文采用四面体网格对骨料和 砂浆进行划分ꎬ网格划分如图5 所示基于辅助球体的方式产生凸多面体骨料的生成 算法流程如图 6所示ꎬ建模效果如图 7所示ꎬ在 3种 不同骨料体积分数的情况下ꎬ具体生成的骨料数量和分布如图 8所示ꎮ其中不同尺寸的多面体骨料分 别包括直径为 15mm、10mm和 5mm的骨料颗粒ꎮ图 8(a)包含 8个直径为 15mm、20个直径为 10mm和 120个直径为 5mm的骨料ꎻ图 8(b)包含 11个直 径为 15mm、26个直径为 10mm和 150个直径为5mm的骨料ꎻ图 8(c)包含 15个直径为 15mm、30个 直径为10mm和200个直径为 5mm的骨料ꎮ可以 看出该算法可以很好地模拟骨料的生成情况ꎮ1)随机确定多面体骨料的最大顶点数ꎬ在混凝 土内部生成辅助球的坐标信息ꎬ并在辅助球表面随 机生成 1个初始点2)插入 1个新的顶点ꎬ需控制由多面体骨料组 成的插入点之间的边长ꎬ即新生成的边长需大于lminꎮ如果新插入的顶点超出指定范围ꎬ则返回重新 生成ꎮ3)重复步骤 2)ꎬ直到插入集合的所有顶点满足 个数要求ꎮ4)遍历所有已生成的顶点ꎬ顶点与其余任选 2个顶点形成三角面ꎬ判断剩余凸体的点是否全部位 于三角面的同一侧ꎬ否则舍去重新进入循环ꎮ5)满足上述条件的顶点可与凸多面体上可见三 角形的顶点连接形成新边ꎮ6)随机生成下 1个辅助球球心坐标信息ꎬ并判 断其与已生成的辅助球是否存在干涉ꎮ在辅助球表 面随机生成初始点ꎬ返回步骤 2)ꎬ直到所有骨料个 数达到级配要求ꎮ本文基于 Python脚本对 ABAQUS软件进行了 二次开发处理ꎬ基于空间八面体骨料模型建立了混 凝土的细观有限元模型ꎬ发挥了 ABAQUS二次开发 在复杂构件参数化方面的强大优势ꎮ通过研究发现:1)凸多面体骨料模型更加符合工程实际ꎬ并且向 量法判定随机多面体凹凸性简单易行ꎬ同时采用海 伦公式计算凸多面体体积可实现对骨料体积分数精 确控制ꎻ2)该方法建模效率高ꎬ可满足未来各类级配 的多面体混凝土骨料细观模型建模ꎬ为混凝土复合 材料的损伤研究提供建模支持ꎮ【有兴趣的同学可以尝试,遇到任何问题欢迎交流,有需要可以免费答疑解惑,模型代做辅导教学】
【加我请备注来源】: