西风独自凉 发表于 2013-4-28 13:35:30

ANSYS 后处理

用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
1.   2.RFORCE:定义节点反力数据2.2.SHELL:指定壳单元(分层壳)中的位置(TOPMID、BOT)2.2.GUI:Main Menu>TimeHist Postpro>Define Variables2.默认情况下,可以定义的变量数为10个。通过NUMVAR命令可增加限制(最大值为200个),对应的GUI方式为Main Menu>TimeHist Postpro>Setting>File2.时间历程后处理器可对已定义的变量进行数学运算。例如在瞬态分析时定义了位移变量,可将该位移变量对时间求导得到速度和加速度。2.2.例如:2.2.NSOL,2,441,U,Y,UY441 !定义变量2为节点441的UY,变量名称为UY441。2.2.DERIV,3,2,1,,VEL441 !定义变量3为变量2对变量1(时间)的一阶导数,变量名称为VEL4412.DERIV,4,3,1,,ACCL441 !定义变量4为变量3对变量1(时间)的一阶导数,变量名称为ACCL4412.通过PLVAR命令(GUI:Main Menu> TimeHist Postpro>Graph Variables)可在图形显示区绘出多达9个变量的图形。时间历程图线中默认的横坐标(X轴)为变量1,在静态或瞬态分析时表示时间,在谐波分析时表示频率。通过XVAR命令(GUI:Main Menu>TimeHist Postpro>Setting>Graph)可指定不同的变量号作为横坐标。如果横坐标不是时间,可显示三维图形(用时间或频率作为Z坐标)。2.2.后处理计算结果的列表可以通过Main Menu>General Postproc>List Result>…命令或者2.2.Main Menu>TimeHist Postpro>List Variables或Lsit Extremes命令来实现。2.2.2.2.收敛准则的选取2.       ANSYS收敛准则可建立在力、力矩、位移或这些项目的任意组合上。另外,每一个项目可以有不同的收敛容限值。2.2.   以力为基础的收敛准则提供了收敛的绝对量度,而以位移为基础的收敛仅提供了收敛的相对量度(在迭代过程中计算出的位移很小时,可能会被程序认为是收敛的解,但有可能此时问题仍远离准确解。完全依赖位移收敛检查有时可能产生错误)。因此,建议用户尽可能使用以力为基础(或以力矩为基础的)收敛准则,以位移为基础的(或以转动为基础)的收敛检查通常不单独使用,仅用于辅助判断。 2. /POST263.   4.NSOL,2,10,U,Y,UY_2 ! 定义第二个变量为UY_2,值为10号节点Y方向的位移,节点可任选,但要保证其值非05.XVAR,1 ! 定义时间变量为坐标横轴6.PLVAR,27.*GET,num_var,VARI,0, NSETS ! 将变量长度值赋给变量num_var8.k=num_var9.   10. *DIM,SYSNOISE_TITLE,CHAR,5,411. SYSNOISE_TITLE(1,1)='SYSNOISE '12. SYSNOISE_TITLE(1,2)=' ACCELER '13. SYSNOISE_TITLE(1,3)='ATIONS '14. SYSNOISE_TITLE(1,4)=' FILE'15.16. SYSNOISE_TITLE(2,1)='Rev 5.5 '17. SYSNOISE_TITLE(2,2)=' IBM P2E '18. SYSNOISE_TITLE(2,3)='SSL 11'19. SYSNOISE_TITLE(2,4)='-AUG-02 '20.21. SYSNOISE_TITLE(3,1)='ACCELERA'22. SYSNOISE_TITLE(3,2)='TION_St'23. SYSNOISE_TITLE(3,3)='ructure '24. SYSNOISE_TITLE(4,1)='11-AUG-2002 '25. SYSNOISE_TITLE(4,2)=' 10:07 '26. SYSNOISE_TITLE(4,3)=':13 '27.28. SYSNOISE_TITLE(5,1)='TIME'29. *CFOPEN,ACCE,fre ! 定义数据结果文件,ACCE.fre30.31. *VWRITE,SYSNOISE_TITLE(1,1) ,SYSNOISE_TITLE(1,2) ,SYSNOISE_TITLE(1,3) ,SYSNOISE_TITLE(1,4)32. %C%C%C%C33.34. *get,nmax,node,,num,max, !得到节点编号的最大数35.36. *DIM,T_U,ARRAY,k,4! 定义保存时间历程结果的矩阵T_U,有num_var行,4列37. VGET,T_U(1,1,1),1 ! 矩阵的第一列保存第一个时间历程变量(默认为TIME)38.39. *dim,num_t,,1,5 !定义一个数组40.41. *DIM,SYSNOISE_SUBT1,CHAR,1,442. SYSNOISE_SUBT1(1,1)='NODAL AC'43. SYSNOISE_SUBT1(1,2)='CELERATI '44. SYSNOISE_SUBT1(1,3)='ON VALU'45. SYSNOISE_SUBT1(1,4)='ES'46.47. *do,i,1,k,148. num_t(1,1)=T_U(i,1,1) !按次序取TIME值49. *VWRITE,num_t(1,1)50. %20.8E51.52. *VWRITE,SYSNOISE_SUBT1(1,1) ,SYSNOISE_SUBT1(1,2) ,SYSNOISE_SUBT1(1,3) ,SYSNOISE_SUBT1(1,4)53. %C%C%C%C54.55. *do,j,1,nmax,156.57. NSOL,2,j,U,X,UX ! 定义第二个变量为UX,值为j号节点X方向的位移58. DERIV,3,2,1,,,,,1 ! 将位移对时间求导,得到速度,存为变量359. DERIV,4,3,1,,,,,1 ! 将速度对时间求导,得到加速度,存为变量460.61. VGET,T_U(1,2,1),4 ! 矩阵的第2列保存第四个时间历程变量,j号节点X方向的加速度时间历程结果62. num_t(1,2)=T_U(i,2,1) !将与i对应的j节点的X加速度值赋给num_t的第2列63.64. NSOL,5,j,U,Y,UY ! 定义第5个变量为UY,值为j号节点Y方向的位移65. DERIV,6,5,1,,,,,1 ! 将位移对时间求导,得到速度,存为变量666. DERIV,7,6,1,,,,,1 ! 将速度对时间求导,得到加速度,存为变量767.68. VGET,T_U(1,3,1),7 ! 矩阵的第3列保存第7个时间历程变量,j号节点Y方向的加速度时间历程结果69. num_t(1,3)=T_U(i,3,1) !将与i对应的j节点的Y加速度值赋给num_t的第3列70.71. NSOL,8,j,U,Z,UZ ! 定义第8个变量为UZ,值为j号节点Z方向的位移72. DERIV,9,8,1,,,,,1 ! 将位移对时间求导,得到速度,存为变量973. DERIV,10,9,1,,,,,1 ! 将速度对时间求导,得到加速度,存为变量1074.75. VGET,T_U(1,4,1),10 ! 矩阵的第4列保存第10个时间历程变量,j号节点Z方向的加速度时间历程结果76. num_t(1,4)=T_U(i,4,1) !将与i对应的j节点的Z加速度值赋给num_t的第4列77.78. num_t(1,5)=j79.80. *VWRITE,num_t(1,5),num_t(1,5),num_t(1,2),0,num_t(1,3) ! 将时间历程结果数据写到数据结果文件中,0为虚部及旋转加速度值81. %10I%10I%20.8E%20.8E%20.8E82.83. *VWRITE,0,num_t(1,4),084. (20X,E20.8,E20.8,E20.8)85.86. *VWRITE,0,0,087. (20X,E20.8,E20.8,E20.8)88.89. *VWRITE,0,0,090. (20X,E20.8,E20.8,E20.8)91.92. *enddo93.94. *IF,i,EQ,k,THEN95. *EXIT96. *ENDIF97.98. *VWRITE,SYSNOISE_TITLE(1,1) ,SYSNOISE_TITLE(1,2) ,SYSNOISE_TITLE(1,3) ,SYSNOISE_TITLE(1,4)99. %C%C%C%C100.       101.      *enddo102.       103.      *CFCLOS104.       105.      FINISH106.我用的188单元作谐响应分析,求解结束后,我想取出模型中的最大应力值作为参数,然后在接下来的优化当中用该最大应力作为状态变量,请问我应该怎么做啊,注意优化时,对应于每组参数值,最大应力点的位置都可能不同.
请高手指点一下 谢谢107.
----------108.以下程序段分别得到目标变量(总体积),约束变量SV的最大应力值。
/POST1
SET,
NSORT,U,Y
*GET,DMAX,SORT,,MAX

