首页/文章/ 详情

即将直播:动荷载和降雨作用下露天煤矿内排土场浅层滑坡机理

1年前浏览1249
导读:数值模拟作为科学研究的重要手段,其模型构建的复杂性会随着研究的深入而提高,而复杂的数值模拟,往往会涉及代码的二次开发。那么如何通过二次代码的开发进而构建出理想的数值模型呢?经过本人对MatDEM软件的长期摸索与总结,本文针对二次代码的开发问题分享了本人对软件的一些理解、经验总结和学习心得。

近日“仿真秀-MatDEM奖学金”国产优秀离散元仿真应用讲座开启3月15日19时30分,笔者将以获奖代表在“2022仿真秀-MatDEM奖学金”线上讲座作报告《动荷载和降雨作用下露天煤矿内排土场浅层滑坡机理》,详情见后文:

一、基本介绍
1、obj_Box对象
obj_Box对象作为Matdem二次开发的基础模型箱,是MatDEM建模器中不可或缺的一部分。通常构建模型的代码分为三大步,第一步代码主要建立起经过一定压实的颗粒堆积体,如图1(a)所示;第二步代码切割外形并赋材料参数,所需用到的MatDEM建模器有Tool_Cut 和material,如图1(b)所示。
第三步代码通常为模型的过程模拟,该步代码中均会运行多步的d.balance('Standard',0.5) [表示将进行0.5次标准平衡迭代],多步的标准平衡迭代过程可视为“让子弹飞一会”的过程,例如,模型中的A区域颗粒在a秒时处于不平衡,标准平衡迭代运行了b秒,则a+b秒时,A区域颗粒的不平衡已影响到了更大区域的颗粒,同时A区域颗粒的不平衡程度得到了一定的削减。当对一个处于不平衡状态的模型持续进行标准平衡迭代时,在将模型迭代到新的平衡状态之前,模型处于动态的变化过程。
当采用数值模拟软件进行研究时,通常会涉及到对某实际现象过程的模拟,而实现过程的模拟,可通过以下两种思路达到:
1)当前两步代码所构建模型的初始状态处于不平衡状态时,在不额外添加第三步代码时,过程模拟任可实现;
2)前两步代码所构建模型的初始状态处于平衡状态时,可额外添加第三步的代码或规则来引发模型的不平衡,从而实现过程的模拟。值得注意的是,前者实现更多的是对处于某临界状态后的过程模拟和分析,而后者则在前者的基础上,额外实现了某一或多项因素诱发模型失衡的过程模拟,后者包括了因素诱发模型失衡和模型失衡后的变化过程。
2、颗粒编号和接触关系
软件的模拟过程涉及到所有模型颗粒间的多项指标对应计算,软件在这反复而繁琐的计算中如何做到精准无误的呢?这里就涉及到另一个问题,模型的颗粒是如何编号的?
经摸索发现,模型颗粒是以从模型的左面到右面、前到后和下到上的顺序进行编号的。假设图1(b)模型的活动单元数为10000,则该模型的颗粒编号可以图2中的第一列d.GROUP.sample表示。
图2颗粒编号及各项指标存储格式图
邻居矩阵,表示了颗粒间的接触关系,在数值模拟中起到重要作用,具体见图3。
图3邻居矩阵
邻居矩阵的第一列为所有颗粒的编号,右侧为与第一列颗粒有接触关系的周围颗粒编号。
前文提及,可通过额外添加第三步的代码或规则来引发模型的不平衡,从而实现因素诱发模型失衡的模拟过程。其中,模拟某一或多项因素诱发模型失衡的过程,其实是对模型中所有或部分指定颗粒的某一项或多项指标进行规则附加的过程。具体为何种诱发因素和何种指标的变化,需要研究者结合自己的研究方向与考虑范畴而定。
二、MatDEM二次开发要点
下文重点介绍了涉及代码二次开发的几点必要内容、思路和案例:
1、丰富颗粒属性
在模型文件d.mo和d.status目录下存有颗粒的多个属性,其存储格式具体可见图2中的红框部分,由此可知模型的各个颗粒的各项参数均是按颗粒编号进行有序排列的。可添加自定义的指标参数来丰富颗粒的属性类别,例如图2中自定义的X1列[运行X1=ones(1:10000,1) *0.25;]。其中,X1列的指标参数可视为模型的所有颗粒的初始含水率、初始温度或其他指标含义。此外,还可以自定义动态指标,代码如图4所示。图5所演示的边坡动力响应动图则运用了addTimeProp代码。

