没有合适的资源?快使用搜索试试~ 我知道了~
首页ABAQUS粘弹性边界及地震荷载施加的简单实现.pdf
资源详情
资源评论
资源推荐

ABAQUS 粘弹性边界及地震荷载施加的简单实现
粘弹性边界因为能够考虑地基辐射阻尼而使得结构抗震的计算结果更趋于合理,所以在需要考虑结构地基
相互作用的结构抗震计算时,是较为常用的地基边界处理和地震荷载施加方法。而 ABAQUS 软件是经常用
来进行结构响应分析的有限元软件。下面介绍一种在 ABAQUS 中实现粘弹性边界及地震荷载施加的方法。
粘弹性边界是通过在有限元模型的地基边界节点上施加弹簧阻尼器实现的,在 ABAQUS 中的实现有以下几
种方法:第一种,通过 ABAQUS 自有的弹簧单元 spring 单元和阻尼单元 dashpot 实现,具体的单元参数可
以参考文献[1],这种较为精确;第二种是通过 ABAQUS 的 UEL 子程序实现,可以看下文献[2];还有一种是
等效单元替代的方法,就是在地基周围加一层单元,然后设置近似的材料参数,参考文献[3],这一种精度
较差,但实现起来较为简单。我采用的是第一种方法,但操作起来较为繁琐,具体程序及过程后面介绍。
采用粘弹性边界,其配套的地震荷载输入方法就是在已知输入地震位移和速度的情况下,计算各个时刻地
基边界各个结点上应当施加的集中力荷载,然后施加荷载,一步一步的进行计算。地震荷载的施加在 ABAQUS
中也有两种不同的思路,文献[2]中的方法是通过 ABAQUS 的 DLOAD 和 UTRACLOAD 两个子程序实现。DLOAD
子程序用于施加边界面的法向荷载,UTRACLOAD 用于施加边界面的切向荷载。而文献[1]中则是将边界上每
一个节点每个时刻的力都计算出来,然后导入到 ABAQUS 中作为幅值数据,对每个对应节点施加。
我最初的想法是两篇文章的思路各取一半,用文献[1]的方法实现粘弹性边界,用文献[2]的方法施加地震荷
载。然而尝试了很久,发现这样做的效果并不是太好,可能我编的程序哪儿还是有问题吧。最后放弃了,
统一采用文献[1]的方法实现,具体实现采用 MATLAB 语言生成 ABAQUS 的 input 文件,然后将生成的 input
文件在模型文件的指定位置插入,用 ABAQUS 运行即可。
MATLAB 程序与运行前的准备工作
首先需要准备一些必要的数据文件(上图中红色框内的文件),其余黄色框内为模型文件,蓝色框内的文件
为程序运行后的生成文件,
boundary1~5.rpt 是从 ABAQUS 反力文件中提取的反力文件,其值代表某一节点的控制面积,可以通过在地
基边界(5 个面)施加值为 1 的压力荷载,即可提取得到这些反力文件;
coord_point.rpt 为 5 个边界面上节点的坐标文件,提取方法可以在很容易的百度到;
DIS.txt 是三个方向地震波的位移文件;
VEL.txt 是三个方向地震波的速度文件;
job-996.inp 是模型的 inp 文件;
Amplitude.inp 里面是计算过程中边界节点上随时间要施加的所有集中力荷载,文件较大;
load.inp 是将 Amplitude.inp 里面的幅值施加到对应节点的荷载命令;
springs&dashpot.inp 是模型地基边界施加的弹簧阻尼器文件;
三个 input 文件在模型 inp 文件中的插入位置:
记住 springs&dashpot.inp 在 Assembly 部分,所以搜索到关键字*End Assembly,把 springs&dashpot.inp 放在
*End Assembly 之前,Amplitude.inp 放在*End Assembly 之后,load.inp 放在 load 部分即可,如下所示
·································
·································

*Include, Input= springs&dashpot.inp
*End Assembly
*Include, Input=Amplitude.inp
·································
·································
** LOADS
**
*Include, Input=load.inp
**
** OUTPUT REQUESTS
以下为 MATLAB 程序,记得依据模型修改标红的参数准备并必要的文件
%%%%
%%%%-----------------------------说明------------------------------------
%%%%
% 1.本程序用于 ABAQUS 隐式计算的粘弹性边界的 inp 文件及荷载输入文件的生成
% 2.需要准备 5 个边界的节点反力文件(用于节点提取控制面积)、地震动位移和速度文件以及边
界节点坐标文件
% 3.输出为三个文件,springsanddashpot.inp 用于施加粘弹性边界;Amplitude.inp 为各节点幅
值;load.inp 为荷载文件
% 4.首先生成 Boundray_point,保存节点编号、节点坐标、控制面积
% 5.再生成弹簧阻尼器的 input 文件
% 6.再生成荷载文件等
% by w_tao
% 2018/10/01
%%%%---------------------------------------------------------------------
%%%%
%%%%-------------------------地基及相关计算参数---------------
%%%%
d_time=0.01;
%地震波的时间间隔,也将是计算步长
Z0=-600
%地基底面坐标,Z 方向为垂直方向
Z2=0
%地基地面坐标
H=Z2-Z0
%地基高度
X0=0
%地基水平 X 向坐标
X1=400
%地基水平 X 向坐标
LLLX=X1-X0

%地基 X 向宽度
Y0=0
%地基水平 Y 向坐标
Y1=400
%地基水平 Y 向坐标
LLLY=Y1-Y0
%地基 Y 向宽度
EEE=4.88e9;
%地基弹模
psb=0.22;
%地基泊松比
GGG=EEE/2/(1+psb);
%地基剪切模量
DENSITY=2000;
%地基密度
CP=sqrt((1-psb)*EEE/(1+psb)/DENSITY/(1-2*psb));
%计算地基中纵波波速
CS=sqrt(EEE/2/(1+psb)/DENSITY);
%计算地基中横波波速
lmt=(CP*CP-2*CS*CS)*DENSITY;
%拉梅常数中的 lmt
alpha_N=1.33;
%弹簧阻尼器系数
alpha_T=0.67;
%弹簧阻尼器系数
RRR(1)=LLLX/2;
RRR(2)=LLLY/2;
RRR(3)=H;
%%%%---------------------------------------------------------------------
%%%%
%%%%--------------------整理节点数据-------------------------------------
%%%%
%%%%加载文件数据
coord_point=load('coord_point.rpt')
boundary_Z0=load('boundary1.rpt')
boundary_X1=load('boundary2.rpt')
boundary_X0=load('boundary3.rpt')
boundary_Y1=load('boundary4.rpt')
boundary_Y0=load('boundary5.rpt')
% 加载地震波数据,默认位移和速度数据是一样长的
dis=load('DIS.txt');
vel=load('VEL.txt');
剩余10页未读,继续阅读












安全验证
文档复制为VIP权益,开通VIP直接复制

评论0