1.动力分析基本流程

动力分析被视为模型的加载条件,并且被视为建模序列中的不同阶段。 静态平衡计算总是先于动力分析,动力分析阶段通常包含四个步骤:

  1. 确保模型条件满足波的精确传播的要求(即网格大小要求,可通过使用GENERATE命令调整块体单元的大小)。 即使在进行静力平衡阶段也必须执行此检查,因为在计算开始之后无法对块体进行重新划分网格。

  2. 指定适当的机械阻尼(瑞利阻尼或局部阻尼,使用DAMPING命令)。

  3. 施加动力载荷和边界条件(通过使用BOUNDARY命令)。 为了符合要求,某些动力荷载可能需要滤波。

  4. 设置测点以监视模型的动态响应(通过使用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

下图显示了模型处于平衡状态时的应力状态:

UDEC动力分析流程

由于向模型底部的法向和切向施加了动力波,该边坡受到了地面震动,以此来模拟地震。

现在,按照前面确定的四个步骤进行动力分析:

2.1 检查波的传播条件

该问题的动态载荷以正弦速度的形式给出。 剪切波的频率为 10 Hz,振幅为 2m / sec,动力加载的持续时间为0.1秒。

为了评估数值精度,通过将节理刚度设置为较高值,在此示例中,假定节理的刚度为 200GPa/m; 这些刚度对波传输的影响可忽略不计。 然后,从完整块体的弹性模量计算出剪切波(S波)速度,该剪切波速度为

UDEC动力分析流程

计算公式如下:

UDEC动力分析流程

要施加法向的压缩波(P波),其波速计算公式为:

UDEC动力分析流程

这与3DEC是一样的计算。

该模型中最大的单元尺寸约为 4.5m,根据下式:

UDEC动力分析流程

可以估算模型允许的动载的最大频率为:

UDEC动力分析流程

施加的正弦速度波的频率为10Hz,小于44Hz,因此,单元大小足够小,足以允许该频率的波进行准确传播。

我们监测底部和顶部边界处的速度,下图显示的结果表明没有发生波形失真:

UDEC动力分析流程

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秒)时的边坡响应。

动态荷载导致的边坡破坏:

UDEC动力分析示例

下图是底面( history 2),坡面( history 3)和远离坡面( history 4)的x方向速度历史。 history 3 记录的速度稳定在非零值,表明坡面的块体正在移动。 可以看到,速度响应中仍然存在一些高频分量。

UDEC动力分析示例

完整命令流文件

建模及初平衡: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_bulkff_shear等中的 fffar-field 的简写,而不是 free-field 。

个人理解,二者稍有区别,UDEC中使用自由场边界命令后,不用设置属性,将在模型侧面自动应用粘滞边界,而施加粘滞边界需要指定属性及范围,但二者都是用来吸收耗散能量及应力波的。以上如有错误,还请各位指出。

上述示例在建模时,首先建立一个较大的边坡模型,再通过节理切割得到底部及两侧边界,而不是直接建模时就建立边坡模型。如果直接建立模型再进行动力荷载的施加有可能会出现奇怪的问题(因为有一个小伙伴问过我这个问题),大家也可以试一试,如果没有问题那可能就是个例而已。

删除周围块体后得到最终边坡:


长风破浪会有时,直挂云帆济沧海。