ETABLE,VOLU,VOLU
ETABLE,SMAX_I,NMISC,1
ETABLE,SMAX_J,NMISC,3
ssum
*GET,VOLUME,SSUM,,ITEM,VOLU

ESORT,ETAB,SMAX_I,,1   !按照单元SMAX_I的绝对值大小进行排序
*GET,SMAXI,SORT,,MAX
ESORT,ETAB,SMAX_J,,1
*GET,SMAXJ,SORT,,MAX
SMAX=SMAXI>SMAXJ      !约束变量SV:SMAX=最大应力值
FINISH109.
===============110.你这个程序段 是针对 beam3 吧,对 beam188好像不行。
对beam188,要 求所有单元的最大、最小应力可以用命令
allsel
*GET,ZDYL_MAX,SECR,ALL,S,X,MAX
*GET,ZDYL_MIN,SECR,ALL,S,X,MAX
但是虽然能用图形显示 最大、最小应力截面,却不清楚怎么用命令流提取出这个截面和他所在的单元来,盼高手提示!

另外也可以用单元表 求出 轴应力和 弯曲应力,然后求最大、最小应力
SMAX=Maximum stress (direct stress + bending stress)
SMIN=Minimum stress (direct stress - bending stress)
命令流
ETABLE,SDIR,SMISC,31
ETABLE,SBZT,SMISC,34
SADD,YL_MAX,SDIR,SBZT
SADD,YL_MIN,SDIR,SBZT,,-1
*do,K,1,单元数,1
*GET,YLMAX(K),ELEM,K,ETABLE,YL_MAX
*GET,YLMIN(K),ELEM,K,ETABLE,YL_MIN
*ENDDO111.

