一,在ANSYS里施加地震惯性力的方法
在ANSYS里做地震分析时,需要对结构施加地震惯性荷载,地震惯性力是通过加速度的方式输入进结构的,然后与结构的质量一起形成动力计算时的惯性荷载,下面说一下在ANSYS里施加地震惯性力的方法。
首先,将三个方向的地震加速度放到一个文本文件里,如accexyz.txt,在这个数据文件里共放三列数据,每列为一个方向的地震加速度值,这里仅给出数据文件中前几行的数据:
-0.227109E-02
-0.209046E+00
0.467072E+01
-0.413893E-02
-0.168195E+00
0.261523E+01
-0.574753E-02
-0.157890E+00
0.809014E-01
-0.731227E-02
-0.152996E+00
0.119975E+01
-0.876865E-02
-0.138102E+00
0.130902E+01
-0.101067E-01
-0.131582E+00
0.143611E+00
.......................
然后,再建一个文本文件用来存放三个方向的地震加速度时间点,如time.txt,在这个数据文件里仅一列数据,对应于加速度数据文件里每一行的时间点,这里给出数据文件中前几行数据:
0.100000E-01
0.200000E-01
0.300000E-01
0.400000E-01
0.500000E-01
0.600000E-01
.......................
编写如下的命令流文件,并命名为acce.inp
*dim,ACCEXYZ,TABLE,2000,3
!01行
*vread,ACCEXYZ(1,1),accexyz,txt,,JIK,3,2000
!02行(3e16.6)
!03行
*vread,ACCEXYZ(1,0),time,txt
!04行
(e16.6)
!05行
ACCEXYZ(0,1)=1
!06行
ACCEXYZ(0,2)=2
!07行,同上
ACCEXYZ(0,3)=3
!08行,同上
finish
/SOLU
ANTYPE,trans
btime=0.01
!定义计算起始时间
etime=15.00 !定义计算结束时间
dtime=0.01
!定义计算时间步长
*DO,itime,btime,etime,dtime
time,itime
AUTOTS,0
NSUBST,1, , ,1
KBC,1
acel,ACCEXYZ(itime,1),ACCEXYZ(itime,2),ACCEXYZ(itime,3)
!施加三个方向的地震加速度
SOLVE
*ENDDO
最后,在命令窗口里输入/input,acce,inp即可对结构进行地震动力分析。
说明和讨论:
1、命令流中各行说明:
01行:定义2000行,3列的数组,(行数根据数据文件里加速度点数来定)ACCEXYZ用来存放三个方向的加速度值
02行:从数据文件accexyz.txt里读加速度值到数组ACCEXYZ,2000为行数,可根据情况修改。其中的JIK,3,2000非常重要,它决定着将从加速度数据文件中数据输入到ACCEXYZ数组时的存放格式,这里用到按JIK方式变化,即读进来的数据依次放入ACCEXYZ(I,J)(J从1到3,I从1到2000,K默认从1到1)。根据这行命令下面(3e16.6)的格式,每次从数据文件里读一行三个数据,分别放入ACCEXYZ(1,1)、ACCEXYZ(1,2)、ACCEXYZ(1,3),接着再读下一行的三个数据,分别放入ACCEXYZ(2,1)、ACCEXYZ(2,2)、ACCEXYZ(2,3),依次类推。当然依据数据文件的格式,也可以选用IJK,
IKJ, JIK, JKI, KIJ, KJI等格式,其中IJK为默认。
03行:读数据的格式,每行三个数值。由于数据文件中的数据是用科学记数年法表示的,因此,这里也用相应FORTRAN的科学记数法的格式。如果数据文件里的数值是如“0.2876
1.2333
2.9938”这样的格式,此行的数据格式也就修改为“(3f10.4)”这样的格式。
04行:从数据文件time.txt里读时间值到数组ACCEXYZ的第零列
06行:将数组ACCEXYZ的第零行赋值,如果不对行插值的话也可以不赋值
2、ANSYS中施加地震动荷载的讨论
本贴中所说的在结构上施加惯性荷载的方法仅适用于对刚性基础上的结构的地震分析,对于考虑结构-地基相互作用的分析,由于需要考虑地基对结构的影响,其中最重要的因素就是地基辐射阻尼的影响,这在ANSYS里还不太好做。目前用得比较多的,也是最常用的方法就是用无质量地基模型,即在建立结构和地基的模型后,对地基周围的截断边界加固定约束,地基的密度设置为零,但地基弹性模量不为零,考虑地基的刚度影响,然后用上面的方法加整体惯性力。但是,这种方法由于没有能够考虑地基的辐射阻尼,往往导致计算结构偏于保守(计算结果往往较考虑地基辐射阻尼时要大)。
二,在ANSYS中用表面效应单元加任意方向的荷载
!用表面效应单元加任意方向的荷载
finish
/PREP7
et,1,45
!定义实体单元solid45
et,2,154
!定义三维表面效应单元
KEYOPT,2,2,0
!指定表面效应单元的K2=0,所加荷载与单元坐标系方向相同
KEYOPT,2,4,1
!指定表面效应单元的K4=0,去掉边中点,成为四结点表面单元
block,-5,5,-5,5,0,5
!建实体模型
mp,dens,1,2000
mp,ex,1,10e9
mp,prxy,1,0.2
asel,s,loc,z,5.0,5.0
!选中实体上表面
AATT,
1, ,
2,
0,
!指定实体上表面用154号单元
MSHAPE,0,2D
MSHKEY,1
esize,,5
amesh,all
!对上表面划分网格
allsel,all
VATT,
1, ,
1,
0
!指定实体用45号单元
MSHAPE,0,3D
MSHKEY,1
vmesh,all
/PSYMB,ESYS,1 !显示单元坐标系
esel,s,type,,2
!选中实体上表面的表面效应单元以方便加荷载
sfe,all,1,pres,,50 !在面内加Z向荷载,大小为50,荷载方向可通过值的正负控制
sfe,all,2,pres,,100 !在面内加X向荷载,大小为100
sfe,all,3,pres,,150 !在面内加Y向荷载,大小为150
/psf,pres,,2,0,1 !以箭头方式显示所加荷载
!如果已经知道荷载在整体坐标系内的方向失量为(0,1,1),可以用如语句加该方向的荷载
sfe,all,5,pres,,100,0,1,1 !荷载值100后的三个数为方向失量
allsel,all
eplot
通过以上命令流得到的荷载图如下
http://s16/bmiddle/47569d462d53a971af1cf
需要注意的时图中(0,1,1)方向的荷载值为70.71=100*sqrt(2)/2,刚好是命令流中的荷载值乘以方向余弦。可以用sfelist命令查看单元上的荷载值。
三,ANSYS中加变化的面荷载的方法
在ANSYS中如果要在一个面上施加沿某个方向变化的面荷载,需要有两步来完成:
这里以一个在圆筒内表面加内水压力的例子进行说明。
第一步,设置面荷载变化规律。如果面荷载沿Z向变化,后面指定面荷载从Z=100开始变化,并按斜率为-9800进行变化,可用如下语句
sfgrad,pres,,z,100,-9800
!也就是准备在高100米的圆柱加内水压力吧
第二步,施加面荷载。在指定的面上施加按第一步设置的面荷载变化规律的面荷载。
SFA,P51X,1,PRES,0
这个语句相当于在指定面上施加法向荷载(选圆筒体内表面),在Z=100时荷载值为0,随Z坐标变化荷载值以变化率-9800进行变化,这样在Z=0时荷载值为-9800*100
每次用sfgrad进行设置后仅对随后的sfa命令有效,直倒下次再用sfgrad进行设置。
在面上施加荷载后,对模型剖分后可以执行以下命令来查看加的面荷载是否正确
/PSF,PRES,NORM,2,0,1
以箭头方式显示面荷载
sftran
将面荷载转化到有限元模型上
http://s4/orignal/47569d4665e1ebb6dbaf3