首页/文章/ 详情

桩支护基坑的模拟

1年前浏览1893

边坡、隧道和基坑作为岩土三大工程问题,前面讲述了前两个工况的一般思路,这里讲解一下桩支护基坑的数值模拟。


    模拟步骤前面依然是成样、预压和加自重,这里和隧道一样。


一、成样






    new def par    width=1.5    height=width*0.5      rdmax=0.45e-3*10    rdmin=0.3e-3*10      poro=0.08    emod=90e6 ;Effective modulus    kratio=1.5 ;Normal-to-shear stiffness ratioend@pardomain extent [-height*3] [height*3]set random 10001wall generate box [-width*0.5] [width*0.5] [-height*0.5] [height*0.5] expand 1.5

    ball distribute porosity @poro radius @rdmin @rdmax box [-width*0.5] [width*0.5] ...                                                        [-height*0.5] [height*0.5]cmat default model linear method deformability emod @emod kratio @kratio



    ball attribute density 2.7e3 damp 0.7

    cycle 2000 calm 50

    solve save sample



    结果为:

    微信截图_20220718154129.png


    二、预压




      restore sample

      [fric=0.6]cmat add 1 model rrlinear method deformability emod @emod kratio @kratio  property fric @fric ...                rr_fric @fric range contact type ball-ballcmat apply

      [txx=-1e4][tyy=-1e4][sevro_factor=0.5][do_xSevro=true][do_ySevro=true]



      [sevro_freq=100][timestepNow=global.step-1]def sevro_walls    compute_stress   if timestepNow<global.step then        get_g(sevro_factor)        timestepNow =sevro_freq    endif    if do_xSevro=true then        Xvel=gx*(wxss-txx)        wall.vel.x(wpRight)=-Xvel        wall.vel.x(wpLeft)=Xvel    endif    if do_ySevro=true then        Yvel=gy*(wyss-tyy)        wall.vel.y(wpUp)=-Yvel        wall.vel.y(wpDown)=Yvel    endifend

      def wp_ini    wpDown=wall.find(1)    wpRight=wall.find(2)    wpUp=wall.find(3)    wpLeft=wall.find(4)end@wp_ini

      def computer_chiCun    wlx=wall.pos.x(wpRight)-wall.pos.x(wpLeft)    wly=wall.pos.y(wpUp)-wall.pos.y(wpDown)end

      def compute_stress    computer_chiCun    wxss=-(wall.force.contact.x(wpRight)-wall.force.contact.x(wpLeft))*0.5/wly    wyss=-(wall.force.contact.y(wpUp)-wall.force.contact.y(wpDown))*0.5/wlxend

      def get_g(fac)    gx=0    gy=0    zongKNX=100e6*2*10    zongKNY=100e6*2*10    loop foreach ct wall.contactmap(wpLeft)        zongKNX =contact.prop(ct,"kn")    endloop    loop foreach ct wall.contactmap(wpRight)        zongKNX =contact.prop(ct,"kn")    endloop    loop foreach ct wall.contactmap(wpUp)        zongKNY =contact.prop(ct,"kn")    endloop    loop foreach ct wall.contactmap(wpDown)        zongKNY =contact.prop(ct,"kn")    endloop    gx=fac*wly/(zongKNX*global.timestep)    gy=fac*wlx/(zongKNY*global.timestep) end

      set fish callback -1.0 @sevro_walls

      history id 1 @wxsshistory id 2 @wyss

      history id 3 @gxhistory id 4 @gy

      cycle 1

      solve



      save yuya


      三、加自重


      自重代码为,这里使用离心机原理,放大至现实80*40的模型。



        restore yuya

        wall delete walls range id 3



        set gravity [9.8*80/wlx]

        set fish callback -1.0 remove @sevro_wallswall attribute vel 0cycle 1solvesave zizhong


        结果为:


        image.png


        四、预留桩的位置


        后面就是加基坑了,首先我们要用wall预留出生成桩的地方:


          restore zizhong

          [pile_pos_x=wlx*0.5*0.2][pile_length=25/(80/wlx)][pile_D=1/(80/wlx)]



          wall generate box [pile_pos_x] [pile_pos_x pile_D] [wly*0.5-pile_length] [wly*0.5]

          cycle 1solvesave pileWall



          平衡后为:


          640 (2).png

          五、成桩


             之后将桩范围内的颗粒以及wall删除掉,生成规则排列的颗粒,加pb胶结模拟桩,注意这里的桩参数,后面思考一下可能用CB模型更好,这样拉压模量就一致了。还有是强度部分,桩一般是拉破坏,这里就将抗剪强度设置的很大,只设置了抗拉强度,保证桩颗粒只能受拉破坏。




            restore pileWall

            ball delete range x [pile_pos_x] [pile_pos_x pile_D] y [wly*0.5-pile_length] [wly*0.5]

            [rnum=4][rd=pile_D*0.5/float(rnum)]

            ball generate box [pile_pos_x rd] [pile_pos_x pile_D-rd]  [wly*0.5-pile_length rd] [wly*0.5-rd] ...        radius [rd] cubic group pileball attribute density 3.8e3 damp 0.7wall delete walls range x [-wlx*0.5*0.9] [wlx*0.5*0.9] y [-wly*0.5*0.9] [wly]

            contact groupbehavior andcmat add 1 model linearpbond method deformability emod 15e9 kratio 1.5 pb_deformability emod 30e9 kratio 1.5 ...        property pb_coh 1e100 pb_ten 20e6 pb_fa 50 fric 0.5 range group pilecmat apply range group pileclean

            contact method bond gap [rd*0.2]

            cycle 1 solve

            save pilejikeng



            结果为:

            image.png



            六、开挖


            之后就可以进行基坑开挖了:


              restore pilejikeng



              set mech age 0ball attribute displacement multiply 0[shendu=15/(80/wlx)]ball delete range x [pile_pos_x pile_D] [wlx*0.5] y [wly*0.5-shendu] [wly*0.5] group pile not

              cycle 1 solve

              save result


              计算前为:

              image.png


              这里没有运行到最终状态,最终桩破坏,基坑也发生了破坏:


              image.png


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

              作者推荐

              未登录
              1条评论
              pontos
              签名征集中
              1月前
              为什么自重要放大那么多倍呀
              回复 2条回复

              课程
              培训
              服务
              行家

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