三维随机多面体骨料(随机多边形)建模
随机骨料模型
混凝土、沥青混合料等颗粒增强复材料的级配及骨料含量显著影响其宏观力学特性。为了最优化混凝土、沥青混合料等颗粒增强复材料的力学性能,对其细观结构开展数值模拟仿真分析,开展级配优化设计和研究具有重要的意义。而建立包含随机形状,随机尺寸和随机位置的骨料颗粒是进行颗粒增强复合材料力学性能数值模拟分析的前提和基础。 此外在磨削分析中,将磨料建模为指定粒径的随机凸多面体可更好的考虑磨具中的磨粒对被磨削固体表面挤压和沿表面运动所引起的损失或材料流失。
2.建模方法
目前对于三维随机骨料模型,主要有以下三种建模方法:
方法一:将颗粒增强复合材料结构离散为体素模型,根据骨料含量模型中的一部分单元被假设为增强材料(骨料),另一部分单元作为基体材料(水泥、沥青、树脂等),该模型可用于研究骨料含量对材料力学性质的影响。
方法二:将颗粒增强复合材料中的增强材料(骨料)假设为圆形、椭圆形或正多面体颗粒;该模型可考虑骨料的含量、随机分布和级配,但是由于骨料的形状为固定形状(与实际相差太远),无法体现不同骨料之间的形状特点的随机性。
方法三:将颗粒增强复合材料中的骨料结构考虑为随机多面体,该模型可较好的考虑骨料的含量、随机分布、级配和骨料形状的随机性。
本文主要介绍该类型随机多面体(多边形)骨料模型的建模方法。
3.单个随机多面体(多边形)骨料模型
本文按照以下步骤,基于ABAQUS开发Python脚本:
第一步根据所需的骨料级配,在一定粒径下建立所需尺寸的外接球。
第二步建立与球体外切的正六面体模型。
第三步对正六面体模型进行随机切割,切割过程中应保证骨料模型为凸多边形。
第四步取出所需的随机多面体骨料模型。
4.主要代码
开发单个三维随机骨料模型可先在ABAQUS/CAE中进行建模,然后参考rpy文件生成的python脚本,选择所需的语句进行开发。小编为大家提供了部分代码如下(主要摘自rpy文件,仅供参考),如需完整代码或者python开发教学可联系小编(qq1871858827)。
一定级配下生成随机粒径 |
import random myradius = random.uniform(r_min,r_max) |
生成球体 |
s = mdb.models[ModelName].ConstrainedSketch(name='__profile__', sheetSize=R*5) s.ArcByCenterEnds(center=(0.0, 0), point1=(0.0, R), point2=(0.0, -R), direction=CLOCKWISE) p = mdb.models[ModelName].Part(name='Part-l', dimensionality=THREE_D, type=DEFORMABLE_BODY) p.BaseSolidRevolve(sketch=s, angle=360.0, flipRevolveDirection=OFF) |
生成正六面体 |
mdb.models['Model-1'].sketches['__profile__'].rectangle(point1=(0.0, 21.25), point2=(23.75, 0.0)) mdb.models['Model-1'].Part(dimensionality=THREE_D, name='Part-2', type=DEFORMABLE_BODY) mdb.models['Model-1'].parts['Part-1'].BaseSolidExtrude(depth=20.0, sketch=mdb.models['Model-1'].sketches['__profile__']) |
进行切分操作 |
mdb.models['Model-1'].parts['Part-1'].PartitionCellByPlanePointNormal(cells= mdb.models['Model-1'].parts['Part-1'].cells.getSequenceFromMask(('[#1 ]', ), ), normal=mdb.models['Model-1'].parts['Part-1'].edges[10], point= mdb.models['Model-1'].parts['Part-1'].InterestingPoint( mdb.models['Model-1'].parts['Part-1'].edges[10], MIDDLE)) |
5.效果展示
小编应用自己开发的脚本生成了一系列的随机多面体骨料模型,如下。可见随着多面体的阶数增加,根据小编提供的建模方法建模得到的随机多面体骨料模型趋于球体。
查看更多评论 >