图4动态指标代码

图5动力响应模型
2、筛选颗粒并提取编号
筛选出所需的颗粒并提取其编号,例如筛选出图6中的绿色颗粒并编号。根据绿**域的位置特点,以aX和aZ来作为过滤器,则具体筛选过程见图7。其他的过滤思路和方法可见与过滤器相关的事例代码。
图6边坡剖面图
图7筛选并提取的代码及含义
三、理论公式的结合
1、单独对模型的部分颗粒附加规则
对指定颗粒的某项指标附加规则,例如对以上绿**域颗粒的含水率在之后的每一步迭代均增加0.2倍,则代码如下。
2、对模型的所有颗粒附加规则
对所有颗粒的某项指标附加规则,例如令模型的所有颗粒均遵循以下规则:两相邻颗粒的含水率分别为x1a和x1b,则相邻颗粒间的水分运移量为k(xa-xb)。
此处需用到邻居矩阵d.mo.nBall,可运行Around =X1(d.mo.nBall);得一包含有颗粒间接触关系且以X1指标表示的矩阵Around,可运行Itself1=ones(1,size(d.mo.nBall,2)); Itself=X1*Itself1;得各列均以X1指标表示的矩阵Itself。因此,在当前迭代步中,模型所有相邻颗粒间的水分运移量可根据公式k(xa-xb)以k*(Around-Itself)来计算出。
3、指标间的规则附加
 思路同3.1。
四、实际案例
本案例对降雨入渗过程模拟的实现方式,均涵盖了以上所提及的内容。

小结:模型中的所有颗粒均有自身的编号,编号可视为对所有的指标进行了身份标记,颗粒的众多指标也均依序排放,除了系统自带的指标外,可自定义地添加额外的指标来丰富颗粒的属性,还可额外添加动态指标。(值得注意的一点是,添加的指标属于虚拟或等效的指标,该指标无法做到完全实际,例如前文额外添加的X1指标可视为所有颗粒的初始含水率,虽后续模拟了降雨入渗现象,但个人认为还充当不了雨滴这一实在的物质对坡面的冲击溅蚀模拟)。通过对所有或指定颗粒中的多项指标进行理论公式的结合,一定程度上可实现较为复杂的模拟过程,以便于后续更进一步的分析研究。

五、露天煤矿内排土场浅层滑坡机理公开课

近日,“仿真秀-MatDEM奖学金”国产优秀离散元仿真应用讲座开启3月15日19时30分,我们将邀请辽宁工程技术大学朱永东同学以获奖代表在“2022仿真秀-MatDEM奖学金”线上讲座作报告《动荷载和降雨作用下露天煤矿内排土场浅层滑坡机理》,以下是直播安排,识别下方二维码报名,支持朋友圈回看。

动荷载和降雨作用下露天煤矿内排土场浅层滑坡机理-仿真秀直播

(完)
声明:本文首发仿真秀App,部分图片和内容转自网络如有不当请联系我们,欢迎分享,禁止私自转载,转载请联系我们。
来源:仿真秀App
二次开发离散元理论材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-03-15
最近编辑:1年前
仿真圈
技术圈粉 知识付费 学习强国
获赞 9014粉丝 20377文章 3157课程 204
点赞
收藏
未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