ANSYS表荷载技巧

在结构分析中,有时我们需要施加与系统内时间或坐标相关的荷载。与时间相关的,比如低周反复加载,可以用定义荷载步的方式实现;与坐标 相关的,比如施加符合某种分段函数规律的空间荷载等,可以通过数组记录节点荷载来实现。 但个人以为,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的中值。

表荷载之低周反复荷载实例

这是我2007年做本科毕业论文的时候做的一个案例,用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.
nAxis

Axis 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坐标属性之后,才能应用于这种类型荷载的情况。

长河

在曾经的博客时代,是“首个桥隧工程领域独立博主”,目前是一名默默耕耘的普通高校教师。一家之言,仅供参考,未必成熟、绝不权威。

相关推荐

6 条评论

  1. 看不懂

  2. 2D数组可以的,但是使用3D数组,即使有*Taxis,到目前为止,也是不行的,都是(1.1.1)的值,晕死了

  3. 貌似最后的Taxis可以省掉,如果在Dim时,设置行和列的variables为X和Y?

    • @大卫嘴 应该不行吧,我一开始的尝试就是这样的,没成功

  4. 看得懂的请举手

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。