首页/文章/ 详情

基于CAD-Abaqus的混凝土三维细观模型建立(一)

8月前浏览8376

摘要

混凝土作为一种三相复合材料,从细观层面来说是由粗骨料、砂浆和过渡区(界面层)组成。这三种材料具有不同的力学特性,在混凝土的性能中起着重要作用。过去,主要基于宏观层次的混凝土力学研究已经不能很好地解释混凝土材料的损伤和破坏机理。由于骨料形态的复杂性和空间分布的随机性,建立一个能反映混凝土实际骨料级配、含量及其形态的随机骨料模型并进行有限元分析,是深入解释混凝土损伤机理的关键,也为研究混凝土性能提升提供了高效的方向指导。本文通过使用CAD插件实现Abaqus的模型构建,建立包含球形、凸型多面体(碎石)骨料,并考虑了界面层的三维混凝土细观随机模型,并对骨料的空间分布进行探讨。

1 引言

本文运用CAD插件进行模型建立,并将模型导入Abaqus内,实现了随机骨料模型建模,极大地简化了混凝土细观力学研究的工作量。结合了参数化建模的思想,提出球形骨料生成算法,在此基础上进一步提出多面随机剖切算法,生成了随机凸型多面体骨料模型。同时,采用干涉判别算法,分别对球形骨料和多面体骨料进行了投放试验,形成包含骨料、砂浆、过渡区在内的三相混凝土模型。多面体骨料投放算法采用严格的空间三角网格碰撞数学运算,且提高了骨料体积含量。通过重力堆积算法,模拟混凝土中骨料的排列和分布情况。CAD插件内置的建模算法可以做到骨料、界面层、骨料分布的多参数控制,对于高效构建符合真实情况的混凝土细观模型具有重要意义。

2 三维球形骨料模型的生成

参数化建模允许研究者通过调整一系列参数来控制模型的特性,例如骨料的大小、级配、分布等。这种可控性使得研究者能够灵活地模拟不同情况下的混凝土结构,更好地理解材料的行为。三维球体骨料模型的构建采用CAD随机球体颗粒&过渡区插件。

图片1.png

2.1 骨料及分布参数

在混凝土试件中,骨料的各种参数通常是随机的。使用C#语言,可以调用多种生成随机数的函数来模拟这些参数。以下是一个示例,演示如何使用C#语言随机生成球体的半径和空间坐标:

using System;
 
class Program
{
    static void Main()
    {
        // 创建随机数生成器
        Random random = new Random();
 
        // 生成随机半径,假设半径范围在1到10之间
        double radius = random.NextDouble() * (10 - 1) + 1;
 
        // 生成随机空间坐标,假设坐标范围在三维空间中
        double xCoordinate = random.NextDouble() * 100;
        double yCoordinate = random.NextDouble() * 100;
        double zCoordinate = random.NextDouble() * 100;
 
        // 打印生成的结果
        Console.WriteLine("外接球的半径: " + radius);
        Console.WriteLine("空间坐标 (x, y, z): (" + xCoordinate + ", " + yCoordinate + ", " + zCoordinate + ")");
    }
}

这里使用了Random类来生成随机数。通过NextDouble方法可以获得0到1之间的随机浮点数。这样的随机生成可以模拟混凝土试件中骨料的随机性,使得模拟更加真实和多样化。

2.2 骨料的投放参数

骨料生成后进行随机投放程序,投放中需要对骨料间的相交性进行判别,同时需要考虑骨料与骨料间间距过小将导致小边的出现的问题。小边通常指的是与整个几何体相比较小的边缘或特征,它们可能导致在有限元分析中网格变得不规则或包含过多的小单元,从而增加计算复杂度并可能引发数值不稳定性。因此在骨料相交判别程序中插件引入球体最小间距参数。下面是采用C#对球体间的相交性进行判别的程序演示。

using System;
 
