1.动力分析基本流程
动力分析被视为模型的加载条件,并且被视为建模序列中的不同阶段。 静态平衡计算总是先于动力分析,动力分析阶段通常包含四个步骤:
确保模型条件满足波的精确传播的要求(即网格大小要求,可通过使用
GENERATE
命令调整块体单元的大小)。 即使在进行静力平衡阶段也必须执行此检查,因为在计算开始之后无法对块体进行重新划分网格。指定适当的机械阻尼(瑞利阻尼或局部阻尼,使用
DAMPING
命令)。施加动力载荷和边界条件(通过使用
BOUNDARY
命令)。 为了符合要求,某些动力荷载可能需要滤波。设置测点以监视模型的动态响应(通过使用
HISTORY
命令)。
2.动力分析实例
下面的例子说明了动力分析的过程及动力分析中的步骤。示例是节理岩体边坡的动力稳定性分析。
静力平衡计算
边坡高10 m,包含两组连续的节理,倾角分别为 20° 和 80°。岩体材料为弹性,并且节理的摩擦角为 45°。最初边坡是稳定的,重力作用下初始静态平衡状态的计算数据文件如下:
new
;file: slopestable.dat
round 5.0E-2
block -1,-6 -1,0 5,0 11,10 23,10 23,-6
crack (0,-5) (0,0)
crack (0,-5) (22,-5)
crack (22,-5) (22,10)
jregion id 1 0.0,-5.0 0.0,10.0 22.0,10.0 22.0,-5.0
jset angle 20 trace 100 spacing 2 origin 5,0 range jreg 1
jset angle 80 trace 100 spacing 4 origin 5,0 range jreg 1
delete range atblock (11.7,-5.6)
gen quad 4.0,4.0
gen edge 4.0
group zone 'block'
zone model elastic density 2.5E-3 bulk 1.6667E4 shear 1E4 range group &
'block'
group joint 'joint'
joint model area jks 2E5 jkn 2E5 jfriction 45 range group 'joint'
; new contact default
set jcondf joint model area jks=2E5 jkn=2E5 jfriction=45
insitu stress -0.125,0.0,-0.25 xgrad 0.0,0.0,0.0 ygrad 0.0125,0.0,0.025
boundary xvelocity 0 range -0.1,0.1 -5.1,0.1
boundary xvelocity 0 range 21.9,22.1 -5.1,10.1
boundary yvelocity 0 range -0.1,22.1 -5.1,-4.9
set gravity=0 -10
history xdisplace 11.0,10.0
history ydisplace 11.0,10.0
history unbalanced
solve ratio 1.0E-5
save slope0.sav
下图显示了模型处于平衡状态时的应力状态:
由于向模型底部的法向和切向施加了动力波,该边坡受到了地面震动,以此来模拟地震。
现在,按照前面确定的四个步骤进行动力分析:
2.1 检查波的传播条件
该问题的动态载荷以正弦速度的形式给出。 剪切波的频率为 10 Hz,振幅为 2m / sec,动力加载的持续时间为0.1秒。
为了评估数值精度,通过将节理刚度设置为较高值,在此示例中,假定节理的刚度为 200GPa/m; 这些刚度对波传输的影响可忽略不计。 然后,从完整块体的弹性模量计算出剪切波(S波)速度,该剪切波速度为
计算公式如下:
要施加法向的压缩波(P波),其波速计算公式为:
这与3DEC是一样的计算。
该模型中最大的单元尺寸约为 4.5m,根据下式:
可以估算模型允许的动载的最大频率为:
施加的正弦速度波的频率为10Hz,小于44Hz,因此,单元大小足够小,足以允许该频率的波进行准确传播。
我们监测底部和顶部边界处的速度,下图显示的结果表明没有发生波形失真:
2.2 指定阻尼
在动力计算的过程中,随着节理面的滑动和分离,能量会消散,这往往会使阻尼参数的选择对分析结果的重要性降低。 该模型在极少量的瑞利阻尼下运行(自然频率的0.1%),以最大程度地减少高频分量的影响。 对于该问题,基频由输入波的频率(10Hz)定义。
2.3 施加动力载荷和边界条件
模型的基础被认为是柔性的,因此我们必须将输入的速度时程转换为应力时程,以便为柔性基础施加具有粘滞边界的动态载荷。
定义的FISH函数 convert 提供转换计算,根据上面的公式将速度输入转换为应力输入。然后,使用BOUNDARY
命令将边界应力在剪切方向上施加到模型的基础上,并通过HISTORY
关键字将速度波输入作为乘数应用。 FISH函数 blvel 定义了 1 m/sec 振幅,10 Hz频率,持续时间 0.1秒 的正弦速度时程。自由场边界沿左右边界施加,以吸收能量。
2.4 监测动力响应
速度历史记录位于模型中的各个位置:在所施加的输入波的位置,沿斜面的位置以及在模型内部。
动力加载计算
下面是施加动力荷载的数据文件:
;file: slopedy.dat
rest slope0.sav
def convert
;根据上述公式计算纵波及横波波速
c_p = sqrt((b_mod + (4.0 * sh_mod / 3.0)) / m_dens)
c_s = sqrt(sh_mod / m_dens)
;计算要施加的应力
norm_str = -2.0 * m_dens * c_p
shear_str = 2.0*(-2.0 * m_dens * c_s)
end
set m_dens=0.0025 b_mod=16667 sh_mod=10000
convert
;定义正弦速度波
def blvel
whilestepping
if time > env_time
wave = 0.0
else
wave = ampl * sin(2.0*pi*freq*time)
endif
end
set freq =10 ampl=1.0 env_time=0.1
blvel
;两侧施加自由场边界
boundary ffield
;底部施加粘滞边界
boundary xvisc ff_bulk=16667.0 ff_shear=10000.0 ff_density=0.0025 &
range -0.1,22.1 -5.1,-4.9
boundary yvisc ff_bulk=16667.0 ff_shear=10000.0 ff_density=0.0025 &
range -0.1,22.1 -5.1,-4.9
;底部施加动力荷载
boundary stress 0.0,0.0,norm_str history=wave range -0.1,22.1 -5.1,-4.9
boundary stress 0.0,shear_str,0.0 history=wave range -0.1,22.1 -5.1,-4.9
;记录相关参数
reset hist time disp
history wave
history xvelocity 10.0,-5.0
history xvelocity 8.0,6.0
history xvelocity 18.0,-2.0
history yvelocity 10.0,-5.0
history yvelocity 22.0,10.0
;设置阻尼
damping 0.0010 10.0
save slopedy.sav
cycle time 0.2
save slope02.sav
cycle time 0.2
save slope03.sav
cycle time 0.3
save slope04.sav
下图显示了计算了 0.7秒(动力加载停止后0.6秒)时的边坡响应。
动态荷载导致的边坡破坏:
下图是底面( history 2),坡面( history 3)和远离坡面( history 4)的x方向速度历史。 history 3 记录的速度稳定在非零值,表明坡面的块体正在移动。 可以看到,速度响应中仍然存在一些高频分量。
完整命令流文件
建模及初平衡:slopestable.dat
动力计算:slopedy.dat
3.其他说明
UDEC中的自由场边界与粘滞边界
1.施加自由场边界的命令:BOUNDARY ffield
使用命令后,自由场边界条件自动应用于模型的侧边外部边界且边界必须垂直。 在动力分析阶段更改其他边界条件之前,必须先给出BOUNDARY ffield
命令。例如上面例子中自由场边界需要先于粘滞边界施加。在使用此命令之前,模型应处于静态平衡状态。使用命令后,自由场本身会自动循环计算到平衡状态,沿模型侧面的粘滞边界条件将自动应用。 即使相邻区域可能处于大应变,自由场也会执行小应变计算。
2.施加粘滞边界的命令:boundary xvisc ff_bulk=16667.0 ff_shear=10000.0 ff_density=0.0025 range...
粘滞边界也叫无反射边界,需要指定相关属性。这里的 ff_bulk
、ff_shear
等中的 ff 是 far-field 的简写,而不是 free-field 。
个人理解,二者稍有区别,UDEC中使用自由场边界命令后,不用设置属性,将在模型侧面自动应用粘滞边界,而施加粘滞边界需要指定属性及范围,但二者都是用来吸收耗散能量及应力波的。以上如有错误,还请各位指出。
上述示例在建模时,首先建立一个较大的边坡模型,再通过节理切割得到底部及两侧边界,而不是直接建模时就建立边坡模型。如果直接建立模型再进行动力荷载的施加有可能会出现奇怪的问题(因为有一个小伙伴问过我这个问题),大家也可以试一试,如果没有问题那可能就是个例而已。
删除周围块体后得到最终边坡:
Comments | 65 条评论
您好,请问我的模型计算初始平衡的时候为什么会出现步数一直在加,但是不平衡力保持一个数值一动不动的情况呢?谢谢
@明 可能已经平衡了吧
该评论为私密评论
@609181702 这个例子中的参数单位都在国际单位制上乘了10e-6缩小了,例如密度的实际参数就是2500,只不过缩小了10e6而已
该评论为私密评论
@609181702 我觉得你是参数的值搞错了,按理来说转换成实际参数应该不影响的
该评论为私密评论
大佬,请问udec中,刚体模型边界 与 弹塑性模型边界 (两侧都已竖直) 在动力分析中,设置自由场边界(两侧)和粘性边界(底部) 是不是差别很大阿?如何设置,谢谢
@1015777370 刚体模型好像不能设置自由城边界,必须要是变形体才行。设置方法按照例子里的命令就可以了
该评论为私密评论
@闲鱼 你测一下速度和位移跟实际比怎么样,如果都有问题那应该就是模型有问题
up,我想问一下在设置瑞利阻尼时,取值如何计算
@爱吃蛋炒饭 这个我也没太搞懂,可以用局部阻尼damp local
老师,您有关于输入地震波的命令流嘛,仅需要输入地震波这一段就行。
博主你好,我在模型底部施加正弦波时,监测到底部速度波形会失真,达不到要施加的峰值速度,博主您知道是什么原因吗