CN113051789A - 一种高效的混凝土二维骨料生成及投放方法——剩余空间法 - Google Patents
一种高效的混凝土二维骨料生成及投放方法——剩余空间法 Download PDFInfo
- Publication number
- CN113051789A CN113051789A CN202110242979.3A CN202110242979A CN113051789A CN 113051789 A CN113051789 A CN 113051789A CN 202110242979 A CN202110242979 A CN 202110242979A CN 113051789 A CN113051789 A CN 113051789A
- Authority
- CN
- China
- Prior art keywords
- aggregate
- radius
- matrix
- oval
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/02—Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
Abstract
本发明为一种高效的混凝土二维骨料生成及投放方法——剩余空间法,属于混凝土细观建模领域。本发明通过将二维矩阵和灰度图像结合,整合了不同骨料形状统一的生成方法;提出将卵圆标准方程应用于混凝土细观建模中;提出一种新的能考虑骨料长细比、圆度与不对称程度的凹凸多边形骨料生成算法;提出了一种二维不同形状骨料均适用的骨料重叠判断方式。本发明基于骨架理论,提出一种高效的投放方法解决骨料投放后期效率低下的问题,具体算法为,每一次骨料的投放,骨料的中心必然处于上一轮模型中未投放的区域,通过选取未投放的区域的骨架作为投放点可以显著提高骨料投放的效率。
Description
技术领域
本发明涉及一种高效的混凝土二维骨料生成及投放方法——剩余空间法,具体涉及多边形骨料、圆形骨料、椭圆形骨料、卵圆形骨料以及再生骨料的生成和投放方法。
技术背景
混凝土是由骨料、砂浆和二者之间的界面带组成的非均质三相复合材料,混凝土行为的各种机制是错综复杂以及相互依赖的,很难仅仅通过实验来研究它们,需要细观仿真分析作为实验和理论研究的补充手段,而混凝土细观仿真分析的前提和基础是建立接近于真实混凝土的细观模型,细观模型中单个骨料的粒径、长细比等指标可反应真实混凝土中的级配、骨料性能等参数,对混凝土细观建模的正确性有不可忽视的影响。例如:相比于最理想的圆形骨料,多边形骨料能更好表现真实碎石骨料的形态,在相同级配、相同有限元条件下,将骨料考虑为最理想的圆形与将骨料考虑成凸多边形的不同模型,力学、耐久性性能差距多在5-10%之间,因此,对骨料形状进一步精细化建模是有必要的。对比不同学者对骨料建模的方法,用代数法建立尽可能接近真实的随机骨料模型难点主要有两点:其一是单个骨料形态的数学描述,其二是不同骨料之间的重叠判断。
评价细观模型接近真实模型的评价性指标主要有粗骨料体积率、骨料级配、骨料长细比、骨料圆度以及模型中不同相的区分,随机生成的骨料形状难以定义这些参数,因此,建立更为接近真实混凝土的预处理方式和细观模型是有必要的。在骨料的投放方式上,受限于计算机性能和随机骨料模型使用的take and place算法在投放后期效率低下的问题,大多数混凝土随机骨料模型的骨料含量在40-60%不等,若要采用传统的随机骨料模型投放骨料体积占比超过65%的模型,所需投放时间会大幅度上升。如需进一步提升骨料在模型中的含量,使模型满足全级配、大体积的要求,需要额外的方法才能使所得模型骨料含量能超过70%以上,而且并非所有情况都能通用。
目前对混凝土细观建模的研究,多为对普通混凝土,或是纤维混凝土、沥青混凝土的研究。再生混凝土可以降低资源的消耗,也有利于绿色建筑的发展。目前对再生骨料的细观建模多假定模型中一部分骨料是再生骨料、另一部分是原生骨料;或直接对再生骨料进行一个性能上的折减,这相比于真实的再生混凝土有一定差距。因此在二维建立对骨料描述更精确的再生混凝土细观骨料模型是有必要的。
综上所述,由于当前随机骨料生成和投放算法在后期效率低耗时长,随机生成的骨料形状难以定义骨料参数,并且再生混凝土的相关研究较少,因此需要建立一种不同混凝土类型、不同骨料假定下均通用的混凝土细观模型生成算法。
发明内容
针对以上不足,本发明提出一种高效的混凝土二维骨料生成及投放方法——剩余空间法,将矩阵运算与灰度图像处理技术相结合,根据矩阵与灰度图像可相互转化的原理,利用像素点生成模型以及通过采样点定位、通过二维矩阵元素值判断骨料重叠或超出边界,给出了一种不同编程软件、不同骨料形状、均适用的模型生成及骨料重叠判断算法;包括圆形、椭圆形、卵圆形、考虑长细比的凹凸多边形以及再生混凝土二维模型,生成流程图见附图2、附图3。
提出“剩余空间法”的投放方法,将骨架理论运用于骨料投放,即每一批骨料的投放时,骨料的中心点均位于模型中没有骨料的位置(剩余空间),利用了骨架算法对剩余空间进行优化,在较高粗骨料体积率(35%-50%)时相比于以往随机骨料投放效率高,通用性强。“剩余空间法”骨料投放流程图见附图1。
一种高效的混凝土二维骨料生成及投放方法包括以下步骤:
步骤1、确定矩阵规模建立模型
(1.1)生成背景像素:
根据模拟试件的真实尺寸确定骨料投放区域大小xmax×ymax,根据所需的精度拟定比例尺u,在编程软件内生成元素值全都为1的(u×ymax)×(u×xmax)二维矩阵作为模型的背景像素,矩阵中的每一个元素和背景像素中的正方形单元一一对应,记录每一个元素的编号、节点坐标和中心点坐标;
所述像素为背景像素中的正方形单元;
(1.2)生成两组分别用于定位横坐标和纵坐标的像素采样点o,p:
o用于定位横轴
p用于定位纵轴
步骤2、确定骨料参数
根据骨料体积占比pk、骨料最大粒径Dmax代入Walraven级配确定各级配的骨料半径r的范围和骨料累计体积占比百分数。
步骤3、建立多边形骨料函数
(3.1)生成已知长细比和等效半径的卵圆:
选定长细比ch;在骨料半径范围内取外接卵圆的等效半径rd;根据长细比ch和等效半径rd计算得卵圆的长半径a,短半径b和对称半径c,以(0,0)坐标作为原点生成卵圆方程式;
所述等效半径为面积与圆面积相等时的圆半径;
(3.2)在卵圆中选取多边形顶点:
卵圆的长半径a、短半径b、对称半径c对应的四个端点始终作为多边形骨料的固定顶点,之后将卵圆的长半径、短半径和对称半径平分成2份,并过平分点分别作垂直于这些轴的四条直线,与卵圆方程式相交得到卵圆上的8个点作为多边形骨料的顶点,记录每一个顶点的坐标(xi,yi),(i=1,2,3……8);
以原点为旋转中心,将多边形顶点随机旋转一个角度,记录每个顶点的坐标(xi′,yi′);
所述骨料顶点所在的坐标系与骨料投放区域坐标系相同;
(3.3)将多边形顶点排序并将骨料平移到骨料投放中心(x0,y0):
在极坐标中,计算各顶点与原点连接的射线的角度,将各顶点按角度从小到大排序;
将多边形各个顶点坐标平移到为(xi′+x0,yi′+y0);
(3.4)判断骨料是否超出边界:
如果有任何顶点的坐标大于(u×ymax)或(u×xmax)或小于0,则该顶点坐标超出背景像素,本次不生成骨料;
如果骨料顶点坐标都在背景像素范围内,若为凸多边形则进行步骤(3.6);
如果骨料顶点坐标都在背景像素范围内,若为凹多边形则进行步骤(3.5)(3.6);
(3.5)生成凹多边形骨料的凹点:
将旋转后顶点(xi′,yi′)连线的中点(xi″,yi″)和原点连接记为线段li,i=1,2,3……8,在li上取点(xaoi,yaoi)作为多边形的凹点;新生成凹点的坐标以下式表示:
xaoi=μixi″,yaoi=μiyi″,μi∈(0,1) (4)
式中,μi=该凹点到骨料投放中心的距离/li的长度,在(0,1)上随机取值,表示这条边新生成的凹点向内凹的程度,μi越接近1,该边凹陷高度较小,μi越接近0,该边凹陷高度较高;
重复步骤(3.3);计算li的角度,将凹点与原来的8个多边形顶点按角度从小到大排序;
将新增的凹点坐标平移到为(xaoi+x0,yaoi+y0);
(3.6)开始投放骨料:
按顺序连接多边形各个顶点,将多边形骨料的各条边投影到背景像素,判断每个像素的中心点是否在该多边形内,若该像素中心点在多边形内,则该位置的像素为骨料,矩阵中的元素值减去1;若该像素中心点在多边形外或恰好位于多边形的边上,则该位置的像素为砂浆,矩阵中的元素值不变;该算法不只适用于某种特定形态的多边形骨料,对于不同的多边形骨料算法,只要多边形各顶点坐标是明确的,即可使用该方法进行矩阵内骨料的生成;
上述元素值为0的像素代表骨料,元素值为1的像素代表砂浆;
结束函数。
步骤4、建立圆形、椭圆形或卵圆形骨料函数
(4.1)扩大背景像素:
将全1二维矩阵扩大到(u×ymax+2)×(u×xmax+2),并将扩大区域的元素值设为0;
(4.2)若为圆形骨料,圆形骨料的等效半径即为半径ry,在骨料半径范围内取值,以骨料投放中心作为圆心,将o、p代入圆公式生成圆;
若为椭圆形骨料,选定长细比ch,在骨料半径范围内取椭圆骨料的等效半径rty;根据长细比ch和等效半径计算椭圆的长半径a和短半径b,以骨料投放中心作为椭圆中心随机旋转一个角度,生成旋转后的椭圆公式,将o、p代入椭圆公式生成椭圆;
若为卵圆形骨料,选定长细比ch,在骨料半径范围内取卵圆骨料的等效半径rly,根据长细比ch和等效半径rly计算得到卵圆的长半径a,短半径b和对称半径c,以骨料投放中心作为卵圆中心随机旋转一个角度,生成旋转后的卵圆公式,将o、p代入卵圆公式生成卵圆;
上述o、p矩阵的乘除为矩阵点乘和点乘,即矩阵各个相同位置元素相乘和相除;生成形状所在的矩阵记为矩阵D,与背景像素的二维矩阵具有同样的规模、坐标;在矩阵D中记录满足条件的元素的坐标;
(4.3)判断骨料是否超出边界:
将骨料投影到背景像素,即将骨料投影到背景像素,将矩阵D中满足条件的元素的坐标投影到二维矩阵,则该位置的像素为骨料,矩阵中的元素值减去1;
若矩阵内出现负值,则该圆超出真实的骨料范围,将减1的元素值加1,本次不生成骨料;
若矩阵内不出现负值,即骨料顶点都在真实骨料范围内,开始投放骨料;
上述元素值为0的像素代表骨料,元素值为1的像素代表砂浆;
结束函数。
步骤5、建立再生骨料的函数
(5.1)根据步骤3或步骤4的骨料函数在背景像素中生成一个完整的骨料;
(5.2)生成待投放的再生骨料:
再生骨料中一侧为老骨料另一侧为老砂浆的生成方法:
过骨料投放中心建立一条直线,该直线斜率在(0,π)之间均匀随机。在矩阵中选定中心点同时满足“在骨料内”和“在直线一侧”的元素,将矩阵中这些位置的元素值改为0.5,即老砂浆,值为0的元素设定为老骨料;
再生骨料内,老骨料被老砂浆完全包围或部分包围的生成方法:
将(5.1)中骨料的元素值从0改为0.5,即变为老砂浆;在骨料投放中心,利用步骤3或步骤4的函数建立等效半径小于老砂浆等效半径的骨料;将矩阵中将同时满足“在老砂浆内”和“在骨料内”的元素值改为0,值为0的元素设定为老骨料;
(5.3)开始投放骨料;结束函数。
步骤6、骨料投放方法——剩余空间法
(6.1)在模型中心、距模型边界2/3的范围内选取一个坐标作为骨料的中心点用步骤3、步骤4或步骤5的函数投放第一个骨料;此处所设置的范围为保证第一个骨料一定能成功投放;
(6.2)选取模型中未投放骨料的剩余空间作为下一批骨料投放的区域;并通过中轴变换算法,获取剩余空间的骨架;在骨架上的像素点中,若某个像素点上下左右四个位置的像素均为骨架像素点,则该像素点为骨架的分支点;记录所有分支点的坐标作为骨料投放时中心点的位置;
所述骨架为剩余空间内最大内切圆的圆心的集合;
(6.3)依次选取分支点的坐标,运行步骤3、步骤4或步骤5的函数生成和投放当前等效半径的骨料;
若本次不生成骨料,回到步骤(6.3)选取下一个分支点;
若矩阵中未出现任何负值,则投放的骨料与之前的所有骨料都不重叠,骨料投放成功,保留该骨料并记录中心点坐标,且对于多边形、椭圆形和卵圆形骨料还需记录等效半径和旋转角,对于圆形骨料记录半径;计算当前体积率L,若L满足投放含量要求,则结束投放,保存最终的矩阵,并记录当前体积率;
若矩阵中出现负值,则投放的骨料与之前的任一骨料重叠,删除新投放的骨料;
所有分支点都经过选取后,该轮投放结束;该轮投放过程中,若L未达到投放含量的要求、且在该轮投放中有骨料能够投放成功,则模型生成过程未结束,接着选取该轮投放结束后的剩余空间进行步骤(6.2)、(6.3)的操作;
(6.4)该轮所有分支点均不能成功投放骨料或L达到投放含量时,投放终止,保存最终的矩阵。
开始生成骨料时,分别在每一个粒径范围内取一个等效半径,以所取的最大半径作为骨料的等效半径,步骤(6.3)中每次有骨料投放成功后,若当前体积率L不满足投放含量要求,且当前体积率L满足该粒径范围的累计体积占比百分数时,将等效半径改为下一粒径范围的等效半径;本发明所有半径均需乘以u作为编程所用半径。
保存模型时,多边形骨料的模型可直接保存,圆形、椭圆形和卵圆形骨料的模型需对投放结束后的二维矩阵进行以下处理:
将二维矩阵扩大区域的元素删除,使背景像素和真实的骨料范围一致。
本发明的有益效果如下:
其一,首次将矩阵运算以及灰度图像处理技术相结合,利用矩阵与灰度图像可相互转化的原理,提供了不同编程软件、不同骨料形状均适用的模型生成及骨料重叠判断算法,与常见的数值方法建立的模型相比,该方法利用像素点来生成模型,通过二维矩阵元素值来判断骨料重叠;不仅局限于MATLAB、C++等特定的某种的编程软件,还可直接在一些有编程能力的有限元软件内,如ANSYS里的APDL直接建模;通过判断矩阵中的值是否出现异常即可判断模型中的不同骨料是否重叠或超出边界,可用于二维三维、各种类型骨料的相互重叠判断之中,亦可用于骨料与钢筋的重叠判断之中;编程简单且效率较高,且模型投放后期不会因为骨料数目的增加而导致重叠判断时间的增长;
其二,生成的各正方形像素均拥有单元编号、顶点坐标、中心点坐标;该像素属于何种材料同样可以通过矩阵中的对应元素获得。通过二维建立的混凝土细观的模型使用各单元位置和材料信息可直接建立有限元模型,在有限元预处理时效率较高,亦可记录每个骨料的坐标信息,通过导入AUTOCAD等软件再导入有限元软件,算法的通用性有保障;
其三,在凹/凸多边形的生成算法中,通过平分的份数控制圆度,也能够保证单颗多边形与基骨料拥有相同的长细比以及不对称程度,相对于随机延拓法、极坐标得到的单颗多边形骨料,可拥有更多、更精细的控制骨料形态的参数,能与真实混凝土中骨料的宏观参数更好的结合;对于非圆形骨料,可以避免骨料干涉运算时解高阶方程带来的不便和大量计算;
其四,再生骨料生成算法,可以满足不同再生混凝土细观模型建模的需要,实现了二维复杂骨料形态下的再生骨料建模,还可通过骨料边界的缩放,进一步形成再生混凝土中的各界面过渡区,从而进行力学或氯离子等方面的分析;
其五,首次提出将骨架理论运用于二维骨料投放的方法——剩余空间法,每一批骨料的投放时,骨料的中心点均位于模型中没有骨料的位置,且利用了骨架算法对其进行优化,投放的成功率大大增加;该算法能满足一般混凝土细观模型中粗骨料体积率的要求,能用于二维、不同形状骨料的投放,各种复合材料模型的二维建模,通用性较强。
附图说明
图1为本发明二维骨料投放方法——剩余空间法的流程图;
图2为本发明二维多边形骨料生成函数的流程图;
图3为本发明二维圆形、椭圆形和卵圆形骨料生成的流程图;
图4为本发明实例一的二维再生凹多边形骨料生成过程图;(a)为卵圆上取点生成凸多边形示意图;(b)为凸多边形内取点生成凹多边形示意图;(c)为背景像素生成骨料示意图,在多边形内的黑色像素代表骨料,白色像素代表砂浆;(d)为单个再生多边形骨料完全包围和部分包围图,黑色像素代表骨料,灰色像素代表老砂浆;(e)为多边形骨料重叠的二维矩阵图,元素值为0的像素代表骨料,元素值为1的像素代表砂浆,元素值为-1的像素代表骨料重叠部分;
图5为本发明实例一的剩余空间法投放二维再生凹多边形骨料过程图;图(a)~(e)中黑色像素代表砂浆,白色像素代表骨料,灰色像素代表老砂浆,白色线条代表剩余空间的骨架;图(f)为最终效果图,图中黑色像素代表骨料,白色像素代表砂浆,灰色像素代表老砂浆;
图6为本发明实例二的二维矩阵表示的二维卵圆骨料示意图,元素值为0的像素代表骨料,元素值为1的像素代表砂浆;
图7为本发明实例二的剩余空间法投放二维卵圆骨料过程图;图(a)~(e)中黑色像素代表砂浆,白色像素代表骨料,灰色像素代表老砂浆,白色线条代表剩余空间的骨架;图(f)为最终效果图,图中黑色像素代表骨料,白色像素代表砂浆,灰色像素代表老砂浆。
具体实施方式
为进一步解释本发明提供的建立细观骨料模型的算法,下面通过实例详细阐述;
实例一:
本实例说明再生凹多边形骨料的生成和投放,凹多边形是基于凸多边形生成的,包含了凸多边形的操作;
步骤1、确定矩阵规模建立模型
生成背景像素:
根据模拟试件的真实尺寸(100mm×100mm)确定骨料投放区域大小xmax×ymax=100×100,根据所需的精度拟定比例尺u=5,在编程软件内生成元素值全都为1的(u×ymax)×(u×xmax)=500×500二维矩阵作为模型的背景像素,矩阵中的每一个元素和背景像素中的正方形单元一一对应,记录每一个元素的编号、节点坐标和中心点坐标;例如:1号元素中心点坐标为(0.5,0.5),该元素也可看作x=1,y=1的元素;
步骤2、确定骨料参数
根据骨料体积占比pk、骨料最大粒径Dmax代入Walraven级配确定各级配的骨料半径r的范围和骨料累计体积占比百分数;例如要求投放骨料体积率达到50%,最大粒径是20mm,粒径范围为20~16mm,16~10mm,10~5mm,骨料半径范围为10~8mm,8~5mm,5~2.5mm,对应的累计骨料体积占比百分数为12.55%,32.7%,50.2%;
利用步骤3、建立凹多边形骨料函数
(3.1)生成已知长细比和等效半径的卵圆:
a=rd×ch (5)
b=rd×2/3 (6)
c=rd×2/3 (7)
(3.2)在卵圆中选取多边形顶点:
卵圆的长半径a、短半径b、对称半径c对应的四个端点A,B,C,D始终作为多边形骨料的固定顶点,之后将卵圆的长半径、短半径和对称半径平分成2份,并过平分点分别作垂直于这些轴的四条直线,与卵圆方程式相交得到卵圆上的8个点作为多边形骨料的顶点,记录每一个顶点的坐标(xi,yi),(i=1,2,3……8);如附图4(a);
以原点为旋转中心,将多边形顶点随机旋转一个角度θ,记录每个顶点的坐标(x′i,y′i)=(xicosθ+yisinθ,-xisinθ+yicosθ);
(3.3)将多边形顶点排序并将骨料平移到骨料投放中心(x0,y0):
在极坐标中,计算各顶点与原点连接的射线的角度,将各顶点按角度从小到大排序;
将多边形各个顶点坐标平移到为(xi′+x0,yi′+y0);
(3.4)判断骨料是否超出边界:
如果有任何顶点的坐标大于(u×ymax)或(u×xmax)或小于0,则该顶点坐标超出背景像素,本次不生成骨料;
(3.5)生成凹多边形骨料的凹点:
将旋转后顶点(xi′,yi′)连线的中点(xi″,yi″)和原点连接记为线段li,i=1,2,3……8,在li上取点(xaoi,yaoi)作为多边形的凹点;新生成凹点的坐标以下式表示:
xaoi=μixi″,yaoi=μiyi″,μi∈(0,1) (9)
式中,μi=该凹点到骨料投放中心的距离/li的长度,在(0,1)上随机取值,表示这条边新生成的凹点向内凹的程度,μi越接近1,该边凹陷高度较小,μi越接近0,该边凹陷高度较高;
例如:从GH边向内生成一个新的凹顶点,取GH的中点M,在直线OM上作一点N使得ON/OM=μ;凹点M的计算如下;如附图4(b);
式中(xG,yG)为G点坐标,(xH,yH)为H点坐标;
重复步骤(3.3);计算li的角度,将凹点与原来的8个多边形顶点按角度从小到大排序;
将新增的凹点坐标平移到为(xaoi+x0,yaoi+y0);
(3.6)开始投放骨料:
按顺序连接多边形各个顶点,将多边形骨料的各条边投影到背景像素,判断每个像素的中心点是否在该多边形内,若该像素中心点在多边形内,则该位置的像素为骨料,矩阵中的元素值减去1;若该像素中心点在多边形外或恰好位于多边形的边上,则该位置的像素为砂浆,矩阵中的元素值不变;如附图4(c);
上述元素值为0的像素代表骨料,元素值为1的像素代表砂浆;
结束函数;
利用步骤5建立完全包围或部分包围的再生骨料
(5.1)根据步骤3的骨料函数在背景像素中生成一个完整的凹多边形骨料;
(5.2)生成待投放的再生骨料:
将(5.1)中骨料的元素值从0改为0.5,即变为老砂浆;在骨料投放中心,令等效半径rd=rd/1.1作为再生骨料等效半径,再次利用步骤4的函数建立等效半径小于老砂浆等效半径的凹多边形骨料;将矩阵中将同时满足“在老砂浆内”和“在骨料内”的元素值改为0,值为0的元素设定为老骨料;单个骨料如附图4(d);
(5.3)开始投放骨料;结束函数;
进行步骤6、骨料投放方法——剩余空间法
(6.1)在模型中心、距模型边界2/3的范围内选取一个坐标作为骨料的中心点用步骤5生成的再生凹多边形骨料函数投放第一个骨料;此处所设置的范围为保证第一个骨料一定能成功投放;
(6.2)选取模型中未投放骨料的剩余空间作为下一批骨料投放的区域(灰色空间);并通过中轴变换算法,获取剩余空间的骨架(白色线条);在骨架上的像素点中,若某个像素点上下左右四个位置的像素均为骨架像素点,则该像素点为骨架的分支点;记录所有分支点的坐标作为骨料投放时中心点的位置;每一轮投放计算的骨架如附图5;附图中白色的细线为计算得到骨架,骨架的交点为骨架分支点;
所述骨架为剩余空间内最大内切圆的圆心的集合;
(6.3)依次选取分支点的坐标,运行再生凹多边形骨料函数生成和投放当前等效半径的骨料;
若本次不生成骨料,回到步骤(6.3)选取下一个分支点;
若矩阵中未出现任何负值,则投放的骨料与之前的所有骨料都不重叠,骨料投放成功,保留该骨料并记录中心点坐标,等效半径和旋转角;计算当前体积率L,若L满足投放含量要求,则结束投放,保存最终的矩阵,并记录当前体积率;
若矩阵中出现负值,则投放的骨料与之前的任一骨料重叠,删除新投放的骨料;如附图4(e);
所有分支点都经过选取后,该轮投放结束;该轮投放过程中,若L未达到投放含量的要求、且在该轮投放中有骨料能够投放成功,则模型生成过程未结束,接着选取该轮投放结束后的剩余空间进行步骤(6.2)、(6.3)的操作;
(6.4)该轮所有分支点均不能成功投放骨料或L达到投放含量时,投放终止,将二维矩阵的外边界的元素删除,使背景像素和真实的骨料范围一致,保存最终的矩阵;
最终得到的骨料投放体积率达到50.6%,半径为9mm,6.5mm,3.75mm的骨料分别有4,11,29;在4核4线程Intel(R)Core(TM)i5-7300HQ CPU@2.50GHz内存8GB下,运行10次平均用时4.22秒;能满足实际投放要求;若需投放更大体积率的混凝土,则把大粒径范围的粒径取平均值以上,或者小粒径范围的粒径取平均值以下;若需生成界面过渡区,则使老砂浆和老骨料有相同的旋转角,把老骨料的等效半径按情况缩减。
实例二:
本实例的目的是说明圆、椭圆和卵圆的生成和投放,由于圆、椭圆和卵圆仅存在形状公式的不同,故选取较为特殊的卵圆形骨料的生成和投放进行说明。
步骤1、确定矩阵规模建立模型
生成背景像素:
根据模拟试件的真实尺寸(100mm×80mm)确定骨料投放区域大小xmax×ymax=100×80,根据所需的精度拟定比例尺u=6,在编程软件内生成元素值全都为1的(u×ymax)×(u×xmax)=480×600二维矩阵作为模型的背景像素,矩阵中的每一个元素和背景像素中的正方形单元一一对应,记录每一个元素的编号、节点坐标和中心点坐标;
生成两组分别用于定位横坐标和纵坐标的像素采样点o,p:
步骤2、确定骨料参数
同实例一;
利用步骤4建立卵圆形骨料函数
(4.1)扩大背景像素:
将全1二维矩阵扩大到(u×ymax+2)×(u×xmax+2)=482×602,并将扩大区域的元素值设为0;
(4.2)卵圆形骨料,选定长细比ch=1.6,取骨料半径范围内的最大平均半径作为卵圆圆骨料的等效半径rly,例如根据长细比ch和等效半径rly计算得到卵圆的长半径a,短半径b和对称半径c,计算过程同实例一;以骨料投放中心(x0,y0)作为卵圆中心随机旋转一个角度θ,生成旋转后的卵圆公式,将o、p代入旋转后的卵圆公式生成卵圆;
式中N∈[1.03,1.04]为影响范围,取1.03;
该不等式中,左侧得到的一个482×602的矩阵D,该矩阵与背景像素的二维矩阵具有同样的规模、坐标;上式矩阵与矩阵点乘为矩阵各个相同位置元素相乘;此操作为了记录矩阵D中元素值满足不等式(14)(15)左边的元素的坐标,用于投影到背景像素;因为卵圆公自有的缺陷,所以在满足上述公时还需满足下式:
(o-x0)2+(p-y0)2≤Na2 (15)
式中N的取值和式(14)相同;
(4.3)判断骨料是否超出边界:
将骨料投影到背景像素,将矩阵D中满足条件的元素的坐标投影到二维矩阵,则该位置的像素为骨料,二维矩阵中的元素值减去1;如附图6;
若矩阵内出现负值,则该圆超出真实的骨料范围,将减1的元素值加1,本次不生成骨料;
若矩阵内不出现负值,即骨料顶点都在真实骨料范围内,开始投放骨料;
上述元素值为0的像素代表骨料,元素值为1的像素代表砂浆;
进行步骤6、骨料投放方法——剩余空间法
(6.1)在模型中心、距模型边界2/3的范围内选取一个坐标作为骨料的中心点用步骤4生成的卵圆函数投放第一个骨料;
(6.2)操作同实例一;每一轮投放计算的骨架如附图7;附图中白色的细线为计算得到骨架,骨架的交点为骨架分支点;
(6.3)依次选取分支点的坐标,运行卵圆函数生成和投放当前等效半径的骨料;
后续步骤同实例一;
将二维矩阵的扩大区域的元素删除;最终得到的骨料投放体积率达到49.59%,半径为9mm,6.5mm,3.75mm的骨料分别有4,12,35;在4核4线程Intel(R)Core(TM)i5-7300HQCPU@2.50GHz内存8GB下,运行10次平均用时2.09秒;能满足实际投放要求;若需投放更大体积率的混凝土,则把大粒径范围的粒径取平均值以上,或者小粒径范围的粒径取平均值以下;例:半径范围11~7mm取10.5mm作等效半径,半径范围6~1.5mm取3.55mm作等效半径其他等效半径不变,所得骨料体积率能达到49.9%;
与传统随机骨料相比较,随机骨料模型多采用在投放空间中均匀随机选取点作为骨料投放的中心,在投放后期容易与已经投放的骨料相重叠,不断的投放失败又不断的重复失败;而剩余空间法在选取骨料中心点的第一步即是选定模型中未投放的部分,之后通过做剩余部分的骨架优化取点流程,提高骨料投放的成功率,故提高整个模型生成的效率。
Claims (3)
1.一种高效的混凝土二维骨料生成及投放方法——剩余空间法,其特征在于,包括以下步骤:
步骤1、确定矩阵规模建立模型
(1.1)生成背景像素:
根据模拟试件的真实尺寸确定骨料投放区域大小xmax×ymax,根据所需的精度拟定比例尺u,在编程软件内生成元素值全都为1的(u×ymax)×(u×xmax)二维矩阵作为模型的背景像素,矩阵中的每一个元素和背景像素中的正方形单元一一对应,记录每一个元素的编号、节点坐标和中心点坐标;
(1.2)生成两组分别用于定位横坐标和纵坐标的像素采样点o,p:
o用于定位横轴,它的行元素值从左到右依次为1,2,3……(u×xmax),共(u×ymax)行,并且同一列元素值相同;
p用于定位纵轴,它的列元素值从上到下依次为1,2,3……(u×ymax),共(u×xmax)列,并且同一行元素值相同;
步骤2、确定骨料参数
根据骨料体积占比pk、骨料最大粒径Dmax代入Walraven级配确定各级配的骨料半径r的范围和骨料累计体积占比百分数;
步骤3、建立多边形骨料函数
(3.1)生成已知长细比和等效半径的卵圆:
选定长细比ch;在骨料半径范围内取外接卵圆的等效半径rd;根据长细比ch和等效半径rd计算得卵圆的长半径a,短半径b和对称半径c,以(0,0)坐标作为原点生成卵圆方程式;
所述等效半径为面积与圆面积相等时的圆半径;
(3.2)在卵圆中选取多边形顶点:
卵圆的长半径a、短半径b、对称半径c对应的四个端点始终作为多边形骨料的固定顶点,之后将卵圆的长半径、短半径和对称半径平分成2份,并过平分点分别作垂直于这些轴的四条直线,与卵圆方程式相交得到卵圆上的8个点作为多边形骨料的顶点,记录每一个顶点的坐标(xi,yi),(i=1,2,3......8);
以原点为旋转中心,将多边形顶点随机旋转一个角度θ,记录每个顶点的坐标(xi′,yi′);
(3.3)将多边形顶点排序并将骨料平移到骨料投放中心(x0,y0):
在极坐标中,计算各顶点与原点连接的射线的角度,将各顶点按角度从小到大排序;
将多边形各个顶点坐标平移到为(x′i+x0,yi′+y0);
(3.4)判断骨料是否超出边界:
如果有任何顶点的坐标大于(u×ymax)或(u×xmax)或小于0,则该顶点坐标超出背景像素,本次不生成骨料;
如果骨料顶点坐标都在背景像素范围内,若为凸多边形则进行步骤(3.6);
如果骨料顶点坐标都在背景像素范围内,若为凹多边形则进行步骤(3.5)(3.6);
(3.5)生成凹多边形骨料的凹点:
将旋转后顶点(xi′,yi′)连线的中点(xi″,yi″)和原点连接记为线段li,i=1,2,3......8,在li上取点(xaoi,yaoi)作为多边形的凹点;新生成凹点的坐标以下式表示:
xaoi=μixi″,yaoi=μiyi″,μi∈(0,1) (1)
式中,μi=该凹点到骨料投放中心的距离/li的长度,在(0,1)上随机取值,表示这条边新生成的凹点向内凹的程度,μi越接近1,该边凹陷高度较小,μi越接近0,该边凹陷高度较高;
重复步骤(3.3);计算li的角度,将凹点与原来的8个多边形顶点按角度从小到大排序;
将新增的凹点坐标平移到为(xaoi+x0,yaoi+y0);
(3.6)开始投放骨料:
按顺序连接多边形各个顶点,将多边形骨料的各条边投影到背景像素,判断每个像素的中心点是否在该多边形内,若该像素中心点在多边形内,则该位置的像素为骨料,矩阵中的元素值减去1;若该像素中心点在多边形外或恰好位于多边形的边上,则该位置的像素为砂浆,矩阵中的元素值不变;该算法不只适用于某种特定形态的多边形骨料,对于不同的多边形骨料算法,只要多边形各顶点坐标是明确的,即可使用该方法进行矩阵内骨料的生成;
上述元素值为0的像素代表骨料,元素值为1的像素代表砂浆;
结束函数;
步骤4、建立圆形、椭圆形或卵圆形骨料函数
(4.1)扩大背景像素:
将全1二维矩阵扩大到(u×ymax+2)×(u×xmax+2),并将扩大区域的元素值设为0;
(4.2)若为圆形骨料,圆形骨料的等效半径即为半径ry,在骨料半径范围内取值,以骨料投放中心作为圆心,将o、p代入圆公式生成圆;
若为椭圆形骨料,选定长细比ch,在骨料半径范围内取椭圆骨料的等效半径rty;根据长细比ch和等效半径计算椭圆的长半径a和短半径b,以骨料投放中心作为椭圆中心随机旋转一个角度,生成旋转后的椭圆公式,将o、p代入旋转后的椭圆公式生成椭圆;
若为卵圆形骨料,选定长细比ch,在骨料半径范围内取卵圆骨料的等效半径rly,根据长细比ch和等效半径rly计算得到卵圆的长半径a,短半径b和对称半径c,以骨料投放中心作为卵圆中心随机旋转一个角度,生成旋转后的卵圆公式,将o、p代入旋转后的卵圆公式生成卵圆;
上述o、p矩阵的乘除为矩阵点乘和点乘,即矩阵各个相同位置元素相乘和相除;生成形状所在的矩阵记为矩阵D;在矩阵D中记录满足条件的元素的坐标;
(4.3)判断骨料是否超出边界:
将骨料投影到背景像素,即将矩阵D中满足条件的元素的坐标投影到二维矩阵,则该位置的像素为骨料,矩阵中的元素值减去1;
若矩阵内出现负值,则该圆超出真实的骨料范围,将减1的元素值加1,本次不生成骨料;
若矩阵内不出现负值,即骨料顶点都在真实骨料范围内,开始投放骨料;
上述元素值为0的像素代表骨料,元素值为1的像素代表砂浆;
结束函数;
步骤5、建立再生骨料的函数
(5.1)根据步骤3或步骤4的骨料函数在背景像素中生成一个完整的骨料;
(5.2)生成待投放的再生骨料:
再生骨料中一侧为老骨料另一侧为老砂浆的生成方法:
过骨料投放中心建立一条直线,该直线斜率在(0,π)之间均匀随机。在矩阵中选定中心点同时满足“在骨料内”和“在直线一侧”的元素,将矩阵中这些位置的元素值改为0.5,即老砂浆,值为0的元素设定为老骨料;
再生骨料内,老骨料被老砂浆完全包围或部分包围的生成方法:
将(5.1)中骨料的元素值从0改为0.5,即变为老砂浆;在骨料投放中心,利用步骤3或步骤4的函数建立等效半径小于老砂浆等效半径的骨料;将矩阵中将同时满足“在老砂浆内”和“在骨料内”的元素值改为0,值为0的元素设定为老骨料;
(5.3)开始投放骨料;结束函数;
步骤6、骨料投放方法——剩余空间法
(6.1)在模型中心、距模型边界2/3的范围内选取一个坐标作为骨料的中心点用步骤3、步骤4或步骤5的函数投放第一个骨料;
(6.2)选取模型中未投放骨料的剩余空间作为下一批骨料投放的区域;并通过中轴变换算法,获取剩余空间的骨架;在骨架上的像素点中,若某个像素点上下左右四个位置的像素均为骨架像素点,则该像素点为骨架的分支点;记录所有分支点的坐标作为骨料投放时中心点的位置;
所述骨架为剩余空间内最大内切圆的圆心的集合;
(6.3)依次选取分支点的坐标,运行步骤3、步骤4或步骤5的函数生成和投放当前等效半径的骨料;
若本次不生成骨料,回到步骤(6.3)选取下一个分支点;
若矩阵中未出现任何负值,则投放的骨料与之前的所有骨料都不重叠,骨料投放成功,保留该骨料并记录中心点坐标,且对于多边形、椭圆形和卵圆形骨料还需记录等效半径和旋转角,对于圆形骨料记录半径;计算当前体积率L,若L满足投放含量要求,则结束投放,保存最终的矩阵,并记录当前体积率;
若矩阵中出现负值,则投放的骨料与之前的任一骨料重叠,删除新投放的骨料;
所有分支点都经过选取后,该轮投放结束;该轮投放过程中,若L未达到投放含量的要求、且在该轮投放中有骨料能够投放成功,则模型生成过程未结束,接着选取该轮投放结束后的剩余空间进行步骤(6.2)、(6.3)的操作;
(6.4)该轮所有分支点均不能成功投放骨料或L达到投放含量时,投放终止,保存最终的矩阵。
2.根据权利要求1所述的一种高效的混凝土二维骨料生成及投放方法——剩余空间法,其特征在于,开始生成骨料时,分别在每一个粒径范围内取一个等效半径,以所取的最大半径作为投放骨料的等效半径,步骤(6.3)中每次有骨料投放成功后,若当前体积率L不满足投放含量要求,且当前体积率L满足该粒径范围的累计体积占比百分数时,将等效半径改为下一粒径范围的等效半径;本发明所有半径均需乘以u作为编程所用半径。
3.根据权利要求1所述的一种高效的混凝土二维骨料生成及投放方法——剩余空间法,其特征在于,保存模型时,多边形骨料的模型可直接保存,圆形、椭圆形和卵圆形骨料的模型需对投放结束后的二维矩阵进行以下处理:
将二维矩阵扩大区域的元素删除,使背景像素和真实的骨料范围一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110242979.3A CN113051789A (zh) | 2021-03-05 | 2021-03-05 | 一种高效的混凝土二维骨料生成及投放方法——剩余空间法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110242979.3A CN113051789A (zh) | 2021-03-05 | 2021-03-05 | 一种高效的混凝土二维骨料生成及投放方法——剩余空间法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113051789A true CN113051789A (zh) | 2021-06-29 |
Family
ID=76509997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110242979.3A Pending CN113051789A (zh) | 2021-03-05 | 2021-03-05 | 一种高效的混凝土二维骨料生成及投放方法——剩余空间法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051789A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010940A (zh) * | 2021-02-25 | 2021-06-22 | 同济大学 | 一种可控参数的细观型钢混凝土柱截面建模方法 |
CN113860000A (zh) * | 2021-10-21 | 2021-12-31 | 四川阿泰因机器人智能装备有限公司 | 一种智能变速均衡抛粮方法 |
-
2021
- 2021-03-05 CN CN202110242979.3A patent/CN113051789A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010940A (zh) * | 2021-02-25 | 2021-06-22 | 同济大学 | 一种可控参数的细观型钢混凝土柱截面建模方法 |
CN113860000A (zh) * | 2021-10-21 | 2021-12-31 | 四川阿泰因机器人智能装备有限公司 | 一种智能变速均衡抛粮方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113051789A (zh) | 一种高效的混凝土二维骨料生成及投放方法——剩余空间法 | |
CN104063903B (zh) | 三维实体模型的四面体网格生成方法和装置 | |
CN109408912B (zh) | 基于Revit二次开发的异形构件参数化建模方法 | |
CN110675508B (zh) | 一种bim模型几何图形化简方法 | |
CN106919763A (zh) | 一种产品结构尺寸优化方法 | |
CN113987750B (zh) | 一种含随机缺陷的全级配混凝土三维细观模型建模方法 | |
CN111125901A (zh) | 一种基于激光扫描的三维爆破可视化设计方法 | |
CN110162849B (zh) | 一种混杂纤维混凝土的建模方法 | |
Zheng et al. | Optimization of STL model and layer shape for laser cladding forming | |
CN114818031A (zh) | 基于bim设计技术的异性幕墙系统 | |
CN111159927B (zh) | 基于体素矩阵的三维不规则形状颗粒投放的数值建模方法 | |
CN109684739A (zh) | 一种基于bim模型的钢筋参数生成方法、装置及设备 | |
Du et al. | 3D solid model generation method based on a generative adversarial network | |
CN114186434A (zh) | 基于逐级划分的沥青混合料三维细观结构模型构建方法 | |
CN115050431B (zh) | 一种水泥稳定再生集料的三维细观结构的建模分析方法 | |
CN113867267B (zh) | 基于bim球壳结构找型构造钢管数字化加工系统及方法 | |
CN1391194A (zh) | 绘制三维图形的装置 | |
CN115937460A (zh) | 基于最优传输的保特征表面重建方法 | |
CN111177969B (zh) | 一种可控骨料间距的二维随机骨料生成及投放方法 | |
CN1050428C (zh) | 一种确定车辆外后视镜镜面的方法 | |
Menzel | Evolvable free-form deformation control volumes for evolutionary design optimization | |
Kravchenko et al. | The fractal Mandelbrot set and the shaping of the 3D fractal | |
CN116822309A (zh) | 一种混杂纤维的混凝土细观有限元模型的建立方法 | |
CN113962066B (zh) | 一种含六相组分的钢筋混凝土三维细观模型 | |
CN116362092A (zh) | 一种结合三角构网和随机投放算法的半柔性路面材料三维细观结构模型建立方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |