一种n维空间超球体填充复合材料建模方法

文档序号:34441251发布日期:2023-06-13 02:24阅读:61来源:国知局
一种n维空间超球体填充复合材料建模方法与流程

本发明涉及一种复合材料建模方法,具体涉及一种n维空间超球体填充复合材料建模方法。


背景技术:

1、颗粒填充复合材料是指以聚合物成分作为黏结树脂,以球体、圆柱体或小片状体作为填料而形成的复合材料,颗粒填料可改变材料介电性、耐热性、硬度等,常用于隔热材料和固体推进剂等。固体颗粒在黏结树脂经过充分搅拌后进行固化,因此可以归结为颗粒在空间中随机运动碰撞的问题。

2、现有算法主要包括分子动力学方法和随机堆积算法:

3、分子动力学颗粒堆积算法的基本思想为将一定数目的具有零尺寸的颗粒在计算域中赋予随机的位置和初始速度,每个颗粒均有各自的半径增长速度,颗粒在计算域内不断长大并发生碰撞,直到达到预定的体积分数或计算域内再无空间可容纳颗粒的运动时,算法终止。其优点是容易实现较高的填充颗粒体积分数,缺点是难以控制颗粒的尺寸分布。

4、随机堆积算法是逐个将给定尺度的颗粒放置于计算域内,判断该颗粒是否与现有颗粒重叠,如果发生重叠则重新生成该颗粒的坐标。其缺点是难以实现较高的颗粒填充体积分数,计算效率较低。


技术实现思路

1、针对上述背景技术中存在的技术问题,本发明提供了一种n维空间超球体填充复合材料建模方法,其结合了随机填充和分子动力学生成颗粒填充复合材料模型的优点,颗粒在运动碰撞的过程中随机填充,在满足颗粒尺寸分布的同时,可以达到较高的填充体积分数,且算法中判断大量超球碰撞、边界反射和镜像等算法逻辑均基于矩阵加法和乘法,采用矩阵运算代替了传统算法中的循环、判断和标量代数运算,矩阵运算非常适合并行计算,有丰富和成熟的代码库,并行效率极高,通过提高计算机硬件的配置,可以实现快速大量颗粒填充的建模工作。

2、为解决上述技术问题,本发明提供的一种n维空间超球体填充复合材料建模方法,是先定义n维欧几里得空间中超立方体区域,然后基于概率学方法生成服从某指定概率分布的待填充半径数组并对待填充半径数组排序,再定义区域内已填充超球集合,计算空间内已填充超球集合在超立方体区域内的体积,计算与区域边界相交的超球元素,并建立其相对区域边界周期对称的超球集合,接着计算超球集合发生重叠的元素序号,更新区域内已填充超球集合,计算区域内已填充超球集合中的超球遇到区域边界会发生反射,更新这些超球所对应的速度,计算区域内已填充超球集合中与区域边界相交的超球元素,建立其相对区域边界周期对称的超球集合,并建立临时集合,接着计算临时集合内球心坐标数组和发生重叠的超球元素子集,计算发生重叠的一对超球发生碰撞相切时刻,最后更新一对超球碰撞后各自的速度矢量。

3、所述n维空间超球体填充复合材料建模方法,其中,所述建模方法主要包括以下步骤:

4、(1)定义某n维欧几里得空间中超立方体区域ω,xi∈[xi,min,xi,max],i=1,2,...,n,边界为l,ω的体积

5、(2)基于概率学方法,生成服从某指定概率分布的待填充半径数组[r]m×1;

6、(3)对待填充半径数组[r]m×1由大到小排序;

7、(4)定义区域内已填充超球集合{b0}i,{b0}i内包含的超球数量为i,其球心坐标数组为[x0]i×n,速度数组为[v0]i×n,半径数组为[r0]i×1;计算空间内已填充超球集合{b0}i在区域ω内的体积vb;

