首页/文章/ 详情

砂土地基碾压加密的模拟

2年前浏览4928

碾压法和夯实法是常用的地基处理方式,碾压法是采用碾压、振动压实机械,如压路机、振动压路机、推土机、羊足碾等机械,来回反复碾压、震动使地基土密实、强度提高、压缩性降低,从而使地基得到处理的一种密实方法。


image.png

 

    本文主要针对于砂土碾压法进行建模,建模步骤主要分为两步,首先生成一个比较松的砂土地基。之后在砂土地基上生成一个碾轮,并让其来回滚动,使得砂土加密。


    先看一下地基的生成方式,为了使研究结果比较好,这里的砂土没有经历过成样、预压然后自重,而是直接生成带有摩擦系数的颗粒,在自重下沉降。






































new def par    rdmin=6e-3    rdmax=9e-3     width=4    height=width/3.0end@par

domain extent [-width] [width]

wall generate box [-width*0.5] [width*0.5] [-height*0.5] [height*0.5] expand 1.5

ball distribute porosity 0.5 radius [rdmin] [rdmax] box [-width*0.5] [width*0.5] [-height*0.5] [height*0.5]

cmat default model linear

cmat add 1  model linear method deformability emod 100e6 kratio 1.5 property fric 0.5 range contact type ball-ball

cmat add 2 model linear method deformability emod 100e6 kratio 1.5  range contact type ball-facet

ball attribute density 2.7e3 damp 0.7cycle 1000 calm 50cycle 2000set gravity 9.8solvesave sample


注意,需要使用calm命令清除一下颗粒的速度,沉降后的试样如下图所示:

image.png

    可以看到图中的颗粒因为自重沉降,导致地面不是很平衡,所以我们对其进行削面处理,删除表面的颗粒,然后平衡。












restore sample

[diding=height*0.5*0.22]ball delete range y [diding] [height*0.5]

cycle 1solvesave diji


这步运行完后如下图所示:


微信截图_20220721154145.png


    之后就是碾轮的生成了,我们使用wall来模拟碾轮,对碾轮施加竖向的伺服力来模拟碾轮对地基的重力。可以根据密度以及体积来计算重力的大小。这时候也可以删除上部的墙了。这里使用wall sevro命令来施加伺服力,这其实是对之前伺服程序的一个包装,里面的参数都可以在伺服程序中找到。
















restore diji[nianlun_rad=height*0.1][force=3.8e3*9.8*math.pi*nianlun_rad^2]wall generate id 10 name nianlun circle position [-width*0.5 nianlun_rad] [diding nianlun_rad*1.01] radius [nianlun_rad] wall delete range id 3wall servo activate on gainupdate 100 vmax [height] yforce [-force] range id 10ball property fric 0.5wall property fric 0.5 range id 5 68cmat modify 2 model linear method deformability emod 100e6 kratio 1.5  range contact type ball-facet

cycle 1000solve aratio 1e-5save create_nianlun


注意这里的碾轮和砂土地基间是有摩擦的,不然轮子会整个陷进地基中。

image.png



最后一步就是进行碾轮的反复碾压了。

时间和位移场清零肯定是必须的。


    关键的一个点是根据移动速度去计算滚动速度,这样保证轮子和颗粒间发生的是静摩擦。还需要注意时刻更新碾轮的滚动中心,不然轮子就飞了。

    这里设置了测量圆去监测地基孔隙率的变化,并用history进行记录。


    还需要注意这里的循环方式,速度有了,碾轮的居留我们也是有的,那么碾压一次需要的时间是可以计算的。那么根据时间来实现循环碾压也就是可行的了,每次到达碾压时间后,反向移速和滚动速度即可,也可以顺便保存个save文件进行后处理。












































































restore create_nianlunset mech age 0ball attribute displacement multiply 0

[yisu=0.2][spin=yisu/nianlun_rad][cishu=5][mea_rad=width*0.05]

wall attribute xvel [yisu] spin [-spin] range id 10

[wp_nianlun=wall.find(10)]def updata_center    whilestepping    wall.rotation.center(wp_nianlun)=wall.pos(wp_nianlun)end[onetime=(width-2*nianlun_rad)/yisu][timerecord=0][file_count=1]

measure deletemeasure create id 1 position [-width*0.5*0.2] [-height*0.5*0.3] radius [mea_rad]measure create id 2 position [-width*0.5*0.1] [-height*0.5*0.3] radius [mea_rad]measure create id 3 position [width*0.5*0.1] [-height*0.5*0.3]  radius [mea_rad]measure create id 4 position [width*0.5*0.2] [-height*0.5*0.3]  radius [mea_rad] def mp_get    mp1 = measure.find(1)    mp2 = measure.find(2)    mp3 = measure.find(3)    mp4 = measure.find(4) end@mp_getdef jiance    whilestepping        measure_poros1=measure.porosity(mp1)    measure_poros2=measure.porosity(mp2)    measure_poros3=measure.porosity(mp3)    measure_poros4=measure.porosity(mp4)        measure_av=(measure_poros1 measure_poros2 measure_poros3 measure_poros4)*0.25    forceLunY = wall.force.contact.y(wp_nianlun)    forceLunX = wall.force.contact.x(wp_nianlun)    time_now = mech.age    weiyiX = yisu * mech.age    nianlun_pos = wall.pos.x(wp_nianlun)end@jiancedef circle_nianya    whilestepping    if mech.age-timerecord>onetime then        wall.vel.x(wp_nianlun)=-wall.vel.x(wp_nianlun)        wall.spin(wp_nianlun)=-wall.spin(wp_nianlun)        timerecord=mech.age        filename=string.build("jieguo%1",file_count)        command            save @filename        endcommand        file_count =1    endifendhistory delete history id 1 @time_nowhistory id 2 @weiyiXhistory id 3 @forceLunYhistory id 4 @forceLunXhistory id 5 @measure_poros1history id 6 @measure_poros2history id 7 @measure_poros3history id 8 @measure_poros4history id 9 @measure_avsolve time [cishu*onetime]


碾压开始前状态为:

image.png


图中红色圈圈为测量圆的位置。


第一次碾压:

image.png


第二次碾压:

image.png


第三次碾压:

image.png


第四次碾压



image.png


    可以看出随着碾压次数的提高,位移区域是在增加的。从位移场中也可以看出这个颗粒位移的趋势。


image.png


显示力链图,可以看到碾轮向地基的力链延伸。


image.png


这里显示记录的孔隙率的变化:


image.png


    四个孔隙率随着碾压的进行都在减小,并且碾压的越多,后面减小的量越小,也是比较常见的指数曲线。


这里受限于计算效率,只算了五次,读者可以算十次或者二十次看看效果。


有的碾轮需要加激振力,只需要不停的改变碾轮伺服力的大小即可。

科普更多行业通用离散元结构基础代码&命令PFC
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-07-21
最近编辑:2年前
lobby
硕士 |擅长颗粒流PFC
获赞 880粉丝 4970文章 83课程 22
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