在ANSYS的结果后处理时,实体单元的应力结果显示时默认会用"MX"和"MIN"在图形中标出最大最小应力点位置,要知道最大(或最小)应力点的节点编号的话可通过PRNSOL命令列表查得。一般来讲,结构在不同工况下的最大应力点一般不在同一位置,如果工况较多或者要反复查询的话,这种方法就需要人为地反复记录最大(或最小应力节点号),比较繁杂。如果能够把最大(或最小)应力点的节点号动态地符给一个变量,通过APDL语言就可以随时求得最大(或最小)应力点的数据了。
方法1:
/POST1
NSEL,S,ALL
NNUM=NDINQR(0,13) !当前选择集中的节点数目
*GET,N,NODE,,NUM,MIN !获取选择集中最小节点号
N_MAX=N; !当前应力最大节点号
*GET,SEQV_MAX,NODE,N,S,EQV !当前最大应力
*DO,I,2,NNUM !开始循环
*GET,TEMP,NODE,NDNEXT(N),S,EQV
*IF,TEMP,GT,SEQV_MAX,THEN !比较大小
N_MAX=NDNEXT(N)
SEQV_MAX=TEMP
*ENDIF
N=NDNEXT(N) !下一个节点
*ENDDO
方法2:
上面的命令流,由于需要反复对每一个节点进行遍历比较,如果节点数量较大时运算时间会比较长。其实,ANSYS中还提供了一个对节点数据进行排序的命令NSORT,借助它可以快速地实现上面命令流的功能,而且如果只查为了得到一个最大应力点的话,运算速度会很快。命令流如下:
/POST1
NSEL,S,ALL
NSORT,S,EQV,0,,1,SELECT !结果按应力大小进行排序
*GET,N_MAX,NODE,0,NUM,MAX !取得应力最大点的节点编号
NUSORT !恢复缺省的排序方式
*GET,SEQV_MAX,NODE,N_MAX,S,EQV !取得最大应力值
关于NSORT命令的格式:
NSORT, Item, Comp, ORDER, KABS, NUMB, SEL
其中:
Item,Comp——排序的依据项标识,如S、LOC等;
ORDER——排序方式。默认为0,按降序,若为1按升序;
KABS——是否按绝对值进行排序。默认为0,不按绝对值排序,若为1按绝对值进行排序;
NUMB——排序后结果记录的个数。默认为所有节点,此数越少排序速度越快;
SEL——控制结果结点是否可以进行再次选择。如为空则不可选择(默认),如果排序后使用了NSEL等节点选择命令,则排序结果自动恢复为默认的排序方式;如为SELECT则当前节点选择集自动变为排序的结果记录结点,此时可用NSEL命令从当前选择集中进行进一步选择,如果节点不在排序后的选择集中,则也恢复默认排序方
用ANSYS的APDL方式直接获得最大应力和最大应变的节点编号及其数值的有好多...
用ANSYS的APDL方式直接获得最大应力和最大应变的节点编号及其数值的有好多种方法:
如下面的这种,先对节点的值进行SORT,在提取最大的值即可。
最大应力节点编号及其数值的提取:
ALLSEL
NSORT,S,EQV,0,0,ALL
*GET,MAX_SEQV,SORT,0,IMAX
*GET,MAXSEQV,NODE,MAX_EQV,S,EQV
依次类推,可以最大应变节点编号及其值数值的提取:
ALLSEL
NSORT,EPTO,EQV,0,0,ALL
*GET,MAX_EPTOEQV,SORT,0,IMAX
*GET,MAXEPTOEQV,NODE,MAX_EPTOEQV,S,EQV
最大位移节点编号及其数值的提取:
ALLSEL
NSORT,U,SUM,0,0,ALL
*GET,MAX_U,SORT,0,IMAX
*GET,MAXU,NODE,MAX_U,U,SUM
还有其他方法:如把所有的节点应力应变数值提取然后找最大值
*GET,NUMALL,NODE,0,COUNT
*GET,NUMSTART,NODE,0,NUM,MIN
SMAX=0
INUSE=NUMSTART
*DO,I,1,NUMALL,1
*GET,SSUM,NODE,INUSE,S,EQV
*IF,SMAX,GE,SSUM,THEN
SMAX=SMAX
*ELSEIF,SMAX,LT,SSUM,THEN
SMAX=SSUM
*ENDIF
INUSE=NDNEXT(INUSE)
*ENDDO
还有一种是首先在窗口上显示应力应变云图,然后利用GET命令得到最大值。
如提取最大应力为:
PLNSOL,S,EQV,0
*GET, PAR, PLNSOL, 0, MAX
或将所有的节点定义成一个路径,*GET, PAR, PATH, 0, MAX,
另:获取结果各个时间点的最大应力值
*DIM,MAXSEQVNODE,TABLE,63,1,1,,, !定义数组
*DO,ISET1,1,63,1 !根据结果存储的数目而定,如63
/POST1
SET,1,,1,,,,ISET1,
PLNSOL,S,EQV,0
*GET,MAXSEQV_NODEI,PLNSOL,0,MAX !获取结果,这里是最大MISES等效应力
*SET,MAXSEQV_NODE(ISET-1,0,1),(ISET-1)*4E-4 !确定对应的时间
*SET,MAXSEQV_NODE(ISET-1,1,1),MAXSEQV_NODEI !写入最大等效应力值
*ENDDO
。。。。。。。。。。。。。