8、(5)判断如果vb/vω<目标体积分数,则向区域ω内填充k个超球,新填充超球集合{b1}k,通过随机算法生成其球心坐标数组为[x1]k×n,速度数组为[v1]k×n,半径数组[r1]k×1按照由大到小的顺序从半径数组[r](m-i)×1中取出;判断如果vb/vω>=目标体积分数,则结束循环,结束填充算法,输出当前已填充超球球心坐标及半径;

9、(6)计算区域内已填充超球集合{b0}i和新超球集合{b1}k与区域边界l相交的超球元素,分别建立其相对区域边界l周期对称的超球集合{b0p}s和{b1p}t;

10、(7)计算{b1}k+{b1p}t和{b0}i+{b0p}s发生重叠的超球元素对应新填充超球集合{b1}k中的元素序号数组{idcrash1}l1;同时,计算{b1}k+{b1p}t内部发生重叠的超球元素对应新填充超球集合{b1}k中的元素序号数组{idcrash2}l2;然后,合并{idcrash1}l1和{idcrash2}l2并去除重复元素得到{idcrash}l;接着计算与{idcrash}l对应的超球集合{b1crash}l和半径子集[r1crash]l×1;

11、(8)更新区域内已填充超球集合{b0}i+k-l={b0}i+{b1}k-{b1crash}l,更新b0内球心坐标数组[x0](i+k-l)×n,速度数组[v0](i+k-l)×n,半径数组[r0](i+k-l)×1;将当前循环已填充的半径从待填充半径数组中移除,更新待填充半径数组[r](m-i-k+l)×1=[r](m-i)×1-([r1]k×1-[r1crash]l×1);更新已填充超球数量i=i+k-l,更新体积分数vb/vω;判断如果vb/vω>=目标体积分数,则跳出当前循环,结束当前循环,并结束填充算法,输出当前已填充超球球心坐标及半径;

12、(9)判断如果vb/vω<目标体积分数,则已填充超球集合开始运动,给定时间步长δt=δt0;同时计算{b0}i中的超球遇到区域边界l会发生反射,更新这些超球所对应[v0]i×n中的速度;

13、(10)计算{b0}i中与区域边界l相交的超球元素,建立其相对区域边界l周期对称的超球集合{b0p}p,建立临时集合{b2}i+p={b0}i+{b0p}p;

14、(11)计算时间δt后,{b2}i+p内球心坐标数组[x2](i+p)×n=[x0](i+p)×n+[v0](i+p)×nδt;

15、(12)计算{b2}i+p内发生重叠的超球元素子集{b2crash}q,并得到其对应原超球集合{b0}i中的位置索引数组{id}s;判断如果没有重叠发生即q=0,则[x0]i×n=[x2]i×n,跳出当前循环,结束循环,并跳转执行上述步骤(5);

16、(13)否则如果有且仅有一对超球发生重叠即q=2,则计算发生重叠的一对超球发生碰撞相切时刻δtc,计算时间δtc后,{b0}i内球心坐标数组[x0]i×n=[x0]i×n+[v0]i×nδtc;

17、(14)计算发生重叠的一对超球发生碰撞后的速度,通过位置索引数组{id}s映射到原超球集合{b0}i中,更新这些超球所对应[v0]i×n中的速度,跳出当前循环,结束判断,并跳转执行上述步骤(5);否则如果有多对超球发生重叠即q>2,则缩短时间步长δt=δt/2,继续当前循环,执行上述步骤(11)。

18、所述n维空间超球体填充复合材料建模方法,其中,所述步骤(4)中区域内已填充的超球需要满足以下条件:①超球的整体或一部分在空间内部,②任意超球之间不存在重叠的情况;此时i=0。

19、所述n维空间超球体填充复合材料建模方法,其中,所述步骤(6)中计算与区域边界l相交的超球元素,并建立其相对区域边界l周期对称的超球集合的具体步骤如下:

