基于CAD-Abaqus的混凝土三維細觀模型建立(二)

第一部分查看:

3 隨機凸多面體骨料模型的生成

在力學上,凸多面體幾何結構具備更好的力學性能和穩定性,因此常見的混凝土中,粗骨料形態也多呈現為三維凸多面體形。隨機凸多面體模型的構建采用CAD_隨機多面體&過渡區3D插件。插件采用球體隨機切割方法,實現任意面數的多面體(碎石)骨料模型構建算法;采用空間三角網格碰撞算法,實現多面體的無干涉投放。插件詳情可查看公眾號【淵魚科技】。

基于CAD-Abaqus的混凝土三維細觀模型建立(二)的圖1

3.1多面體骨料生成

單個凸多面體骨料的生成采用球體隨機切割算法,算法的基本原理為首先在球體表面隨機生成點位,通過點位的空間順序構建切割面,對球體進行切割操作,以構建單個凸多面體骨料模型。

隨機點位生成:在球體的表面隨機選擇點。通過在球坐標系統中隨機選擇角度來實現,然后將其轉換為笛卡爾坐標。確保生成的點位分布相對均勻,以避免在后續步驟中產生過于復雜或不均勻的切割面。

構建切割面:根據生成的點位,采用空間排序算法,確定切割面的空間順序。通過檢查切割面的法線方向,確保切割面的法線均指向球體外部。

切割球體:使用構建的切割面對球體進行切割操作,并確保切割操作不會產生非凸的部分。

基于CAD-Abaqus的混凝土三維細觀模型建立(二)的圖2

插件可通過控制切割面數目,根據用戶設定的面數,在三維球體上進行切割操作,從而生成具有不同面數的多面體骨料模型。

基于CAD-Abaqus的混凝土三維細觀模型建立(二)的圖3


3.2多面體骨料的投放

多面體骨料的投放采用空間三角網干涉判別,與傳統的外接球碰撞檢測相比,該算法具有準確性高,能達到更高的填充率的優點,但也存在干涉判別計算量較大的不足。

混凝土中粗骨料的體積比是一個重要的設計參數,它影響著混凝土的強度、耐久性和工作性能。一般來說,在普通混凝土中,粗骨料的體積比通常在40%~60%之間,因此采用空間三角網干涉判別,使模型中多面體骨料達到更高體積比,是模擬工程實際的關鍵。下面借助二維模型簡要介紹三角網判別算法在隨機多邊形骨料模型建模中的優勢。

三角網是由多個三角形組成的,每個三角形的邊和頂點都可以用來進行精確的相交檢測。相比之下,外接圓只是一個近似的表示,它只能告訴你多邊形的大致范圍,而不能提供精確的碰撞點或碰撞邊信息,這勢必會造成填充率不足的問題。使用外接圓進行碰撞檢測時,即使兩個多邊形的外接圓相交,多邊形本身也可能并不相交。這會導致誤報,即錯誤地認為發生了干涉。而三角網判別直接對三角形的邊和頂點進行檢測,可以避免這種誤報的情況。

基于CAD-Abaqus的混凝土三維細觀模型建立(二)的圖4

多邊形的三角網相交判別方法如下:

對多邊形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的三角網相交。

基于CAD-Abaqus的混凝土三維細觀模型建立(二)的圖5

3.3界面過渡區建模

界面過渡區ITZ(Interfacial Transition Zone)的模型構建,可采用布爾運算的方式實現。在骨料基礎上偏移一定距離,偏移距離為界面層的厚度,建立新的多面體部件,再與之前的多面體骨料做切割,即可生成其界面層。對于投放成功的骨料及過渡區,插件中采用數組記錄所有參數。模型完成后將三相材料分別導入到Abaqus軟件中。最終的Abaqus三維凸多面體骨料及過渡區模型完成如下。

基于CAD-Abaqus的混凝土三維細觀模型建立(二)的圖6
基于CAD-Abaqus的混凝土三維細觀模型建立(二)的圖7
基于CAD-Abaqus的混凝土三維細觀模型建立(二)的圖8
基于CAD-Abaqus的混凝土三維細觀模型建立(二)的圖9

(未完待續...)

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

3
1