原计划再详尽聊聊表数组和表数组加载、函数和函数加载等,但考虑不是必须要用的东西,就如你可能一生都在用AutoCAD,但可能有些功能从不使用,ANSYS有些功能或命令也一样,因此就不打算再详细聊这方面的内容了。换句话说,表数组加载或函数加载用途并非必须,至少在结构分析中是这样。
先说表数组,表数组的定义也通过*DIM去定义(学会ANSYS数组的定义与使用,提高参数化建模与分析水平),表数组的定义如图1所示,与数组的差别大致如下:
(1)表数组有0行0列,而数组没有。0行0列用于填写索引用数据,在引用时使用。
(2)表数组可以引用任何下标时的数值,因为采用内插机制。例如表数组A(4.5,3.1),如果(4.5,3.1)不正好是索引点,则采用线性内插求得。当然,表数组只能是数据,而不能是字符型的。
(3)表数组采用与数组一样的赋值方法,即采用“下标”赋值,但索引则不能采用下标,而是采用0行0列的索引数据。
(4)从文件赋值时,数组用*VREAD命令,而表数组采用*TREAD命令。
(5)表数组加载时,如果时间步长和时间点不匹配,则会直接越过某些顶点值。
(6)表数组加载时,用%表数组名%方式,不能有正负号。
如图2所示的荷载-时间曲线,用表数组定义的命令流如下:
FINISH$/CLEAR$/PREP7
*DIM,FT,TABLE,8,1!定义表数组FT
FT(1,0)=1E-6,1.0,2.2,3.0,5.0,5.9,7.5,9.0!表数组的0列1-8行赋值
FT(1,1)=0,200,330,610,610,360,300,0!表数组的1列1-8行赋值
ET,1,MASS21$R,1,1.0$N,1$E,1$D,1,ALL !创建单质量点模型,并施加全约束
F,1,FX,%FT%!表数组加载,在1点的FX方向施加荷载
/SOLU$ANTYPE,TRANS$TRNOPT,FULL !定义瞬态分析类型和完全法瞬态分析
TIMINT,ON$AUTOTS,ON$KBC,0!打开时间积分效应、自动时间步、定义渐变荷载
TIME,10.0$DELTIM,0.05,,0.1$SOLVE!定义时间为10等求解
但也可用多个荷载步连续SOLVE实现求解。因此,实际使用时,没有十分的必要采用表数组加载。关于表数组及其加载,也包括函数加载等,详尽的介绍可查看相关参考文献,如《ANSYS结构动力分析与应用》等。
再说函数及其加载,ANSYS函数的定义可采用其函数编辑器,但其函数编辑器形成的命令流犹如天书,很难检查是否正确,如定义P=SQRT(t) X如下:
*DEL,_FNCNAME$*DEL,_FNCMTID$*DEL,_FNCCSYS$*SET,_FNCNAME,'PT'$*SET,_FNCCSYS,0
*DIM,%_FNCNAME%,TABLE,6,17,4,,,,%_FNCCSYS%
!BEGIN OF EQUATION:SQRT({TIME}) {X}
*SET,%_FNCNAME%(0,0,1),0.0,-999$*SET,%_FNCNAME%(2,0,1),0.0$*SET,%_FNCNAME%(3,0,1),0.0
*SET,%_FNCNAME%(4,0,1),0.0$*SET,%_FNCNAME%(5,0,1),0.0$*SET,%_FNCNAME%(6,0,1),0.0
*SET,%_FNCNAME%(0,1,1),1.0,-1,16,1,1,0,0$*SET,%_FNCNAME%(0,2,1),0.0,-2,0,1,-1,1,2
*SET,%_FNCNAME%(0,3,1),0,99,0,1,-2,0,0$*SET,%_FNCNAME%(0,4,1),0$*SET,%_FNCNAME%(0,5,1),0
*SET,%_FNCNAME%(0,6,1),0$*SET,%_FNCNAME%(0,7,1),0$*SET,%_FNCNAME%(0,8,1),0
*SET,%_FNCNAME%(0,9,1),0$*SET,%_FNCNAME%(0,10,1),0$*SET,%_FNCNAME%(0,11,1),0
*SET,%_FNCNAME%(0,12,1),0$*SET,%_FNCNAME%(0,13,1),0$*SET,%_FNCNAME%(0,14,1),0
*SET,%_FNCNAME%(0,15,1),0$*SET,%_FNCNAME%(0,16,1),0$*SET,%_FNCNAME%(0,17,1),0
!END OF EQUATION:SQRT({TIME}) {X}
这种函数定义方法是在令人头疼,也与APDL的便捷性大相径庭。
事实上,无论是表数组加载还是函数加载,都可以用显式或显式函数方式替代,也就是用连续求解便可达到目的,并且加载过程十分清楚,因此也没有必要必须采用函数加载。例如风压时程分析、地震时程分析等就是离散时间点序列,用数组读入后直接用*DO循环施加更加清楚。即便就是连续函数F(x,y,z,t),实际加载时也是内部离散数据,因此可以直接计算ti时刻的Fti施加更加直观,如:
*DO,Ti,0.001,10,0.01
Fti=……!函数表达式
F,NODE,Fx,Fti
SOLVE
*ENDDO
所以,在ANSYS结构分析中,不是必须采用表数组加载和函数加载。如果感觉不便,直接略过表数组、函数及其二者的加载方式也可。
---------------------------------------------------------------------------------------------
版权声明:
原创文章,来源铁大王新敏,本文已经授权,欢迎分享,如需转载请联系作者。