class Program
{
    static void Main()
    {
        // 定义第一个球体的参数
        double x1 = 0;  // 第一个球体的中心 x 坐标
        double y1 = 0;  // 第一个球体的中心 y 坐标
        double z1 = 0;  // 第一个球体的中心 z 坐标
        double radius1 = 5;  // 第一个球体的半径
 
        // 定义第二个球体的参数
        double x2 = 10;  // 第二个球体的中心 x 坐标
        double y2 = 0;   // 第二个球体的中心 y 坐标
        double z2 = 0;   // 第二个球体的中心 z 坐标
        double radius2 = 7;  // 第二个球体的半径
 
        // 定义两球体之间的最小距离阈值
        double minDistance = 3; // 假设两球体之间的最小距离为3
 
        // 计算两个球体中心之间的距离
        double distance = Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2) + Math.Pow(z2 - z1, 2));
 
        // 判断两个球体是否隔开一定距离
        if (distance >= radius1 + radius2 + minDistance)
        {
            Console.WriteLine("True");
        }
        else
        {
            Console.WriteLine("False");
        }
    }
}

同时使用C#中的for循环函数对n个骨料进行相交性判别:

// 利用for循环遍历每对骨料,并进行相交性判别
        for (int i = 0; i < n; i++)
        {
            for (int j = i + 1; j < n; j++)
            {
                // 计算两个骨料中心之间的距离
                double distance = Math.Sqrt(Math.Pow(spheres[j, 0] - spheres[i, 0], 2) +
                                            Math.Pow(spheres[j, 1] - spheres[i, 1], 2) +
                                            Math.Pow(spheres[j, 2] - spheres[i, 2], 2));
 
                // 判断两个骨料是否相交
                if (distance < spheres[i, 3] + spheres[j, 3] + minDistance)
                {
                    Console.WriteLine($"骨料{i + 1}和骨料{j + 1}相交.");
                }
                else
                {
                    Console.WriteLine($"骨料{i + 1}和骨料{j + 1}不相交.");
                }
            }
}

2.3 界面过渡区建模

界面过渡区ITZ(Interfacial Transition Zone)的模型构建,可采用布尔运算的方式实现。在骨料基础上偏移一定距离,偏移距离为界面层的厚度,建立新的球体部件,再与之前的球形骨料做切割,即可生成其界面层。对于投放成功的骨料及过渡区,插件中采用数组记录所有参数。最终的Abaqus三维球体骨料及过渡区模型完成如下。

1.png

2.png

(未完待续...)

岩土断裂静力学多尺度Abaqus碰撞复合材料材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-03-11
最近编辑:8月前
渊鱼
硕士 签名征集中
获赞 216粉丝 73文章 108课程 2
点赞
收藏
作者推荐

CAD随机球体颗粒&过渡区3D插件 AbyssFish 渊鱼

插件介绍CAD随机球体颗粒&amp;过渡区3D插件可用于在AutoCAD软件内生成随机分布的球体及球体外侧过渡区部件,适用于科研绘图、有限元建模如混凝土细观、颗粒增强复合材料、随机三维骨料及过渡区等方面的应用。插件可指定的参数有模型的长、宽、高;球体颗粒的大小分布范围,包含三个粒径区间,及每个区间球体所占的体积比;球体占长方体的体积比、球体间的最小间距(避免网格划分出现过小网格的问题)、过渡区的厚度参数;球体随机投放的迭代次数(确保模型可在有限时间内建立,迭代次数过小可能达不到设计的球体百分比)。插件构建的模型包括基体、过渡区、球体颗粒三大部分。其中基体是长方体部件,基体内部带有球形孔洞,与过渡区部件形成无干涉且无间隙的装配关系;过渡区部件是有厚度的球壳,球壳外表面连接基体,内表面连接内部球体;球体颗粒分布在过渡区内部。三者之间形成装配模型。基体、过渡区、每种粒径范围的球体均绘制在不同的CAD图层上,方便批量管理。插件除在CAD内生成模型外,还输出模型对应的参数信息,如实际生成的球体个数及体积比(实际球体百分比),以上信息将呈现在插件右侧的提示框内。同时插件输出模型中每个球体的半径R、球心坐标(x,y,z)、球体体积Vsphere、过渡区体积Vitz,该信息输出到插件文件夹内的SphereData.xlsx文件内,用Excel软件打开查看。使用中需注意每次绘图该信息将进行覆盖,请及时备份保存。插件可运行在Windows7、8、10、11系统上,同时需要有Autodesk公司的AutoCAD软件支持,兼容AutoCAD2010~2024全版本,不支持精简版本的CAD软件及其他厂商的CAD软件。插件生成的模型可进行渲染出图,应用于论文中,或导入ANSYS、COMSOL、Abaqus、Fluent、LS-DYNA、Hyperworks等主流CAE软件内进行仿真模拟。插件下载付费后下载,联系作者提供许可证。

有附件
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