在结构分析中,有时我们需要施加与系统内时间或坐标相关的荷载。与时间相关的,比如低周反复加载,可以用定义荷载步的方式实现;与坐标 相关的,比如施加符合某种分段函数规律的空间荷载等,可以通过数组记录节点荷载来实现。 但个人以为,ANSYS中的表参数是实现这些功能相对简便的重要方法。
今天早上简单研究了一下“表荷载”,总结如下:
表荷载是用表参数(Table)定义的荷载。表参数,是一种特殊的三维数组,基本结构是行、列和面,且包含0行和0列。下面这张图来自《APDL参数化有限元分析技术及其应用实例》23页:
表参数的定义,可以用*Vedit赋值,或直接在相应的元素里赋值,以及Utilty Menu>Parameters>Array Parameters>Define/Edit对话框输入数据等方法实现。
另外,值得一提的是,表参数有自动差值功能。例如给出a(1)=2和a(5)=9,只需给出bb=a(3.4),则能自动返回差值结果为2和9的中值。
这是我多年前做的一个案例,用Table来表示荷载~时间之间的关系。
*dim,fx_table,table,14,1,1 !14行
fx_table(1,0)=0,40,120,240,400,600,840,1120,1440,1800,2200,2640,3120,3640 !时间坐标
fx_table(0,1)=0,0,4e5,-4e5,8e5,-8e5,12e5,-12e5,16e5,-16e5,20e5,-20e5,24e5,-24e5,28e5 !力数值
allsel,all
nsel,s,loc,y,1400
nsel,r,loc,z,-ZH
f,all,fx,%fx_table% !加载
下面先看一下《基于ANSYS平台有限元分析手册结构的建模的分析》中的一段实例:
finish
/clear
/prep7
et,1,45
mp,ex,1,2.1e5
mp,prxy,1,.3
lx=5
ly=3
lz=2
blc4,0,0,lx,ly,lz
esize,0.5
vmesh,all
asel,s,loc,z,lz
*dim,xval,array,7
xval(1)=0,0.5,1,1.5,2,2.5,5
*dim,yval,array,2
yval(1)=0,3
*dim,aaa,table,7,2,,x,y !注意这里表参数的赋值方式,用数组给table赋值
*taxis,aaa(1,1),1,0,0.5,1.0,1.5,2.0,2.5,5
*taxis,aaa(1),2,0,3
*do,ii,1,6
*do,jj,1,2
aaa(ii,jj)=xval(ii)*xval(ii)+yval(jj)
*enddo
*enddo
*do,ii,6,7,
*do,jj,1,2
aaa(ii,jj)=6.25+yval(jj)
*enddo
*enddo
sfa,all,,pres,%aaa%
asel,s,loc,z,0
da,all,all
/solu
allsel
solve
为了显示加载效果,我们需要一个用矢量箭头显示分布荷载的命令:
/psf,pres,norm,2,0
这与用数组来定义荷载,效果一样,但前文不是说table参数有多种输入方式么?通过GUI界面,可以查看到施加的荷载如下:
可否用这种方式输入呢:
*dim,aaa,table,7,2,
aaa(1,0)=0,0.5,1,1.5,2,2.5,5
aaa(0,1)=0,0,0.25,1,2.25,4,6.25,6.25
aaa(0,2)=3,3,3.25,4,5.25,7,9.25,9.25
结果,做出来的结果不对,分布荷载变成均布荷载了:
究其原因,是没有事先定义好坐标轴~表参数行列号之间的关系,这里需要一个命令:
*TAXIS, ParmLoc, nAxis, Val1, Val2, Val3, Val4, Val5, Val6, Val7, Val8, Val9, Val10
ParmLoc
Name and starting location in the table array parameter for indexing. Indexing occurs along the axis defined with nAxis.
nAxisAxis along which indexing occurs. Valid labels are:
1–Corresponds to Row. Default.
2 –Corresponds to Column.
3–Corresponds to Plane.
4–Corresponds to Book.
5–Corresponds to Shelf.
ALL –Lists all index numbers. Valid only if Val1 = LIST.Val1, Val2, Val3, . . . , Val10
Values of the index numbers for the axis nAxis, starting from the table array parameter location ParmLoc. You can define up to ten values.
To list the index values specified with nAxis, issue Val1 = LIST. If Val1 = LIST, Val2 – Val10 are ignored.
只有通过taxis赋予table坐标属性之后,才能应用于这种类型荷载的情况。