首页/文章/ 详情

桩支护基坑的模拟

2年前浏览2275

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


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


一、成样









































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
最近编辑:2年前
lobby
硕士 |擅长颗粒流PFC
获赞 884粉丝 5044文章 83课程 22
点赞
收藏
作者推荐
未登录
1条评论
pontos
签名征集中
7月前
为什么自重要放大那么多倍呀
回复 2条回复
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