二维随机多边形骨料脚本
1. 概述
为了最优化混凝土、沥青混合料等颗粒增强复材料的力学性能,对其细观结构开展数值模拟仿真分析,开展级配优化设计和研究具有重要的意义。而建立包含随机形状,随机尺寸和随机位置的骨料颗粒是进行颗粒增强复合材料力学性能数值模拟分析的前提和基础。
小编在前一篇文章中给大家分享了一种建立三维随机骨料模型https://www.jishulink.com/content/post/1850204的方法。本期小编将给大家带来二维随机骨料模型的建模方法。
2. 二维随机骨料模型建模方法
方法一:将颗粒增强复合材料结构离散为体素模型,根据骨料含量模型中的一部分单元被假设为增强材料(骨料),另一部分单元作为基体材料(水泥、沥青、树脂等),该模型可用于研究骨料含量对材料力学性质的影响。
方法二:将颗粒增强复合材料中的增强材料(骨料)假设为圆形、椭圆形或正多边形颗粒;该模型可考虑骨料的含量、随机分布和级配,但是由于骨料的形状为固定形状(与实际相差太远),无法体现不同骨料之间的形状特点的随机性。
方法三:将颗粒增强复合材料中的骨料结构考虑为随机多边形,该模型可较好的考虑骨料的含量、随机分布、级配和骨料形状的随机性。
3.单个随机多边形骨料模型建模方法
本文按照以下步骤,基于ABAQUS使用Python建立单个随机多边形骨料:
第一步根据所需的骨料级配,在一定粒径下建立所需尺寸的外接圆(该圆为虚拟圆,下配图仅为参考图)。
第二步选取外接圆上一定数量(应大于等于3,可随机定义)的点。
第三步将所选的点依次连接。
4. 主要代码
与开发单个三维随机骨料模型类似,可先在ABAQUS/CAE中进行建模,然后参考rpy文件生成的python脚本,选择所需的语句进行开发。小编为大家提供了部分代码如下(仅供参考),如需完整代码或者python开发教学可联系小编(qq1871858827)。
一定级配下生成随机粒径 |
import random myradius = random.uniform(r_min,r_max) |
将圆平均分为n份, 在每个区域范围内选点 |
for i in range(NumEdgeOfAgg): AveAngle=2.0*pi/NumEdgeOfAgg MyAngle=random.uniform(i*AveAngle,(i+1)*AveAngle) MyAngles.append(MyAngle) for Angle in MyAngles: px = x + R*cos(Angle) py = y + R*sin(Angle) Points.append([px, py]) |
将所选的点依次连线构成多边形 |
for i in range(NumEdgeOfAgg-1): MySketch.Line(point1=tuple(Points[i]), point2=tuple(Points[i+1])) MySketch.Line(point1=tuple(Points[0]), point2=tuple(Points[-1])) |
5.效果演示
小编应用自己开发的脚本生成了一系列的二维随机多边形骨料模型。可见随着多边形阶数增加,根据小编提供的建模方法建模得到的随机多边形骨料模型趋于圆。
6. 二维随机多边形骨料模型
成功开发单个骨料模型后,我们可以根据骨料级配生成一系列的单个随机多边形骨料模型,并存储于骨料模型库。通过随机选取骨料模型库中的骨料模型,将其随机分布于基体内,即可得到含随机多边形骨料的二维复合材料模型。
查看更多评论 >