20、(15.01)已知{b}i的球心坐标数组为[x]i×n,半径数组为[r]i×1,速度数组为[v]i×n;

21、(15.02)区域ω的边界为xi=xi,min,xi=xi,max,i=1,2,...,n;

22、(15.03)对半径数组在列方向进行广播(复制n次),得到[r]i×n;

23、(15.04)执行矩阵布尔运算[x]i×n-[r]i×n<[{x1,min,x2,min,…,xn,min}]i×n,得到布尔型数组[o1]i×n,代表超球是否超出ω的下界;

24、(15.05)执行矩阵布尔运算[x]i×n+[r]i×n>[{x1,max,x2,max,…,xn,max}]i×n,得到布尔型数组[o2]i×n,代表超球是否超出ω的上界;

25、(15.06)将布尔型数组[o1]i×n和[o2]i×n沿列方向合并得到数组[o3]i×2n;

26、(15.07)对布尔型数组[o3]i×2n在行的方向执行“或”操作得到布尔型数组[o]i×1;

27、(15.08)获取[o]i×1中为true的行号数组{id}j;

28、(15.09)因此{id}j为与区域边界l相交的超球元素序号;

29、(15.10)根据{id}j从[x]i×n、[r]i×1和[v]i×n中取出子集,得到需要进行周期对称的球心坐标数组[x]j×n,半径数组[r]j×1,速度数组[v]j×n;

30、(15.11)每个需要周期对称的超球所有可能的位置有3n-1个;

31、(15.12)获取周期对称超球集合的球心坐标矩阵半径矩阵速度矩阵

32、(15.13)获取周期对称超球对应{b}i集合中的索引数组

33、所述n维空间超球体填充复合材料建模方法,其中,所述步骤(7)和所述步骤(12)中计算超球集合{b}i发生重叠的元素序号的具体步骤如下:

34、(16.1){b}i的球心坐标数组为[x]i×n,半径数组为[r]i×1,将[x]i×n中的每一行视为一个整体记作[{x}n]i×1;

35、(16.2)对坐标数组[{x}n]i×1在列方向广播(复制i次)得到[a]i×i=[{x}n{x}n…{x}n]i×i;

36、(16.3)计算距离矩阵[d]i×i=([a]i×i-[a]ti×i)2;

37、(16.4)对半径数组为[r]i×1列方向广播(复制i次)得到[b]i×i=[rr…r]i×i;

38、(16.5)计算半径和的平方矩阵[h]i×i=([b]i×i+[b]ti×i)2,计算距离矩阵与半径和的平方矩阵的数组;

39、(16.6)由于两球重叠时球心距的平方小于半径和的平方,因此通过[d]i×i<[h]i×i得到重叠数组[o]i×i,该数组是对称的布尔型数组,取[o]i×i上三角部分中为true的列序号即为重叠球在{b}i中的元素序号;

40、(16.7)判断超球碰撞以及删除发生碰撞的新球的二维示意图。

41、所述n维空间超球体填充复合材料建模方法,其中,所述步骤(9)中计算超球遇到边界后反射时的速度矢量的具体步骤如下:

42、(17.1)已知{b}i的球心坐标数组为[x]i×n,半径数组为[r]i×1,速度数组为[v]i×n;

43、(17.2)区域ω的边界为xi=xi,min,xi=xi,max,i=1,2,...,n;

44、(17.3)对一维数组{x1,min,x2,min,…,xn,min}和{x1,max,x2,max,…,xn,max}沿行方向广播(复制i次),分别得到[{x1,min,x2,min,…,xn,min}]i×n和[{x1,max,x2,max,…,xn,max}]i×n;

45、(17.4)执行矩阵布尔运算[x]i×n<[{x1,min,x2,min,…,xn,min}]i×n和[x]i×n>[{x1,max,x2,max,…,xn,max}]i×n,分别得到布尔型数组[o1]i×n和[o2]i×n;