2、BEAM188单元剪应力怎么查看? 112.BEAM188单元输出中帮助文件的输出序号如下:
Table 188.2. BEAM188 Item and Sequence Numbers for the ETABLE and ESOL Commands

Name Item I J
FX SMISC 1 14
MY SMISC 2 15
MZ SMISC 3 16
MX SMISC 4 17
SFZ SMISC 5 18
SFY SMISC 6 19
EX SMISC 7 20
KY SMISC 8 21
KZ SMISC 9 22
KX SMISC 10 23
SEZ SMISC 11 24
SEY SMISC 12 25
Area SMISC 13 26
BM SMISC 27 29
BK SMISC 28 30

请教:怎么没有剪应力SX,SXZ,SXY的输出序号?怎么查看计算结果的剪应力?113.------------------114.不需要到 ETABLE 定义
sx是正应力sy,sz剪应力。直接在后处理中显示sy,sz 应力即可得到
------------------115.因为对于梁截面考虑剪应力时,计算比较复杂,应该时随截面坐标变化的,所以不是节点的量,因此,对于etable中只给出了节点处的剪力,也就是说,对于梁单元,在节点处考虑截面切应力是无法得到的,如果想得到只能用实体单元模拟梁单元!
----------------

3\LINK8和beam4的应力、应变图与值怎么查看?
http://okok.org/forum/viewthread.php?tid=64082&pid2=283299&keywords=beam188%20%E6%A2%81%20%E5%BA%94%E5%8A%9B&searchstyle=3&issearch=true#pid283299

我求出LINK8和beam4的结果后,但只查出其变形结构和自由度的结果,不知其应力、应变的图与值怎么查看。望指点!
---------------116.beam4只能看到变形结构和自由度的结果,这是梁单元的基本结果,这两种单元不考虑实体的受力情况,如果要看应力应变云图,又要节省时间可以采用BEAM188/189梁,这种单元应用了子结构技术考虑了离散截面的受力分析,结果根实体计算吻合的较好。
至于LINK单元,由于只受轴向力,所以应力应变都是一样的,无需观看,程序也就没有这个功能。
GOOD LUCK!117.--------------------118.beam4和link8的应力应变要通过单元表来显示。以beam4单元为例,
SDI R Axial direct stress
SBYT Bending stress on the element +Y side of the beam
SBYB Bending stress on the element -Y side of the beam
SBZT Bending stress on the element +Z side of the beam
SBZB Bending stress on the element -Z side of the beam
通过单元表:etable,a,ls可以显示,具体看帮助!


4、ANSYS中任意应力问题
http://okok.org/forum/viewthread.php?tid=88187&pid2=389495&keywords=beam188%20%E6%A2%81%20%E5%BA%94%E5%8A%9B&searchstyle=3&issearch=true#pid389495
各位大侠:我是采用的实体建模,分析完成后我想看一个体内部任意截面的应力分布图,但是总是不知道怎么才能实现,希望有知道的人和我联系
-------------
如果想显示梁单元的应力等值线图,请打开实际形状显示功能(PLotCtrl->Style->Size and Shape->/ESHAPE选为ON),然后即可绘制。
   注意梁单元(如BEAM188,BEAM189)的应力结果是在单元坐标系中显示的,即SXX为轴向正应力,SXY,SXZ为截面剪应力,没有其他应力分量。
    另外,缺省情况下,只输出SXX,如果想观察SXY,SXZ,请将BEAM188或189的KEYOPT(4)选为Include both(以这两个单元为例,其他单元可能不同,请看帮助文件,推荐使用BEAM188,BEAM189,这是功能最强的梁单元)。
   至于壳的应力显示也类似,请打开实际形状显示功能,即可如同在实体上一样显示结果,您可以很清楚地看出不同位置、高度的应力值。
   当然如果你只想画出顶部、中部或底部的应力图也可以,以shell63为例,首先需关闭powergraphics(Toolbar上点POWRGRPH,选择OFF),然后进入General PostProc->Option for outp->SHELL中选择位置即可。
