用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 Variables
2.默认情况下,可以定义的变量数为10个。通过NUMVAR命令可增加限制(最大值为200个),对应的GUI方式为Main Menu>TimeHist Postpro>Setting>File
2.时间历程后处理器可对已定义的变量进行数学运算。例如在瞬态分析时定义了位移变量,可将该位移变量对时间求导得到速度和加速度。
2.
2.例如:
2.
2.NSOL,2,441,U,Y,UY441 !定义变量2为节点441的UY,变量名称为UY441。
2.
2.DERIV,3,2,1,,VEL441 !定义变量3为变量2对变量1(时间)的一阶导数,变量名称为VEL441
2.DERIV,4,3,1,,ACCL441 !定义变量4为变量3对变量1(时间)的一阶导数,变量名称为ACCL441
2.通过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. /POST26
3.
4. NSOL,2,10,U,Y,UY_2 ! 定义第二个变量为UY_2,值为10号节点Y方向的位移,节点可任选,但要保证其值非0
5. XVAR,1 ! 定义时间变量为坐标横轴
6. PLVAR,2
7. *GET,num_var,VARI,0, NSETS ! 将变量长度值赋给变量num_var
8. k=num_var
9.
10. *DIM,SYSNOISE_TITLE,CHAR,5,4
11. 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.fre
30.
31. *VWRITE,SYSNOISE_TITLE(1,1) ,SYSNOISE_TITLE(1,2) ,SYSNOISE_TITLE(1,3) ,SYSNOISE_TITLE(1,4)
32. %C%C%C%C
33.
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,4
42. 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,1
48. num_t(1,1)=T_U(i,1,1) !按次序取TIME值
49. *VWRITE,num_t(1,1)
50. %20.8E
51.
52. *VWRITE,SYSNOISE_SUBT1(1,1) ,SYSNOISE_SUBT1(1,2) ,SYSNOISE_SUBT1(1,3) ,SYSNOISE_SUBT1(1,4)
53. %C%C%C%C
54.
55. *do,j,1,nmax,1
56.
57. NSOL,2,j,U,X,UX ! 定义第二个变量为UX,值为j号节点X方向的位移
58. DERIV,3,2,1,,,,,1 ! 将位移对时间求导,得到速度,存为变量3
59. DERIV,4,3,1,,,,,1 ! 将速度对时间求导,得到加速度,存为变量4
60.
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 ! 将位移对时间求导,得到速度,存为变量6
66. DERIV,7,6,1,,,,,1 ! 将速度对时间求导,得到加速度,存为变量7
67.
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 ! 将位移对时间求导,得到速度,存为变量9
73. DERIV,10,9,1,,,,,1 ! 将速度对时间求导,得到加速度,存为变量10
74.
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)=j
79.
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.8E
82.
83. *VWRITE,0,num_t(1,4),0
84. (20X,E20.8,E20.8,E20.8)
85.
86. *VWRITE,0,0,0
87. (20X,E20.8,E20.8,E20.8)
88.
89. *VWRITE,0,0,0
90. (20X,E20.8,E20.8,E20.8)
91.
92. *enddo
93.
94. *IF,i,EQ,k,THEN
95. *EXIT
96. *ENDIF
97.
98. *VWRITE,SYSNOISE_TITLE(1,1) ,SYSNOISE_TITLE(1,2) ,SYSNOISE_TITLE(1,3) ,SYSNOISE_TITLE(1,4)
99. %C%C%C%C
100.
101. *enddo
102.
103. *CFCLOS
104.
105. FINISH
106. 我用的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=最大应力值
FINISH
109.
===============
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
*ENDDO
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 应力即可得到
------------------
116. beam4只能看到变形结构和自由度的结果,这是梁单元的基本结果,这两种单元不考虑实体的受力情况,如果要看应力应变云图,又要节省时间可以采用BEAM188/189梁,这种单元应用了子结构技术考虑了离散截面的受力分析,结果根实体计算吻合的较好。
至于LINK单元,由于只受轴向力,所以应力应变都是一样的,无需观看,程序也就没有这个功能。
GOOD LUCK!
117. --------------------
119. 请教
1,BEAM188单元梁截面的理论解是不是这样?
σ=FX/A+MY/WY+MZ/WZ?
以下是我基于此编的提取截面应力的命令流,不知道是不是正确,请指教,(见附件),但我这样提取出的应力在局部地方与PLESOL,S,X,中显示的有很大出入,(其中有一个工况,显示为-150,提出来的为-170,此处为位移约束处).其它地方都只是小数后第三位的差别.那么请教高手,在约束处是不是有其它的应力?
2,在ANSYS中计算出的静态应力,还要不要再去考虑稳定系数?
3,在各个单枝计算通过的情况下,还要不要考虑整体的稳定性问题?
怎么考虑,(我是用ANSYS进行塔式起重机的受力分析,刚学),请各位高手不吝指教.谢谢!
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(弯曲应力)
是不是只适用于矩形截面呢?对于圆型截面等好像就不太精确了吧?
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命令列出轴应力或剪应力