首页/文章/ 详情

碎屑物冲击时挡板结构的支护性能模拟

1年前浏览1915

0 引言


    这里想要尝试做的是同济大学黄雨老师的 Computational assessment of baffle performanceagainst rapid granular flows。 这篇文章从模拟方面论证了不同挡板结构对碎屑物冲击的支护性能评价。


1、成样


    这里模拟颗粒运移,所以对初始的模型平衡要求并不是特别高,为了计算省事,只solve到-2次方就停止了,有计算条件的同学可以到-5次方。


    我们的模型大概是下面这个样子:

image.png


    这里的建模方式是在水平向进行墙体和颗粒区域的构建,然后将其旋转到指定角度。在初始模型中,颗粒的前端应当是有挡土结构的。


    model new

    def par    angle=40    rdmin=0.004    rdmax=rdmin*1.5    shiyang_width=0.44    shiyang_height=0.15end@par



    geometry set "shiyang"geometry generate box [-2.19-shiyang_width] -2.19 0 0.4 0 @shiyang_heightgeometry rotate angle @angle axis (0,1,0) origin (0,0,0)

    model domain extent [(-2.19-shiyang_width)*math.cos(angle*math.pi/180.0)] ...         [(-2.19)*math.cos(angle*math.pi/180.0) shiyang_height] 0 0.4  [(2.19)*math.sin(angle*math.pi/180.0)-shiyang_height] ...            [(2.19 shiyang_width)*math.sin(angle*math.pi/180.0) shiyang_height] ... ball distribute radius @rdmin @rdmax  porosity 0.4 range geometry-space "shiyang" ...    inside

    model domain extent -4 1 -1 1 0 4wall generate id 1 box -3 0 0 0.4 one-wallwall generate id 2 polygon (-2.19,0,0) (-2.19,0.4,0) (-2.19,0.4,0.4) ...        (-2.19,0,0.4) wall rotate axis (0,1,0) point (0,0,0)   angle @angle



    ball attribute density 2.7e3 damp 0.7

    contact cmat default type ball-facet model linear method deform emod 100e6 kratio 1.5 property  fric 0contact cmat default type ball-ball model linear method deform emod 100e6 kratio 1.5 property  fric 0.2model cycle 2000 calm 50ball delete range  geometry-space "shiyang" outsidemodel gravity 9.8

    model cycle 1model solve ratio-average 1e-2

    ball attribute damp 0.2model cycle 1model solve ratio-average 1e-2model save "sample"



    生成的模型如图:


    image.png


    可以看到在重力影响下,式样是不能维持一开始的方形。


    2 下落



        这个事情不难,只需要将初始的挡土结构删掉,式样便可以在重力作用下实现下落。需要注意的是,由于一开始我们的方形墙体指定的是onewall,所以无法从wall上面直接拿到冲击力,需要遍历面片上的接触来获得需要的力。这里是每0.5s保存一个sav文件,共计算了10s。


      model restore "sample"model mechanical time-total 0

      def wall_init    wp5=wall.facet.find(5)    wp6=wall.facet.find(6)end@wall_init

      def jiance    whilestepping    force=0    loop foreach ct wall.facet.contactmap(wp5)        force =math.mag(contact.force.global(ct))    endloop    loop foreach ct wall.facet.contactmap(wp6)        force =math.mag(contact.force.global(ct))    endloopend

      wall delete walls range id 2[baocunpinlv=0.5][time_record=-10][count=0]def savefile    time=mech.time.total    if time-time_record >= baocunpinlv then        filename=string.build("jieguo%1",count)        command            model save @filename        endcommand        time_record=time        count =1    endif    end                        fish callback add @savefile -1.0 history id 1 @forcemodel cycle 1model solve time 10model save "result"


      3 挡板结构模拟


          挡板结构我是写了一个dat,然后在下落的时候call一下,便可以自动生产挡板了。这里比较的为方形和三角形挡板。

      即:

      image.png


      挡板的逻辑和前面类似,也是先在x-y面上定义,然后旋转到指定角度上。


      方形挡板:



        [d=0.4/10.0][DBack=0.4/3.0]geometry set "pile_back"geometry generate box [-d*0.5] [d*0.5] [-d*0.5] [d*0.5] 0 0.3geometry translate -0.42 0 0geometry rotate angle @angle axis (0,1,0) origin (0,0,0)





        wall import from-geometry "pile_back" name "pile_back_1"def addpile_back    wall_count=2    loop n(1,3)        wall_name=string.build("pile_back_%1",wall_count)        command                        geometry translate 0 @DBack 0            wall import from-geometry "pile_back" name @wall_name        endcommand            wall_count =1    endloopend@addpile_backgeometry set "pile_front"geometry generate box [-d*0.5] [d*0.5] [-d*0.5] [d*0.5] 0 0.3geometry translate -0.21 [DBack*0.5] 0geometry rotate angle @angle axis (0,1,0) origin (0,0,0)

        wall import from-geometry "pile_front" name "pile_front_1"def addpile_front        wall_count=2    loop n(1,2)        wall_name=string.build("pile_front_%1",wall_count)        command                        geometry translate 0 @DBack 0            wall import from-geometry "pile_front" name @wall_name        endcommand            wall_count =1    endloopend@addpile_front


        三角形挡板:


          [d=0.4/10.0][DBack=0.4/3.0]geometry set "pile_back"geometry edge create by-position (0,[-d*0.5],0) ([-d*0.5],0,0)  (0,[d*0.5],0) (0,[-d*0.5],0)geometry generate from-edges extrude (0,0,0.3) segments 1geometry triangulate clean geometry translate -0.42 0 0geometry rotate angle @angle axis (0,1,0) origin (0,0,0)





          wall import from-geometry "pile_back" name "pile_back_1"def addpile_back    wall_count=2    loop n(1,3)        wall_name=string.build("pile_back_%1",wall_count)        command                        geometry translate 0 @DBack 0            wall import from-geometry "pile_back" name @wall_name        endcommand            wall_count =1    endloopend@addpile_backgeometry set "pile_front"geometry edge create by-position (0,[-d*0.5],0) ([-d*0.5],0,0)  (0,[d*0.5],0) (0,[-d*0.5],0)geometry generate from-edges extrude (0,0,0.3) segments 1geometry triangulate clean geometry translate -0.21 [DBack*0.5] 0geometry rotate angle @angle axis (0,1,0) origin (0,0,0)

          wall import from-geometry "pile_front" name "pile_front_1"def addpile_front        wall_count=2    loop n(1,2)        wall_name=string.build("pile_front_%1",wall_count)        command                        geometry translate 0 @DBack 0            wall import from-geometry "pile_front" name @wall_name        endcommand            wall_count =1    endloopend@addpile_front


          模型为:

          image.png

          4 结果分析


          这种颗粒运移的图肯定是以动图为主了。


          无挡板


          侧面:

          640 (5).gif


          正面:

          640 (6).gif


          方形挡板


          侧面:

          640 (7).gif

          正面:

          640 (8).gif


          三角形挡板


          侧面:

          640 (9).gif

          正面:

          640 (10).gif


              通过上面的动图可以非常明显的感觉到挡板结构对后一段的碎屑物有非常突出的支护性能。


              这里看一下运行到5s的时候的力链图:


          无挡板:

          image.png


          这里可以明显的看出,前缘的碎屑物和后缘有力学上的不连续性。


          方形挡板:

          image.png


          三角形挡板:


          image.png

          可以看到挡板间形成的土拱有效的抵抗了后缘碎屑物的冲击。



              这里再看一下冲击力的大小,下图为三角形挡板支护时的冲击力,由于初始的颗粒没有阻碍,所以初期会有很多颗粒以比较大的速度冲击顶板上,导致初期有比较大的波动。这里用FFT每50点进行平滑处理,处理后的为红色线。


          image.png


          因为数据量比较大,origin没抗住,这里用excel简单画了一下:


          image.png


              可以看出挡板结构对碎屑流有比较好的支护性能,方形挡板略优于三角形,但是三角形耗材少,具体工程指导得按实际来。

          结构基础代码&命令科普PFC
          著作权归作者所有,欢迎分享,未经许可,不得转载
          首次发布时间:2022-07-19
          最近编辑:1年前
          lobby
          硕士 |擅长颗粒流PFC
          获赞 829粉丝 4382文章 85课程 21
          点赞
          收藏

          作者推荐

          未登录
          还没有评论

          课程
          培训
          服务
          行家

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