---------------


5、BEAM188单元应力理论解?
http://okok.org/forum/viewthread.php?tid=98482&pid2=656447&keywords=beam188%20%E6%A2%81%20%E5%BA%94%E5%8A%9B&searchstyle=3&issearch=true#pid656447119.请教
1,BEAM188单元梁截面的理论解是不是这样?
    σ=FX/A+MY/WY+MZ/WZ?
   以下是我基于此编的提取截面应力的命令流,不知道是不是正确,请指教,(见附件),但我这样提取出的应力在局部地方与PLESOL,S,X,中显示的有很大出入,(其中有一个工况,显示为-150,提出来的为-170,此处为位移约束处).其它地方都只是小数后第三位的差别.那么请教高手,在约束处是不是有其它的应力?
2,在ANSYS中计算出的静态应力,还要不要再去考虑稳定系数?
3,在各个单枝计算通过的情况下,还要不要考虑整体的稳定性问题?
怎么考虑,(我是用ANSYS进行塔式起重机的受力分析,刚学),请各位高手不吝指教.谢谢!120.430698-T.txt ( 4.9 K) 下载次数 3
-----------121.beam188单元可以考虑剪切变形,也可以自己定义截面并且在截面上划分网格,和普通的梁单元不同,普通的梁单元时通过截面的某些几何的特性比如惯性矩、面积等来求解的,beam188单元不是。122.---------------123.BEAM188 不像BEAM44那样直接提供最大应力和最小应力,是要自己经过单元表处理才能得到的。
       SDIR(轴向应力) is the stress component due to axial load
       SDIR = FX/A, where FX is the axial load (SMISC quantities 1 and 14) and A is the area of the cross section
      SBYT and SBYB are bending stress components.<BR>         
SBYT = -MZ * ymax / Izz
SBYB = -MZ * ymin / Izz
SBZT = MY * zmax / Iyy
SBZB = MY * zmin / Iyy
      BENDING STRESS(弯曲应力)=1/2(SBYT+SBYB)
SMAX(最大应力)=SDIR(轴向应力) + BENDING STRESS(弯曲应力)
SMIN (最小应力)=SDIR(轴向应力) - BENDING STRESS(弯曲应力)
所以最大应力和最小应力都是要通过一系列单元表操作才能算出。124.-------------125.我和beam打交道很多。根据我的理解,beam4(传统梁单元)和beam189(Timoshenko梁单元)都是才用了材料力学的平截面假定,因此楼主的公式不能说错。当然它们的理论基础不同,主要表现是其形函数不一样。126.
--------------127.a51308所说的
SMAX(最大应力)=SDIR(轴向应力) + BENDING STRESS(弯曲应力)
SMIN (最小应力)=SDIR(轴向应力) - BENDING STRESS(弯曲应力)
是不是只适用于矩形截面呢?对于圆型截面等好像就不太精确了吧?128.
6、请高手指点:beam188的mises应力能输出吗? 129.请高手指点:beam188的mises应力能输出吗?还有mises应变和塑性应变. 130.-------------131.粱单元是不能直接输出MISES应力的,因为粱单元是基于初等粱理论的,只能输出内力,然后按照材料力学的知识有内力计算应力132.----------
梁单元是不能直接输出Mises应力,但却不尽能输出内力,并且能直接输出轴应力,对于BEAM188和BEAM189单元,还能输出剪应力:
1、对于BEAM3和BEAM4,使用单元表ETable抽取LS或NMISC项,然后Contour Plot--->Line Elem Res;
2、对于BEAM188和BEAM189,用List Results--->Section Solution命令列出轴应力或剪应力

壞傢伙 发表于 2013-4-30 09:37:11

拜读了,继续学习中~~~{:4_94:}

sai_v_2012 发表于 2013-4-30 09:58:41

先收藏再看吧,慢慢学~~~~

cxp001004 发表于 2013-9-14 08:46:34

拜读了,非常好的资料,继续学习中~~~
页: [1]
查看完整版本: ANSYS 后处理