46、(17.5)对布尔型数组[o1]i×n与[o2]i×n执行“或”操作,得到[o]i×n;

47、(17.6)将布尔型数组[o]i×n中true转换为-1.0,false转换为1.0,得到速度更新数组[c]i×n;

48、(17.7)更新超球遇到边界后反射后的速度数组[v]i×n=[v]i×n*[c]i×n。

49、所述n维空间超球体填充复合材料建模方法,其中,所述步骤(13)计算发生重叠的一对超球发生碰撞相切时刻δtc的具体步骤如下:

50、(18.1)设定超球b1和b2在δt时间后发生重叠,已知在运动初始时刻,b1的球心坐标为(x1,x2,…,xn),半径为r1,速度为(u1,u2,…,un);超球b2的球心坐标为(y1,y2,…,yn),半径为r2,速度为(v1,v2,…,vn)。

51、(18.2)已知超球b1和b2在0时刻未发生重叠,经过δt时间后发生重叠,则碰撞时刻一定发生在(0,δt]时间区间内;

52、(18.3)设从b1和b2运动初始时刻到发生碰撞所需时间为δtc,则δtc满足以下方程:

53、[(x1+u1δtc)-(y1+v1δtc)]2+[(x2+u2δtc)-(y2+v2δtc)]2+...+[(xn+unδtc)-(yn+vnδtc)]2=(r1+r2)2  (1);

54、(18.4)整理可得关于δtc的一元二次方程:

55、aδtc2+bδtc+c=0   (2);

56、其中

57、

58、

59、

60、(18.5)解方程(2)得到两个根δtc1和δtc2,取(0,δt]区间内的根为所计算的超球碰撞时刻δtc。

61、所述n维空间超球体填充复合材料建模方法,其中,所述步骤(14)中计算更新两球碰撞后各自的速度矢量的具体步骤如下:

62、(19.1)为了提高计算效率,这里的速度更新算法不遵守动量守恒定律,只保证更新速度之后两超球互相远离对方;

63、(19.2)两球碰撞后的速度为沿着两球心连线方向互相远离对方的单位矢量;

64、(19.3)超球b1和b2的球心坐标分别为{x1}n和{x2}n;

65、(19.4)超球b1和b2碰撞后的速度

66、{v1}n=({x1}n-{x2}n)/||{x1}n-{x2}n||,

67、{v2}n=({x2}n-{x1}n)/||{x2}n-{x1}n||,其中||·||为范数运算符。

68、采用上述技术方案,本发明具有如下有益效果:

69、本发明n维空间超球体填充复合材料建模方法构思合理,为一种在n维空间中生成给定尺寸分布的超球填充算法,在随机堆积算法的基础上引入运动和碰撞,通过时间回溯方式更新碰撞速度,同时提出了适用于n维空间的基于矩阵运算的高效计算方式,为颗粒填充复合材料的建模和力学分析提供一种高效和健壮的计算方法;其中二维和三维填充算法可以直接用于颗粒填充符合材料的建模;高维算法生成的结果可以通过投影矩阵得到其对应的二维和三维投影,这种方式允许颗粒之间发生重叠,可用于粉末烧结等材料的建模。

70、本发明n维空间超球体填充复合材料建模方法,主要优点体现在以下几点:

71、(1)结合了随机填充和分子动力学生成颗粒填充复合材料模型的优点,颗粒在运动碰撞的过程中随机填充,在满足颗粒尺寸分布的同时,可以达到较高的填充体积分数;

72、(2)算法中判断大量超球碰撞、边界反射和镜像等算法逻辑均基于矩阵加法和乘法,采用矩阵运算代替了传统算法中的循环、判断和标量代数运算;

73、(3)矩阵运算非常适合并行计算,有丰富和成熟的代码库,并行效率极高,通过提高计算机硬件的配置,可以实现快速大量颗粒填充的建模工作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1