1.一种基于离散元的爆堆及块度分布的三维模拟方法,其特征在于,包括:
该爆堆三维模拟算法分为两步,第一步为生成整个爆堆表面的岩块;第二步就是把整个爆堆表面作为封闭的初始面,以此为基础对整个爆堆内部进行填充;
第一步:
步骤1、分别随机生成8个球体记录半径,并把它随机赋予12条边,即球心位于边的端点;
步骤2、对12条边分别按照各自箭头的方向进行处理,使之除去端点球半径之后的剩余部分被球体填充,即球心位于边上;
步骤3、根据图1中的规定,分别提取相关边组成6个面,统计6个面上的球体直径分布,并把面1作为当前面;注意为了形成的封闭链,此时需依据图中信息对相关边进行方向处理,使之整个面上边缘的球体按照顺时针或者逆时针排列,并在此基础上对面上所有球体按照顺序赋值,即每个球体都有相应的序列号;
步骤4、随机寻找当前面中的一点作为终点,如面的中心点,并对当前面上的球体直径进行统计形成已有球体尺寸数据;
步骤5、计算构成初始封闭链的球体中距终点最远的球作为球1,并按照序列号寻找其两个相邻球体,把两个相邻球体中距终点最远的球作为球2;当在寻找球1和球2时,如果出现多个最远球体,则在多个最远球体中随机抽取一个球作为最远球体;
步骤6、依据块度分布曲线和已有球体尺寸数据生成新的球体的直径;
步骤7、根据球1和球2和已有的新球体的半径计算新球体的位置,注意球体球心位于面上;
步骤8、判断新球体与当前面上已有的球的关系,如果存在重合,则利用原先球体的直径减去某个较小的随机数形成新的直径,并返回步骤7;直至新球体与当前面上已有的球体不重合,进行步骤9;
步骤9、根据新球体与球1、球2相邻的球的关系更新封闭链,并把新球体直径加入已有球体尺寸数据;如果在更新封闭链时某个球体被剔除,则统计剔除的球体形成总的球体数据,返回步骤5;
步骤10、当当前面被填满,即步骤8生成的球体半径小于某个较小的随机数,并不成功次数超过允许的尝试次数后,当前面填充流程停止;
步骤11、判断6个面是否都被填满,如果否,则把下个面设置成当前面,返回步骤4;如果是,则进行步骤12;
步骤12、对6个面根据所在相应位置进行旋转构成三维爆堆表面;
第二步:
步骤13、依据爆堆近似的梯形柱体计算爆堆的中心坐标作为中心点,并对爆堆表面的所有球体直径进行统计形成已有球体尺寸数据;
步骤14、计算构成初始封闭面的球体中距中心点最远的球体作为球1,以与球1相邻的球体中距中心点最远的球体作为球2,以与球1和球2均相邻的球体中距中心点最远的球体作为球3;
步骤15、依据块度分布曲线和已有球体的位置,注意球体球心位于爆堆内部;
步骤16、根据球1、球2、球3和已有的新球体的半径计算新球体的位置;注意球体球心位于爆堆内部;
步骤17、判断新球体与爆堆上已有的球的关系,如果存在重合,则利用原先球体的直径减去某个较小的随机数形成新的直径,并返回步骤16;直至新球体与当前面上已有的球体不重合,进行步骤18;
步骤18、在新球体、球1、球2、球3之间会有较小的空隙,可以在中间空隙处填充一个较小的球体,使之与四球体互相切;
步骤19、根据新球体与球1、球2、球3相邻的球的关系更新封闭面并把新球体直径加入已有球体尺寸数据;如果在更新封闭面时某个球体被剔除,则统计剔除的球体形成总的球体数据,返回步骤15;
步骤20、当爆堆内部被填满,即步骤17生成的球体半径小于某个较小的随机数,并不成功次数超过允许的尝试次数后,则爆堆内部填充流程停止。
2.根据权利要求1所述的一种基于离散元的爆堆及块度分布的三维模拟方法,其特征在于,在执行爆堆三维模拟算法前还包括步骤:爆堆形态主要参数的获取。
3.根据权利要求2所述的一种基于离散元的爆堆及块度分布的三维模拟方法,其特征在于,在爆堆形态主要参数的获取前还包括步骤:爆堆三维形态模型的构建。
4.根据权利要求3所述的一种基于离散元的爆堆及块度分布的三维模拟方法,其特征在于,在爆堆三维形态模型的构建前还包括步骤:爆堆岩块形状的等效虚拟。
5.根据权利要求4所述的一种基于离散元的爆堆及块度分布的三维模拟方法,其特征在于,在爆堆岩块形状的等效虚拟前还包括步骤:爆堆岩块形态虚拟。
6.根据权利要求5所述的一种基于离散元的爆堆及块度分布的三维模拟方法,其特征在于,所述爆堆岩块形态虚拟包括岩块尺寸和形状的等效虚拟。
7.根据权利要求1所述的一种基于离散元的爆堆及块度分布的三维模拟方法,其特征在于,步骤1中,注意在相接边端点的球相同。
8.根据权利要求1所述的一种基于离散元的爆堆及块度分布的三维模拟方法,其特征在于,步骤12中,三维爆堆表面即为第二步中的封闭面。
9.根据权利要求1所述的一种基于离散元的爆堆及块度分布的三维模拟方法,其特征在于,步骤18中,爆堆会有许多不能识别的细小颗粒,可以对此作为一个补充。