基于CAD-Abaqus的混凝土三维细观模型建立(二)
第一部分查看:
3 随机凸多面体骨料模型的生成
在力学上,凸多面体几何结构具备更好的力学性能和稳定性,因此常见的混凝土中,粗骨料形态也多呈现为三维凸多面体形。随机凸多面体模型的构建采用CAD_随机多面体&过渡区3D插件。插件采用球体随机切割方法,实现任意面数的多面体(碎石)骨料模型构建算法;采用空间三角网格碰撞算法,实现多面体的无干涉投放。插件详情可查看公众号【渊鱼科技】。
3.1多面体骨料生成
单个凸多面体骨料的生成采用球体随机切割算法,算法的基本原理为首先在球体表面随机生成点位,通过点位的空间顺序构建切割面,对球体进行切割操作,以构建单个凸多面体骨料模型。
随机点位生成:在球体的表面随机选择点。通过在球坐标系统中随机选择角度来实现,然后将其转换为笛卡尔坐标。确保生成的点位分布相对均匀,以避免在后续步骤中产生过于复杂或不均匀的切割面。
构建切割面:根据生成的点位,采用空间排序算法,确定切割面的空间顺序。通过检查切割面的法线方向,确保切割面的法线均指向球体外部。
切割球体:使用构建的切割面对球体进行切割操作,并确保切割操作不会产生非凸的部分。
插件可通过控制切割面数目,根据用户设定的面数,在三维球体上进行切割操作,从而生成具有不同面数的多面体骨料模型。
3.2多面体骨料的投放
多面体骨料的投放采用空间三角网干涉判别,与传统的外接球碰撞检测相比,该算法具有准确性高,能达到更高的填充率的优点,但也存在干涉判别计算量较大的不足。
混凝土中粗骨料的体积比是一个重要的设计参数,它影响着混凝土的强度、耐久性和工作性能。一般来说,在普通混凝土中,粗骨料的体积比通常在40%~60%之间,因此采用空间三角网干涉判别,使模型中多面体骨料达到更高体积比,是模拟工程实际的关键。下面借助二维模型简要介绍三角网判别算法在随机多边形骨料模型建模中的优势。
三角网是由多个三角形组成的,每个三角形的边和顶点都可以用来进行精确的相交检测。相比之下,外接圆只是一个近似的表示,它只能告诉你多边形的大致范围,而不能提供精确的碰撞点或碰撞边信息,这势必会造成填充率不足的问题。使用外接圆进行碰撞检测时,即使两个多边形的外接圆相交,多边形本身也可能并不相交。这会导致误报,即错误地认为发生了干涉。而三角网判别直接对三角形的边和顶点进行检测,可以避免这种误报的情况。
多边形的三角网相交判别方法如下:
对多边形A和B分别进行三角剖分,得到三角网 (T_A) 和 (T_B)。
创建一个空集合 (I) 用于存储相交的三角形对。
遍历三角网:
对于 (T_A) 中的每个三角形 (triA):
对于 (T_B) 中的每个三角形 (triB):
使用三角形相交检测算法检查 (triA) 和 (triB) 是否相交。
using System; using System.Numerics; class Triangle { public Vector3 Vertex1; public Vector3 Vertex2; public Vector3 Vertex3; public Triangle(Vector3 v1, Vector3 v2, Vector3 v3) { Vertex1 = v1; Vertex2 = v2; Vertex3 = v3; } public static bool Intersects(Triangle triangle1, Triangle triangle2) { return false; } } class Program { static void Main() { Triangle triangle1 = new Triangle(new Vector3(0, 0, 0), new Vector3(1, 0, 0), new Vector3(0, 1, 0)); Triangle triangle2 = new Triangle(new Vector3(0.5f, 0.5f, 0), new Vector3(1.5f, 0.5f, 0), new Vector3(0.5f, 1.5f, 0)); bool isIntersecting = Triangle.Intersects(triangle1, triangle2); Console.WriteLine("Triangles intersect: " + isIntersecting); } }
如果相交,将 ((triA, triB)) 添加到集合 (I) 中,并可以立即返回“相交”结果。
处理结果:
如果集合 (I) 为空,则多边形A和B的三角网不相交。
否则,多边形A和B的三角网相交。
3.3界面过渡区建模
界面过渡区ITZ(Interfacial Transition Zone)的模型构建,可采用布尔运算的方式实现。在骨料基础上偏移一定距离,偏移距离为界面层的厚度,建立新的多面体部件,再与之前的多面体骨料做切割,即可生成其界面层。对于投放成功的骨料及过渡区,插件中采用数组记录所有参数。模型完成后将三相材料分别导入到Abaqus软件中。最终的Abaqus三维凸多面体骨料及过渡区模型完成如下。
(未完待续...)