不知道是小BUG,还是小粗心,ANSYS总有些让你意料之外的地方。本文将这些“意外”罗列在一起,方便备查,并可防止出现错误。
1.高阶单元中间节点应力问题
显示(图显和列表)高阶单元所有节点的位移当然是可以的,因为节点位移是直接量。但要获得中间节点应力就有难度,虽然可以使用/EFACET PRNSOL列表显示(只能列表,无提取方式)高阶单元中间节点的应力,但也只是结构所有单元外表的中间节点,而单元内部的中间节点应力则无法获取。例如:
FINISH$/CLEAR$/PREP7
ET,1,SOLID186
MP,EX,1,2E5$MP,PRXY,1,0.3
BLC4,,,10,20,200
ESIZE,5$MSHKEY,1$VMESH,ALL
DA,1,ALL$SFA,4,1,PRES,0.1
/SOLU$SOLVE$/POST1
!打开节点编号和精细化显示
/PNUM,NODE,1$/EFACET,2
!显示单元和节点应力列表
EPLOT$PRNSOL,S
所列出应力的节点都是单元外表节点,这个可以通过ESEL,S,EXT得到验证。
2.MISO模型高版本较低版本严格
在低版本中MISO模型的HELP中,有这样一段话“The slope of the first segment of the curve must correspond to the elastic modulus of the material and no segment slope should be larger. No segment can have a slope less than zero.”,但是在低版本中斜率为负值时(即应力-应变曲线存在下降段)也不提示错误,仍能计算运行下去。然而,在高版本中,只要出现负斜率,程序则立刻停止运行。
因此,如果应力-应变曲线有下降段,则不能再采用MISO模型,须改为MKIN模型或去掉下降段。
3.3D单元模拟2D分析时,必须施加无荷载作用方向的约束
经常会采用3D单元计算平面结构,如采用BEAM18x单元分析平面梁结构。在低版本中,只要荷载全部在面内作用,则ANSYS静力分析会计算并给出正确结果;然后,高版本则会检查约束是否足够,即必须保证在静力分析时结构无刚体位移!因此,平面梁结构,采用BEAM18x模拟,也必须施加面外的约束。同时对梁结构而言,还要注意绕自身轴的转动是否约束了?否则也会因约束不足而停止运行。
4.SPOPT不向下兼容
低版本中为:SPOPT,Sptype,NMODE,Elcalc
高版本中为:SPOPT,Sptype,NMODE,Elcalc,modeReuseKey
高版本多了命令项 modeReuseKey,但其缺省值为NO,即与低版本不兼容;要与低版本兼容,必须设置为YES。很显然,对于从低版本过来的用户而言,过去跑的命令流已完整成熟,但在高版本上则会发现结果不正确!这样的更新显然不友好!因此,应经常浏览高版本的HELP文件。
5.*VREAD可读入自由格式数据文件,但数据文件中不能出现整数
向文件输出数据带格式,可使数据排列的比较整齐,易于阅读。但对既有数据文件,如果必须带格式读入到ANSYS中,则极易出错。幸运的是发现,尽管给定了读入的FORMAT,但*VREAD可以采用自由格式的数据文件;特别要注意的是,自由格式数据文件的数据之间用英文逗号隔开,且不能出现整数,如2必须写成“2.0”的样子,否则会按FORMAT给出的格式读入。
设有数据文件dat.txt如下:
1.1,2.1,3.0
1.2,2.2,3.2
你读入数组A(2,3)中为:
1.1 2.1 3.0
1.2 2.2 3.2
命令流如下:
*CREAT,R,MAC
*DIM,A,,2,3
*VREAD,A,DAT,TXT,,JIK,3,2
(3f10.2)
*END
R
*VEDIT,A
各位读者可以试着将DAT.TXT中的3.0改为3试试看。
6.表达式可以包含4层括弧,每个括弧内运算不能超过9个
HELP中表述为“Parentheses can be nested up to four levels deep, and up to nine operations can be performed within each set of parentheses”。举例如:
a=6$b=8$c=20
x1=a**6*b*10*sqrt(b)*c**4*c**0.5/a!OK
x2=a**6*b*10*sqrt(b)*c**4*c**0.5/a/b!NO
y1=a**6 b*10-sqrt(b) c**4 c**0.5*a/b!NO
将y1表达式拆分在两个括号内,如:
y2=(a**6 b*10-sqrt(b)) (c**4 c**0.5*a/b)!OK
声明:原创文章,欢迎留言与我讨论,如需转载留言